Skip to content

Commit ec8e31f

Browse files
committed
Disable home intent receiver for kiosk mode by default
Disabling the KioskModeActivity's home intent receiver by default to avoid showing disambig dialogs when entering the home screen. The activity is enabled when kiosk mode is started disabled again when it is stopped. Bug: 21356748 Change-Id: I90774c5bd96e0cc28a90a219f6f8d5e2028a63b9
1 parent cd4e8e9 commit ec8e31f

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ limitations under the License.
4343
<activity
4444
android:name=".policy.locktask.KioskModeActivity"
4545
android:label="@string/kiosk_mode"
46-
android:launchMode="singleInstance">
46+
android:launchMode="singleInstance"
47+
android:enabled="false">
4748
<intent-filter>
4849
<action android:name="android.intent.action.MAIN"/>
4950
<category android:name="android.intent.category.HOME"/>

app/src/main/java/com/google/android/testdpc/policy/PolicyManagementFragment.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,6 +1600,10 @@ private void startKioskMode(String[] lockTaskArray) {
16001600
Intent launchIntent = new Intent(getActivity(), KioskModeActivity.class);
16011601
launchIntent.putExtra(KioskModeActivity.LOCKED_APP_PACKAGE_LIST, lockTaskArray);
16021602
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
1603+
getActivity().getPackageManager().setComponentEnabledSetting(
1604+
new ComponentName(mPackageName, KioskModeActivity.class.getName()),
1605+
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
1606+
PackageManager.DONT_KILL_APP);
16031607
startActivity(launchIntent);
16041608
getActivity().finish();
16051609
}

app/src/main/java/com/google/android/testdpc/policy/locktask/KioskModeActivity.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,11 @@ protected void onCreate(Bundle savedInstanceState) {
9393
for (String pkg : packageArray) {
9494
mKioskPackages.add(pkg);
9595
}
96+
mKioskPackages.remove(getPackageName());
97+
mKioskPackages.add(getPackageName());
9698
setDefaultKioskPolicies(true);
9799
} else {
100+
// after a reboot there is no need to set the policies again
98101
SharedPreferences sharedPreferences = getSharedPreferences(KIOSK_PREFERENCE_FILE,
99102
MODE_PRIVATE);
100103
mKioskPackages = new ArrayList<>(sharedPreferences.getStringSet(KIOSK_APPS_KEY,
@@ -135,6 +138,10 @@ protected void onStart() {
135138
public void onBackdoorClicked() {
136139
stopLockTask();
137140
setDefaultKioskPolicies(false);
141+
mPackageManager.setComponentEnabledSetting(
142+
new ComponentName(getPackageName(), getClass().getName()),
143+
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
144+
PackageManager.DONT_KILL_APP);
138145
finish();
139146
}
140147

0 commit comments

Comments
 (0)