Merge "Set a value in Settings.Global to indicate if user is on audio sharing dashboard fragment" into main

This commit is contained in:
Victor Li
2025-02-07 23:03:51 -08:00
committed by Android (Google) Code Review
2 changed files with 72 additions and 0 deletions

View File

@@ -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);

View File

@@ -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();