Snap for 7102381 from 7d0e81bce9 to sc-v2-release

Change-Id: Id1bad83065094eded5f0389f0efdf38ae70353b1
This commit is contained in:
android-build-team Robot
2021-01-26 02:11:50 +00:00
7 changed files with 153 additions and 9 deletions

View File

@@ -16,7 +16,8 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="app_notifications">
android:key="app_notifications"
android:title="@string/notifications_title">
<com.android.settingslib.widget.LayoutPreference
android:key="pref_app_header"

View File

@@ -24,6 +24,7 @@ import static com.android.settings.slices.CustomSliceRegistry.PROVIDER_MODEL_SLI
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
@@ -35,6 +36,7 @@ import androidx.slice.builders.ListBuilder;
import com.android.settings.R;
import com.android.settings.SubSettings;
import com.android.settings.Utils;
import com.android.settings.network.telephony.MobileNetworkUtils;
import com.android.settings.network.telephony.NetworkProviderWorker;
import com.android.settings.slices.CustomSliceable;
@@ -105,12 +107,18 @@ public class ProviderModelSlice extends WifiSlice {
final boolean hasCarrier = mHelper.hasCarrier();
log("hasCarrier: " + hasCarrier);
// First section: Add a Wi-Fi item which state is connected.
final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
if (connectedWifiItem != null) {
log("get Wi-Fi item witch is connected");
listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
// First section: Add a Ethernet or Wi-Fi item which state is connected.
if (isEthernetConnected()) {
log("get Ethernet item which is connected");
listBuilder.addRow(createEthernetRow());
maxListSize--;
} else {
final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
if (connectedWifiItem != null) {
log("get Wi-Fi item which is connected");
listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
maxListSize--;
}
}
// Second section: Add a carrier item.
@@ -228,4 +236,25 @@ public class ProviderModelSlice extends WifiSlice {
NetworkProviderWorker getWorker() {
return SliceBackgroundWorker.getInstance(getUri());
}
private boolean isEthernetConnected() {
final NetworkProviderWorker worker = getWorker();
if (worker == null) {
return false;
}
return worker.isEthernetConnected();
}
@VisibleForTesting
ListBuilder.RowBuilder createEthernetRow() {
final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder();
final Drawable drawable = mContext.getDrawable(R.drawable.ic_settings_ethernet);
if (drawable != null) {
drawable.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorAccent));
rowBuilder.setTitleItem(Utils.createIconWithDrawable(drawable), ListBuilder.ICON_IMAGE);
}
return rowBuilder
.setTitle(mContext.getText(R.string.ethernet))
.setSubtitle(mContext.getText(R.string.cannot_switch_networks_while_connected));
}
}

View File

@@ -16,6 +16,7 @@
package com.android.settings.network.telephony;
import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
import static com.android.settingslib.mobile.MobileMappings.getIconKey;
import static com.android.settingslib.mobile.MobileMappings.mapIconSets;
@@ -33,6 +34,7 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting;
import com.android.settings.network.InternetUpdater;
import com.android.settings.network.MobileDataContentObserver;
import com.android.settings.network.MobileDataEnabledListener;
import com.android.settings.network.SubscriptionsChangeListener;
@@ -50,7 +52,8 @@ import java.util.concurrent.Executor;
public class NetworkProviderWorker extends WifiScanWorker implements
SignalStrengthListener.Callback, MobileDataEnabledListener.Client,
DataConnectivityListener.Client,
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
SubscriptionsChangeListener.SubscriptionsChangeListenerClient,
InternetUpdater.OnInternetTypeChangedListener {
private static final String TAG = "NetworkProviderWorker";
private static final int PROVIDER_MODEL_DEFAULT_EXPANDED_ROW_COUNT = 4;
private DataContentObserver mMobileDataObserver;
@@ -67,6 +70,8 @@ public class NetworkProviderWorker extends WifiScanWorker implements
private TelephonyDisplayInfo mTelephonyDisplayInfo =
new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN,
TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
private InternetUpdater mInternetUpdater;
private @InternetUpdater.InternetType int mInternetType;
public NetworkProviderWorker(Context context, Uri uri) {
super(context, uri);
@@ -85,6 +90,9 @@ public class NetworkProviderWorker extends WifiScanWorker implements
mConnectivityListener = new DataConnectivityListener(context, this);
mSignalStrengthListener = new SignalStrengthListener(context, this);
mConfig = getConfig(mContext);
mInternetUpdater = new InternetUpdater(mContext, getLifecycle(), this);
mInternetType = mInternetUpdater.getInternetType();
}
@Override
@@ -260,4 +268,28 @@ public class NetworkProviderWorker extends WifiScanWorker implements
return updateNetworkTypeName(mContext, mConfig, mTelephonyDisplayInfo,
mDefaultDataSubid);
}
/**
* Called when internet type is changed.
*
* @param internetType the internet type
*/
public void onInternetTypeChanged(@InternetUpdater.InternetType int internetType) {
if (mInternetType == internetType) {
return;
}
boolean changeWithEthernet =
mInternetType == INTERNET_ETHERNET || internetType == INTERNET_ETHERNET;
mInternetType = internetType;
if (changeWithEthernet) {
updateSlice();
}
}
/**
* Returns true, if the ethernet network is connected.
*/
public boolean isEthernetConnected() {
return mInternetType == INTERNET_ETHERNET;
}
}

View File

@@ -16,6 +16,7 @@
package com.android.settings.notification.app;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.app.NotificationManager.IMPORTANCE_NONE;
import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
@@ -107,7 +108,7 @@ public class BlockPreferenceController extends NotificationPreferenceController
? IMPORTANCE_NONE
: isDefaultChannel()
? IMPORTANCE_UNSPECIFIED
: mChannel.getOriginalImportance();
: Math.max(mChannel.getOriginalImportance(), IMPORTANCE_LOW);
mChannel.setImportance(importance);
saveChannel();
}

View File

@@ -339,7 +339,9 @@ public class ChannelListPreferenceController extends NotificationPreferenceContr
channelPref.setOnPreferenceChangeListener(
(preference, o) -> {
boolean value = (Boolean) o;
int importance = value ? channel.getOriginalImportance() : IMPORTANCE_NONE;
int importance = value
? Math.max(channel.getOriginalImportance(), IMPORTANCE_LOW)
: IMPORTANCE_NONE;
channel.setImportance(importance);
channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
PrimarySwitchPreference channelPref1 = (PrimarySwitchPreference) preference;

View File

@@ -262,6 +262,30 @@ public class ProviderModelSliceTest {
verify(mListBuilder, times(2)).addRow(any(ListBuilder.RowBuilder.class));
}
@Test
@UiThreadTest
public void getSlice_connectedEthernet_getOneEthernetAndOneCarrierAndTwoWiFi() {
mWifiList.clear();
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
mWifiList.add(mMockWifiSliceItem1);
mockWifiItemCondition(mMockWifiSliceItem2, "wifi2", "wifi2",
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi2_key", true);
mWifiList.add(mMockWifiSliceItem2);
mMockNetworkProviderWorker.updateSelfResults(mWifiList);
when(mProviderModelSliceHelper.isAirplaneModeEnabled()).thenReturn(false);
when(mProviderModelSliceHelper.hasCarrier()).thenReturn(true);
when(mProviderModelSliceHelper.isDataSimActive()).thenReturn(true);
when(mMockNetworkProviderWorker.isEthernetConnected()).thenReturn(true);
final Slice slice = mMockProviderModelSlice.getSlice();
assertThat(slice).isNotNull();
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
}
@Test
public void providerModelSlice_hasCorrectUri() {
assertThat(mMockProviderModelSlice.getUri()).isEqualTo(PROVIDER_MODEL_SLICE_URI);
@@ -333,6 +357,7 @@ public class ProviderModelSliceTest {
public class MockProviderModelSlice extends ProviderModelSlice {
private MockNetworkProviderWorker mNetworkProviderWorker;
private boolean mHasCreateEthernetRow;
MockProviderModelSlice(Context context, MockNetworkProviderWorker networkProviderWorker) {
super(context);
@@ -348,6 +373,16 @@ public class ProviderModelSliceTest {
NetworkProviderWorker getWorker() {
return mNetworkProviderWorker;
}
@Override
ListBuilder.RowBuilder createEthernetRow() {
mHasCreateEthernetRow = true;
return super.createEthernetRow();
}
public boolean hasCreateEthernetRow() {
return mHasCreateEthernetRow;
}
}
@Test

View File

@@ -16,6 +16,9 @@
package com.android.settings.network.telephony;
import static com.android.settings.network.InternetUpdater.INTERNET_CELLULAR;
import static com.android.settings.network.InternetUpdater.INTERNET_ETHERNET;
import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
import static com.android.settings.slices.CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI;
import static com.google.common.truth.Truth.assertThat;
@@ -225,6 +228,47 @@ public class NetworkProviderWorkerTest {
assertThat(mMockNetworkProviderWorker.hasNotification()).isTrue();
}
@Test
public void onInternetTypeChanged_connectedFromWifiToEthernet_callUpdateSlice() {
mMockNetworkProviderWorker.receiveNotification(false);
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_WIFI);
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_ETHERNET);
assertThat(mMockNetworkProviderWorker.hasNotification()).isTrue();
}
@Test
public void onInternetTypeChanged_connectedFromEthernetToCarrier_callUpdateSlice() {
mMockNetworkProviderWorker.receiveNotification(false);
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_ETHERNET);
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mMockNetworkProviderWorker.hasNotification()).isTrue();
}
@Test
public void isEthernetConnected_connectedEthernet_shouldBeTrue() {
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_ETHERNET);
assertThat(mMockNetworkProviderWorker.isEthernetConnected()).isTrue();
}
@Test
public void isEthernetConnected_connectedWifi_shouldBeFalse() {
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_WIFI);
assertThat(mMockNetworkProviderWorker.isEthernetConnected()).isFalse();
}
@Test
public void isEthernetConnected_connectedCarrier_shouldBeFalse() {
mMockNetworkProviderWorker.onInternetTypeChanged(INTERNET_CELLULAR);
assertThat(mMockNetworkProviderWorker.isEthernetConnected()).isFalse();
}
public class MockNetworkProviderWorker extends NetworkProviderWorker {
private boolean mHasNotification = false;
private int mDefaultDataSubId = 1;