From 2b9d9ef2aa9eaa21da21ba1c88b829307de8b7a9 Mon Sep 17 00:00:00 2001 From: Hung-ying Tyan Date: Sun, 11 Oct 2009 01:34:11 +0800 Subject: [PATCH] Add saving/restoring state in CredentialInstaller and ... make it transparent. --- AndroidManifest.xml | 2 +- res/values/strings.xml | 3 --- src/com/android/settings/CredentialInstaller.java | 26 +++++++++++++++++------ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6ddd679bd2..a77728c49f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -321,7 +321,7 @@ + android:theme="@android:style/Theme.Translucent.NoTitleBar"> diff --git a/res/values/strings.xml b/res/values/strings.xml index b01608a736..c98a867de2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1937,9 +1937,6 @@ found in the list of installed applications. Updating Wi-Fi setting Updating Bluetooth setting - - Credential installer - VPN settings diff --git a/src/com/android/settings/CredentialInstaller.java b/src/com/android/settings/CredentialInstaller.java index 5a457d7e65..7c63b1c17b 100644 --- a/src/com/android/settings/CredentialInstaller.java +++ b/src/com/android/settings/CredentialInstaller.java @@ -32,6 +32,7 @@ import android.util.Log; */ public class CredentialInstaller extends Activity { private static final String TAG = "CredentialInstaller"; + private static final String UNLOCKING = "ulck"; private KeyStore mKeyStore = KeyStore.getInstance(); private boolean mUnlocking = false; @@ -42,15 +43,26 @@ public class CredentialInstaller extends Activity { if (!"com.android.certinstaller".equals(getCallingPackage())) finish(); - if (!isKeyStoreLocked()) { + if (isKeyStoreUnlocked()) { install(); - finish(); } else if (!mUnlocking) { mUnlocking = true; Credentials.getInstance().unlock(this); - } else { - finish(); + return; } + finish(); + } + + @Override + protected void onSaveInstanceState(Bundle outStates) { + super.onSaveInstanceState(outStates); + outStates.putBoolean(UNLOCKING, mUnlocking); + } + + @Override + protected void onRestoreInstanceState(Bundle savedStates) { + super.onRestoreInstanceState(savedStates); + mUnlocking = savedStates.getBoolean(UNLOCKING); } private void install() { @@ -61,13 +73,13 @@ public class CredentialInstaller extends Activity { byte[] data = bundle.getByteArray(key); if (data == null) continue; boolean success = mKeyStore.put(key.getBytes(), data); - Log.v(TAG, "install " + key + ": " + data.length + " success? " + success); + Log.d(TAG, "install " + key + ": " + data.length + " success? " + success); if (!success) return; } setResult(RESULT_OK); } - private boolean isKeyStoreLocked() { - return (mKeyStore.test() != KeyStore.NO_ERROR); + private boolean isKeyStoreUnlocked() { + return (mKeyStore.test() == KeyStore.NO_ERROR); } } -- 2.11.0