Add whitelist in ResetAppsHelper

- Add "com.android.systemui" and "com.android.vending" into the whitelist.
- Add "com.android.providers.downloads" and "android" into the whitelist.
- Do not data clear in the whitelist.

Fixes: 147124412
Test: manual test
Change-Id: Ie2f527309f9159babe79636a69ff13fe3ceb64d9
Merged-In: Ie2f527309f9159babe79636a69ff13fe3ceb64d9
(cherry picked from commit b54d2f90f2674e73e397b3ac4578a39739b4d94b)
diff --git a/res/values/config.xml b/res/values/config.xml
index b3eceb3..0f03c23 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -424,4 +424,11 @@
     <!-- Package name of dialer supports RTT setting-->
     <string name="config_rtt_setting_package_name" translatable="false"></string>
 
+    <!-- Reset application package name -->
+    <string-array name="config_skip_reset_apps_package_name" translatable="false">
+        <item>android</item>
+        <item>com.android.providers.downloads</item>
+        <item>com.android.systemui</item>
+        <item>com.android.vending</item>
+    </string-array>
 </resources>
diff --git a/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java b/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java
index 92c0958..270a5c8 100644
--- a/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java
+++ b/src/com/android/settings/applications/manageapplications/ResetAppsHelper.java
@@ -37,6 +37,7 @@
 
 import com.android.settings.R;
 
+import java.util.Arrays;
 import java.util.List;
 
 public class ResetAppsHelper implements DialogInterface.OnClickListener,
@@ -109,10 +110,17 @@
         AsyncTask.execute(new Runnable() {
             @Override
             public void run() {
-                List<ApplicationInfo> apps = mPm.getInstalledApplications(
+                final List<ApplicationInfo> apps = mPm.getInstalledApplications(
                         PackageManager.GET_DISABLED_COMPONENTS);
+                final List<String> whiteList = Arrays.asList(
+                        mContext.getResources().getStringArray(
+                                R.array.config_skip_reset_apps_package_name));
+
                 for (int i = 0; i < apps.size(); i++) {
                     ApplicationInfo app = apps.get(i);
+                    if (whiteList.contains(app.packageName)) {
+                        continue;
+                    }
                     try {
                         mNm.clearData(app.packageName, app.uid, false);
                     } catch (android.os.RemoteException ex) {