summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml2
-rw-r--r--res/drawable-xlarge-hdpi/encroid_complete.pngbin0 -> 33584 bytes
-rw-r--r--res/drawable-xlarge-hdpi/encroid_progress.pngbin0 -> 34141 bytes
-rw-r--r--res/drawable-xlarge-hdpi/encroid_resignin.pngbin0 -> 6647 bytes
-rw-r--r--res/drawable-xlarge-hdpi/encroid_waiting.pngbin0 -> 56286 bytes
-rw-r--r--res/drawable-xlarge-hdpi/encryption_bg_complete.pngbin191672 -> 0 bytes
-rw-r--r--res/drawable-xlarge-hdpi/encryption_bg_waiting.pngbin253913 -> 0 bytes
-rw-r--r--res/drawable-xlarge-mdpi/encroid_complete.pngbin0 -> 33584 bytes
-rw-r--r--res/drawable-xlarge-mdpi/encroid_progress.pngbin0 -> 34141 bytes
-rw-r--r--res/drawable-xlarge-mdpi/encroid_resignin.pngbin0 -> 6647 bytes
-rw-r--r--res/drawable-xlarge-mdpi/encroid_waiting.pngbin0 -> 56286 bytes
-rw-r--r--res/drawable-xlarge-mdpi/encryption_bg_complete.pngbin87388 -> 0 bytes
-rw-r--r--res/drawable-xlarge-mdpi/encryption_bg_waiting.pngbin117128 -> 0 bytes
-rw-r--r--res/layout-xlarge-land/crypt_keeper_password_entry.xml62
-rw-r--r--res/layout-xlarge/crypt_keeper_password_entry.xml73
-rw-r--r--res/layout-xlarge/crypt_keeper_progress.xml58
-rw-r--r--res/layout/crypt_keeper_blank.xml (renamed from res/anim/crypt_keeper_exit.xml)29
-rw-r--r--res/values/strings.xml30
-rw-r--r--res/values/styles.xml8
-rw-r--r--src/com/android/settings/CryptKeeper.java66
-rw-r--r--src/com/android/settings/CryptKeeperConfirm.java5
21 files changed, 218 insertions, 115 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 26c7cc5..e94dfcb 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1079,7 +1079,7 @@
<activity android:name=".CryptKeeper"
android:immersive="true"
android:launchMode="singleTop"
- android:theme="@style/CryptKeeperTheme"
+ android:theme="@android:style/Theme.Holo.NoActionBar"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter android:priority="10">
<action android:name="android.intent.action.MAIN" />
diff --git a/res/drawable-xlarge-hdpi/encroid_complete.png b/res/drawable-xlarge-hdpi/encroid_complete.png
new file mode 100644
index 0000000..89e45b5
--- /dev/null
+++ b/res/drawable-xlarge-hdpi/encroid_complete.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_progress.png b/res/drawable-xlarge-hdpi/encroid_progress.png
new file mode 100644
index 0000000..5e73dad
--- /dev/null
+++ b/res/drawable-xlarge-hdpi/encroid_progress.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_resignin.png b/res/drawable-xlarge-hdpi/encroid_resignin.png
new file mode 100644
index 0000000..ac470f3
--- /dev/null
+++ b/res/drawable-xlarge-hdpi/encroid_resignin.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encroid_waiting.png b/res/drawable-xlarge-hdpi/encroid_waiting.png
new file mode 100644
index 0000000..1090b86
--- /dev/null
+++ b/res/drawable-xlarge-hdpi/encroid_waiting.png
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encryption_bg_complete.png b/res/drawable-xlarge-hdpi/encryption_bg_complete.png
deleted file mode 100644
index aad2f08..0000000
--- a/res/drawable-xlarge-hdpi/encryption_bg_complete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-hdpi/encryption_bg_waiting.png b/res/drawable-xlarge-hdpi/encryption_bg_waiting.png
deleted file mode 100644
index 9e4bbf9..0000000
--- a/res/drawable-xlarge-hdpi/encryption_bg_waiting.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_complete.png b/res/drawable-xlarge-mdpi/encroid_complete.png
new file mode 100644
index 0000000..89e45b5
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/encroid_complete.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_progress.png b/res/drawable-xlarge-mdpi/encroid_progress.png
new file mode 100644
index 0000000..5e73dad
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/encroid_progress.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_resignin.png b/res/drawable-xlarge-mdpi/encroid_resignin.png
new file mode 100644
index 0000000..ac470f3
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/encroid_resignin.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encroid_waiting.png b/res/drawable-xlarge-mdpi/encroid_waiting.png
new file mode 100644
index 0000000..1090b86
--- /dev/null
+++ b/res/drawable-xlarge-mdpi/encroid_waiting.png
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encryption_bg_complete.png b/res/drawable-xlarge-mdpi/encryption_bg_complete.png
deleted file mode 100644
index f53cb23..0000000
--- a/res/drawable-xlarge-mdpi/encryption_bg_complete.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xlarge-mdpi/encryption_bg_waiting.png b/res/drawable-xlarge-mdpi/encryption_bg_waiting.png
deleted file mode 100644
index b8e6ded..0000000
--- a/res/drawable-xlarge-mdpi/encryption_bg_waiting.png
+++ /dev/null
Binary files differ
diff --git a/res/layout-xlarge-land/crypt_keeper_password_entry.xml b/res/layout-xlarge-land/crypt_keeper_password_entry.xml
index ffbdf89..f6cbecf 100644
--- a/res/layout-xlarge-land/crypt_keeper_password_entry.xml
+++ b/res/layout-xlarge-land/crypt_keeper_password_entry.xml
@@ -16,57 +16,67 @@
** limitations under the License.
*/
-->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
>
-
<RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="206dip"
>
- <!-- left side: status -->
- <include layout="@layout/crypt_keeper_status"
+ <ImageView android:id="@+id/encroid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="102dip"
- android:layout_marginTop="20dip"
- android:gravity="left"
- android:paddingTop="50dip"
- android:layout_centerVertical="true"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentTop="true"
+ android:src="@drawable/encroid_resignin"
+ />
+
+ <TextView android:id="@+id/passwordLabel"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_toRightOf="@+id/encroid"
+ android:layout_marginTop="37dip"
+ android:paddingRight="17dip"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="@string/crypt_keeper_enter_password"
/>
<!-- Password entry field -->
<EditText android:id="@+id/passwordEntry"
android:layout_height="wrap_content"
- android:layout_width="450dip"
- android:layout_marginRight="155dip"
- android:layout_alignParentRight="true"
+ android:layout_width="320dip"
+ android:layout_toRightOf="@+id/passwordLabel"
+ android:layout_marginTop="26dip"
android:singleLine="true"
- android:textStyle="normal"
android:inputType="textPassword"
- android:gravity="center"
- android:layout_gravity="center"
- android:textSize="24sp"
- android:layout_marginTop="120dip"
- android:layout_marginBottom="5dip"
android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="#ffffffff"
android:editable="false"
/>
+ <TextView android:id="@+id/status"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_toRightOf="@+id/passwordLabel"
+ android:layout_below="@+id/passwordEntry"
+ android:paddingTop="8dip"
+ android:singleLine="true"
+ android:textSize="17sp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:drawableLeft="@*android:drawable/ic_lock_idle_lock"
+ android:visibility="gone"
+ />
</RelativeLayout>
<com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
android:background="#00000000"
android:keyBackground="@*android:drawable/btn_keyboard_key_fulltrans"
android:visibility="visible"
/>
-</LinearLayout> \ No newline at end of file
+</RelativeLayout> \ No newline at end of file
diff --git a/res/layout-xlarge/crypt_keeper_password_entry.xml b/res/layout-xlarge/crypt_keeper_password_entry.xml
index b67eed0..2da2534 100644
--- a/res/layout-xlarge/crypt_keeper_password_entry.xml
+++ b/res/layout-xlarge/crypt_keeper_password_entry.xml
@@ -16,42 +16,59 @@
** limitations under the License.
*/
-->
-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:gravity="center_horizontal"
>
-
- <!-- left side: status -->
- <include layout="@layout/crypt_keeper_status"
+ <RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="134dip"
- android:paddingTop="50dip"
- android:layout_alignParentTop="true"
- android:layout_gravity="center_horizontal"
android:layout_centerHorizontal="true"
- />
+ android:layout_marginTop="318dip"
+ >
+ <ImageView android:id="@+id/encroid"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true"
+ android:src="@drawable/encroid_resignin"
+ />
- <!-- Password entry field -->
- <EditText android:id="@+id/passwordEntry"
- android:layout_above="@id/keyboard"
- android:layout_height="wrap_content"
- android:layout_width="450dip"
- android:singleLine="true"
- android:textStyle="normal"
- android:inputType="textPassword"
- android:gravity="center"
- android:layout_gravity="center_horizontal"
- android:layout_centerHorizontal="true"
- android:textSize="24sp"
- android:layout_marginTop="120dip"
- android:layout_marginBottom="5dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="#ffffffff"
- android:editable="false"
- />
+ <TextView android:id="@+id/passwordLabel"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_toRightOf="@+id/encroid"
+ android:layout_marginTop="37dip"
+ android:paddingRight="17dip"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:text="@string/crypt_keeper_enter_password"
+ />
+
+ <!-- Password entry field -->
+ <EditText android:id="@+id/passwordEntry"
+ android:layout_height="wrap_content"
+ android:layout_width="320dip"
+ android:layout_toRightOf="@+id/passwordLabel"
+ android:layout_marginTop="26dip"
+ android:singleLine="true"
+ android:inputType="textPassword"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:editable="false"
+ />
+
+ <TextView android:id="@+id/status"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_toRightOf="@+id/passwordLabel"
+ android:layout_below="@+id/passwordEntry"
+ android:paddingTop="8dip"
+ android:singleLine="true"
+ android:textSize="17sp"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:drawableLeft="@*android:drawable/ic_lock_idle_lock"
+ android:visibility="gone"
+ />
+ </RelativeLayout>
<com.android.internal.widget.PasswordEntryKeyboardView android:id="@+id/keyboard"
android:layout_width="match_parent"
diff --git a/res/layout-xlarge/crypt_keeper_progress.xml b/res/layout-xlarge/crypt_keeper_progress.xml
index 5a33a9e..7bad7ba 100644
--- a/res/layout-xlarge/crypt_keeper_progress.xml
+++ b/res/layout-xlarge/crypt_keeper_progress.xml
@@ -14,24 +14,33 @@
limitations under the License.
-->
-<LinearLayout
+<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="154dip"
android:paddingLeft="128dip"
android:paddingRight="128dip"
- android:paddingBottom="0dip"
- android:orientation="vertical"
- android:background="@drawable/encryption_bg_waiting"
+ android:paddingBottom="16dip"
>
+ <ImageView
+ android:id="@+id/encroid"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentBottom="true"
+ android:paddingRight="65dip"
+ android:src="@drawable/encroid_waiting"
+ />
+
<TextView
+ android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="48dip"
+ android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
- android:layout_centerVertical="true"
android:layout_marginLeft="16dip"
android:textSize="30dip"
android:textColor="#ff99cc00"
@@ -44,6 +53,7 @@
android:id="@+id/top_divider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_below="@+id/title"
>
<ProgressBar
android:id="@+id/progress_bar"
@@ -52,17 +62,41 @@
style="?android:attr/progressBarStyleHorizontal"
/>
</RelativeLayout>
-
+
<TextView
android:id="@+id/status"
android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/top_divider"
android:paddingLeft="152dip"
android:paddingTop="21dip"
- android:textSize="18dip"
- android:textColor="#ffffffff"
- android:text="@string/crypt_keeper_setup_description"
+ android:textAppearance="?android:attr/textAppearanceMedium"
/>
-</LinearLayout>
+ <!-- Divider -->
+ <RelativeLayout
+ android:id="@+id/bottom_divider"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingLeft="152dip"
+ android:layout_above="@+id/factory_reset"
+ android:visibility="gone"
+ >
+ <ProgressBar
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="?android:attr/progressBarStyleHorizontal"
+ />
+ </RelativeLayout>
+
+ <Button
+ android:id="@+id/factory_reset"
+ android:layout_width="208dip"
+ android:layout_height="48dip"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentBottom="true"
+ android:layout_marginBottom="80dip"
+ android:text="@string/master_clear_button_text"
+ android:visibility="gone"
+ />
+</RelativeLayout> \ No newline at end of file
diff --git a/res/anim/crypt_keeper_exit.xml b/res/layout/crypt_keeper_blank.xml
index 3ab34e9..1c880c2 100644
--- a/res/anim/crypt_keeper_exit.xml
+++ b/res/layout/crypt_keeper_blank.xml
@@ -5,29 +5,28 @@
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
+ 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.
--->
+ -->
-<set xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_interpolator"
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:gravity="center_vertical"
>
- <scale
- android:fromXScale="1.0"
- android:toXScale="0.0"
- android:fromYScale="1.0"
- android:toYScale="0.0"
- android:pivotX="50%"
- android:pivotY="50%"
- android:fillAfter="false"
- android:duration="500"
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:src="@drawable/encroid_progress"
/>
-</set>
-
+</LinearLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ea9f6ca..131fe6b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -111,7 +111,6 @@
<!-- Title for a notification shown. -->
<string name="sdcard_setting" product="default">SD card</string>
-
<!-- Battery Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="battery_info_status_label">Battery status:</string>
<!-- Battery Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
@@ -141,7 +140,6 @@
<!-- Battery Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="battery_info_screen_on">Screen ON time:</string>
-
<!-- Battery Info screen. Value for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="battery_info_status_unknown">Unknown</string>
<!-- Battery Info screen. Value for a status item. Used for diagnostic info screens, precise translation isn't needed -->
@@ -493,7 +491,6 @@
<!-- Main Settings screen settings summary text for the "Wireless controls" setting -->
<string name="radio_controls_summary">Manage Wi-Fi, Bluetooth, airplane mode, mobile networks, &amp; VPNs</string>
-
<!-- mobile network settings screen, setting check box title -->
<string name="roaming">Data roaming</string>
<!-- mobile network settings screen, setting option summary text when check box is selected -->
@@ -619,7 +616,7 @@
an hour or more. You must start with a charged battery and keep your phone plugged in
until encryption is complete. If you interrupt the encryption process, you will lose
some or all of your data.</string>
-
+
<!-- Button text to start encryption process -->
<string name="crypt_keeper_button_text" product="tablet">Encrypt tablet</string>
<!-- Button text to start encryption process -->
@@ -659,9 +656,29 @@
<string name="crypt_keeper_setup_description" product="default">Please wait while your phone
is being encrypted. ^1% complete.</string>
- <!-- Informational text on the progress screen when encrypting the device has a problem -->
+ <!-- Informational text on the password entry screen when password entry fails-->
<string name="crypt_keeper_cooldown">Try again in ^1 seconds.</string>
-
+
+ <!-- Informational text on the password entry screen prompting the user for their password -->
+ <string name="crypt_keeper_enter_password">Enter your password</string>
+
+ <!-- Title of the encryption screen when encrypting the device failed -->
+ <string name="crypt_keeper_failed_title">Encryption failed</string>
+
+ <!-- Informational text when encryption fails -->
+ <string name="crypt_keeper_failed_summary" product="tablet">
+ Encryption was interrupted and can\'t complete. You must perform a factory data reset (erasing
+ all your data) before you can resume using your tablet. You can try encrypting your tablet
+ again after the reset is complete.
+ </string>
+
+ <!-- Informational text when encryption fails -->
+ <string name="crypt_keeper_failed_summary" product="default">
+ Encryption was interrupted and can\'t complete. You must perform a factory data reset (erasing
+ all your data) before you can resume using your phone. You can try encrypting your phone
+ again after the reset is complete.
+ </string>
+
<!-- Unlock Picker Settings --><skip />
<!-- Security Picker --><skip />
@@ -1160,7 +1177,6 @@
<!-- Default access point SSID used for tethering -->
<string name="wifi_tether_configure_ssid_default">AndroidHotspot</string>
-
<!-- Do not translate. Used for diagnostic screens, precise translation is not necessary
Wi-Fi Testing on the diagnostic screen-->
<string name="testing_wifi_info" translatable="false">Wifi information</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index eb39aa2..1a6380f 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -121,18 +121,10 @@
<item name="android:windowIsFloating">true</item>
</style>
- <style name="CryptKeeperTheme" parent="@android:style/Theme.Holo.NoActionBar">
- <item name="android:windowAnimationStyle">@style/CryptKeeperAnimation</item>
- </style>
-
<style name="CryptKeeperBlankTheme" parent="@android:style/Theme.Holo.NoActionBar">
<item name="android:background">#ff000000</item>
</style>
- <style name="CryptKeeperAnimation">
- <item name="android:windowExitAnimation">@anim/crypt_keeper_exit</item>
- </style>
-
<style name="SecurityPreferenceButtonContainer" parent="@android:style/Holo.SegmentedButton">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index 6f847f3..cbad3f0 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -35,16 +35,16 @@ import android.os.ServiceManager;
import android.os.SystemProperties;
import android.os.storage.IMountService;
import android.text.TextUtils;
-import android.text.format.DateFormat;
import android.util.Log;
import android.view.KeyEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
-import java.util.Date;
-
public class CryptKeeper extends Activity implements TextView.OnEditorActionListener {
private static final String TAG = "CryptKeeper";
@@ -59,6 +59,11 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
// This activity is used to fade the screen to black after the password is entered.
public static class Blank extends Activity {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.crypt_keeper_blank);
+ }
}
private Handler mHandler = new Handler() {
@@ -105,9 +110,12 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
// Disable the status bar
StatusBarManager sbm = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE);
- sbm.disable(StatusBarManager.DISABLE_EXPAND | StatusBarManager.DISABLE_NOTIFICATION_ICONS
+ sbm.disable(StatusBarManager.DISABLE_EXPAND
+ | StatusBarManager.DISABLE_NOTIFICATION_ICONS
| StatusBarManager.DISABLE_NOTIFICATION_ALERTS
- | StatusBarManager.DISABLE_SYSTEM_INFO | StatusBarManager.DISABLE_NAVIGATION);
+ | StatusBarManager.DISABLE_SYSTEM_INFO
+ | StatusBarManager.DISABLE_NAVIGATION
+ | StatusBarManager.DISABLE_BACK);
}
@Override
@@ -139,9 +147,38 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
updateProgress();
}
+ private void showFactoryReset() {
+ // Hide the encryption-bot to make room for the "factory reset" button
+ findViewById(R.id.encroid).setVisibility(View.GONE);
+
+ // Show the reset button, failure text, and a divider
+ Button button = (Button) findViewById(R.id.factory_reset);
+ button.setVisibility(View.VISIBLE);
+ button.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {
+ // Factory reset the device.
+ sendBroadcast(new Intent("android.intent.action.MASTER_CLEAR"));
+ }
+ });
+
+ TextView tv = (TextView) findViewById(R.id.title);
+ tv.setText(R.string.crypt_keeper_failed_title);
+
+ tv = (TextView) findViewById(R.id.status);
+ tv.setText(R.string.crypt_keeper_failed_summary);
+
+ View view = findViewById(R.id.bottom_divider);
+ view.setVisibility(View.VISIBLE);
+ }
+
private void updateProgress() {
String state = SystemProperties.get("vold.encrypt_progress");
+ if ("error_partially_encrypted".equals(state)) {
+ showFactoryReset();
+ return;
+ }
+
int progress = 0;
try {
progress = Integer.parseInt(state);
@@ -160,16 +197,18 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
private void cooldown() {
TextView tv = (TextView) findViewById(R.id.status);
+
if (mCooldown <= 0) {
// Re-enable the password entry
EditText passwordEntry = (EditText) findViewById(R.id.passwordEntry);
passwordEntry.setEnabled(true);
- tv.setText(R.string.try_again);
-
+ tv.setVisibility(View.GONE);
} else {
- CharSequence tempalte = getText(R.string.crypt_keeper_cooldown);
- tv.setText(TextUtils.expandTemplate(tempalte, Integer.toString(mCooldown)));
+ CharSequence template = getText(R.string.crypt_keeper_cooldown);
+ tv.setText(TextUtils.expandTemplate(template, Integer.toString(mCooldown)));
+
+ tv.setVisibility(View.VISIBLE);
mCooldown--;
mHandler.removeMessages(COOLDOWN);
@@ -186,14 +225,6 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
PasswordEntryKeyboardHelper keyboardHelper = new PasswordEntryKeyboardHelper(this,
keyboardView, passwordEntry, false);
keyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA);
-
-
- passwordEntry.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_lock_idle_lock,
- 0, 0, 0);
-
- String dateFormatString = getString(com.android.internal.R.string.full_wday_month_day_no_year);
- TextView date = (TextView) findViewById(R.id.date);
- date.setText(DateFormat.format(dateFormatString, new Date()));
}
private IMountService getMountService() {
@@ -240,6 +271,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
} else {
TextView tv = (TextView) findViewById(R.id.status);
tv.setText(R.string.try_again);
+ tv.setVisibility(View.VISIBLE);
}
} catch (Exception e) {
Log.e(TAG, "Error while decrypting...", e);
diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java
index 0269c2b..53688f4 100644
--- a/src/com/android/settings/CryptKeeperConfirm.java
+++ b/src/com/android/settings/CryptKeeperConfirm.java
@@ -41,6 +41,8 @@ public class CryptKeeperConfirm extends Fragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setContentView(R.layout.crypt_keeper_blank);
+
if (Utils.isMonkeyRunning()) {
finish();
}
@@ -50,7 +52,8 @@ public class CryptKeeperConfirm extends Fragment {
| StatusBarManager.DISABLE_NOTIFICATION_ICONS
| StatusBarManager.DISABLE_NOTIFICATION_ALERTS
| StatusBarManager.DISABLE_SYSTEM_INFO
- | StatusBarManager.DISABLE_NAVIGATION);
+ | StatusBarManager.DISABLE_NAVIGATION
+ | StatusBarManager.DISABLE_BACK);
// Post a delayed message in 700 milliseconds to enable encryption.
// NOTE: The animation on this activity is set for 500 milliseconds