diff options
author | Shriya Gupta <shrigupt@google.com> | 2023-03-08 13:36:06 +0000 |
---|---|---|
committer | Shriya Gupta <shrigupt@google.com> | 2023-03-08 18:20:04 +0000 |
commit | 989f585df64fb1d3841a459a92e51711da7f86b9 (patch) | |
tree | ef31018ed2824bddf96cbdc34fc650ecdcfe50a4 /PermissionController/src/com/android/permissioncontroller/safetycenter | |
parent | b7fc89f121128287a2247a6af00edc2499e9b0ad (diff) | |
download | Permission-989f585df64fb1d3841a459a92e51711da7f86b9.tar.gz |
Standardize sessionID handling across fragments
Bug: 268309208
Test: statsd_testdrive 473
Change-Id: I4e8ad227599e7861dbd954af8837c0203989b7e0
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/safetycenter')
5 files changed, 32 insertions, 24 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/PrivacySubpageFragment.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/PrivacySubpageFragment.kt index 7befb2f7c..82166b1e5 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/PrivacySubpageFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/PrivacySubpageFragment.kt @@ -24,9 +24,8 @@ import androidx.annotation.RequiresApi import androidx.lifecycle.ViewModelProvider import androidx.preference.Preference import androidx.preference.PreferenceGroup -import com.android.permissioncontroller.Constants +import com.android.permissioncontroller.Constants.EXTRA_SESSION_ID import com.android.permissioncontroller.R -import com.android.permissioncontroller.permission.utils.Utils import com.android.permissioncontroller.safetycenter.SafetyCenterConstants.PRIVACY_SOURCES_GROUP_ID import com.android.permissioncontroller.safetycenter.ui.SafetyBrandChipPreference.Companion.closeSubpage import com.android.permissioncontroller.safetycenter.ui.model.PrivacyControlsViewModel @@ -45,18 +44,16 @@ class PrivacySubpageFragment : SafetyCenterFragment() { private lateinit var subpageGenericEntryGroup: PreferenceGroup private lateinit var subpageDataEntryGroup: PreferenceGroup private lateinit var privacyControlsViewModel: PrivacyControlsViewModel - private var sessionId = Constants.INVALID_SESSION_ID override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { super.onCreatePreferences(savedInstanceState, rootKey) setPreferencesFromResource(R.xml.privacy_subpage, rootKey) - sessionId = Utils.getOrGenerateSessionId(requireActivity().getIntent()) subpageBrandChip = getPreferenceScreen().findPreference(BRAND_CHIP_KEY)!! subpageIssueGroup = getPreferenceScreen().findPreference(ISSUE_GROUP_KEY)!! subpageGenericEntryGroup = getPreferenceScreen().findPreference(GENERIC_ENTRY_GROUP_KEY)!! subpageDataEntryGroup = getPreferenceScreen().findPreference(DATA_ENTRY_GROUP_KEY)!! - subpageBrandChip.setupListener(requireActivity(), sessionId) + subpageBrandChip.setupListener(requireActivity(), safetyCenterSessionId) val factory = PrivacyControlsViewModelFactory(requireActivity().getApplication()) privacyControlsViewModel = @@ -71,7 +68,7 @@ class PrivacySubpageFragment : SafetyCenterFragment() { override fun configureInteractionLogger() { val logger = safetyCenterViewModel.interactionLogger - logger.sessionId = sessionId + logger.sessionId = safetyCenterSessionId logger.navigationSource = NavigationSource.fromIntent(requireActivity().getIntent()) logger.viewType = ViewType.SUBPAGE logger.groupId = PRIVACY_SOURCES_GROUP_ID @@ -90,7 +87,7 @@ class PrivacySubpageFragment : SafetyCenterFragment() { TAG, "$PRIVACY_SOURCES_GROUP_ID doesn't match any of the existing SafetySourcesGroup IDs" ) - closeSubpage(requireActivity(), requireContext(), sessionId) + closeSubpage(requireActivity(), requireContext(), safetyCenterSessionId) return } @@ -197,5 +194,16 @@ class PrivacySubpageFragment : SafetyCenterFragment() { private const val ISSUE_GROUP_KEY: String = "subpage_issue_group" private const val GENERIC_ENTRY_GROUP_KEY: String = "subpage_generic_entry_group" private const val DATA_ENTRY_GROUP_KEY: String = "subpage_data_entry_group" + + /** Creates an instance of PrivacySubpageFragment with the arguments set */ + @JvmStatic + fun newInstance(sessionId: Long): PrivacySubpageFragment { + val args = Bundle() + args.putLong(EXTRA_SESSION_ID, sessionId) + + val subpageFragment = PrivacySubpageFragment() + subpageFragment.setArguments(args) + return subpageFragment + } } } diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterActivity.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterActivity.java index f9ec852ca..2b92cfe19 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterActivity.java +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterActivity.java @@ -44,6 +44,7 @@ import androidx.fragment.app.Fragment; import com.android.permissioncontroller.Constants; import com.android.permissioncontroller.PermissionControllerStatsLog; import com.android.permissioncontroller.R; +import com.android.permissioncontroller.permission.utils.Utils; import com.android.permissioncontroller.safetycenter.ui.model.PrivacyControlsViewModel.Pref; import com.android.settingslib.activityembedding.ActivityEmbeddingUtils; import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity; @@ -203,12 +204,13 @@ public final class SafetyCenterActivity extends CollapsingToolbarBaseActivity { return openHomepage(); } + long sessionId = Utils.getOrGenerateSessionId(getIntent()); if (Objects.equals(groupId, PRIVACY_SOURCES_GROUP_ID)) { logPrivacySourceMetric(); - return new PrivacySubpageFragment(); + return PrivacySubpageFragment.newInstance(sessionId); } - return SafetyCenterSubpageFragment.newInstance(groupId); + return SafetyCenterSubpageFragment.newInstance(sessionId, groupId); } @RequiresApi(UPSIDE_DOWN_CAKE) diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java index b59177d43..02b9a46ff 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java @@ -44,7 +44,6 @@ import androidx.annotation.RequiresApi; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; -import com.android.permissioncontroller.Constants; import com.android.permissioncontroller.R; import com.android.permissioncontroller.safetycenter.ui.model.SafetyCenterUiData; import com.android.permissioncontroller.safetycenter.ui.model.StatusUiData; @@ -73,7 +72,6 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment { private PreferenceGroup mEntriesGroup; private PreferenceGroup mStaticEntriesGroup; private boolean mIsQuickSettingsFragment; - private long mSessionId = Constants.INVALID_SESSION_ID; public SafetyCenterDashboardFragment() {} @@ -100,9 +98,6 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment { setPreferencesFromResource(R.xml.safety_center_dashboard, rootKey); if (getArguments() != null) { - mSessionId = - getArguments() - .getLong(Constants.EXTRA_SESSION_ID, Constants.INVALID_SESSION_ID); mIsQuickSettingsFragment = getArguments().getBoolean(QUICK_SETTINGS_SAFETY_CENTER_FRAGMENT, false); } @@ -146,7 +141,7 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment { @Override public void configureInteractionLogger() { InteractionLogger logger = getSafetyCenterViewModel().getInteractionLogger(); - logger.setSessionId(mSessionId); + logger.setSessionId(getSafetyCenterSessionId()); logger.setViewType(mIsQuickSettingsFragment ? ViewType.QUICK_SETTINGS : ViewType.FULL); Intent intent = requireActivity().getIntent(); @@ -227,7 +222,8 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment { if (SafetyCenterUiFlags.getShowSubpages() && group != null) { mEntriesGroup.addPreference( - new SafetyHomepageEntryPreference(context, group, mSessionId)); + new SafetyHomepageEntryPreference( + context, group, getSafetyCenterSessionId())); } else if (entry != null) { addTopLevelEntry(context, entry, isFirstElement, isLastElement); } else if (group != null) { diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterFragment.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterFragment.kt index 358c790cd..9ff8bee1a 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterFragment.kt @@ -25,6 +25,8 @@ import androidx.lifecycle.ViewModelProvider import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceScreen import androidx.recyclerview.widget.RecyclerView +import com.android.permissioncontroller.Constants.EXTRA_SESSION_ID +import com.android.permissioncontroller.Constants.INVALID_SESSION_ID import com.android.permissioncontroller.safetycenter.SafetyCenterConstants.QUICK_SETTINGS_SAFETY_CENTER_FRAGMENT import com.android.permissioncontroller.safetycenter.ui.ParsedSafetyCenterIntent.Companion.toSafetyCenterIntent import com.android.permissioncontroller.safetycenter.ui.model.LiveSafetyCenterViewModelFactory @@ -39,6 +41,7 @@ abstract class SafetyCenterFragment : PreferenceFragmentCompat() { lateinit var safetyCenterViewModel: SafetyCenterViewModel lateinit var sameTaskSourceIds: List<String> lateinit var collapsableIssuesCardHelper: CollapsableIssuesCardHelper + var safetyCenterSessionId = INVALID_SESSION_ID private val highlightManager = PreferenceHighlightManager(this) override fun onCreate(savedInstanceState: Bundle?) { @@ -72,6 +75,7 @@ abstract class SafetyCenterFragment : PreferenceFragmentCompat() { SafetyCenterResourcesContext(requireContext()) .getStringByName("config_same_task_safety_source_ids") .split(",") + safetyCenterSessionId = requireArguments().getLong(EXTRA_SESSION_ID, INVALID_SESSION_ID) safetyCenterViewModel = ViewModelProvider( diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterSubpageFragment.kt b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterSubpageFragment.kt index 6e13b6d29..8625e1959 100644 --- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterSubpageFragment.kt +++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterSubpageFragment.kt @@ -22,9 +22,8 @@ import android.safetycenter.SafetyCenterEntryGroup import android.util.Log import androidx.annotation.RequiresApi import androidx.preference.PreferenceGroup -import com.android.permissioncontroller.Constants +import com.android.permissioncontroller.Constants.EXTRA_SESSION_ID import com.android.permissioncontroller.R -import com.android.permissioncontroller.permission.utils.Utils import com.android.permissioncontroller.safetycenter.ui.SafetyBrandChipPreference.Companion.closeSubpage import com.android.permissioncontroller.safetycenter.ui.model.SafetyCenterUiData import com.android.safetycenter.resources.SafetyCenterResourcesContext @@ -40,13 +39,11 @@ class SafetyCenterSubpageFragment : SafetyCenterFragment() { private lateinit var subpageIssueGroup: PreferenceGroup private lateinit var subpageEntryGroup: PreferenceGroup private lateinit var subpageFooter: FooterPreference - private var sessionId = Constants.INVALID_SESSION_ID override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { super.onCreatePreferences(savedInstanceState, rootKey) setPreferencesFromResource(R.xml.safety_center_subpage, rootKey) sourceGroupId = requireArguments().getString(SOURCE_GROUP_ID_KEY)!! - sessionId = Utils.getOrGenerateSessionId(requireActivity().getIntent()) subpageBrandChip = getPreferenceScreen().findPreference(BRAND_CHIP_KEY)!! subpageIllustration = getPreferenceScreen().findPreference(ILLUSTRATION_KEY)!! @@ -54,7 +51,7 @@ class SafetyCenterSubpageFragment : SafetyCenterFragment() { subpageEntryGroup = getPreferenceScreen().findPreference(ENTRY_GROUP_KEY)!! subpageFooter = getPreferenceScreen().findPreference(FOOTER_KEY)!! - subpageBrandChip.setupListener(requireActivity(), sessionId) + subpageBrandChip.setupListener(requireActivity(), safetyCenterSessionId) setupIllustration() setupFooter() @@ -63,7 +60,7 @@ class SafetyCenterSubpageFragment : SafetyCenterFragment() { override fun configureInteractionLogger() { val logger = safetyCenterViewModel.interactionLogger - logger.sessionId = sessionId + logger.sessionId = safetyCenterSessionId logger.navigationSource = NavigationSource.fromIntent(requireActivity().getIntent()) logger.viewType = ViewType.SUBPAGE logger.groupId = sourceGroupId @@ -79,7 +76,7 @@ class SafetyCenterSubpageFragment : SafetyCenterFragment() { val entryGroup = uiData?.getMatchingGroup(sourceGroupId) if (entryGroup == null) { Log.w(TAG, "$sourceGroupId doesn't match any of the existing SafetySourcesGroup IDs") - closeSubpage(requireActivity(), requireContext(), sessionId) + closeSubpage(requireActivity(), requireContext(), safetyCenterSessionId) return } @@ -167,8 +164,9 @@ class SafetyCenterSubpageFragment : SafetyCenterFragment() { /** Creates an instance of SafetyCenterSubpageFragment with the arguments set */ @JvmStatic - fun newInstance(groupId: String): SafetyCenterSubpageFragment { + fun newInstance(sessionId: Long, groupId: String): SafetyCenterSubpageFragment { val args = Bundle() + args.putLong(EXTRA_SESSION_ID, sessionId) args.putString(SOURCE_GROUP_ID_KEY, groupId) val subpageFragment = SafetyCenterSubpageFragment() |