diff --git a/res/drawable/ic_homepage_about.xml b/res/drawable/ic_homepage_about.xml index 07dbb34b0ea..ef2136eed8f 100644 --- a/res/drawable/ic_homepage_about.xml +++ b/res/drawable/ic_homepage_about.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_accessibility.xml b/res/drawable/ic_homepage_accessibility.xml index 39f241b02db..85d4be34873 100644 --- a/res/drawable/ic_homepage_accessibility.xml +++ b/res/drawable/ic_homepage_accessibility.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_accounts.xml b/res/drawable/ic_homepage_accounts.xml index 17408ed936e..3f4f3aba864 100644 --- a/res/drawable/ic_homepage_accounts.xml +++ b/res/drawable/ic_homepage_accounts.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_apps.xml b/res/drawable/ic_homepage_apps.xml index 2a6789c6d80..24a580c3429 100644 --- a/res/drawable/ic_homepage_apps.xml +++ b/res/drawable/ic_homepage_apps.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_battery.xml b/res/drawable/ic_homepage_battery.xml index 87bb5be25f2..0a1f77ae9fb 100644 --- a/res/drawable/ic_homepage_battery.xml +++ b/res/drawable/ic_homepage_battery.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_connected_device.xml b/res/drawable/ic_homepage_connected_device.xml index f3ce1861ca9..a648c449fa3 100644 --- a/res/drawable/ic_homepage_connected_device.xml +++ b/res/drawable/ic_homepage_connected_device.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_display.xml b/res/drawable/ic_homepage_display.xml index fba71491fe7..72db231516a 100644 --- a/res/drawable/ic_homepage_display.xml +++ b/res/drawable/ic_homepage_display.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_location.xml b/res/drawable/ic_homepage_location.xml index c5d6e8970ff..db6a791f1f3 100644 --- a/res/drawable/ic_homepage_location.xml +++ b/res/drawable/ic_homepage_location.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_network.xml b/res/drawable/ic_homepage_network.xml index 1457ab9f7cb..085a6885190 100644 --- a/res/drawable/ic_homepage_network.xml +++ b/res/drawable/ic_homepage_network.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_privacy.xml b/res/drawable/ic_homepage_privacy.xml index a10290517c9..ebf8beb657d 100644 --- a/res/drawable/ic_homepage_privacy.xml +++ b/res/drawable/ic_homepage_privacy.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_security.xml b/res/drawable/ic_homepage_security.xml index 0b6a1fd9734..8a0673c5f7a 100644 --- a/res/drawable/ic_homepage_security.xml +++ b/res/drawable/ic_homepage_security.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_sound.xml b/res/drawable/ic_homepage_sound.xml index 21995c5c8ff..a15f4c634e5 100644 --- a/res/drawable/ic_homepage_sound.xml +++ b/res/drawable/ic_homepage_sound.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_storage.xml b/res/drawable/ic_homepage_storage.xml index 5e5c3ab54d7..11032fa61ed 100644 --- a/res/drawable/ic_homepage_storage.xml +++ b/res/drawable/ic_homepage_storage.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_support.xml b/res/drawable/ic_homepage_support.xml index 906dd6c4779..2e35e4f7d4a 100644 --- a/res/drawable/ic_homepage_support.xml +++ b/res/drawable/ic_homepage_support.xml @@ -18,7 +18,7 @@ - diff --git a/res/drawable/ic_homepage_system_dashboard.xml b/res/drawable/ic_homepage_system_dashboard.xml index 5e9f372504f..add12120ca2 100644 --- a/res/drawable/ic_homepage_system_dashboard.xml +++ b/res/drawable/ic_homepage_system_dashboard.xml @@ -18,7 +18,7 @@ - diff --git a/res/values/arrays.xml b/res/values/arrays.xml index b8bd424bfc1..ffe0aa54535 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1398,25 +1398,4 @@ @string/enhanced_4g_lte_mode_summary_4g_calling - - - @color/bt_color_icon_1 - @color/bt_color_icon_2 - @color/bt_color_icon_3 - @color/bt_color_icon_4 - @color/bt_color_icon_5 - @color/bt_color_icon_6 - @color/bt_color_icon_7 - - - - - @color/bt_color_bg_1 - @color/bt_color_bg_2 - @color/bt_color_bg_3 - @color/bt_color_bg_4 - @color/bt_color_bg_5 - @color/bt_color_bg_6 - @color/bt_color_bg_7 - diff --git a/res/values/colors.xml b/res/values/colors.xml index ff040ee2df4..b547b5d4095 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -141,21 +141,4 @@ #b3ffffff - #48a50e0e - #480d652d - #48e37400 - #48b06000 - #489c166b - #48681da8 - #48007b83 - - #fad2cf - #ceead6 - #feefc3 - #fedfc8 - #fdcfe8 - #e9d2fd - #cbf0f8 - - #1f000000 \ No newline at end of file diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 4a65bc9f8c9..886f5581a3c 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -405,12 +405,6 @@ 48dp - - 24dp - - - 1dp - 4dp diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java index fe73a2ecc8b..47d56bcd53c 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java @@ -26,6 +26,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.widget.EntityHeaderController; +import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager; import com.android.settingslib.bluetooth.LocalBluetoothManager; @@ -65,8 +66,8 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController } protected void setHeaderProperties() { - final Pair pair = Utils.getBtRainbowDrawableWithDescription(mContext, - mCachedDevice); + final Pair pair = + BluetoothUtils.getBtRainbowDrawableWithDescription(mContext, mCachedDevice); String summaryText = mCachedDevice.getConnectionSummary(); // If both the hearing aids are connected, two device status should be shown. // If Second Summary is unavailable, to set it to null. diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java index 4a7ca27c178..f67822d088a 100644 --- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java +++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java @@ -38,6 +38,7 @@ import androidx.preference.PreferenceViewHolder; import com.android.settings.R; import com.android.settings.overlay.FeatureFactory; import com.android.settings.widget.GearPreference; +import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -129,8 +130,8 @@ public final class BluetoothDevicePreference extends GearPreference implements // Null check is done at the framework setSummary(mCachedDevice.getConnectionSummary()); - final Pair pair = Utils - .getBtRainbowDrawableWithDescription(getContext(), mCachedDevice); + final Pair pair = + BluetoothUtils.getBtRainbowDrawableWithDescription(getContext(), mCachedDevice); if (pair.first != null) { setIcon(pair.first); contentDescription = pair.second; diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java index ecf40b61074..a86e1d50efa 100755 --- a/src/com/android/settings/bluetooth/Utils.java +++ b/src/com/android/settings/bluetooth/Utils.java @@ -21,33 +21,20 @@ import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothProfile; import android.content.Context; import android.content.DialogInterface; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.provider.MediaStore; import android.provider.Settings; import android.util.Log; -import android.util.Pair; import android.widget.Toast; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.AlertDialog; import com.android.settings.R; -import com.android.settings.homepage.AdaptiveIconShapeDrawable; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.widget.AdaptiveIcon; -import com.android.settings.widget.AdaptiveOutlineDrawable; import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.BluetoothUtils.ErrorListener; -import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.bluetooth.LocalBluetoothManager.BluetoothManagerCallback; -import java.io.IOException; - /** * Utils is a helper class that contains constants for various * Android resource IDs, debug logging flags, and static methods @@ -193,54 +180,4 @@ public final class Utils { return META_INT_ERROR; } } - - /** - * Get colorful bluetooth icon with description - */ - public static Pair getBtRainbowDrawableWithDescription(Context context, - CachedBluetoothDevice cachedDevice) { - final Pair pair = BluetoothUtils.getBtClassDrawableWithDescription( - context, cachedDevice); - final boolean untetheredHeadset = Utils.getBooleanMetaData(cachedDevice.getDevice(), - BluetoothDevice.METADATA_IS_UNTHETHERED_HEADSET); - final int iconSize = context.getResources().getDimensionPixelSize( - R.dimen.bt_nearby_icon_size); - final Resources resources = context.getResources(); - - // Deal with untethered headset - if (untetheredHeadset) { - final String uriString = Utils.getStringMetaData(cachedDevice.getDevice(), - BluetoothDevice.METADATA_MAIN_ICON); - final Uri iconUri = uriString != null ? Uri.parse(uriString) : null; - if (iconUri != null) { - try { - final Bitmap bitmap = MediaStore.Images.Media.getBitmap( - context.getContentResolver(), iconUri); - if (bitmap != null) { - final Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, iconSize, - iconSize, false); - bitmap.recycle(); - final AdaptiveOutlineDrawable drawable = new AdaptiveOutlineDrawable( - resources, resizedBitmap); - return new Pair<>(drawable, pair.second); - } - } catch (IOException e) { - Log.e(TAG, "Failed to get drawable for: " + iconUri, e); - } - } - } - - // Deal with normal headset - final int[] iconFgColors = resources.getIntArray(R.array.bt_icon_fg_colors); - final int[] iconBgColors = resources.getIntArray(R.array.bt_icon_bg_colors); - - // get color index based on mac address - final int index = Math.abs(cachedDevice.getAddress().hashCode()) % iconBgColors.length; - pair.first.setColorFilter(iconFgColors[index], PorterDuff.Mode.SRC_ATOP); - final Drawable adaptiveIcon = new AdaptiveIcon(context, pair.first); - ((AdaptiveIcon) adaptiveIcon).setBackgroundColor(iconBgColors[index]); - - return new Pair<>(adaptiveIcon, pair.second); - } - } diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java index 744cbd2f566..2cac4c2a87a 100644 --- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java @@ -46,12 +46,12 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.dashboard.profileselector.ProfileSelectDialog; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.widget.AdaptiveIcon; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; import com.android.settingslib.drawer.TileUtils; import com.android.settingslib.utils.ThreadUtils; +import com.android.settingslib.widget.AdaptiveIcon; import java.util.List; import java.util.Map; diff --git a/src/com/android/settings/homepage/AdaptiveIconShapeDrawable.java b/src/com/android/settings/homepage/AdaptiveIconShapeDrawable.java deleted file mode 100644 index 62b768a6460..00000000000 --- a/src/com/android/settings/homepage/AdaptiveIconShapeDrawable.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.android.settings.homepage; - -import android.content.res.Resources; -import android.content.res.Resources.Theme; -import android.graphics.Path; -import android.graphics.drawable.AdaptiveIconDrawable; -import android.graphics.drawable.ShapeDrawable; -import android.graphics.drawable.shapes.PathShape; -import android.util.AttributeSet; -import android.util.PathParser; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import java.io.IOException; - -/** - * Draws a filled {@link ShapeDrawable} using the path from {@link AdaptiveIconDrawable}. - */ -public class AdaptiveIconShapeDrawable extends ShapeDrawable { - public AdaptiveIconShapeDrawable() { - super(); - } - - public AdaptiveIconShapeDrawable(Resources resources) { - super(); - init(resources); - } - - @Override - public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme) - throws XmlPullParserException, IOException { - super.inflate(r, parser, attrs, theme); - init(r); - } - - private void init(Resources resources) { - final float pathSize = AdaptiveIconDrawable.MASK_SIZE; - final Path path = new Path(PathParser.createPathFromPathData( - resources.getString(com.android.internal.R.string.config_icon_mask))); - setShape(new PathShape(path, pathSize, pathSize)); - } -} diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java index a760effcad5..8267df01b0a 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java @@ -46,6 +46,7 @@ import com.android.settings.slices.CustomSliceRegistry; import com.android.settings.slices.CustomSliceable; import com.android.settings.slices.SliceBroadcastReceiver; import com.android.settings.slices.SliceBuilderUtils; +import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.LocalBluetoothManager; @@ -211,8 +212,7 @@ public class BluetoothDevicesSlice implements CustomSliceable { @VisibleForTesting IconCompat getBluetoothDeviceIcon(CachedBluetoothDevice device) { final Pair pair = - com.android.settings.bluetooth.Utils.getBtRainbowDrawableWithDescription(mContext, - device); + BluetoothUtils.getBtRainbowDrawableWithDescription(mContext, device); final Drawable drawable = pair.first; // Use default bluetooth icon if can't get icon. diff --git a/src/com/android/settings/widget/AdaptiveIcon.java b/src/com/android/settings/widget/AdaptiveIcon.java deleted file mode 100644 index 04b33ae8d1e..00000000000 --- a/src/com/android/settings/widget/AdaptiveIcon.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.widget; - -import static androidx.annotation.VisibleForTesting.NONE; - -import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_ARGB; -import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_HINT; - -import android.content.Context; -import android.content.pm.PackageManager; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; -import android.os.Bundle; -import android.util.Log; - -import androidx.annotation.VisibleForTesting; - -import com.android.settings.R; -import com.android.settings.homepage.AdaptiveIconShapeDrawable; -import com.android.settingslib.drawer.Tile; - -public class AdaptiveIcon extends LayerDrawable { - - private static final String TAG = "AdaptiveHomepageIcon"; - - @VisibleForTesting(otherwise = NONE) - int mBackgroundColor = -1; - private AdaptiveConstantState mAdaptiveConstantState; - - public AdaptiveIcon(Context context, Drawable foreground) { - super(new Drawable[]{ - new AdaptiveIconShapeDrawable(context.getResources()), - foreground - }); - final int insetPx = context.getResources() - .getDimensionPixelSize(R.dimen.dashboard_tile_foreground_image_inset); - setLayerInset(1 /* index */, insetPx, insetPx, insetPx, insetPx); - mAdaptiveConstantState = new AdaptiveConstantState(context, foreground); - } - - public void setBackgroundColor(Context context, Tile tile) { - final Bundle metaData = tile.getMetaData(); - try { - if (metaData != null) { - // Load from bg.argb first - int bgColor = metaData.getInt(META_DATA_PREFERENCE_ICON_BACKGROUND_ARGB, - 0 /* default */); - // Not found, load from bg.hint - if (bgColor == 0) { - final int colorRes = metaData.getInt(META_DATA_PREFERENCE_ICON_BACKGROUND_HINT, - 0 /* default */); - if (colorRes != 0) { - bgColor = context.getPackageManager() - .getResourcesForApplication(tile.getPackageName()) - .getColor(colorRes, null /* theme */); - } - } - // If found anything, use it. - if (bgColor != 0) { - setBackgroundColor(bgColor); - return; - } - } - } catch (PackageManager.NameNotFoundException e) { - Log.e(TAG, "Failed to set background color for " + tile.getPackageName()); - } - setBackgroundColor(context.getColor(R.color.homepage_generic_icon_background)); - } - - public void setBackgroundColor(int color) { - mBackgroundColor = color; - getDrawable(0).setColorFilter(color, PorterDuff.Mode.SRC_ATOP); - Log.d(TAG, "Setting background color " + mBackgroundColor); - mAdaptiveConstantState.color = color; - } - - @Override - public ConstantState getConstantState() { - return mAdaptiveConstantState; - } - - @VisibleForTesting - static class AdaptiveConstantState extends ConstantState { - Context context; - Drawable drawable; - int color; - - public AdaptiveConstantState(Context context, Drawable drawable) { - this.context = context; - this.drawable = drawable; - } - - @Override - public Drawable newDrawable() { - final AdaptiveIcon icon = new AdaptiveIcon(context, drawable); - icon.setBackgroundColor(color); - - return icon; - } - - @Override - public int getChangingConfigurations() { - return 0; - } - } -} diff --git a/src/com/android/settings/widget/AdaptiveOutlineDrawable.java b/src/com/android/settings/widget/AdaptiveOutlineDrawable.java deleted file mode 100644 index 84c4e2f3844..00000000000 --- a/src/com/android/settings/widget/AdaptiveOutlineDrawable.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.widget; - -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Path; -import android.graphics.Rect; -import android.graphics.drawable.AdaptiveIconDrawable; -import android.graphics.drawable.DrawableWrapper; -import android.util.PathParser; - -import androidx.annotation.VisibleForTesting; - -import com.android.settings.R; -import com.android.settings.homepage.AdaptiveIconShapeDrawable; - -/** - * Adaptive outline drawable with white plain background color and black outline - */ -public class AdaptiveOutlineDrawable extends DrawableWrapper { - @VisibleForTesting - final Paint mOutlinePaint; - private Path mPath; - private final int mInsetPx; - private final Bitmap mBitmap; - - public AdaptiveOutlineDrawable(Resources resources, Bitmap bitmap) { - super(new AdaptiveIconShapeDrawable(resources)); - - getDrawable().setTint(Color.WHITE); - mPath = new Path(PathParser.createPathFromPathData( - resources.getString(com.android.internal.R.string.config_icon_mask))); - mOutlinePaint = new Paint(); - mOutlinePaint.setColor(resources.getColor(R.color.bt_outline_color, null)); - mOutlinePaint.setStyle(Paint.Style.STROKE); - mOutlinePaint.setStrokeWidth(resources.getDimension(R.dimen.adaptive_outline_stroke)); - mOutlinePaint.setAntiAlias(true); - - mInsetPx = resources - .getDimensionPixelSize(R.dimen.dashboard_tile_foreground_image_inset); - mBitmap = bitmap; - } - - @Override - public void draw(Canvas canvas) { - super.draw(canvas); - final Rect bounds = getBounds(); - final float pathSize = AdaptiveIconDrawable.MASK_SIZE; - - final float scaleX = (bounds.right - bounds.left) / pathSize; - final float scaleY = (bounds.bottom - bounds.top) / pathSize; - - final int count = canvas.save(); - canvas.scale(scaleX, scaleY); - // Draw outline - canvas.drawPath(mPath, mOutlinePaint); - canvas.restoreToCount(count); - - // Draw the foreground icon - canvas.drawBitmap(mBitmap, bounds.left + mInsetPx, bounds.top + mInsetPx, null); - } - - @Override - public int getIntrinsicHeight() { - return mBitmap.getHeight() + 2 * mInsetPx; - } - - @Override - public int getIntrinsicWidth() { - return mBitmap.getWidth() + 2 * mInsetPx; - } -} diff --git a/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java b/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java index a956518e898..ee79d612ea7 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/UtilsTest.java @@ -29,8 +29,6 @@ import android.content.Context; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.testutils.FakeFeatureFactory; -import com.android.settings.widget.AdaptiveIcon; -import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -41,7 +39,6 @@ import org.mockito.Answers; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class UtilsTest { @@ -54,8 +51,6 @@ public class UtilsTest { private Context mContext; @Mock private BluetoothDevice mBluetoothDevice; - @Mock - private CachedBluetoothDevice mCachedBluetoothDevice; private MetricsFeatureProvider mMetricsFeatureProvider; @@ -111,17 +106,4 @@ public class UtilsTest { assertThat(Utils.getBooleanMetaData(mBluetoothDevice, BluetoothDevice.METADATA_IS_UNTHETHERED_HEADSET)).isEqualTo(true); } - - @Test - public void getBtRainbowDrawableWithDescription_normalHeadset_returnAdaptiveIcon() { - when(mBluetoothDevice.getMetadata( - BluetoothDevice.METADATA_IS_UNTHETHERED_HEADSET)).thenReturn("false"); - when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice); - when(mCachedBluetoothDevice.getAddress()).thenReturn("1f:aa:bb"); - - assertThat(Utils.getBtRainbowDrawableWithDescription(RuntimeEnvironment.application, - mCachedBluetoothDevice).first).isInstanceOf( - AdaptiveIcon.class); - } - } diff --git a/tests/robotests/src/com/android/settings/widget/AdaptiveIconTest.java b/tests/robotests/src/com/android/settings/widget/AdaptiveIconTest.java deleted file mode 100644 index 1be3332c222..00000000000 --- a/tests/robotests/src/com/android/settings/widget/AdaptiveIconTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.widget; - -import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_ARGB; -import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_BACKGROUND_HINT; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import android.content.pm.ActivityInfo; -import android.graphics.Color; -import android.graphics.PorterDuff; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Icon; -import android.graphics.drawable.ShapeDrawable; -import android.os.Bundle; - -import com.android.settings.R; -import com.android.settings.homepage.AdaptiveIconShapeDrawable; -import com.android.settingslib.drawer.CategoryKey; -import com.android.settingslib.drawer.Tile; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class AdaptiveIconTest { - - private Context mContext; - private ActivityInfo mActivityInfo; - - @Before - public void setUp() { - mContext = RuntimeEnvironment.application; - mActivityInfo = new ActivityInfo(); - mActivityInfo.packageName = mContext.getPackageName(); - mActivityInfo.name = "class"; - mActivityInfo.metaData = new Bundle(); - } - - @Test - public void createIcon_shouldSetBackgroundAndInset() { - final AdaptiveIcon icon = - new AdaptiveIcon(mContext, new ColorDrawable(Color.BLACK)); - - assertThat(icon.getNumberOfLayers()).isEqualTo(2); - assertThat(icon.getDrawable(0)).isInstanceOf(AdaptiveIconShapeDrawable.class); - } - - @Test - public void setBackgroundColor_shouldUpdateColorFilter() { - final AdaptiveIcon icon = - spy(new AdaptiveIcon(mContext, new ColorDrawable(Color.BLACK))); - final ShapeDrawable background = mock(ShapeDrawable.class); - when(icon.getDrawable(0)).thenReturn(background); - - icon.setBackgroundColor(Color.BLUE); - - verify(background).setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_ATOP); - } - - @Test - public void setBackgroundColor_externalTileWithBackgroundColorRawValue_shouldUpdateIcon() { - final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE)); - mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_ICON_BACKGROUND_ARGB, 0xff0000); - doReturn(Icon.createWithResource(mContext, R.drawable.ic_settings_accent)) - .when(tile).getIcon(mContext); - final AdaptiveIcon icon = - new AdaptiveIcon(mContext, new ColorDrawable(Color.BLACK)); - - icon.setBackgroundColor(mContext, tile); - assertThat(icon.mBackgroundColor).isEqualTo(0xff0000); - } - - @Test - public void setBackgroundColor_tileWithoutBackgroundColor_shouldSetDefaultBackgroundColor() { - final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE)); - doReturn(Icon.createWithResource(mContext, R.drawable.ic_settings_accent)) - .when(tile).getIcon(mContext); - final AdaptiveIcon icon = - new AdaptiveIcon(mContext, new ColorDrawable(Color.BLACK)); - - icon.setBackgroundColor(mContext, tile); - - assertThat(icon.mBackgroundColor).isEqualTo( - mContext.getColor(R.color.homepage_generic_icon_background)); - } - - @Test - public void onBindTile_externalTileWithBackgroundColorHint_shouldUpdateIcon() { - final Tile tile = spy(new Tile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE)); - mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_ICON_BACKGROUND_HINT, - R.color.material_blue_500); - doReturn(Icon.createWithResource(mContext, R.drawable.ic_settings_accent)) - .when(tile).getIcon(mContext); - - final AdaptiveIcon icon = - new AdaptiveIcon(mContext, new ColorDrawable(Color.BLACK)); - icon.setBackgroundColor(mContext, tile); - - assertThat(icon.mBackgroundColor) - .isEqualTo(mContext.getColor(R.color.material_blue_500)); - } - - @Test - public void getConstantState_returnCorrectState() { - final AdaptiveIcon icon = - new AdaptiveIcon(mContext, new ColorDrawable(Color.BLACK)); - icon.setBackgroundColor(Color.YELLOW); - - final AdaptiveIcon.AdaptiveConstantState state = - (AdaptiveIcon.AdaptiveConstantState) icon.getConstantState(); - - assertThat(state.color).isEqualTo(Color.YELLOW); - assertThat(state.context).isEqualTo(mContext); - } -} diff --git a/tests/robotests/src/com/android/settings/widget/AdaptiveOutlineDrawableTest.java b/tests/robotests/src/com/android/settings/widget/AdaptiveOutlineDrawableTest.java deleted file mode 100644 index f21fc34e2a8..00000000000 --- a/tests/robotests/src/com/android/settings/widget/AdaptiveOutlineDrawableTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.widget; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.res.Resources; -import android.graphics.Paint; - -import com.android.settings.R; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class AdaptiveOutlineDrawableTest { - - @Test - public void constructor_initPaint() { - final Resources resources = RuntimeEnvironment.application.getResources(); - final AdaptiveOutlineDrawable drawable = new AdaptiveOutlineDrawable(resources, null); - - assertThat(drawable.mOutlinePaint.getStyle()).isEqualTo(Paint.Style.STROKE); - assertThat(drawable.mOutlinePaint.getStrokeWidth()).isWithin(0.01f).of( - resources.getDimension(R.dimen.adaptive_outline_stroke)); - } - -}