diff options
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java index f18acfe3..dae90b93 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java @@ -25,6 +25,7 @@ import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; +import android.support.v4.util.ArrayMap; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -36,6 +37,11 @@ import com.android.packageinstaller.R; import com.android.packageinstaller.permission.model.PermissionApps; import com.android.packageinstaller.permission.model.PermissionApps.Callback; import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp; +import com.android.packageinstaller.permission.model.PermissionGroup; +import com.android.packageinstaller.permission.utils.SafetyNetLogger; + +import java.util.ArrayList; +import java.util.List; public final class PermissionAppsFragment extends SettingsWithHeader implements Callback, OnPreferenceChangeListener { @@ -50,6 +56,8 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements private PermissionApps mPermissionApps; + private ArrayMap<String, PermissionGroup> mToggledGroups; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -156,6 +164,8 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements String pkg = preference.getKey(); PermissionApp app = mPermissionApps.getApp(pkg); + addToggledGroup(app.getPackageName(), app.getPermissionGroup()); + if (app == null) { return false; } @@ -167,4 +177,34 @@ public final class PermissionAppsFragment extends SettingsWithHeader implements return true; } + @Override + public void onPause() { + super.onPause(); + logToggledGroups(); + } + + private void addToggledGroup(String packageName, PermissionGroup group) { + if (mToggledGroups == null) { + mToggledGroups = new ArrayMap<>(); + } + // Double toggle is back to initial state. + if (mToggledGroups.containsKey(packageName)) { + mToggledGroups.remove(packageName); + } else { + mToggledGroups.put(packageName, group); + } + } + + private void logToggledGroups() { + if (mToggledGroups != null) { + final int groupCount = mToggledGroups.size(); + for (int i = 0; i < groupCount; i++) { + String packageName = mToggledGroups.keyAt(i); + List<PermissionGroup> groups = new ArrayList<>(); + groups.add(mToggledGroups.valueAt(i)); + SafetyNetLogger.logPermissionsToggled(packageName, groups); + } + mToggledGroups = null; + } + } } |