diff options
author | tim peng <timhypeng@google.com> | 2020-12-08 05:46:13 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-12-08 05:46:13 +0000 |
commit | 7de579f1ce46f67018033287cc941c4d88d9d87e (patch) | |
tree | 4e87a3843b5f0b72878b1d6c2a6bdd1527829814 /packages/SettingsLib | |
parent | 73ba6273638a5d0860fc11407ddb59060ee45827 (diff) | |
parent | b71aeae0cb8a032be550a94b5a4cd7e7ae16be27 (diff) |
Merge changes from topic "media_output_dialog" into rvc-qpr-dev
* changes:
Apply animation for Media Ouput Switcher dialog
Add dynamic item in output switcher if it is available
Fix NPE when notification icon is empty
Fix output switcher didn't show album art
Add dynamic group operation in output switcher
Enhancement for group operation in output switcher
Add dismiss timing for Media Output Dialog
Update OutputSwitcher from SettingsPanel to MediaOutputDialog in SystemUI
Add constant for dismiss Settings panel
Add animation when switching output device
Add dismiss intent and method for MediaOutputDialog
Add "Stop" button for remote device
Add constant for dialog dismiss
Rename MediaOutDialogReceiver to MediaOutputDialogReceiver
Add getFeatures() for get device supporting features
Add a receiver to launch Output Switcher dialog
Add MediaOutputDialogFactory to create MediaOutputDialog
Add Media Output Dialog for Output Switcher
Add controller for Media operation
Add MediaOutputAdapter for Media device list
Define strings for output switcher dialog in SystemUI
Add image utility methods
Diffstat (limited to 'packages/SettingsLib')
4 files changed, 87 insertions, 1 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index 9e59ce3ea166..3cbf2685af26 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -13,6 +13,7 @@ import android.content.res.ColorStateList; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; +import android.graphics.Canvas; import android.graphics.Color; import android.graphics.ColorFilter; import android.graphics.ColorMatrix; @@ -32,6 +33,10 @@ import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; import android.telephony.ServiceState; +import androidx.annotation.NonNull; +import androidx.core.graphics.drawable.RoundedBitmapDrawable; +import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory; + import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.UserIcons; import com.android.launcher3.icons.IconFactory; @@ -537,4 +542,25 @@ public class Utils { == NetworkRegistrationInfo.REGISTRATION_STATE_ROAMING); return !isInIwlan; } + + /** + * Returns a bitmap with rounded corner. + * + * @param context application context. + * @param source bitmap to apply round corner. + * @param cornerRadius corner radius value. + */ + public static Bitmap convertCornerRadiusBitmap(@NonNull Context context, + @NonNull Bitmap source, @NonNull float cornerRadius) { + final Bitmap roundedBitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(), + Bitmap.Config.ARGB_8888); + final RoundedBitmapDrawable drawable = + RoundedBitmapDrawableFactory.create(context.getResources(), source); + drawable.setAntiAlias(true); + drawable.setCornerRadius(cornerRadius); + final Canvas canvas = new Canvas(roundedBitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return roundedBitmap; + } } diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java index 95e916b9871a..df2f973e85c5 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java @@ -18,6 +18,7 @@ import android.util.Log; import android.util.Pair; import androidx.annotation.DrawableRes; +import androidx.core.graphics.drawable.IconCompat; import com.android.settingslib.R; import com.android.settingslib.widget.AdaptiveIcon; @@ -216,6 +217,23 @@ public class BluetoothUtils { } /** + * Create an Icon pointing to a drawable. + */ + public static IconCompat createIconWithDrawable(Drawable drawable) { + Bitmap bitmap; + if (drawable instanceof BitmapDrawable) { + bitmap = ((BitmapDrawable) drawable).getBitmap(); + } else { + final int width = drawable.getIntrinsicWidth(); + final int height = drawable.getIntrinsicHeight(); + bitmap = createBitmap(drawable, + width > 0 ? width : 1, + height > 0 ? height : 1); + } + return IconCompat.createWithBitmap(bitmap); + } + + /** * Build device icon with advanced outline */ public static Drawable buildAdvancedDrawable(Context context, Drawable drawable) { diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java index 126f9b91b0d2..41d6afc9c234 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java @@ -46,6 +46,7 @@ import com.android.settingslib.R; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.List; /** * MediaDevice represents a media device(such like Bluetooth device, cast device and phone device). @@ -354,6 +355,13 @@ public abstract class MediaDevice implements Comparable<MediaDevice> { } /** + * Gets the supported features of the route. + */ + public List<String> getFeatures() { + return mRouteInfo.getFeatures(); + } + + /** * Check if it is CarKit device * @return true if it is CarKit device */ diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaOutputSliceConstants.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaOutputSliceConstants.java index 2821af97ed98..fc16eb6b4277 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/MediaOutputSliceConstants.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaOutputSliceConstants.java @@ -60,8 +60,42 @@ public class MediaOutputSliceConstants { "com.android.settings.panel.action.MEDIA_OUTPUT_GROUP"; /** - * An string extra specifying a media package name. + * A string extra specifying a media package name. */ public static final String EXTRA_PACKAGE_NAME = "com.android.settings.panel.extra.PACKAGE_NAME"; + + /** + * An intent action to launch media output dialog. + */ + public static final String ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG = + "com.android.systemui.action.LAUNCH_MEDIA_OUTPUT_DIALOG"; + + /** + * An intent action to dismiss media output dialog. + */ + public static final String ACTION_DISMISS_MEDIA_OUTPUT_DIALOG = + "com.android.systemui.action.DISMISS_MEDIA_OUTPUT_DIALOG"; + + /** + * Settings package name. + */ + public static final String SETTINGS_PACKAGE_NAME = "com.android.settings"; + + /** + * An intent action to launch Bluetooth paring page. + */ + public static final String ACTION_LAUNCH_BLUETOOTH_PAIRING = + "com.android.settings.action.LAUNCH_BLUETOOTH_PAIRING"; + + /** + * SystemUi package name. + */ + public static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; + + /** + * An intent action to close settings panel. + */ + public static final String ACTION_CLOSE_PANEL = + "com.android.settings.panel.action.CLOSE_PANEL"; } |