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

Commit 19135546 authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Data roaming warning only when turn ON

handlePreferenceTreeClick() goes after setChecked() however
configuration may have been altered within setChecked().

Follow same design within MobileDataPreferenceController to fix this
issue. A boolean state will be maintained as the condition when warning
dialog is required when click.

Bug: 148491064
Test: m RunSettingsRoboTests -j ROBOTEST_FILTER=RoamingPreferenceControllerTest
Change-Id: I63c4e2149b0e9efa16fd9ee402652c67eb9c5a4d
parent 040c548d
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
@@ -111,20 +110,10 @@ public class RoamingPreferenceController extends TelephonyTogglePreferenceContro
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
    public boolean setChecked(boolean isChecked) {
        if (isDialogNeeded()) {
            showDialog();
            }
            return true;
        }

        return false;
    }

    @Override
    public boolean setChecked(boolean isChecked) {
        if (!isDialogNeeded()) {
        } else {
            // Update data directly if we don't need dialog
            mTelephonyManager.setDataRoamingEnabled(isChecked);
            return true;
+2 −2
Original line number Diff line number Diff line
@@ -117,10 +117,10 @@ public class RoamingPreferenceControllerTest {
    }

    @Test
    public void handlePreferenceTreeClick_needDialog_showDialog() {
    public void setChecked_needDialog_showDialog() {
        doReturn(true).when(mController).isDialogNeeded();

        mController.handlePreferenceTreeClick(mPreference);
        mController.setChecked(true);

        verify(mFragmentManager).beginTransaction();
    }