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

Commit 7c0b74fd authored by Weng Su's avatar Weng Su Committed by Zoey Chen
Browse files

[RESTRICT AUTOMERGE] [Provider Model] Enforce DISALLOW_CONFIG_WIFI in Internet Panel

- Avoid the appearance of WiFi-related strings in sub-title

- Hide all of Wi-Fi related views

- Do not scan Wi-Fi result

Bug: 195669955
Test: manual test
atest -c InternetDialogControllerTest \
         InternetDialogTest

Change-Id: I5c19e6a8e52d2c9207053ffb7539d931d1f04799
(cherry picked from commit 018c9797)
parent c9d58c10
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -122,8 +122,9 @@ public class InternetTile extends QSTileImpl<SignalState> {


    @Override
    @Override
    protected void handleClick(@Nullable View view) {
    protected void handleClick(@Nullable View view) {
        boolean canConfigMobileData = mAccessPointController.canConfigMobileData();
        mHandler.post(() -> mInternetDialogFactory.create(true,
        mHandler.post(() -> mInternetDialogFactory.create(true, canConfigMobileData));
                mAccessPointController.canConfigMobileData(),
                mAccessPointController.canConfigWifi()));
    }
    }


    @Override
    @Override
+25 −6
Original line number Original line Diff line number Diff line
@@ -51,7 +51,6 @@ import android.widget.Button;
import android.widget.ImageView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.ProgressBar;
import android.widget.Space;
import android.widget.Switch;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.TextView;


@@ -93,6 +92,8 @@ public class InternetDialog extends SystemUIDialog implements
    protected View mDialogView;
    protected View mDialogView;
    @VisibleForTesting
    @VisibleForTesting
    protected WifiEntry mConnectedWifiEntry;
    protected WifiEntry mConnectedWifiEntry;
    @VisibleForTesting
    protected boolean mCanConfigWifi;


    private InternetDialogFactory mInternetDialogFactory;
    private InternetDialogFactory mInternetDialogFactory;
    private SubscriptionManager mSubscriptionManager;
    private SubscriptionManager mSubscriptionManager;
@@ -152,7 +153,8 @@ public class InternetDialog extends SystemUIDialog implements


    public InternetDialog(Context context, InternetDialogFactory internetDialogFactory,
    public InternetDialog(Context context, InternetDialogFactory internetDialogFactory,
            InternetDialogController internetDialogController, boolean canConfigMobileData,
            InternetDialogController internetDialogController, boolean canConfigMobileData,
            boolean aboveStatusBar, UiEventLogger uiEventLogger, @Main Handler handler) {
            boolean canConfigWifi, boolean aboveStatusBar, UiEventLogger uiEventLogger,
            @Main Handler handler) {
        super(context, R.style.Theme_SystemUI_Dialog_Internet);
        super(context, R.style.Theme_SystemUI_Dialog_Internet);
        if (DEBUG) {
        if (DEBUG) {
            Log.d(TAG, "Init InternetDialog");
            Log.d(TAG, "Init InternetDialog");
@@ -166,6 +168,7 @@ public class InternetDialog extends SystemUIDialog implements
        mTelephonyManager = mInternetDialogController.getTelephonyManager();
        mTelephonyManager = mInternetDialogController.getTelephonyManager();
        mWifiManager = mInternetDialogController.getWifiManager();
        mWifiManager = mInternetDialogController.getWifiManager();
        mCanConfigMobileData = canConfigMobileData;
        mCanConfigMobileData = canConfigMobileData;
        mCanConfigWifi = canConfigWifi;


        mLayoutManager = new LinearLayoutManager(mContext) {
        mLayoutManager = new LinearLayoutManager(mContext) {
            @Override
            @Override
@@ -249,7 +252,19 @@ public class InternetDialog extends SystemUIDialog implements
        if (DEBUG) {
        if (DEBUG) {
            Log.d(TAG, "onStart");
            Log.d(TAG, "onStart");
        }
        }
        mInternetDialogController.onStart(this);
        mInternetDialogController.onStart(this, mCanConfigWifi);
        if (!mCanConfigWifi) {
            hideWifiViews();
        }
    }

    @VisibleForTesting
    void hideWifiViews() {
        setProgressBarVisible(false);
        mTurnWifiOnLayout.setVisibility(View.GONE);
        mConnectedWifListLayout.setVisibility(View.GONE);
        mWifiRecyclerView.setVisibility(View.GONE);
        mSeeAllLayout.setVisibility(View.GONE);
    }
    }


    @Override
    @Override
@@ -288,9 +303,13 @@ public class InternetDialog extends SystemUIDialog implements
        } else {
        } else {
            mInternetDialogSubTitle.setText(getSubtitleText());
            mInternetDialogSubTitle.setText(getSubtitleText());
        }
        }
        showProgressBar();
        setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular());
        setMobileDataLayout(mInternetDialogController.activeNetworkIsCellular());


        if (!mCanConfigWifi) {
            return;
        }

        showProgressBar();
        final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked();
        final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked();
        final boolean isWifiEnabled = mWifiManager.isWifiEnabled();
        final boolean isWifiEnabled = mWifiManager.isWifiEnabled();
        updateWifiToggle(isWifiEnabled, isDeviceLocked);
        updateWifiToggle(isWifiEnabled, isDeviceLocked);
@@ -387,8 +406,8 @@ public class InternetDialog extends SystemUIDialog implements
            return;
            return;
        }
        }
        mConnectedWifListLayout.setVisibility(View.VISIBLE);
        mConnectedWifListLayout.setVisibility(View.VISIBLE);
        mConnectedWifiTitleText.setText(mInternetDialogController.getInternetWifiTitle());
        mConnectedWifiTitleText.setText(mConnectedWifiEntry.getTitle());
        mConnectedWifiSummaryText.setText(mInternetDialogController.getInternetWifiSummary());
        mConnectedWifiSummaryText.setText(mConnectedWifiEntry.getSummary(false));
        mConnectedWifiIcon.setImageDrawable(
        mConnectedWifiIcon.setImageDrawable(
                mInternetDialogController.getInternetWifiDrawable(mConnectedWifiEntry));
                mInternetDialogController.getInternetWifiDrawable(mConnectedWifiEntry));
        if (mInternetDialogController.isNightMode()) {
        if (mInternetDialogController.isNightMode()) {
+18 −30
Original line number Original line Diff line number Diff line
@@ -139,6 +139,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
    protected InternetTelephonyCallback mInternetTelephonyCallback;
    protected InternetTelephonyCallback mInternetTelephonyCallback;
    @VisibleForTesting
    @VisibleForTesting
    protected WifiUtils.InternetIconInjector mWifiIconInjector;
    protected WifiUtils.InternetIconInjector mWifiIconInjector;
    @VisibleForTesting
    protected boolean mCanConfigWifi;


    @VisibleForTesting
    @VisibleForTesting
    KeyguardStateController mKeyguardStateController;
    KeyguardStateController mKeyguardStateController;
@@ -193,7 +195,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        mWifiIconInjector = new WifiUtils.InternetIconInjector(mContext);
        mWifiIconInjector = new WifiUtils.InternetIconInjector(mContext);
    }
    }


    void onStart(@NonNull InternetDialogCallback callback) {
    void onStart(@NonNull InternetDialogCallback callback, boolean canConfigWifi) {
        if (DEBUG) {
        if (DEBUG) {
            Log.d(TAG, "onStart");
            Log.d(TAG, "onStart");
        }
        }
@@ -217,6 +219,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        mConnectivityManager.registerNetworkCallback(new NetworkRequest.Builder()
        mConnectivityManager.registerNetworkCallback(new NetworkRequest.Builder()
                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                .build(), new DataConnectivityListener(), mHandler);
                .build(), new DataConnectivityListener(), mHandler);
        mCanConfigWifi = canConfigWifi;
        scanWifiAccessPoints();
        scanWifiAccessPoints();
    }
    }


@@ -270,7 +273,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
            return null;
            return null;
        }
        }


        if (!mWifiManager.isWifiEnabled()) {
        if (mCanConfigWifi && !mWifiManager.isWifiEnabled()) {
            // When the airplane mode is off and Wi-Fi is disabled.
            // When the airplane mode is off and Wi-Fi is disabled.
            //   Sub-Title: Wi-Fi is off
            //   Sub-Title: Wi-Fi is off
            if (DEBUG) {
            if (DEBUG) {
@@ -290,10 +293,10 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,


        final List<ScanResult> wifiList = mWifiManager.getScanResults();
        final List<ScanResult> wifiList = mWifiManager.getScanResults();
        if (wifiList != null && wifiList.size() != 0) {
        if (wifiList != null && wifiList.size() != 0) {
            return mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT);
            return mCanConfigWifi ? mContext.getText(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT) : null;
        }
        }


        if (isProgressBarVisible) {
        if (mCanConfigWifi && isProgressBarVisible) {
            // When the Wi-Fi scan result callback is received
            // When the Wi-Fi scan result callback is received
            //   Sub-Title: Searching for networks...
            //   Sub-Title: Searching for networks...
            return mContext.getText(SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS);
            return mContext.getText(SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS);
@@ -317,7 +320,7 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
            return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
            return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
        }
        }


        if (!isMobileDataEnabled()) {
        if (mCanConfigWifi && !isMobileDataEnabled()) {
            if (DEBUG) {
            if (DEBUG) {
                Log.d(TAG, "Mobile data off");
                Log.d(TAG, "Mobile data off");
            }
            }
@@ -331,8 +334,11 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
            return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
            return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
        }
        }


        if (mCanConfigWifi) {
            return mContext.getText(SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE);
            return mContext.getText(SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE);
        }
        }
        return null;
    }


    Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) {
    Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) {
        final Drawable drawable =
        final Drawable drawable =
@@ -549,26 +555,6 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        return summary;
        return summary;
    }
    }


    String getInternetWifiTitle() {
        if (getInternetWifiEntry() == null) {
            if (DEBUG) {
                Log.d(TAG, "connected entry is null");
            }
            return "";
        }
        return getInternetWifiEntry().getTitle();
    }

    String getInternetWifiSummary() {
        if (getInternetWifiEntry() == null) {
            if (DEBUG) {
                Log.d(TAG, "connected entry is null");
            }
            return "";
        }
        return getInternetWifiEntry().getSummary(false);
    }

    void launchNetworkSetting() {
    void launchNetworkSetting() {
        mCallback.dismissDialog();
        mCallback.dismissDialog();
        mActivityStarter.postStartActivityDismissingKeyguard(getSettingsIntent(), 0);
        mActivityStarter.postStartActivityDismissingKeyguard(getSettingsIntent(), 0);
@@ -780,12 +766,14 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
    }
    }


    void scanWifiAccessPoints() {
    void scanWifiAccessPoints() {
        if (mCanConfigWifi) {
            mAccessPointController.scanForAccessPoints();
            mAccessPointController.scanForAccessPoints();
        }
        }
    }


    @Override
    @Override
    public void onAccessPointsChanged(List<WifiEntry> accessPoints) {
    public void onAccessPointsChanged(List<WifiEntry> accessPoints) {
        if (accessPoints == null) {
        if (accessPoints == null || !mCanConfigWifi) {
            return;
            return;
        }
        }


@@ -869,8 +857,8 @@ public class InternetDialogController implements WifiEntry.DisconnectCallback,
        @Override
        @Override
        public void onReceive(Context context, Intent intent) {
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();
            final String action = intent.getAction();
            if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)
            if (mCanConfigWifi && (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)
                    || action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
                    || action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))) {
                mCallback.onWifiStateReceived(context, intent);
                mCallback.onWifiStateReceived(context, intent);
            }
            }


+6 −6
Original line number Original line Diff line number Diff line
@@ -41,7 +41,7 @@ class InternetDialogFactory @Inject constructor(
    }
    }


    /** Creates a [InternetDialog]. */
    /** Creates a [InternetDialog]. */
    fun create(aboveStatusBar: Boolean, canConfigMobileData: Boolean) {
    fun create(aboveStatusBar: Boolean, canConfigMobileData: Boolean, canConfigWifi: Boolean) {
        if (internetDialog != null) {
        if (internetDialog != null) {
            if (DEBUG) {
            if (DEBUG) {
                Log.d(TAG, "InternetDialog is showing, do not create it twice.")
                Log.d(TAG, "InternetDialog is showing, do not create it twice.")
@@ -49,7 +49,7 @@ class InternetDialogFactory @Inject constructor(
            return
            return
        } else {
        } else {
            internetDialog = InternetDialog(context, this, internetDialogController,
            internetDialog = InternetDialog(context, this, internetDialogController,
                    canConfigMobileData, aboveStatusBar, uiEventLogger, handler)
                    canConfigMobileData, canConfigWifi, aboveStatusBar, uiEventLogger, handler)
            internetDialog?.show()
            internetDialog?.show()
        }
        }
    }
    }
+2 −2
Original line number Original line Diff line number Diff line
@@ -793,8 +793,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
                mReceiverHandler.post(this::handleConfigurationChanged);
                mReceiverHandler.post(this::handleConfigurationChanged);
                break;
                break;
            case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
            case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
                boolean canConfigMobileData = mAccessPoints.canConfigMobileData();
                mMainHandler.post(() -> mInternetDialogFactory.create(true,
                mMainHandler.post(() -> mInternetDialogFactory.create(true, canConfigMobileData));
                        mAccessPoints.canConfigMobileData(), mAccessPoints.canConfigWifi()));
                break;
                break;
            default:
            default:
                int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX,
                int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX,
Loading