Merge "Revert "Fix app uninstalling/stopping possible in screen pinning mode""
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 07925f6..8274634 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -19,7 +19,6 @@
 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 @@
         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 @@
             return;
         }
         startListeningToPackageRemove();
+
         setHasOptionsMenu(true);
     }
 
@@ -318,8 +314,9 @@
     @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 @@
     @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 @@
         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 01304ea..e46cd06 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.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 @@
     private DevicePolicyManager mDevicePolicyManager;
     @Mock
     private PackageManager mPackageManager;
-    @Mock
-    private ActivityManager mActivityManager;
 
     private AppInfoDashboardFragment mFragment;
     private Context mShadowContext;
@@ -96,13 +93,11 @@
     @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 @@
         ShadowAppUtils.addHiddenModule(PACKAGE_NAME);
         ReflectionHelpers.setField(mFragment, "mPackageName", PACKAGE_NAME);
 
+
         assertThat(mFragment.ensureDisplayableModule(mActivity)).isFalse();
     }
 
@@ -219,14 +215,6 @@
     }
 
     @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 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();
     }