summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java')
-rw-r--r--src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java40
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;
+ }
+ }
}