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

Commit db403ad7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update network select page"

parents 87e4b48c 4f0c28da
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -116,14 +116,9 @@ public class NetworkOperatorPreference extends Preference {
    private void updateIcon(int level) {
        if (level < 0 || level >= NUMBER_OF_LEVELS) return;
        Context context = getContext();
        // Make the signal strength drawable
        int iconId = 0;
        if (DBG) Log.d(TAG, "updateIcon level: " + String.valueOf(level));
        iconId = SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */);

        SignalDrawable signalDrawable = new SignalDrawable(getContext());
        signalDrawable.setLevel(iconId);
        signalDrawable.setDarkIntensity(0);
        signalDrawable.setLevel(
                SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */));

        // Make the network type drawable
        int iconType = getIconIdForCell(mCellInfo);
@@ -134,7 +129,7 @@ public class NetworkOperatorPreference extends Preference {
                                .getResources().getDrawable(iconType, getContext().getTheme());

        // Overlay the two drawables
        Drawable[] layers = {networkDrawable, signalDrawable};
        final Drawable[] layers = {networkDrawable, signalDrawable};
        final int iconSize =
                context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);

+29 −15
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;

import java.util.ArrayList;
import java.util.Arrays;
@@ -60,6 +61,7 @@ public class NetworkSelectSettings extends DashboardFragment {

    private static final String TAG = "NetworkSelectSettings";

    private static final int EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE = 1;
    private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
    private static final int EVENT_NETWORK_SCAN_ERROR = 3;
    private static final int EVENT_NETWORK_SCAN_COMPLETED = 4;
@@ -135,13 +137,10 @@ public class NetworkSelectSettings extends DashboardFragment {
        mForbiddenPlmns = Arrays.asList(mTelephonyManager.getForbiddenPlmns());
        setProgressBarVisible(true);

        if (mUseNewApi) {
        mNetworkScanHelper.startNetworkScan(
                    NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS);
        } else {
            mNetworkScanHelper.startNetworkScan(
                    NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
        }
                mUseNewApi
                        ? NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS
                        : NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
    }

    @Override
@@ -154,7 +153,6 @@ public class NetworkSelectSettings extends DashboardFragment {
    public boolean onPreferenceTreeClick(Preference preference) {
        if (preference != mSelectedPreference) {
            stopNetworkQuery();
            setProgressBarVisible(false);
            // Refresh the last selected item in case users reselect network.
            if (mSelectedPreference != null) {
                mSelectedPreference.setSummary(null);
@@ -162,6 +160,7 @@ public class NetworkSelectSettings extends DashboardFragment {

            mSelectedPreference = (NetworkOperatorPreference) preference;
            CellInfo cellInfo = mSelectedPreference.getCellInfo();
            mSelectedPreference.setSummary(R.string.network_connecting);

            mMetricsFeatureProvider.action(getContext(),
                    MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
@@ -176,11 +175,17 @@ public class NetworkSelectSettings extends DashboardFragment {
                }
            }

            setProgressBarVisible(true);
            // Disable the screen until network is manually set
            getPreferenceScreen().setEnabled(false);

            final OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
            final boolean isSuccess = mTelephonyManager.setNetworkSelectionModeManual(
            ThreadUtils.postOnBackgroundThread(() -> {
                Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
                msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
                        operatorInfo, true /* persistSelection */);
            mSelectedPreference.setSummary(
                    isSuccess ? R.string.network_connected : R.string.network_could_not_connect);
                msg.sendToTarget();
            });
        }

        return true;
@@ -205,6 +210,15 @@ public class NetworkSelectSettings extends DashboardFragment {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
                    setProgressBarVisible(false);
                    getPreferenceScreen().setEnabled(true);

                    boolean isSucceed = (boolean) msg.obj;
                    mSelectedPreference.setSummary(isSucceed
                            ? R.string.network_connected
                            : R.string.network_could_not_connect);
                    break;
                case EVENT_NETWORK_SCAN_RESULTS:
                    List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
                    mCellInfoList = new ArrayList<>(results);
@@ -268,7 +282,7 @@ public class NetworkSelectSettings extends DashboardFragment {
        for (int index = 0; index < mCellInfoList.size(); index++) {
            if (!mCellInfoList.get(index).isRegistered()) {
                NetworkOperatorPreference pref = new NetworkOperatorPreference(
                        mCellInfoList.get(index), getContext(), mForbiddenPlmns, mShow4GForLTE);
                        mCellInfoList.get(index), getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
                pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
                pref.setOrder(index);
                mPreferenceCategory.addPreference(pref);
@@ -304,7 +318,7 @@ public class NetworkSelectSettings extends DashboardFragment {
            CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
            if (cellInfo != null) {
                NetworkOperatorPreference pref = new NetworkOperatorPreference(
                        cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
                        cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
                pref.setTitle(mTelephonyManager.getNetworkOperatorName());
                pref.setSummary(R.string.network_connected);
                // Update the signal strength icon, since the default signalStrength value would be
@@ -343,7 +357,7 @@ public class NetworkSelectSettings extends DashboardFragment {
    private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
        mConnectedPreferenceCategory.removeAll();
        final NetworkOperatorPreference pref = new NetworkOperatorPreference(
                cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
                cellInfo, getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
        pref.setSummary(R.string.network_connected);
        mConnectedPreferenceCategory.addPreference(pref);
        mConnectedPreferenceCategory.setVisible(true);
+3 −0
Original line number Diff line number Diff line
@@ -81,6 +81,9 @@ public class NetworkSelectSettingsTest {

        mNetworkSelectSettings = spy(new NetworkSelectSettings());
        doReturn(mContext).when(mNetworkSelectSettings).getContext();
        doReturn(mPreferenceManager).when(mNetworkSelectSettings).getPreferenceManager();
        doReturn(mContext).when(mPreferenceManager).getContext();

        mNetworkSelectSettings.mTelephonyManager = mTelephonyManager;
        mNetworkSelectSettings.mConnectedPreferenceCategory = mConnectedPreferenceCategory;
        mNetworkSelectSettings.mPreferenceCategory = mPreferenceCategory;