Loading core/java/android/provider/Settings.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -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. Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +23 −10 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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) { Loading Loading
core/java/android/provider/Settings.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -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. Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +23 −10 Original line number Original line Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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) { Loading