1199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong/* 2199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * Copyright (C) 2011 The Android Open Source Project 3199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * 4199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * Licensed under the Apache License, Version 2.0 (the "License"); 5199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * you may not use this file except in compliance with the License. 6199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * You may obtain a copy of the License at 7199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * 8199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * http://www.apache.org/licenses/LICENSE-2.0 9199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * 10199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * Unless required by applicable law or agreed to in writing, software 11199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * distributed under the License is distributed on an "AS IS" BASIS, 12199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * See the License for the specific language governing permissions and 14199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong * limitations under the License. 15199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong */ 16199d1c131d29b5356f71fbd7826a592c1dd8575fJames Dong 170dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornpackage com.android.server.am; 180dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn 190dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport com.android.internal.R; 200dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn 210dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport android.app.Dialog; 220dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport android.content.Context; 23947f7824118f0e9b642df8760a8725a7eda59318Adam Powellimport android.util.TypedValue; 240dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport android.view.Window; 250dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport android.view.WindowManager; 260dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport android.widget.ImageView; 270dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornimport android.widget.TextView; 280dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn 290dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackbornpublic class LaunchWarningWindow extends Dialog { 300dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn public LaunchWarningWindow(Context context, ActivityRecord cur, ActivityRecord next) { 310dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn super(context, R.style.Theme_Toast); 320dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn 330dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn requestWindowFeature(Window.FEATURE_LEFT_ICON); 340dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 350dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE 360dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 370dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn 380dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn setContentView(R.layout.launch_warning); 390dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn setTitle(context.getText(R.string.launch_warning_title)); 40947f7824118f0e9b642df8760a8725a7eda59318Adam Powell 41947f7824118f0e9b642df8760a8725a7eda59318Adam Powell TypedValue out = new TypedValue(); 42947f7824118f0e9b642df8760a8725a7eda59318Adam Powell getContext().getTheme().resolveAttribute(android.R.attr.alertDialogIcon, out, true); 43947f7824118f0e9b642df8760a8725a7eda59318Adam Powell getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, out.resourceId); 44947f7824118f0e9b642df8760a8725a7eda59318Adam Powell 450dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn ImageView icon = (ImageView)findViewById(R.id.replace_app_icon); 460dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn icon.setImageDrawable(next.info.applicationInfo.loadIcon(context.getPackageManager())); 470dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn TextView text = (TextView)findViewById(R.id.replace_message); 480dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn text.setText(context.getResources().getString(R.string.launch_warning_replace, 490dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn next.info.applicationInfo.loadLabel(context.getPackageManager()).toString())); 500dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn icon = (ImageView)findViewById(R.id.original_app_icon); 510dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn icon.setImageDrawable(cur.info.applicationInfo.loadIcon(context.getPackageManager())); 520dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn text = (TextView)findViewById(R.id.original_message); 530dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn text.setText(context.getResources().getString(R.string.launch_warning_original, 540dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn cur.info.applicationInfo.loadLabel(context.getPackageManager()).toString())); 550dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn } 560dad364adb9e9cbc2f7fa115602552f4897387adDianne Hackborn} 57