Use primaryUserOnly attribute to disable CryptKeeper

CryptKeeper activity is now disabled by using primaryUserOnly, instead of
broadcast receiver. This allows to avoid bringing up the process, when it
is not necessary.

Change-Id: I5d1f979b96093c6769f6c920b18517971835a7ad
This commit is contained in:
Fyodor Kupolov
2015-01-27 11:59:00 -08:00
parent 5d7e784108
commit 19280af592
2 changed files with 5 additions and 24 deletions

View File

@@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
package="com.android.settings" package="com.android.settings"
coreApp="true" coreApp="true"
android:sharedUserId="android.uid.system"> android:sharedUserId="android.uid.system">
@@ -1724,6 +1725,7 @@
android:theme="@style/Theme.SubSettingsDialogWhenLarge"/> android:theme="@style/Theme.SubSettingsDialogWhenLarge"/>
<activity android:name=".CryptKeeper" <activity android:name=".CryptKeeper"
androidprv:primaryUserOnly="true"
android:immersive="true" android:immersive="true"
android:launchMode="singleTop" android:launchMode="singleTop"
android:excludeFromRecents="true" android:excludeFromRecents="true"
@@ -1738,12 +1740,6 @@
</intent-filter> </intent-filter>
</activity> </activity>
<receiver android:name=".CryptKeeper$UserInitBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.USER_INITIALIZE" />
</intent-filter>
</receiver>
<activity android:name=".CryptKeeper$FadeToBlack" <activity android:name=".CryptKeeper$FadeToBlack"
android:immersive="true" android:immersive="true"
android:launchMode="singleTop" android:launchMode="singleTop"

View File

@@ -17,9 +17,7 @@
package com.android.settings; package com.android.settings;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager;
import android.app.StatusBarManager; import android.app.StatusBarManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -50,10 +48,10 @@ import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.View.OnKeyListener; import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener; import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
@@ -68,10 +66,10 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternView; import com.android.internal.widget.LockPatternView;
import com.android.internal.widget.LockPatternView.Cell; import com.android.internal.widget.LockPatternView.Cell;
import static com.android.internal.widget.LockPatternView.DisplayMode;
import java.util.List; import java.util.List;
import static com.android.internal.widget.LockPatternView.DisplayMode;
/** /**
* Settings screens to show the UI flows for encrypting/decrypting the device. * Settings screens to show the UI flows for encrypting/decrypting the device.
* *
@@ -1027,17 +1025,4 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList
pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, pm.setComponentEnabledSetting(name, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP); PackageManager.DONT_KILL_APP);
} }
public static class UserInitBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String intentAction = intent.getAction();
// Disable CryptKeeper activity if user is not primary
if (Intent.ACTION_USER_INITIALIZE.equals(intentAction)
&& UserHandle.USER_OWNER != UserHandle.myUserId()) {
disableCryptKeeperComponent(context);
}
}
}
} }