summaryrefslogtreecommitdiff
path: root/packages/SettingsLib
diff options
context:
space:
mode:
authortim peng <timhypeng@google.com>2020-12-08 05:46:13 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-12-08 05:46:13 +0000
commit7de579f1ce46f67018033287cc941c4d88d9d87e (patch)
tree4e87a3843b5f0b72878b1d6c2a6bdd1527829814 /packages/SettingsLib
parent73ba6273638a5d0860fc11407ddb59060ee45827 (diff)
parentb71aeae0cb8a032be550a94b5a4cd7e7ae16be27 (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')
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/Utils.java26
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/bluetooth/BluetoothUtils.java18
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/MediaDevice.java8
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/MediaOutputSliceConstants.java36
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";
}