Merge "[Output Switcher] Add support for split mode" into sc-v2-dev
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user