Merge "Empty state for unused apps screen on Auto" into sc-v2-dev
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java
index 61f7dde..bf48e28 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/ManagePermissionsActivity.java
@@ -25,6 +25,8 @@
import static com.android.permissioncontroller.PermissionControllerStatsLog.APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION__ACTION__OPENED_FOR_AUTO_REVOKE;
import static com.android.permissioncontroller.PermissionControllerStatsLog.APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION__ACTION__OPENED_FROM_INTENT;
import static com.android.permissioncontroller.PermissionControllerStatsLog.AUTO_REVOKE_NOTIFICATION_CLICKED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__OPEN;
import android.app.ActionBar;
import android.content.Intent;
@@ -163,9 +165,12 @@
return;
}
+
+ PermissionControllerStatsLog.write(PERMISSION_USAGE_FRAGMENT_INTERACTION, sessionId,
+ PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__OPEN);
String groupName = getIntent().getStringExtra(Intent.EXTRA_PERMISSION_GROUP_NAME);
androidXFragment = PermissionUsageV2WrapperFragment.newInstance(groupName,
- Long.MAX_VALUE);
+ Long.MAX_VALUE, sessionId);
} break;
case Intent.ACTION_REVIEW_PERMISSION_HISTORY: {
@@ -179,7 +184,7 @@
boolean showSystem = getIntent()
.getBooleanExtra(EXTRA_SHOW_SYSTEM, false);
androidXFragment = PermissionDetailsWrapperFragment
- .newInstance(groupName, Long.MAX_VALUE, showSystem);
+ .newInstance(groupName, Long.MAX_VALUE, showSystem, sessionId);
break;
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsFragment.java
index 034f666..05e7292 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsFragment.java
@@ -16,6 +16,9 @@
package com.android.permissioncontroller.permission.ui.handheld.dashboard;
+import static com.android.permissioncontroller.Constants.EXTRA_SESSION_ID;
+import static com.android.permissioncontroller.Constants.INVALID_SESSION_ID;
+
import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.concurrent.TimeUnit.HOURS;
import static java.util.concurrent.TimeUnit.MINUTES;
@@ -98,6 +101,10 @@
private static final String SHOW_SYSTEM_KEY = PermissionDetailsFragment.class.getName()
+ KEY_SHOW_SYSTEM_PREFS;
+ private static final String KEY_SESSION_ID = "_session_id";
+ private static final String SESSION_ID_KEY = PermissionDetailsFragment.class.getName()
+ + KEY_SESSION_ID;
+
private @Nullable String mFilterGroup;
private @Nullable List<AppPermissionUsage> mAppPermissionUsages = new ArrayList<>();
private @NonNull List<TimeFilterItem> mFilterTimes;
@@ -112,6 +119,8 @@
private MenuItem mHideSystemMenu;
private @NonNull RoleManager mRoleManager;
+ private long mSessionId;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -122,9 +131,11 @@
if (savedInstanceState != null) {
mShowSystem = savedInstanceState.getBoolean(SHOW_SYSTEM_KEY);
+ mSessionId = savedInstanceState.getLong(SESSION_ID_KEY);
} else {
mShowSystem = getArguments().getBoolean(
ManagePermissionsActivity.EXTRA_SHOW_SYSTEM, false);
+ mSessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID);
}
if (mFilterGroup == null) {
@@ -219,6 +230,7 @@
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(SHOW_SYSTEM_KEY, mShowSystem);
+ outState.putLong(SESSION_ID_KEY, mSessionId);
}
@Override
@@ -507,7 +519,8 @@
usage.mAppPermissionUsage.getApp().getIcon(),
usage.mAppPermissionUsage.getApp().getLabel(),
mFilterGroup, accessTime, summaryLabel, accessTimeList, attributionTags,
- usageNum == (numUsages - 1)
+ usageNum == (numUsages - 1),
+ mSessionId
);
category.get().addPreference(permissionUsagePreference);
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsWrapperFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsWrapperFragment.java
index 6edda41..9dad6d0 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsWrapperFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionDetailsWrapperFragment.java
@@ -16,6 +16,8 @@
package com.android.permissioncontroller.permission.ui.handheld.dashboard;
+import static com.android.permissioncontroller.Constants.EXTRA_SESSION_ID;
+
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
@@ -43,7 +45,7 @@
* Construct a new instance of PermissionDetailsFragment
*/
public static @NonNull PermissionDetailsWrapperFragment newInstance(@Nullable String groupName,
- long numMillis, boolean showSystem) {
+ long numMillis, boolean showSystem, long sessionId) {
PermissionDetailsWrapperFragment fragment = new PermissionDetailsWrapperFragment();
Bundle arguments = new Bundle();
if (groupName != null) {
@@ -51,6 +53,7 @@
}
arguments.putLong(Intent.EXTRA_DURATION_MILLIS, numMillis);
arguments.putBoolean(ManagePermissionsActivity.EXTRA_SHOW_SYSTEM, showSystem);
+ arguments.putLong(EXTRA_SESSION_ID, sessionId);
fragment.setArguments(arguments);
return fragment;
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionHistoryPreference.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionHistoryPreference.java
index cec464d..e7fe255 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionHistoryPreference.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionHistoryPreference.java
@@ -16,6 +16,10 @@
package com.android.permissioncontroller.permission.ui.handheld.dashboard;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_DETAILS_INTERACTION;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_DETAILS_INTERACTION__ACTION__INFO_ICON_CLICKED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.write;
+
import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.Context;
@@ -72,6 +76,8 @@
private final boolean mIsLastUsage;
private final Intent mIntent;
+ private final long mSessionId;
+
private Drawable mWidgetIcon;
public PermissionHistoryPreference(@NonNull Context context,
@@ -80,7 +86,7 @@
@NonNull String preferenceTitle,
@NonNull String permissionGroup, @NonNull String accessTime,
@Nullable CharSequence summaryText, @NonNull List<Long> accessTimeList,
- @NonNull ArrayList<String> attributionTags, boolean isLastUsage) {
+ @NonNull ArrayList<String> attributionTags, boolean isLastUsage, long sessionId) {
super(context);
mContext = context;
mUserHandle = userHandle;
@@ -100,6 +106,7 @@
mContext.getResources().getValue(R.dimen.permission_access_time_dialog_height_scalar,
outValue, true);
mDialogHeightScalar = outValue.getFloat();
+ mSessionId = sessionId;
setTitle(mTitle);
if (summaryText != null) {
@@ -212,6 +219,11 @@
if (mIntent != null) {
widgetView.setImageDrawable(mWidgetIcon);
widgetView.setOnClickListener(v -> {
+ write(PERMISSION_DETAILS_INTERACTION,
+ mSessionId,
+ mPermissionGroup,
+ mPackageName,
+ PERMISSION_DETAILS_INTERACTION__ACTION__INFO_ICON_CLICKED);
try {
mContext.startActivity(mIntent);
} catch (ActivityNotFoundException e) {
@@ -293,4 +305,4 @@
return mAccessTimeList.size();
}
}
-}
+}
\ No newline at end of file
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2Fragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2Fragment.java
index 9ce1c7c..33662a9 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2Fragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2Fragment.java
@@ -16,8 +16,9 @@
package com.android.permissioncontroller.permission.ui.handheld.dashboard;
+import static com.android.permissioncontroller.Constants.EXTRA_SESSION_ID;
+import static com.android.permissioncontroller.Constants.INVALID_SESSION_ID;
import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION;
-import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__OPEN;
import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__SEE_OTHER_PERMISSIONS_CLICKED;
import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__SHOW_SYSTEM_CLICKED;
import static com.android.permissioncontroller.PermissionControllerStatsLog.write;
@@ -64,7 +65,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Random;
import java.util.Set;
/**
@@ -93,8 +93,9 @@
PERMISSION_GROUP_ORDER.size() + 1;
private static final int EXPAND_BUTTON_ORDER = 999;
- private static final String KEY_SESSION_ID = PermissionUsageV2Fragment.class.getName()
- + "_REQUEST_ID";
+ private static final String KEY_SESSION_ID = "_session_id";
+ private static final String SESSION_ID_KEY = PermissionUsageV2Fragment.class.getName()
+ + KEY_SESSION_ID;
private @NonNull PermissionUsages mPermissionUsages;
private @Nullable List<AppPermissionUsage> mAppPermissionUsages = new ArrayList<>();
@@ -120,10 +121,10 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (savedInstanceState == null) {
- mSessionId = new Random().nextLong();
+ if (savedInstanceState != null) {
+ mSessionId = savedInstanceState.getLong(SESSION_ID_KEY);
} else {
- mSessionId = savedInstanceState.getLong(KEY_SESSION_ID);
+ mSessionId = getArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID);
}
mFinishedInitialLoad = false;
@@ -217,8 +218,6 @@
super.onStart();
getActivity().setTitle(R.string.permission_usage_title);
- write(PERMISSION_USAGE_FRAGMENT_INTERACTION, mSessionId,
- PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__OPEN);
}
@Override
@@ -288,7 +287,7 @@
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (outState != null) {
- outState.putLong(KEY_SESSION_ID, mSessionId);
+ outState.putLong(SESSION_ID_KEY, mSessionId);
}
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2WrapperFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2WrapperFragment.java
index abe48cb..3bbe19d 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2WrapperFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/dashboard/PermissionUsageV2WrapperFragment.java
@@ -16,6 +16,8 @@
package com.android.permissioncontroller.permission.ui.handheld.dashboard;
+import static com.android.permissioncontroller.Constants.EXTRA_SESSION_ID;
+
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
@@ -42,13 +44,14 @@
* @return A new fragment
*/
public static @NonNull PermissionUsageV2WrapperFragment newInstance(@Nullable String groupName,
- long numMillis) {
+ long numMillis, long sessionId) {
PermissionUsageV2WrapperFragment fragment = new PermissionUsageV2WrapperFragment();
Bundle arguments = new Bundle();
if (groupName != null) {
arguments.putString(Intent.EXTRA_PERMISSION_GROUP_NAME, groupName);
}
arguments.putLong(Intent.EXTRA_DURATION_MILLIS, numMillis);
+ arguments.putLong(EXTRA_SESSION_ID, sessionId);
fragment.setArguments(arguments);
return fragment;
}