Merge "Update network select page"
This commit is contained in:
committed by
Android (Google) Code Review
commit
db403ad785
@@ -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);
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
mNetworkScanHelper.startNetworkScan(
|
||||
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(
|
||||
operatorInfo, true /* persistSelection */);
|
||||
mSelectedPreference.setSummary(
|
||||
isSuccess ? R.string.network_connected : R.string.network_could_not_connect);
|
||||
ThreadUtils.postOnBackgroundThread(() -> {
|
||||
Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
|
||||
msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
|
||||
operatorInfo, true /* persistSelection */);
|
||||
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);
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user