1174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn/* 2174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * Copyright (C) 2012 The Android Open Source Project 3174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * 4174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * you may not use this file except in compliance with the License. 6174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * You may obtain a copy of the License at 7174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * 8174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * 10174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 11174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * See the License for the specific language governing permissions and 14174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * limitations under the License. 15174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn */ 16174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 17174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornpackage com.example.android.apis.app; 18174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 19174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport com.example.android.apis.R; 20174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 21174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport android.app.Activity; 22174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport android.app.NotificationManager; 23174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport android.content.Intent; 24174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport android.os.Bundle; 25174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport android.view.View; 26174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornimport android.widget.Button; 27174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 28174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn/** 29174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * This is an activity that provides an interstitial UI for the notification 30174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * that is posted by {@link IncomingMessage}. It allows the user to switch 31174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * to the app in its appropriate state if they want. 32174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn */ 33174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackbornpublic class IncomingMessageInterstitial extends Activity { 34174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn @Override 35174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn protected void onCreate(Bundle savedInstanceState) { 36174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn super.onCreate(savedInstanceState); 37174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 38174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn setContentView(R.layout.incoming_message_interstitial); 39174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 40174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn Button button = (Button) findViewById(R.id.notify_app); 41174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn button.setOnClickListener(new Button.OnClickListener() { 42174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn public void onClick(View v) { 43174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn switchToApp(); 44174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn } 45174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn }); 46174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn } 47174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn 48174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn//BEGIN_INCLUDE(app_launch) 49174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn /** 50174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * Perform a switch to the app. A new activity stack is started, replacing 51174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn * whatever is currently running, and this activity is finished. 52174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn */ 53174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn void switchToApp() { 54174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn // We will launch the app showing what the user picked. In this simple 55174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn // example, it is just what the notification gave us. 56174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn CharSequence from = getIntent().getCharSequenceExtra(IncomingMessageView.KEY_FROM); 57174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn CharSequence msg = getIntent().getCharSequenceExtra(IncomingMessageView.KEY_MESSAGE); 58174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn // Build the new activity stack, launch it, and finish this UI. 59174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn Intent[] stack = IncomingMessage.makeMessageIntentStack(this, from, msg); 60174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn startActivities(stack); 61174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn finish(); 62174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn } 63174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn//END_INCLUDE(app_launch) 64174f61c0e93ce9dedcf941aff013c53b2c933e17Dianne Hackborn} 65