Merge "Fix the Night Light page UI shrinking" into rvc-dev
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index abd45af..dc23c3d 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -423,8 +423,9 @@
<!-- Output switcher panel related dimensions -->
<dimen name="output_switcher_slice_padding_top">11dp</dimen>
- <dimen name="output_switcher_slice_max_height">506dp</dimen>
+ <dimen name="output_switcher_slice_max_height">458dp</dimen>
<dimen name="output_switcher_panel_icon_size">52dp</dimen>
+ <dimen name="output_switcher_panel_icon_corner_radius">16dp</dimen>
<!-- Text padding for EmptyTextSettings -->
<dimen name="empty_text_padding">24dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9a56264..d814ebb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -11322,7 +11322,7 @@
<string name="platform_compat_default_disabled_title">Default disabled changes</string>
<!-- Title for target SDK gated app compat changes category (do not translate 'targetSdkVersion') [CHAR LIMIT=50] -->
<string name="platform_compat_target_sdk_title">Enabled for targetSdkVersion > <xliff:g id="number" example="29">%d</xliff:g></string>
- <!-- Title for the dialog shown when no debuggable apps are available [CHAR LIMIT=20] -->
+ <!-- Title for the dialog shown when no debuggable apps are available [CHAR LIMIT=30] -->
<string name="platform_compat_dialog_title_no_apps">No apps available</string>
<!-- Explanatory text shown when no debuggable apps are available [CHAR LIMIT=NONE] -->
<string name="platform_compat_dialog_text_no_apps">App compatibility changes can only be modified for debuggable apps. Install a debuggable app and try again.</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index cbdd980..c74a1a2 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -587,6 +587,8 @@
<item name="titleItemStartPadding">10dp</item>
<!-- Layout is 48dp and actual icon size is 48-(iconSize/2) -->
<item name="iconSize">12dp</item>
+ <!-- RecycleView item animator -->
+ <item name="disableRecyclerViewItemAnimator">true</item>
</style>
<style name="DisclaimerPositiveButton" parent="@style/SudGlifButton.Primary">
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index e5fd340..64919d9 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -92,8 +92,11 @@
import android.widget.ListView;
import android.widget.TabWidget;
+import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.core.graphics.drawable.IconCompat;
+import androidx.core.graphics.drawable.RoundedBitmapDrawable;
+import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Lifecycle;
import androidx.preference.Preference;
@@ -1113,4 +1116,25 @@
context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
}
+
+ /**
+ * 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/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index a05d87d..370bdfb 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -525,7 +525,6 @@
if (overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE
|| overrideNetworkType == TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA) {
dataNetworkTypeName = "NR NSA";
- voiceNetworkTypeName = "NR NSA";
}
boolean show4GForLTE = false;
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index d30fe59..e4a644c 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -184,6 +184,10 @@
@VisibleForTesting
List<ContextualCard> filterEligibleCards(List<ContextualCard> candidates) {
+ if (candidates.isEmpty()) {
+ return candidates;
+ }
+
final ExecutorService executor = Executors.newFixedThreadPool(candidates.size());
final List<ContextualCard> cards = new ArrayList<>();
List<Future<ContextualCard>> eligibleCards = new ArrayList<>();
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index d8dbb34..6a296b7 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -116,7 +116,11 @@
if (metadata != null) {
final Bitmap bitmap = metadata.getDescription().getIconBitmap();
if (bitmap != null) {
- return IconCompat.createWithBitmap(bitmap);
+ final Bitmap roundBitmap = Utils.convertCornerRadiusBitmap(mContext, bitmap,
+ (float) mContext.getResources().getDimensionPixelSize(
+ R.dimen.output_switcher_panel_icon_corner_radius));
+
+ return IconCompat.createWithBitmap(roundBitmap);
}
}
Log.d(TAG, "Media meta data does not contain icon information");
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index 7616c4b..8dd8d7a 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -214,15 +214,7 @@
public void onReceive(Context context, Intent intent) {
switch (intent.getAction()) {
case WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION:
- if (!intent.getBooleanExtra(WifiManager.EXTRA_MULTIPLE_NETWORKS_CHANGED,
- false /* defaultValue */)) {
- // only one network changed
- WifiConfiguration wifiConfiguration = intent
- .getParcelableExtra(WifiManager.EXTRA_WIFI_CONFIGURATION);
- if (mAccessPoint.matches(wifiConfiguration)) {
- mWifiConfig = wifiConfiguration;
- }
- }
+ updateMatchingWifiConfig();
// fall through
case WifiManager.NETWORK_STATE_CHANGED_ACTION:
case WifiManager.RSSI_CHANGED_ACTION:
@@ -230,6 +222,17 @@
break;
}
}
+
+ private void updateMatchingWifiConfig() {
+ // use getPrivilegedConfiguredNetworks() to get Passpoint & other ephemeral networks
+ for (WifiConfiguration wifiConfiguration :
+ mWifiManager.getPrivilegedConfiguredNetworks()) {
+ if (mAccessPoint.matches(wifiConfiguration)) {
+ mWifiConfig = wifiConfiguration;
+ break;
+ }
+ }
+ }
};
private final NetworkRequest mNetworkRequest = new NetworkRequest.Builder()
diff --git a/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java b/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java
index be86b6e..7a3243b 100644
--- a/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java
@@ -232,13 +232,20 @@
public void onSlicePinned_packageUpdated_checkPackageName() {
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
+
mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI1);
+ mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class);
+ when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName())
+ .thenReturn(TEST_DEVICE_PACKAGE_NAME1);
mMediaDeviceUpdateWorker.onSlicePinned();
assertThat(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName()).matches(
TEST_DEVICE_PACKAGE_NAME1);
mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI2);
+ mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class);
+ when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName())
+ .thenReturn(TEST_DEVICE_PACKAGE_NAME2);
mMediaDeviceUpdateWorker.onSlicePinned();
assertThat(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName()).matches(
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
index 423c7ac..d9b2247 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorWorkerTest.java
@@ -121,10 +121,12 @@
@Test
public void onSlicePinned_packageUpdated_checkPackageName() {
+ mMediaOutputIndicatorWorker.mLocalMediaManager = mLocalMediaManager;
initPlayback();
when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
+ when(mLocalMediaManager.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
mMediaOutputIndicatorWorker.onSlicePinned();
waitForLocalMediaManagerInit();
@@ -132,7 +134,7 @@
TEST_PACKAGE_NAME);
when(mMediaController.getPackageName()).thenReturn(TEST_PACKAGE_NAME2);
- mMediaOutputIndicatorWorker.mLocalMediaManager = null;
+ when(mLocalMediaManager.getPackageName()).thenReturn(TEST_PACKAGE_NAME2);
mMediaOutputIndicatorWorker.onSlicePinned();
waitForLocalMediaManagerInit();
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index 0fa249d..2f0d60a 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -270,23 +270,27 @@
@Test
public void onBindSlice_nightModeChanged_shouldReloadTheme() {
- mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_YES;
-
+ mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_NO;
final SliceData data = getDummyData();
mProvider.mSliceWeakDataCache.put(data.getUri(), data);
mProvider.onBindSlice(data.getUri());
+ mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_YES;
+ mProvider.onBindSlice(data.getUri());
+
assertThat(ShadowTheme.isThemeRebased()).isTrue();
}
@Test
public void onBindSlice_nightModeNotChanged_shouldNotReloadTheme() {
mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_NO;
-
SliceData data = getDummyData();
mProvider.mSliceWeakDataCache.put(data.getUri(), data);
mProvider.onBindSlice(data.getUri());
+ mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_NO;
+ mProvider.onBindSlice(data.getUri());
+
assertThat(ShadowTheme.isThemeRebased()).isFalse();
}