Update OutputSwitcher from MediaOutputSlice to MediaOutputDialog in Settings

-Update entry point at media indicator in volume panel
-Update entry point at remote media slice in volume panel
-Update entry point at remote volume group in Sound Settings
-Update entry point at media output preference in Sound Settings
-Hide Media output dialog when the caller is not active

Bug: 155822415
Test: make -j50 RunSettingsRoboTests
Change-Id: Ib6c86067522925c439f336644e4d027dbae3379c
This commit is contained in:
timhypeng
2020-09-26 15:43:11 +08:00
parent 2489494cd3
commit 3084d063f3
7 changed files with 83 additions and 39 deletions

View File

@@ -32,6 +32,7 @@ import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnDestroy;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.media.LocalMediaManager;
import com.android.settingslib.media.MediaDevice;
import com.android.settingslib.media.MediaOutputSliceConstants;
@@ -45,7 +46,7 @@ import java.util.List;
* {@link com.android.settings.notification.RemoteVolumeSeekBarPreference}
**/
public class RemoteVolumeGroupController extends BasePreferenceController implements
Preference.OnPreferenceChangeListener, LifecycleObserver, OnDestroy,
Preference.OnPreferenceChangeListener, LifecycleObserver, OnDestroy, OnPause,
LocalMediaManager.DeviceCallback {
private static final String KEY_REMOTE_VOLUME_GROUP = "remote_media_group";
@@ -96,6 +97,14 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem
}
}
@Override
public void onPause() {
// Media output dialog should not show when onPause
mContext.sendBroadcast(new Intent()
.setAction(MediaOutputSliceConstants.ACTION_DISMISS_MEDIA_OUTPUT_DIALOG)
.setPackage(MediaOutputSliceConstants.SYSTEMUI_PACKAGE_NAME));
}
@Override
public void onDestroy() {
mLocalMediaManager.unregisterCallback(this);
@@ -159,11 +168,11 @@ public class RemoteVolumeGroupController extends BasePreferenceController implem
if (TextUtils.equals(info.getId(),
preference.getKey().substring(SWITCHER_PREFIX.length()))) {
final Intent intent = new Intent()
.setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setAction(MediaOutputSliceConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
.setPackage(MediaOutputSliceConstants.SYSTEMUI_PACKAGE_NAME)
.putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
info.getClientPackageName());
mContext.startActivity(intent);
mContext.sendBroadcast(intent);
return true;
}
}