Merge "[Output Switcher] Add support for split mode" into sc-v2-dev am: f12551c388

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16361304

Change-Id: Icd13d26d5c592cfb9cf6d05decd5a3a0dc0cf1a6
This commit is contained in:
Lucas Dupin
2021-12-07 17:57:09 +00:00
committed by Automerger Merge Worker
2 changed files with 39 additions and 10 deletions

View File

@@ -952,6 +952,22 @@ public final class Settings {
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
public static final String ACTION_LOCKSCREEN_SETTINGS = "android.settings.LOCK_SCREEN_SETTINGS"; public static final String ACTION_LOCKSCREEN_SETTINGS = "android.settings.LOCK_SCREEN_SETTINGS";
/**
* Activity Action: Show settings to allow pairing bluetooth devices.
* <p>
* In some cases, a matching Activity may not exist, so ensure you
* safeguard against this.
* <p>
* Input: Nothing.
* <p>
* Output: Nothing.
*
* @hide
*/
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
public static final String ACTION_BLUETOOTH_PAIRING_SETTINGS =
"android.settings.BLUETOOTH_PAIRING_SETTINGS";
/** /**
* Activity Action: Show settings to configure input methods, in particular * Activity Action: Show settings to configure input methods, in particular
* allowing the user to enable input methods. * allowing the user to enable input methods.

View File

@@ -16,6 +16,8 @@
package com.android.systemui.media.dialog; package com.android.systemui.media.dialog;
import static android.provider.Settings.ACTION_BLUETOOTH_PAIRING_SETTINGS;
import android.app.Notification; import android.app.Notification;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -30,6 +32,7 @@ import android.media.session.MediaSessionManager;
import android.media.session.PlaybackState; import android.media.session.PlaybackState;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@@ -46,7 +49,6 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.media.InfoMediaManager; import com.android.settingslib.media.InfoMediaManager;
import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.LocalMediaManager;
import com.android.settingslib.media.MediaDevice; import com.android.settingslib.media.MediaDevice;
import com.android.settingslib.media.MediaOutputConstants;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
import com.android.systemui.R; import com.android.systemui.R;
import com.android.systemui.animation.DialogLaunchAnimator; import com.android.systemui.animation.DialogLaunchAnimator;
@@ -69,7 +71,8 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback {
private static final String TAG = "MediaOutputController"; private static final String TAG = "MediaOutputController";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
private static final String PAGE_CONNECTED_DEVICES_KEY =
"top_level_connected_devices";
private final String mPackageName; private final String mPackageName;
private final Context mContext; private final Context mContext;
private final MediaSessionManager mMediaSessionManager; private final MediaSessionManager mMediaSessionManager;
@@ -451,14 +454,24 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback {
mDialogLaunchAnimator.disableAllCurrentDialogsExitAnimations(); mDialogLaunchAnimator.disableAllCurrentDialogsExitAnimations();
mCallback.dismissDialog(); mCallback.dismissDialog();
final ActivityStarter.OnDismissAction postKeyguardAction = () -> { Intent launchIntent =
mContext.sendBroadcast(new Intent() new Intent(ACTION_BLUETOOTH_PAIRING_SETTINGS)
.setAction(MediaOutputConstants.ACTION_LAUNCH_BLUETOOTH_PAIRING) .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
.setPackage(MediaOutputConstants.SETTINGS_PACKAGE_NAME)); final Intent deepLinkIntent =
mShadeController.animateCollapsePanels(); new Intent(Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY);
return true; if (deepLinkIntent.resolveActivity(mContext.getPackageManager()) != null) {
}; Log.d(TAG, "Device support split mode, launch page with deep link");
mActivityStarter.dismissKeyguardThenExecute(postKeyguardAction, null, true); deepLinkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
deepLinkIntent.putExtra(
Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_INTENT_URI,
launchIntent.toUri(Intent.URI_INTENT_SCHEME));
deepLinkIntent.putExtra(
Settings.EXTRA_SETTINGS_EMBEDDED_DEEP_LINK_HIGHLIGHT_MENU_KEY,
PAGE_CONNECTED_DEVICES_KEY);
mActivityStarter.startActivity(deepLinkIntent, true);
return;
}
mActivityStarter.startActivity(launchIntent, true);
} }
void launchMediaOutputGroupDialog(View mediaOutputDialog) { void launchMediaOutputGroupDialog(View mediaOutputDialog) {