diff options
author | 2024-07-23 20:51:08 +0000 | |
---|---|---|
committer | 2024-07-23 20:51:08 +0000 | |
commit | 1174eab1d2e09ff9516baaa3db83d42b6410e610 (patch) | |
tree | 393ea3c2fec893bd8c3e89630b246ae223c0a791 | |
parent | 5693f485645dfc06571b9400a6d0cf4aa6c48b52 (diff) | |
parent | c473b30664c811f195b1b931b02da2824aac9051 (diff) |
Merge "Renaming variables for permission timeline to make it more readable" into main
3 files changed, 40 insertions, 72 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionHistoryPreference.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionHistoryPreference.java index c2b5b875b..75213ad04 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionHistoryPreference.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionHistoryPreference.java @@ -66,25 +66,23 @@ public class PermissionHistoryPreference extends Preference { private final long mAccessStartTime; private final long mAccessEndTime; private final Drawable mAppIcon; - private final String mTitle; private final List<String> mAttributionTags; private final boolean mIsLastUsage; private final Intent mIntent; private final boolean mShowingAttribution; private final PackageManager mUserPackageManager; - private final PermissionUsageDetailsViewModel.PermissionUsageOnClickDialog mOnClickDialog; + private final boolean mIsEmergencyLocationAccess; private final long mSessionId; - private Drawable mWidgetIcon; + private Drawable mInfoWidgetIcon; public PermissionHistoryPreference(@NonNull Context context, @NonNull UserHandle userHandle, - @NonNull String pkgName, @Nullable Drawable appIcon, @NonNull String preferenceTitle, + @NonNull String pkgName, @Nullable Drawable packageIcon, @NonNull String packageLabel, @NonNull String permissionGroup, @NonNull long accessStartTime, @NonNull long accessEndTime, @Nullable CharSequence summaryText, boolean showingAttribution, @NonNull List<String> attributionTags, - boolean isLastUsage, long sessionId, - @Nullable PermissionUsageDetailsViewModel.PermissionUsageOnClickDialog onClickDialog) { + boolean isLastUsage, long sessionId, boolean isEmergencyLocationAccess) { super(context); mContext = context; Context userContext = Utils.getUserContext(context, userHandle); @@ -94,23 +92,22 @@ public class PermissionHistoryPreference extends Preference { mPermissionGroup = permissionGroup; mAccessStartTime = accessStartTime; mAccessEndTime = accessEndTime; - mAppIcon = appIcon; - mTitle = preferenceTitle; - mWidgetIcon = null; + mAppIcon = packageIcon; + mInfoWidgetIcon = null; mAttributionTags = attributionTags; mIsLastUsage = isLastUsage; mSessionId = sessionId; mShowingAttribution = showingAttribution; - mOnClickDialog = onClickDialog; + mIsEmergencyLocationAccess = isEmergencyLocationAccess; - setTitle(mTitle); + setTitle(packageLabel); if (summaryText != null) { setSummary(summaryText); } mIntent = getViewPermissionUsageForPeriodIntent(showingAttribution); if (mIntent != null) { - mWidgetIcon = mContext.getDrawable(R.drawable.ic_info_outline); + mInfoWidgetIcon = mContext.getDrawable(R.drawable.ic_info_outline); setWidgetLayoutResource(R.layout.image_view_with_divider); } } @@ -139,8 +136,8 @@ public class PermissionHistoryPreference extends Preference { TextView permissionHistoryTime = widget.findViewById(R.id.permission_history_time); permissionHistoryTime.setText(DateFormat.getTimeFormat(mContext).format(mAccessEndTime)); - ImageView permissionIcon = widget.findViewById(R.id.permission_history_icon); - permissionIcon.setImageDrawable(mAppIcon); + ImageView appIcon = widget.findViewById(R.id.permission_history_icon); + appIcon.setImageDrawable(mAppIcon); ImageView widgetView = widgetFrame.findViewById(R.id.icon); setInfoIcon(holder, widgetView); @@ -161,11 +158,12 @@ public class PermissionHistoryPreference extends Preference { mShowingAttribution, mAttributionTags); - if (mOnClickDialog != null) { + if (mIsEmergencyLocationAccess) { setOnPreferenceClickListener(preference -> { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext) - .setTitle(mOnClickDialog.getTitle()) - .setMessage(mOnClickDialog.getDescription()) + .setTitle(R.string.privacy_dashboard_emergency_location_dialog_title) + .setMessage( + R.string.privacy_dashboard_emergency_location_dialog_description) .setPositiveButton(R.string.app_permissions, (dialog, which) -> { mContext.startActivityAsUser(intent, mUserHandle); }) @@ -189,7 +187,7 @@ public class PermissionHistoryPreference extends Preference { private void setInfoIcon(@NonNull PreferenceViewHolder holder, ImageView widgetView) { if (mIntent != null) { - widgetView.setImageDrawable(mWidgetIcon); + widgetView.setImageDrawable(mInfoWidgetIcon); widgetView.setOnClickListener(v -> { write(PERMISSION_DETAILS_INTERACTION, mSessionId, diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionUsageDetailsFragment.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionUsageDetailsFragment.java index 0740a08fd..4da9d58f1 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionUsageDetailsFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/v31/PermissionUsageDetailsFragment.java @@ -37,7 +37,6 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.lifecycle.ViewModelProvider; @@ -76,8 +75,7 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { private static final int MENU_SHOW_7_DAYS_DATA = Menu.FIRST + 4; private static final int MENU_SHOW_24_HOURS_DATA = Menu.FIRST + 5; - private @Nullable String mPermissionGroup; - private int mUsageSubtitle; + private String mPermissionGroup; private boolean mHasSystemApps; private MenuItem mShowSystemMenu; @@ -190,9 +188,9 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { .getString( R.string.permission_group_usage_title, KotlinUtils.INSTANCE.getPermGroupLabel( - getActivity(), mPermissionGroup)); + requireActivity(), mPermissionGroup)); } - getActivity().setTitle(title); + requireActivity().setTitle(title); } @Override @@ -239,7 +237,7 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: - getActivity().finishAfterTransition(); + requireActivity().finishAfterTransition(); return true; case MENU_SHOW_SYSTEM: mViewModel.updateShowSystemAppsToggle(true); @@ -277,17 +275,16 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { Preference subtitlePreference = new Preference(context); updateShow7DaysToggle(show7Days); - mUsageSubtitle = - show7Days - ? R.string.permission_group_usage_subtitle_7d - : R.string.permission_group_usage_subtitle_24h; + int usageSubtitle = show7Days + ? R.string.permission_group_usage_subtitle_7d + : R.string.permission_group_usage_subtitle_24h; subtitlePreference.setSummary( getResources() .getString( - mUsageSubtitle, + usageSubtitle, KotlinUtils.INSTANCE.getPermGroupLabel( - getActivity(), mPermissionGroup))); + context, mPermissionGroup))); subtitlePreference.setSelectable(false); screen.addPreference(subtitlePreference); @@ -306,14 +303,8 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { AtomicReference<PreferenceCategory> category = new AtomicReference<>(createDayCategoryPreference()); screen.addPreference(category.get()); - PreferenceScreen finalScreen = screen; - - if (getActivity() == null) { - // Fragment has no Activity, return. - return; - } - renderHistoryPreferences(uiData.getAppPermissionAccessUiInfoList(), category, finalScreen); + renderHistoryPreferences(uiData.getAppPermissionAccessUiInfoList(), category, screen); setLoading(false, true); setProgressBarVisible(false); } @@ -323,8 +314,7 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { List<AppPermissionAccessUiInfo> appPermissionAccessUiInfoList, AtomicReference<PreferenceCategory> category, PreferenceScreen preferenceScreen) { - Context context = getContext(); - long previousDateMs = 0L; + Context context = requireContext(); long midnightToday = ZonedDateTime.now(ZoneId.systemDefault()) .truncatedTo(ChronoUnit.DAYS) @@ -337,19 +327,20 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { .toEpochSecond() * 1000L; + long previousAccessDateMs = 0L; for (int i = 0; i < appPermissionAccessUiInfoList.size(); i++) { AppPermissionAccessUiInfo appPermissionAccessUiInfo = appPermissionAccessUiInfoList.get(i); long accessEndTime = appPermissionAccessUiInfo.getAccessEndTime(); - long currentDateMs = + long accessDateMS = ZonedDateTime.ofInstant( Instant.ofEpochMilli(accessEndTime), Clock.system(ZoneId.systemDefault()).getZone()) .truncatedTo(ChronoUnit.DAYS) .toEpochSecond() * 1000L; - if (currentDateMs != previousDateMs) { - if (previousDateMs != 0L) { + if (accessDateMS != previousAccessDateMs) { + if (previousAccessDateMs != 0L) { category.set(createDayCategoryPreference()); preferenceScreen.addPreference(category.get()); } @@ -359,14 +350,14 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { category.get().setTitle(R.string.permission_history_category_yesterday); } else { category.get() - .setTitle(DateFormat.getLongDateFormat(context).format(currentDateMs)); + .setTitle(DateFormat.getLongDateFormat(context).format(accessDateMS)); } - previousDateMs = currentDateMs; + previousAccessDateMs = accessDateMS; } Preference permissionUsagePreference = new PermissionHistoryPreference( - getContext(), + context, appPermissionAccessUiInfo.getUserHandle(), appPermissionAccessUiInfo.getPackageName(), appPermissionAccessUiInfo.getBadgedPackageIcon(), @@ -379,7 +370,7 @@ public class PermissionUsageDetailsFragment extends SettingsWithLargeHeader { appPermissionAccessUiInfo.getAttributionTags(), i == appPermissionAccessUiInfoList.size() - 1, mSessionId, - appPermissionAccessUiInfo.getOnClickDialog()); + appPermissionAccessUiInfo.isEmergencyLocationAccess()); category.get().addPreference(permissionUsagePreference); } diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt index 85f907fd3..598dbad2d 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/model/v31/PermissionUsageDetailsViewModel.kt @@ -36,7 +36,6 @@ import android.os.UserHandle import android.os.UserManager import android.permission.flags.Flags import androidx.annotation.RequiresApi -import androidx.annotation.StringRes import androidx.lifecycle.AbstractSavedStateViewModelFactory import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel @@ -429,10 +428,11 @@ class PermissionUsageDetailsViewModel( val durationSummaryLabel = getDurationSummary(context, this, accessTimeList) val proxyLabel = getProxyPackageLabel(this) val subAttributionLabel = getSubAttributionLabel(this) - val showingSubAttribution = subAttributionLabel != null && subAttributionLabel.isNotEmpty() + val showingSubAttribution = !subAttributionLabel.isNullOrEmpty() val summary = buildUsageSummary(context, subAttributionLabel, proxyLabel, durationSummaryLabel) - val onClickDialog = getPermissionUsageOnclickDialog(this.clusteredOp) + val isEmergencyLocationAccess = + isLocationByPassEnabled() && clusteredOp == AppOpsManager.OPSTR_EMERGENCY_LOCATION return AppPermissionAccessUiInfo( this.appPermissionId.userHandle, @@ -445,26 +445,10 @@ class PermissionUsageDetailsViewModel( showingSubAttribution, ArrayList(this.attributionTags), getBadgedPackageIcon(this.appPermissionId.packageName, this.appPermissionId.userHandle), - onClickDialog + isEmergencyLocationAccess ) } - /** - * If an app op is clustered by itself and clicking its access entry in the privacy timeline - * displays an alert dialog, return the dialog with title and description. - */ - private fun getPermissionUsageOnclickDialog( - clusteredOp: String? - ): PermissionUsageOnClickDialog? { - if (isLocationByPassEnabled() && clusteredOp == AppOpsManager.OPSTR_EMERGENCY_LOCATION) { - val title = R.string.privacy_dashboard_emergency_location_dialog_title - val description = R.string.privacy_dashboard_emergency_location_dialog_description - return PermissionUsageOnClickDialog(title, description) - } - - return null - } - /** Builds a summary of the permission access. */ private fun buildUsageSummary( context: Context, @@ -590,12 +574,7 @@ class PermissionUsageDetailsViewModel( val showingAttribution: Boolean, val attributionTags: ArrayList<String>, val badgedPackageIcon: Drawable?, - val onClickDialog: PermissionUsageOnClickDialog? - ) - - data class PermissionUsageOnClickDialog( - @StringRes val title: Int, - @StringRes val description: Int + val isEmergencyLocationAccess: Boolean ) /** |