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