diff --git a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java index fd57bf59b1a..a334aeb72fb 100644 --- a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java +++ b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java @@ -50,6 +50,7 @@ public class NetworkOperatorPreference extends Preference { private List mForbiddenPlmns; private int mLevel = LEVEL_NONE; private boolean mShow4GForLTE; + private boolean mUseNewApi; // The following constants are used to draw signal icon. private static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT); @@ -61,6 +62,8 @@ public class NetworkOperatorPreference extends Preference { mCellInfo = cellinfo; mForbiddenPlmns = forbiddenPlmns; mShow4GForLTE = show4GForLTE; + mUseNewApi = context.getResources().getBoolean( + com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI); refresh(); } @@ -114,7 +117,9 @@ public class NetworkOperatorPreference extends Preference { } private void updateIcon(int level) { - if (level < 0 || level >= NUMBER_OF_LEVELS) return; + if (!mUseNewApi || level < 0 || level >= NUMBER_OF_LEVELS) { + return; + } Context context = getContext(); SignalDrawable signalDrawable = new SignalDrawable(getContext()); signalDrawable.setLevel( diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java new file mode 100644 index 00000000000..704dd95f00c --- /dev/null +++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkOperatorPreferenceTest.java @@ -0,0 +1,70 @@ +/* + * 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.network.telephony; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.never; +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.res.Resources; +import android.graphics.drawable.Drawable; +import android.telephony.CellInfo; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.RuntimeEnvironment; + +import java.util.ArrayList; + +@RunWith(RobolectricTestRunner.class) +public class NetworkOperatorPreferenceTest { + private static final int LEVEL = 2; + + @Mock + private Resources mResources; + @Mock + private CellInfo mCellInfo; + private Context mContext; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + + mContext = spy(RuntimeEnvironment.application); + when(mContext.getResources()).thenReturn(mResources); + } + + @Test + public void setIcon_useOldApi_doNothing() { + when(mResources.getBoolean(com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI)) + .thenReturn(false); + final NetworkOperatorPreference preference = spy( + new NetworkOperatorPreference(mCellInfo, mContext, + new ArrayList<>() /* forbiddenPlmns */, false /* show4GForLTE */)); + + preference.setIcon(LEVEL); + + verify(preference, never()).setIcon(any(Drawable.class)); + } +}