From 3ac6ab440c85ff87fe57ea4471e687f643a96f34 Mon Sep 17 00:00:00 2001 From: Victor Li Date: Fri, 7 Feb 2025 21:14:23 -0800 Subject: [PATCH] Set a value in Settings.Global to indicate if user is on audio sharing dashboard fragment Change-Id: I081db5db644cdc42294063783c29a93914e12328 BUG: 394810407 --- .../AudioSharingDashboardFragment.java | 35 ++++++++++++++++++ .../AudioSharingDashboardFragmentTest.java | 37 +++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java index ce0a4658ff7..16bcf292248 100644 --- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java @@ -25,6 +25,7 @@ import android.bluetooth.BluetoothDevice; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.provider.Settings; import android.util.Log; import androidx.annotation.Nullable; @@ -44,6 +45,11 @@ public class AudioSharingDashboardFragment extends DashboardFragment public static final int SHARE_THEN_PAIR_REQUEST_CODE = 1002; + public static final String IS_SHOWING_AUDIO_SHARING_DASHBOARD_KEY = + "is_showing_audio_sharing_dashboard"; + public static final int SHOWING_AUDIO_SHARING_DASHBOARD = 1; + public static final int NOT_SHOWING_AUDIO_SHARING_DASHBOARD = 0; + SettingsMainSwitchBar mMainSwitchBar; private Context mContext; private AudioSharingDeviceVolumeGroupController mAudioSharingDeviceVolumeGroupController; @@ -106,6 +112,35 @@ public class AudioSharingDashboardFragment extends DashboardFragment mMainSwitchBar.show(); } + @Override + public void onResume() { + super.onResume(); + // TODO(b/395058868): Remove this if it's decided this is not needed. + setAudioSharingDashboardSettingsGlobal(true); + } + + @Override + public void onPause() { + super.onPause(); + // TODO(b/395058868): Remove this if it's decided this is not needed. + setAudioSharingDashboardSettingsGlobal(false); + } + + private void setAudioSharingDashboardSettingsGlobal(Boolean isShowingAudioSharingDashboard) { + var unused = + ThreadUtils.postOnBackgroundThread( + () -> { + int value = + isShowingAudioSharingDashboard + ? SHOWING_AUDIO_SHARING_DASHBOARD + : NOT_SHOWING_AUDIO_SHARING_DASHBOARD; + Settings.Global.putInt( + mContext.getContentResolver(), + IS_SHOWING_AUDIO_SHARING_DASHBOARD_KEY, + value); + }); + } + @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java index 1ce3316811b..59935214a31 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java @@ -39,8 +39,10 @@ import android.content.Intent; import android.os.Bundle; import android.os.Looper; import android.platform.test.flag.junit.SetFlagsRule; +import android.provider.Settings; import android.view.View; +import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.R; @@ -115,6 +117,41 @@ public class AudioSharingDashboardFragmentTest { assertThat(mFragment.getHelpResource()).isEqualTo(R.string.help_url_audio_sharing); } + @Test + public void onResume_setAudioSharingDashboardSettingsGlobal_showAudioSharingDashboard() { + mFragment = spy(new AudioSharingDashboardFragment()); + doReturn(mActivity).when(mFragment).getActivity(); + doReturn(mContext).when(mFragment).getContext(); + final PreferenceScreen screen = new PreferenceScreen(mContext, null /* attrs */); + doReturn(screen).when(mFragment).getPreferenceScreen(); + mFragment.onAttach(mContext); + mFragment.onResume(); + shadowOf(Looper.getMainLooper()).idle(); + + assertThat( + Settings.Global.getInt( + mContext.getContentResolver(), + AudioSharingDashboardFragment + .IS_SHOWING_AUDIO_SHARING_DASHBOARD_KEY, + -1)) + .isEqualTo(AudioSharingDashboardFragment.SHOWING_AUDIO_SHARING_DASHBOARD); + } + + @Test + public void onPause_setAudioSharingDashboardSettingsGlobal_notShowAudioSharingDashboard() { + mFragment.onAttach(mContext); + mFragment.onPause(); + shadowOf(Looper.getMainLooper()).idle(); + + assertThat( + Settings.Global.getInt( + mContext.getContentResolver(), + AudioSharingDashboardFragment + .IS_SHOWING_AUDIO_SHARING_DASHBOARD_KEY, + -1)) + .isEqualTo(AudioSharingDashboardFragment.NOT_SHOWING_AUDIO_SHARING_DASHBOARD); + } + @Test public void onActivityCreated_showSwitchBar() { doReturn(mSwitchBar).when(mActivity).getSwitchBar();