summaryrefslogtreecommitdiffstats
path: root/core/res
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-06-03 18:47:52 -0700
committerDianne Hackborn <hackbod@google.com>2010-06-04 10:09:13 -0700
commit860755faa6bdd3c2aeae49c05b87b5bc080ae60c (patch)
tree49cb794a0de5b8f505048533ac5daf02e95c94b1 /core/res
parentf8acea6ccbdd7e7283b1dc439f49c72a937f746d (diff)
downloadframeworks_base-860755faa6bdd3c2aeae49c05b87b5bc080ae60c.zip
frameworks_base-860755faa6bdd3c2aeae49c05b87b5bc080ae60c.tar.gz
frameworks_base-860755faa6bdd3c2aeae49c05b87b5bc080ae60c.tar.bz2
Add support for heavy-weight applications.
Only one can be running at a time, their process can not be killed, and a notification is posted while it is running. Change-Id: I843015723947e0c934ae63a1aeee139327c0bc01
Diffstat (limited to 'core/res')
-rw-r--r--core/res/AndroidManifest.xml6
-rw-r--r--core/res/res/layout/heavy_weight_switcher.xml145
-rw-r--r--core/res/res/values/attrs_manifest.xml9
-rw-r--r--core/res/res/values/public.xml3
-rw-r--r--core/res/res/values/strings.xml23
5 files changed, 184 insertions, 2 deletions
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 2a2208f..1fcf186 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1250,6 +1250,12 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
+ <activity android:name="com.android.internal.app.HeavyWeightSwitcherActivity"
+ android:theme="@style/Theme.Dialog"
+ android:label="@string/heavy_weight_switcher_title"
+ android:finishOnCloseSystemDialogs="true"
+ android:excludeFromRecents="true">
+ </activity>
<activity android:name="com.android.internal.app.DisableCarModeActivity"
android:theme="@style/Theme.NoDisplay"
android:excludeFromRecents="true">
diff --git a/core/res/res/layout/heavy_weight_switcher.xml b/core/res/res/layout/heavy_weight_switcher.xml
new file mode 100644
index 0000000..9acf009
--- /dev/null
+++ b/core/res/res/layout/heavy_weight_switcher.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical" android:padding="4dp"
+ android:gravity="center_horizontal"
+ android:layout_width="wrap_content" android:layout_height="wrap_content">
+
+ <TextView
+ android:layout_width="match_parent" android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:paddingBottom="8dp"
+ android:text="@string/heavy_weight_switcher_text"/>
+
+ <ImageView android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:scaleType="fitXY"
+ android:src="?android:listDivider" />
+
+ <LinearLayout android:id="@+id/switch_old"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:orientation="horizontal"
+ android:background="@android:drawable/list_selector_background"
+ android:paddingRight="3dip"
+ android:paddingLeft="3dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="14dip"
+ android:gravity="center_vertical"
+ android:focusable="true" >
+
+ <ImageView android:id="@+id/old_app_icon"
+ android:layout_width="@android:dimen/app_icon_size"
+ android:layout_height="@android:dimen/app_icon_size"
+ android:layout_marginRight="11dip"
+ android:layout_gravity="center_vertical"
+ android:scaleType="fitCenter"/>
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:duplicateParentState="true" >
+ <TextView android:id="@+id/old_app_action"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textStyle="bold"
+ android:singleLine="true"
+ android:layout_marginBottom="2dip"
+ android:duplicateParentState="true" />
+ <TextView android:id="@+id/old_app_description"
+ android:layout_marginTop="-4dip"
+ android:layout_gravity="center_vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:duplicateParentState="true" />
+ </LinearLayout>
+ </LinearLayout>
+
+ <ImageView android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:scaleType="fitXY"
+ android:src="?android:listDivider" />
+
+ <LinearLayout android:id="@+id/switch_new"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:orientation="horizontal"
+ android:background="@android:drawable/list_selector_background"
+ android:paddingRight="3dip"
+ android:paddingLeft="3dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="8dip"
+ android:gravity="center_vertical"
+ android:focusable="true" >
+
+ <ImageView android:id="@+id/new_app_icon"
+ android:layout_width="@android:dimen/app_icon_size"
+ android:layout_height="@android:dimen/app_icon_size"
+ android:layout_marginRight="11dip"
+ android:layout_gravity="center_vertical"
+ android:scaleType="fitCenter"/>
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:duplicateParentState="true" >
+ <TextView android:id="@+id/new_app_action"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textStyle="bold"
+ android:singleLine="true"
+ android:layout_marginBottom="2dip"
+ android:duplicateParentState="true" />
+ <TextView android:id="@+id/new_app_description"
+ android:layout_marginTop="-4dip"
+ android:layout_gravity="center_vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:duplicateParentState="true" />
+ </LinearLayout>
+ </LinearLayout>
+
+ <ImageView android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:scaleType="fitXY"
+ android:src="?android:listDivider" />
+
+ <TextView android:id="@+id/cancel"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:background="@android:drawable/list_selector_background"
+ android:paddingRight="6dip"
+ android:paddingLeft="6dip"
+ android:paddingTop="5dip"
+ android:paddingBottom="8dip"
+ android:textStyle="bold"
+ android:singleLine="true"
+ android:gravity="center"
+ android:focusable="true"
+ android:text="@string/cancel" />
+
+</LinearLayout>
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index b4c4811..5ca7b28 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -740,6 +740,15 @@
<attr name="restoreNeedsApplication" />
<attr name="restoreAnyVersion" />
<attr name="neverEncrypt" />
+ <!-- Declare that this is a heavy-weight application. This kind of
+ application is not able to save and restore its state on demand,
+ so can not participate in the normal activity lifecycle. It will
+ not be killed while in the background; the user must explicitly
+ quit it. Only one such app can be running at a time; if the user
+ tries to launch a second heavy-weight app, they will be prompted
+ to quit the first before doing so. While a heavy-weight
+ application is running, the user will be informed of this. -->
+ <attr name="heavyWeight" format="boolean" />
</declare-styleable>
<!-- The <code>permission</code> tag declares a security permission that can be
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 5d18e9e..1932771 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1245,8 +1245,9 @@
<public type="attr" name="logo" id="0x010102be" />
<public type="attr" name="xlargeScreens" id="0x010102bf" />
-
+ <public type="attr" name="heavyWeight" id="0x010102c0" />
<public-padding type="attr" name="kraken_resource_pad" end="0x01010300" />
+
<public-padding type="id" name="kraken_resource_pad" end="0x01020040" />
<public-padding type="anim" name="kraken_resource_pad" end="0x010a0020" />
<public-padding type="drawable" name="kraken_resource_pad" end="0x01080100" />
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 613a9a2..e7f892a 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1935,8 +1935,29 @@
<!-- Button allowing the user to choose to wait for an application that is not responding to become responsive again. -->
<string name="wait">Wait</string>
+ <!-- Notification text to tell the user that a heavy-weight application is running. -->
+ <string name="heavy_weight_notification"><xliff:g id="app">%1$s</xliff:g> running</string>
+
+ <!-- Notification details to tell the user that a heavy-weight application is running. -->
+ <string name="heavy_weight_notification_detail">Select to switch to application</string>
+
+ <!-- Title of dialog prompting whether user wants to switch between heavy-weight apps. -->
+ <string name="heavy_weight_switcher_title">Switch applications?</string>
+
+ <!-- Descriptive text for switching to a new heavy-weight application. -->
+ <string name="heavy_weight_switcher_text">Another application is already running
+ that must be stopped before you can start a new one.</string>
+
+ <string name="old_app_action">Return to <xliff:g id="old_app">%1$s</xliff:g></string>
+ <string name="old_app_description">Don\'t start the new application.</string>
+
+ <string name="new_app_action">Start <xliff:g id="old_app">%1$s</xliff:g></string>
+ <string name="new_app_description">Stop the old application without saving.</string>
+
<!-- Displayed in the title of the chooser for things to do with text that
- is to be sent to another application. For example, I can send text through SMS or IM. A dialog with those choices would be shown, and this would be the title. -->
+ is to be sent to another application. For example, I can send
+ text through SMS or IM. A dialog with those choices would be shown,
+ and this would be the title. -->
<string name="sendText">Select an action for text</string>
<!-- Title of the dialog where the user is adjusting the phone ringer volume -->