diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 07925f687a5..8274634a01f 100755 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -19,7 +19,6 @@ package com.android.settings.applications.appinfo; import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import android.app.Activity; -import android.app.ActivityManager; import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; @@ -183,10 +182,6 @@ public class AppInfoDashboardFragment extends DashboardFragment super.onCreate(icicle); mFinishing = false; final Activity activity = getActivity(); - if (isLockTaskModePinned(activity)) { - finishActivity(activity); - return; - } mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE); mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE); mPm = activity.getPackageManager(); @@ -197,6 +192,7 @@ public class AppInfoDashboardFragment extends DashboardFragment return; } startListeningToPackageRemove(); + setHasOptionsMenu(true); } @@ -318,8 +314,9 @@ public class AppInfoDashboardFragment extends DashboardFragment @VisibleForTesting boolean ensurePackageInfoAvailable(Activity activity) { if (mPackageInfo == null) { + mFinishing = true; Log.w(TAG, "Package info not available. Is this package already uninstalled?"); - finishActivity(activity); + activity.finishAndRemoveTask(); return false; } return true; @@ -334,28 +331,14 @@ public class AppInfoDashboardFragment extends DashboardFragment @VisibleForTesting boolean ensureDisplayableModule(Activity activity) { if (AppUtils.isHiddenSystemModule(activity.getApplicationContext(), mPackageName)) { + mFinishing = true; Log.w(TAG, "Package is hidden module, exiting: " + mPackageName); - finishActivity(activity); + activity.finishAndRemoveTask(); return false; } return true; } - /** - * Check the state of device lock task mode. - * - * @return true if the device lock task mode pinned. - */ - @VisibleForTesting - boolean isLockTaskModePinned(Activity activity) { - ActivityManager activityManager = activity.getSystemService(ActivityManager.class); - if (activityManager.getLockTaskModeState() == ActivityManager.LOCK_TASK_MODE_PINNED) { - Log.w(TAG, "Device lock task mode pinned."); - return true; - } - return false; - } - @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); @@ -654,11 +637,6 @@ public class AppInfoDashboardFragment extends DashboardFragment getContext().unregisterReceiver(mPackageRemovedReceiver); } - private void finishActivity(Activity activity) { - mFinishing = true; - activity.finishAndRemoveTask(); - } - @VisibleForTesting final BroadcastReceiver mPackageRemovedReceiver = new BroadcastReceiver() { @Override diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java index 01304eafe84..e46cd06afe6 100644 --- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java @@ -33,7 +33,6 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import android.app.ActivityManager; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.Intent; @@ -87,8 +86,6 @@ public final class AppInfoDashboardFragmentTest { private DevicePolicyManager mDevicePolicyManager; @Mock private PackageManager mPackageManager; - @Mock - private ActivityManager mActivityManager; private AppInfoDashboardFragment mFragment; private Context mShadowContext; @@ -96,13 +93,11 @@ public final class AppInfoDashboardFragmentTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - mShadowContext = spy(RuntimeEnvironment.application); + mShadowContext = RuntimeEnvironment.application; mFragment = spy(new AppInfoDashboardFragment()); doReturn(mActivity).when(mFragment).getActivity(); doReturn(mShadowContext).when(mFragment).getContext(); doReturn(mPackageManager).when(mActivity).getPackageManager(); - doReturn(mShadowContext).when(mActivity).getApplicationContext(); - doReturn(mActivityManager).when(mActivity).getSystemService(ActivityManager.class); when(mUserManager.isAdminUser()).thenReturn(true); ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager); @@ -207,6 +202,7 @@ public final class AppInfoDashboardFragmentTest { ShadowAppUtils.addHiddenModule(PACKAGE_NAME); ReflectionHelpers.setField(mFragment, "mPackageName", PACKAGE_NAME); + assertThat(mFragment.ensureDisplayableModule(mActivity)).isFalse(); } @@ -218,14 +214,6 @@ public final class AppInfoDashboardFragmentTest { assertThat(mFragment.ensureDisplayableModule(mActivity)).isTrue(); } - @Test - public void isLockTaskModePinned_pinned_shouldReturnTrue() { - doReturn(ActivityManager.LOCK_TASK_MODE_PINNED).when( - mActivityManager).getLockTaskModeState(); - - assertThat(mFragment.isLockTaskModePinned(mActivity)).isTrue(); - } - @Test public void createPreference_hasNoPackageInfo_shouldSkip() { ReflectionHelpers.setField(mFragment, "mPackageInfo", null); @@ -279,8 +267,9 @@ public final class AppInfoDashboardFragmentTest { public void onActivityResult_uninstalledUpdates_shouldInvalidateOptionsMenu() { doReturn(true).when(mFragment).refreshUi(); - mFragment.onActivityResult(AppInfoDashboardFragment.REQUEST_UNINSTALL, 0, - mock(Intent.class)); + mFragment + .onActivityResult(AppInfoDashboardFragment.REQUEST_UNINSTALL, 0, + mock(Intent.class)); verify(mActivity).invalidateOptionsMenu(); }