156e1b4d8207e9ae177111bc824877a780723287bChris Wren/* 256e1b4d8207e9ae177111bc824877a780723287bChris Wren * Copyright (C) 2013 The Android Open Source Project 356e1b4d8207e9ae177111bc824877a780723287bChris Wren * 456e1b4d8207e9ae177111bc824877a780723287bChris Wren * Licensed under the Apache License, Version 2.0 (the "License"); 556e1b4d8207e9ae177111bc824877a780723287bChris Wren * you may not use this file except in compliance with the License. 656e1b4d8207e9ae177111bc824877a780723287bChris Wren * You may obtain a copy of the License at 756e1b4d8207e9ae177111bc824877a780723287bChris Wren * 856e1b4d8207e9ae177111bc824877a780723287bChris Wren * http://www.apache.org/licenses/LICENSE-2.0 956e1b4d8207e9ae177111bc824877a780723287bChris Wren * 1056e1b4d8207e9ae177111bc824877a780723287bChris Wren * Unless required by applicable law or agreed to in writing, software 1156e1b4d8207e9ae177111bc824877a780723287bChris Wren * distributed under the License is distributed on an "AS IS" BASIS, 1256e1b4d8207e9ae177111bc824877a780723287bChris Wren * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1356e1b4d8207e9ae177111bc824877a780723287bChris Wren * See the License for the specific language governing permissions and 1456e1b4d8207e9ae177111bc824877a780723287bChris Wren * limitations under the License. 1556e1b4d8207e9ae177111bc824877a780723287bChris Wren */ 1656e1b4d8207e9ae177111bc824877a780723287bChris Wren 1756e1b4d8207e9ae177111bc824877a780723287bChris Wrenpackage com.android.example.notificationshowcase; 1856e1b4d8207e9ae177111bc824877a780723287bChris Wren 1956e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.app.IntentService; 2056e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.app.PendingIntent; 2156e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.content.Context; 2256e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.content.Intent; 2356e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.os.Handler; 2456e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.util.Log; 2556e1b4d8207e9ae177111bc824877a780723287bChris Wrenimport android.widget.Toast; 2656e1b4d8207e9ae177111bc824877a780723287bChris Wren 2756e1b4d8207e9ae177111bc824877a780723287bChris Wrenpublic class ToastService extends IntentService { 2856e1b4d8207e9ae177111bc824877a780723287bChris Wren 2956e1b4d8207e9ae177111bc824877a780723287bChris Wren private static final String TAG = "ToastService"; 3056e1b4d8207e9ae177111bc824877a780723287bChris Wren 3156e1b4d8207e9ae177111bc824877a780723287bChris Wren private static final String ACTION_TOAST = "toast"; 3256e1b4d8207e9ae177111bc824877a780723287bChris Wren 3356e1b4d8207e9ae177111bc824877a780723287bChris Wren private Handler handler; 3456e1b4d8207e9ae177111bc824877a780723287bChris Wren 3556e1b4d8207e9ae177111bc824877a780723287bChris Wren public ToastService() { 3656e1b4d8207e9ae177111bc824877a780723287bChris Wren super(TAG); 3756e1b4d8207e9ae177111bc824877a780723287bChris Wren } 3856e1b4d8207e9ae177111bc824877a780723287bChris Wren public ToastService(String name) { 3956e1b4d8207e9ae177111bc824877a780723287bChris Wren super(name); 4056e1b4d8207e9ae177111bc824877a780723287bChris Wren } 4156e1b4d8207e9ae177111bc824877a780723287bChris Wren 4256e1b4d8207e9ae177111bc824877a780723287bChris Wren @Override 4356e1b4d8207e9ae177111bc824877a780723287bChris Wren public int onStartCommand(Intent intent, int flags, int startId) { 4456e1b4d8207e9ae177111bc824877a780723287bChris Wren handler = new Handler(); 4556e1b4d8207e9ae177111bc824877a780723287bChris Wren return super.onStartCommand(intent, flags, startId); 4656e1b4d8207e9ae177111bc824877a780723287bChris Wren } 4756e1b4d8207e9ae177111bc824877a780723287bChris Wren 4856e1b4d8207e9ae177111bc824877a780723287bChris Wren @Override 4956e1b4d8207e9ae177111bc824877a780723287bChris Wren protected void onHandleIntent(Intent intent) { 5056e1b4d8207e9ae177111bc824877a780723287bChris Wren Log.v(TAG, "clicked a thing! intent=" + intent.toString()); 5156e1b4d8207e9ae177111bc824877a780723287bChris Wren if (intent.hasExtra("text")) { 5256e1b4d8207e9ae177111bc824877a780723287bChris Wren final String text = intent.getStringExtra("text"); 5356e1b4d8207e9ae177111bc824877a780723287bChris Wren handler.post(new Runnable() { 5456e1b4d8207e9ae177111bc824877a780723287bChris Wren @Override 5556e1b4d8207e9ae177111bc824877a780723287bChris Wren public void run() { 5656e1b4d8207e9ae177111bc824877a780723287bChris Wren Toast.makeText(ToastService.this, text, Toast.LENGTH_LONG).show(); 5756e1b4d8207e9ae177111bc824877a780723287bChris Wren Log.v(TAG, "toast " + text); 5856e1b4d8207e9ae177111bc824877a780723287bChris Wren } 5956e1b4d8207e9ae177111bc824877a780723287bChris Wren }); 6056e1b4d8207e9ae177111bc824877a780723287bChris Wren } 6156e1b4d8207e9ae177111bc824877a780723287bChris Wren } 6256e1b4d8207e9ae177111bc824877a780723287bChris Wren 6356e1b4d8207e9ae177111bc824877a780723287bChris Wren public static PendingIntent getPendingIntent(Context context, String text) { 6456e1b4d8207e9ae177111bc824877a780723287bChris Wren Intent toastIntent = new Intent(context, ToastService.class); 6556e1b4d8207e9ae177111bc824877a780723287bChris Wren toastIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 6656e1b4d8207e9ae177111bc824877a780723287bChris Wren toastIntent.setAction(ACTION_TOAST + ":" + text); // one per toast message 6756e1b4d8207e9ae177111bc824877a780723287bChris Wren toastIntent.putExtra("text", text); 6856e1b4d8207e9ae177111bc824877a780723287bChris Wren PendingIntent pi = PendingIntent.getService( 6956e1b4d8207e9ae177111bc824877a780723287bChris Wren context, 58, toastIntent, PendingIntent.FLAG_UPDATE_CURRENT); 7056e1b4d8207e9ae177111bc824877a780723287bChris Wren return pi; 7156e1b4d8207e9ae177111bc824877a780723287bChris Wren } 7256e1b4d8207e9ae177111bc824877a780723287bChris Wren} 73