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

Commit 517ed94d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Revert "[Provider Model] Replace WiFi panel to Internet panel"" into sc-dev am: 443a3f03

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

Change-Id: I2c41c8210c2c2229bc5341337c7fbe7a00d0ccf7
parents a2ff9f58 443a3f03
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -20,8 +20,6 @@ import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;

import com.android.settings.Utils;

public class PanelFeatureProviderImpl implements PanelFeatureProvider {

    @Override
@@ -41,9 +39,6 @@ public class PanelFeatureProviderImpl implements PanelFeatureProvider {
            case Settings.Panel.ACTION_NFC:
                return NfcPanel.create(context);
            case Settings.Panel.ACTION_WIFI:
                if (Utils.isProviderModelEnabled(context)) {
                    return InternetConnectivityPanel.create(context);
                }
                return WifiPanel.create(context);
            case Settings.Panel.ACTION_VOLUME:
                return VolumePanel.create(context);
+0 −26
Original line number Diff line number Diff line
@@ -27,10 +27,7 @@ import android.provider.Settings;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.settings.testutils.FeatureFlagUtilsRule;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -39,9 +36,6 @@ public class PanelFeatureProviderImplTest {

    private static final String TEST_PACKAGENAME = "com.test.packagename";

    @Rule
    public final FeatureFlagUtilsRule mFeatureFlagUtilsRule = new FeatureFlagUtilsRule();

    private Context mContext;
    private PanelFeatureProviderImpl mProvider;
    private Bundle mBundle;
@@ -71,24 +65,4 @@ public class PanelFeatureProviderImplTest {

        assertThat(panel).isInstanceOf(VolumePanel.class);
    }

    @Test
    public void getPanel_wifi_returnsWifiPanelWhenProviderModelDisable() {
        mFeatureFlagUtilsRule.setProviderModelEnabled(false);
        mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_WIFI);

        final PanelContent panel = mProvider.getPanel(mContext, mBundle);

        assertThat(panel).isInstanceOf(WifiPanel.class);
    }

    @Test
    public void getPanel_wifi_returnsInternetConnectivityPanelWhenProviderModelDisable() {
        mFeatureFlagUtilsRule.setProviderModelEnabled(true);
        mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_WIFI);

        final PanelContent panel = mProvider.getPanel(mContext, mBundle);

        assertThat(panel).isInstanceOf(InternetConnectivityPanel.class);
    }
}
+0 −68
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 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.testutils;

import android.content.Context;
import android.util.FeatureFlagUtils;

import androidx.test.core.app.ApplicationProvider;

import org.junit.rules.ExternalResource;

import java.util.HashMap;
import java.util.Map;

/**
 * A test rule that is used to automatically recover the FeatureFlagUtils resource after testing.
 *
 * Example:
 * <pre class="code"><code class="java">
 * public class ExampleTest {
 *
 *     &#064;Rule
 *     public final FeatureFlagUtilsRule mFeatureFlagUtilsRule = new FeatureFlagUtilsRule();
 *
 * }
 * </code></pre>
 */
public class FeatureFlagUtilsRule extends ExternalResource {

    private Context mContext;
    private Map<String, Boolean> mBackupFeatureFlags = new HashMap<String, Boolean>();

    @Override
    protected void before() throws Throwable {
        mContext = ApplicationProvider.getApplicationContext();
    }

    @Override
    protected void after() {
        mBackupFeatureFlags.forEach((k, v) -> FeatureFlagUtils.setEnabled(mContext, k, v));
    }

    public void setEnabled(String feature, boolean enabled) {
        if (enabled == FeatureFlagUtils.isEnabled(mContext, feature)) {
            return;
        }
        mBackupFeatureFlags.putIfAbsent(feature, !enabled);
        FeatureFlagUtils.setEnabled(mContext, feature, enabled);
    }

    public void setProviderModelEnabled(boolean enabled) {
        setEnabled(FeatureFlagUtils.SETTINGS_PROVIDER_MODEL, enabled);
    }
}