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

Commit 101f0f74 authored by Yuchen's avatar Yuchen
Browse files

[Catalyst] Migrate AdaptiveConnection preference.

Bug: 368355361
Flag: com.android.settings.flags.catalyst_adaptive_connectivity
Test: Manual testing
atest -c AdaptiveConnectivityTogglePreferenceTest;
atest AdaptiveConnectivityScreenTest

Change-Id: I29e6d037ce5acbe03970aa519357ee1e4c021dbe
parent 0478218d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@
        settings:lottie_rawRes="@drawable/ic_enhanced_connectivity"/>

    <com.android.settingslib.widget.MainSwitchPreference
        android:key="adaptive_connectivity"
        android:key="adaptive_connectivity_enabled"
        android:title="@string/adaptive_connectivity_main_switch_title"
        settings:controller="com.android.settings.network.AdaptiveConnectivityTogglePreferenceController"/>

+3 −1
Original line number Diff line number Diff line
@@ -35,7 +35,9 @@ class AdaptiveConnectivityScreen : PreferenceScreenCreator {

    override fun fragmentClass() = AdaptiveConnectivitySettings::class.java

    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {
        +AdaptiveConnectivityTogglePreference()
    }

    override fun hasCompleteHierarchy() = false

+53 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 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

import android.content.Context
import android.net.wifi.WifiManager
import android.provider.Settings.Secure.ADAPTIVE_CONNECTIVITY_ENABLED
import androidx.preference.Preference
import com.android.settings.R
import com.android.settingslib.datastore.SettingsSecureStore
import com.android.settingslib.metadata.MainSwitchPreference
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.preference.MainSwitchPreferenceBinding

// LINT.IfChange
class AdaptiveConnectivityTogglePreference :
    MainSwitchPreference(
        ADAPTIVE_CONNECTIVITY_ENABLED,
        R.string.adaptive_connectivity_main_switch_title,
    ),
    MainSwitchPreferenceBinding,
    Preference.OnPreferenceChangeListener {

    override fun storage(context: Context) = SettingsSecureStore.get(context)

    override fun bind(preference: Preference, metadata: PreferenceMetadata) {
        super.bind(preference, metadata)
        preference.onPreferenceChangeListener = this
    }

    override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean {
        val isChecked = newValue as Boolean
        preference.context
            .getSystemService(WifiManager::class.java)
            ?.setWifiScoringEnabled(isChecked)
        return true
    }
}
// LINT.ThenChange(AdaptiveConnectivityTogglePreferenceController.java)
+2 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.settings.widget.SettingsMainSwitchPreferenceController;
 * {@link SettingsMainSwitchPreferenceController}
 * that controls whether Adaptive connectivity option is enabled.
 */
// LINT.IfChange
public class AdaptiveConnectivityTogglePreferenceController extends
        SettingsMainSwitchPreferenceController {

@@ -69,3 +70,4 @@ public class AdaptiveConnectivityTogglePreferenceController extends
        return R.string.menu_key_network;
    }
}
// LINT.ThenChange(AdaptiveConnectivityTogglePreference.kt)
+3 −1
Original line number Diff line number Diff line
@@ -36,10 +36,11 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;

// LINT.IfChange
@RunWith(RobolectricTestRunner.class)
public class AdaptiveConnectivityTogglePreferenceControllerTest {

    private static final String PREF_KEY = "adaptive_connectivity";
    private static final String PREF_KEY = "adaptive_connectivity_enabled";

    @Mock(answer = RETURNS_DEEP_STUBS)
    private Context mContext;
@@ -87,3 +88,4 @@ public class AdaptiveConnectivityTogglePreferenceControllerTest {
        verify(mWifiManager).setWifiScoringEnabled(false);
    }
}
// LINT.ThenChange(AdaptiveConnectivityTogglePreferenceTest.kt)
Loading