Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a6f46b9 authored by Zhen Zhang's avatar Zhen Zhang Committed by Automerger Merge Worker
Browse files

Merge "Fix bug: "Hotspot & Tethering" preference doesn't get updated" into rvc-dev am: 05ae65b7

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/12052065

Change-Id: I01593cccb615418cfc93fc96d7912600bbc3821d
parents 267a1df2 05ae65b7
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.Lifecycle.Event;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -93,6 +94,12 @@ public class AllInOneTetherPreferenceController extends BasePreferenceController
        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mPreference = screen.findPreference(mPreferenceKey);
    }

    @Override
    public int getAvailabilityStatus() {
        if (!TetherUtil.isTetherAvailable(mContext)
+14 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;

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;
@@ -35,6 +36,9 @@ import android.bluetooth.BluetoothPan;
import android.bluetooth.BluetoothProfile;
import android.content.Context;

import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.widget.MasterSwitchPreference;

@@ -109,13 +113,13 @@ public class AllInOneTetherPreferenceControllerTest {
        });
    }

    @Mock
    private Context mContext;
    @Mock
    private BluetoothAdapter mBluetoothAdapter;
    @Mock
    private MasterSwitchPreference mPreference;

    private static final String PREF_KEY = "tether";
    private AllInOneTetherPreferenceController mController;
    private final int mTetherState;
    private final int mSummaryResId;
@@ -127,11 +131,16 @@ public class AllInOneTetherPreferenceControllerTest {

    @Before
    public void setUp() {
        mContext = ApplicationProvider.getApplicationContext();
        MockitoAnnotations.initMocks(this);
        mController = spy(AllInOneTetherPreferenceController.class);
        ReflectionHelpers.setField(mController, "mContext", mContext);
        ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
        ReflectionHelpers.setField(mController, "mPreference", mPreference);
        ReflectionHelpers.setField(mController, "mPreferenceKey", PREF_KEY);
        PreferenceScreen screen = mock(PreferenceScreen.class);
        when(screen.findPreference(PREF_KEY)).thenReturn(mPreference);
        doReturn(mController.AVAILABLE).when(mController).getAvailabilityStatus();
        mController.displayPreference(screen);
    }

    @Test
@@ -169,5 +178,8 @@ public class AllInOneTetherPreferenceControllerTest {
    public void getSummary_afterTetherStateChanged() {
        mController.onTetherStateUpdated(mTetherState);
        assertThat(mController.getSummary()).isEqualTo(mContext.getString(mSummaryResId));

        verify(mController).updateState(mPreference);
        verify(mPreference).setSummary(mContext.getString(mSummaryResId));
    }
}