Merge "[Output Switcher] Adjusts color, size and margin"
This commit is contained in:
@@ -13,17 +13,19 @@
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:shape="rectangle">
|
||||
<stroke
|
||||
android:color="?androidprv:attr/colorAccentPrimaryVariant"
|
||||
android:width="1dp"/>
|
||||
<corners android:radius="20dp"/>
|
||||
<padding
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="8dp"
|
||||
android:bottom="8dp" />
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:insetBottom="6dp"
|
||||
android:insetTop="6dp">
|
||||
<shape android:shape="rectangle">
|
||||
<stroke
|
||||
android:color="@color/media_dialog_outlined_button"
|
||||
android:width="1dp"/>
|
||||
<corners android:radius="20dp"/>
|
||||
<padding
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="8dp"
|
||||
android:bottom="8dp"/>
|
||||
<solid android:color="@android:color/transparent"/>
|
||||
</shape>
|
||||
</inset>
|
||||
@@ -13,17 +13,19 @@
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:shape="rectangle">
|
||||
<stroke
|
||||
android:color="@android:color/transparent"
|
||||
android:width="1dp"/>
|
||||
<corners android:radius="20dp"/>
|
||||
<padding
|
||||
android:left="@dimen/media_output_dialog_button_padding_horizontal"
|
||||
android:right="@dimen/media_output_dialog_button_padding_horizontal"
|
||||
android:top="@dimen/media_output_dialog_button_padding_vertical"
|
||||
android:bottom="@dimen/media_output_dialog_button_padding_vertical" />
|
||||
<solid android:color="?androidprv:attr/colorAccentPrimaryVariant" />
|
||||
</shape>
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:insetBottom="6dp"
|
||||
android:insetTop="6dp">
|
||||
<shape android:shape="rectangle">
|
||||
<stroke
|
||||
android:color="@android:color/transparent"
|
||||
android:width="1dp"/>
|
||||
<corners android:radius="20dp"/>
|
||||
<padding
|
||||
android:left="@dimen/media_output_dialog_button_padding_horizontal"
|
||||
android:right="@dimen/media_output_dialog_button_padding_horizontal"
|
||||
android:top="@dimen/media_output_dialog_button_padding_vertical"
|
||||
android:bottom="@dimen/media_output_dialog_button_padding_vertical"/>
|
||||
<solid android:color="@color/media_dialog_solid_button_background"/>
|
||||
</shape>
|
||||
</inset>
|
||||
@@ -15,9 +15,8 @@
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners
|
||||
android:radius="16dp"/>
|
||||
<solid android:color="?androidprv:attr/colorAccentSecondary" />
|
||||
<solid android:color="@color/media_dialog_item_background" />
|
||||
</shape>
|
||||
@@ -15,9 +15,8 @@
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners
|
||||
android:radius="50dp"/>
|
||||
<solid android:color="?androidprv:attr/colorAccentSecondary" />
|
||||
android:radius="28dp"/>
|
||||
<solid android:color="@color/media_dialog_item_background" />
|
||||
</shape>
|
||||
@@ -15,13 +15,12 @@
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="?androidprv:attr/colorAccentPrimaryVariant"
|
||||
android:fillColor="@color/media_dialog_item_status"
|
||||
android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"/>
|
||||
</vector>
|
||||
|
||||
@@ -15,13 +15,12 @@
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="?androidprv:attr/colorAccentPrimaryVariant"
|
||||
android:fillColor="@color/media_dialog_inactive_item_main_content"
|
||||
android:pathData="M11,7h2v2h-2zM11,11h2v6h-2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
|
||||
</vector>
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="12dp"
|
||||
android:background="@color/media_dialog_background"
|
||||
android:orientation="vertical">
|
||||
<ImageView
|
||||
android:id="@+id/app_source_icon"
|
||||
@@ -66,7 +67,7 @@
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:fontFamily="roboto-regular"
|
||||
android:fontFamily="@*android:string/config_bodyFontFamily"
|
||||
android:textSize="14sp"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -75,7 +76,7 @@
|
||||
android:id="@+id/device_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:background="@color/media_dialog_background"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
@@ -93,13 +94,14 @@
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="@color/media_dialog_background"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/stop"
|
||||
style="@style/MediaOutputRoundedOutlinedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="36dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="0dp"
|
||||
android:text="@string/keyboard_key_media_stop"
|
||||
android:visibility="gone"/>
|
||||
@@ -113,7 +115,7 @@
|
||||
android:id="@+id/done"
|
||||
style="@style/MediaOutputRoundedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="36dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="0dp"
|
||||
android:text="@string/inline_done_button"/>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
|
||||
android:id="@+id/device_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -65,7 +64,7 @@
|
||||
android:layout_marginStart="56dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?androidprv:attr/colorAccentPrimaryVariant"
|
||||
android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
|
||||
android:textSize="16sp"/>
|
||||
|
||||
<RelativeLayout
|
||||
@@ -81,7 +80,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?androidprv:attr/colorAccentPrimaryVariant"
|
||||
android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
|
||||
android:textColor="@color/media_dialog_inactive_item_main_content"
|
||||
android:textSize="16sp"/>
|
||||
<TextView
|
||||
android:id="@+id/subtitle"
|
||||
@@ -92,9 +92,9 @@
|
||||
android:layout_alignParentBottom="true"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?androidprv:attr/colorAccentPrimaryVariant"
|
||||
android:textColor="@color/media_dialog_inactive_item_main_content"
|
||||
android:textSize="14sp"
|
||||
android:fontFamily="roboto-regular"
|
||||
android:fontFamily="@*android:string/config_bodyFontFamily"
|
||||
android:visibility="gone"/>
|
||||
<ImageView
|
||||
android:id="@+id/add_icon"
|
||||
|
||||
@@ -65,6 +65,17 @@
|
||||
<!-- Media -->
|
||||
<color name="media_divider">#85ffffff</color>
|
||||
|
||||
<!-- media output dialog-->
|
||||
<color name="media_dialog_background">@android:color/system_neutral1_900</color>
|
||||
<color name="media_dialog_solid_button_background">@android:color/system_accent1_100</color>
|
||||
<color name="media_dialog_solid_button_text">@android:color/system_accent2_800</color>
|
||||
<color name="media_dialog_outlined_button">@android:color/system_accent1_100</color>
|
||||
<color name="media_dialog_outlined_button_text">@android:color/system_neutral1_50</color>
|
||||
<color name="media_dialog_active_item_main_content">@android:color/system_accent2_800</color>
|
||||
<color name="media_dialog_inactive_item_main_content">@android:color/system_accent1_100</color>
|
||||
<color name="media_dialog_item_status">@android:color/system_accent1_100</color>
|
||||
<color name="media_dialog_item_background">@android:color/system_neutral2_800</color>
|
||||
|
||||
<!-- Biometric dialog colors -->
|
||||
<color name="biometric_dialog_gray">#ffcccccc</color>
|
||||
<color name="biometric_dialog_accent">@android:color/system_accent1_300</color>
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
-->
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<drawable name="notification_number_text_color">#ffffffff</drawable>
|
||||
<drawable name="system_bar_background">@color/system_bar_background_opaque</drawable>
|
||||
<color name="system_bar_background_opaque">#ff000000</color>
|
||||
@@ -173,6 +172,17 @@
|
||||
<!-- media -->
|
||||
<color name="media_seamless_border">?android:attr/colorAccent</color>
|
||||
|
||||
<!-- media output dialog-->
|
||||
<color name="media_dialog_background" android:lstar="98">@android:color/system_neutral1_100</color>
|
||||
<color name="media_dialog_solid_button_background">@android:color/system_accent1_600</color>
|
||||
<color name="media_dialog_solid_button_text">@android:color/system_neutral1_50</color>
|
||||
<color name="media_dialog_outlined_button">@android:color/system_accent1_600</color>
|
||||
<color name="media_dialog_outlined_button_text">@android:color/system_neutral1_900</color>
|
||||
<color name="media_dialog_active_item_main_content">@android:color/system_accent1_900</color>
|
||||
<color name="media_dialog_inactive_item_main_content">@android:color/system_accent1_600</color>
|
||||
<color name="media_dialog_item_status">@android:color/system_accent1_900</color>
|
||||
<color name="media_dialog_item_background">@android:color/system_accent2_50</color>
|
||||
|
||||
<!-- controls -->
|
||||
<color name="control_primary_text">#E6FFFFFF</color>
|
||||
<color name="control_secondary_text">#99FFFFFF</color>
|
||||
|
||||
@@ -450,14 +450,27 @@
|
||||
<item name="android:background">@drawable/btn_borderless_rect</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.SystemUI.Dialog.Media" parent="Theme.SystemUI.Dialog">
|
||||
<item name="android:colorBackground">@color/media_dialog_background</item>
|
||||
</style>
|
||||
|
||||
<style name="MediaOutputRoundedOutlinedButton" parent="@android:style/Widget.Material.Button">
|
||||
<item name="android:background">@drawable/media_output_dialog_button_background</item>
|
||||
<item name="android:textColor">@color/media_dialog_outlined_button_text</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
|
||||
</style>
|
||||
|
||||
<style name="MediaOutputRoundedButton" parent="@android:style/Widget.Material.Button">
|
||||
<item name="android:background">@drawable/media_output_dialog_solid_button_background</item>
|
||||
<item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
|
||||
<item name="android:textColor">@color/media_dialog_solid_button_text</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
|
||||
</style>
|
||||
|
||||
<style name="MediaOutputItemInactiveTitle">
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:textColor">@color/media_dialog_inactive_item_main_content</item>
|
||||
</style>
|
||||
|
||||
<style name="TunerSettings" parent="@android:style/Theme.DeviceDefault.Settings">
|
||||
|
||||
@@ -113,6 +113,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
|
||||
}
|
||||
mCheckBox.setVisibility(View.GONE);
|
||||
mStatusIcon.setVisibility(View.GONE);
|
||||
mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext,
|
||||
R.color.media_dialog_inactive_item_main_content));
|
||||
if (currentlyConnected && mController.isActiveRemoteDevice(device)
|
||||
&& mController.getSelectableMediaDevice().size() > 0) {
|
||||
// Init active device layout
|
||||
@@ -147,6 +149,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
|
||||
} else {
|
||||
// Set different layout for each device
|
||||
if (device.getState() == MediaDeviceState.STATE_CONNECTING_FAILED) {
|
||||
mTitleText.setAlpha(DEVICE_CONNECTED_ALPHA);
|
||||
mTitleIcon.setAlpha(DEVICE_CONNECTED_ALPHA);
|
||||
mStatusIcon.setImageDrawable(
|
||||
mContext.getDrawable(R.drawable.media_output_status_failed));
|
||||
setTwoLineLayout(device, false /* bFocused */,
|
||||
@@ -157,6 +161,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
|
||||
} else if (!mController.hasAdjustVolumeUserRestriction() && currentlyConnected) {
|
||||
mStatusIcon.setImageDrawable(
|
||||
mContext.getDrawable(R.drawable.media_output_status_check));
|
||||
mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext,
|
||||
R.color.media_dialog_active_item_main_content));
|
||||
setSingleLineLayout(getItemTitle(device), true /* bFocused */,
|
||||
true /* showSeekBar */,
|
||||
false /* showProgressBar */, true /* showStatus */);
|
||||
@@ -172,6 +178,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
|
||||
@Override
|
||||
void onBind(int customizedItem, boolean topMargin, boolean bottomMargin) {
|
||||
if (customizedItem == CUSTOMIZED_ITEM_PAIR_NEW) {
|
||||
mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext,
|
||||
R.color.media_dialog_inactive_item_main_content));
|
||||
mCheckBox.setVisibility(View.GONE);
|
||||
mAddIcon.setVisibility(View.GONE);
|
||||
setSingleLineLayout(mContext.getText(R.string.media_output_dialog_pairing_new),
|
||||
@@ -182,6 +190,8 @@ public class MediaOutputAdapter extends MediaOutputBaseAdapter {
|
||||
mTitleIcon.setImageDrawable(d);
|
||||
mContainerLayout.setOnClickListener(v -> onItemClick(CUSTOMIZED_ITEM_PAIR_NEW));
|
||||
} else if (customizedItem == CUSTOMIZED_ITEM_DYNAMIC_GROUP) {
|
||||
mTitleText.setTextColor(Utils.getColorStateListDefaultColor(mContext,
|
||||
R.color.media_dialog_active_item_main_content));
|
||||
mConnectedItem = mContainerLayout;
|
||||
mCheckBox.setVisibility(View.GONE);
|
||||
if (mController.getSelectableMediaDevice().size() > 0) {
|
||||
|
||||
@@ -19,7 +19,6 @@ package com.android.systemui.media.dialog;
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.Typeface;
|
||||
@@ -41,6 +40,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.media.MediaDevice;
|
||||
import com.android.settingslib.utils.ThreadUtils;
|
||||
import com.android.systemui.R;
|
||||
@@ -165,7 +165,7 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
boolean showProgressBar, boolean showStatus) {
|
||||
mTwoLineLayout.setVisibility(View.GONE);
|
||||
final Drawable backgroundDrawable =
|
||||
showSeekBar
|
||||
showSeekBar || showProgressBar
|
||||
? mContext.getDrawable(R.drawable.media_output_item_background_active)
|
||||
.mutate() : mContext.getDrawable(
|
||||
R.drawable.media_output_item_background)
|
||||
@@ -177,15 +177,6 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
mStatusIcon.setVisibility(showStatus ? View.VISIBLE : View.GONE);
|
||||
mTitleText.setText(title);
|
||||
mTitleText.setVisibility(View.VISIBLE);
|
||||
mTitleText.setTranslationY(0);
|
||||
if (bFocused) {
|
||||
mTitleText.setTypeface(Typeface.create(mContext.getString(
|
||||
com.android.internal.R.string.config_headlineFontFamilyMedium),
|
||||
Typeface.NORMAL));
|
||||
} else {
|
||||
mTitleText.setTypeface(Typeface.create(mContext.getString(
|
||||
com.android.internal.R.string.config_headlineFontFamily), Typeface.NORMAL));
|
||||
}
|
||||
}
|
||||
|
||||
void setTwoLineLayout(MediaDevice device, boolean bFocused, boolean showSeekBar,
|
||||
@@ -359,10 +350,10 @@ public abstract class MediaOutputBaseAdapter extends
|
||||
Drawable getSpeakerDrawable() {
|
||||
final Drawable drawable = mContext.getDrawable(R.drawable.ic_speaker_group_black_24dp)
|
||||
.mutate();
|
||||
final ColorStateList list = mContext.getResources().getColorStateList(
|
||||
R.color.advanced_icon_color, mContext.getTheme());
|
||||
drawable.setColorFilter(new PorterDuffColorFilter(list.getDefaultColor(),
|
||||
PorterDuff.Mode.SRC_IN));
|
||||
drawable.setColorFilter(
|
||||
new PorterDuffColorFilter(Utils.getColorStateListDefaultColor(mContext,
|
||||
R.color.media_dialog_active_item_main_content),
|
||||
PorterDuff.Mode.SRC_IN));
|
||||
return drawable;
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ public abstract class MediaOutputBaseDialog extends SystemUIDialog implements
|
||||
};
|
||||
|
||||
public MediaOutputBaseDialog(Context context, MediaOutputController mediaOutputController) {
|
||||
super(context);
|
||||
super(context, R.style.Theme_SystemUI_Dialog_Media);
|
||||
mContext = context;
|
||||
mMediaOutputController = mediaOutputController;
|
||||
mLayoutManager = new LinearLayoutManager(mContext);
|
||||
|
||||
@@ -20,7 +20,11 @@ import android.app.Notification;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.media.MediaMetadata;
|
||||
@@ -247,9 +251,24 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback {
|
||||
// Use default Bluetooth device icon to handle getIcon() is null case.
|
||||
drawable = mContext.getDrawable(com.android.internal.R.drawable.ic_bt_headphones_a2dp);
|
||||
}
|
||||
if (!(drawable instanceof BitmapDrawable)) {
|
||||
setColorFilter(drawable,
|
||||
mLocalMediaManager.getCurrentConnectedDevice().getId().equals(device.getId()));
|
||||
}
|
||||
return BluetoothUtils.createIconWithDrawable(drawable);
|
||||
}
|
||||
|
||||
void setColorFilter(Drawable drawable, boolean isConnected) {
|
||||
final ColorStateList list =
|
||||
mContext.getResources().getColorStateList(
|
||||
!hasAdjustVolumeUserRestriction() && isConnected && !isTransferring()
|
||||
? R.color.media_dialog_active_item_main_content
|
||||
: R.color.media_dialog_inactive_item_main_content,
|
||||
mContext.getTheme());
|
||||
drawable.setColorFilter(new PorterDuffColorFilter(list.getDefaultColor(),
|
||||
PorterDuff.Mode.SRC_IN));
|
||||
}
|
||||
|
||||
IconCompat getNotificationIcon() {
|
||||
if (TextUtils.isEmpty(mPackageName)) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user