[Settings] Code refactor - NetworkModePreference
Code refactor for improving readibility. Bug: 223461708 Test: unit test EnabledNetworkModePreferenceControllerTest Change-Id: I3b3157cbc76f104d63062fda495a7391ecc18ada
This commit is contained in:
@@ -66,6 +66,7 @@ android_library {
|
|||||||
"net-utils-framework-common",
|
"net-utils-framework-common",
|
||||||
"settings-contextual-card-protos-lite",
|
"settings-contextual-card-protos-lite",
|
||||||
"settings-log-bridge-protos-lite",
|
"settings-log-bridge-protos-lite",
|
||||||
|
"settings-telephony-protos-lite",
|
||||||
"contextualcards",
|
"contextualcards",
|
||||||
"settings-logtags",
|
"settings-logtags",
|
||||||
"statslog-settings",
|
"statslog-settings",
|
||||||
|
@@ -24,3 +24,12 @@ java_library_static {
|
|||||||
},
|
},
|
||||||
srcs: ["settings_log_bridge.proto"],
|
srcs: ["settings_log_bridge.proto"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
java_library_static {
|
||||||
|
name: "settings-telephony-protos-lite",
|
||||||
|
host_supported: true,
|
||||||
|
proto: {
|
||||||
|
type: "lite",
|
||||||
|
},
|
||||||
|
srcs: ["network_mode_choices.proto"],
|
||||||
|
}
|
||||||
|
112
protos/network_mode_choices.proto
Normal file
112
protos/network_mode_choices.proto
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
syntax = "proto2";
|
||||||
|
|
||||||
|
package com.android.settings.intelligence;
|
||||||
|
option java_multiple_files = false;
|
||||||
|
option java_package = "com.android.settings.network.telephony";
|
||||||
|
option java_outer_classname = "NetworkModeChoicesProto";
|
||||||
|
|
||||||
|
// EnabledNetworks is a list which tries to categorized the entries of popup menu
|
||||||
|
// based on carrier network types available to the end user.
|
||||||
|
|
||||||
|
// Next tag: 13
|
||||||
|
enum EnabledNetworks {
|
||||||
|
// No EnabledNetworks specified.
|
||||||
|
ENABLED_NETWORKS_UNSPECIFIED = 0;
|
||||||
|
|
||||||
|
// For the case where either unsupported or unable to categorized properly.
|
||||||
|
ENABLED_NETWORKS_UNKNOWN = 1;
|
||||||
|
|
||||||
|
// For the case where CDMA is supported and LTE is not prioritized over
|
||||||
|
// CDMA.
|
||||||
|
ENABLED_NETWORKS_CDMA_CHOICES = 2;
|
||||||
|
|
||||||
|
// For the case where CDMA is supported and LTE is not available.
|
||||||
|
ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES = 3;
|
||||||
|
|
||||||
|
// For the case where CDMA is supported and LTE is available.
|
||||||
|
ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES = 4;
|
||||||
|
|
||||||
|
// For the case where TDSCDMA is primary network type.
|
||||||
|
ENABLED_NETWORKS_TDSCDMA_CHOICES = 5;
|
||||||
|
|
||||||
|
// For the case where GSM and LTE options are removed from the menu.
|
||||||
|
ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES = 6;
|
||||||
|
|
||||||
|
// For the case where GSM and 4G options are removed from the menu.
|
||||||
|
ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES = 7;
|
||||||
|
|
||||||
|
// For the case where GSM is removed from the menu, and both 4G/LTE are not an
|
||||||
|
// option.
|
||||||
|
ENABLED_NETWORKS_EXCEPT_GSM_CHOICES = 8;
|
||||||
|
|
||||||
|
// For the case where LTE is disabled.
|
||||||
|
ENABLED_NETWORKS_EXCEPT_LTE_CHOICES = 9;
|
||||||
|
|
||||||
|
// For the case where GSM related carrier with 4G/LTE supported.
|
||||||
|
ENABLED_NETWORKS_4G_CHOICES = 10;
|
||||||
|
|
||||||
|
// For the case where GSM related carrier without 4G/LTE supported.
|
||||||
|
ENABLED_NETWORKS_CHOICES = 11;
|
||||||
|
|
||||||
|
// For the case where world mode is enabled.
|
||||||
|
PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
// A request for popup menu.
|
||||||
|
|
||||||
|
// Next tag: 4
|
||||||
|
message UiOptions {
|
||||||
|
// Mapping to popup menu categories.
|
||||||
|
required EnabledNetworks type = 1;
|
||||||
|
|
||||||
|
// Resource which provides a list of network type values for this popup menu.
|
||||||
|
required int32 choices = 2;
|
||||||
|
|
||||||
|
// Presentation format of a continuous popop menu entries.
|
||||||
|
// Each format may contains any numbers of popop menu entries.
|
||||||
|
|
||||||
|
// Next tag: 12
|
||||||
|
enum PresentFormat {
|
||||||
|
|
||||||
|
// No PresentFormat specified.
|
||||||
|
PRESENT_FORMAT_UNSPECIFIED = 0;
|
||||||
|
|
||||||
|
// Append a CDMA 1x network option into popup menu.
|
||||||
|
add1xEntry = 1;
|
||||||
|
|
||||||
|
// Append a 2G network option into popup menu.
|
||||||
|
add2gEntry = 2;
|
||||||
|
|
||||||
|
// Append a 3G network option into popup menu.
|
||||||
|
add3gEntry = 3;
|
||||||
|
|
||||||
|
// Append a global mode option into popup menu.
|
||||||
|
addGlobalEntry = 4;
|
||||||
|
|
||||||
|
// Append a CDMA/LTE global mode option into popup menu.
|
||||||
|
addWorldModeCdmaEntry = 5;
|
||||||
|
|
||||||
|
// Append a GSM/LTE global mode option into popup menu.
|
||||||
|
addWorldModeGsmEntry = 6;
|
||||||
|
|
||||||
|
// Append a 4G network option into popup menu.
|
||||||
|
add4gEntry = 7;
|
||||||
|
|
||||||
|
// Append a LTE network option into popup menu.
|
||||||
|
addLteEntry = 8;
|
||||||
|
|
||||||
|
// Append a 5G network option into popup menu.
|
||||||
|
add5gEntry = 9;
|
||||||
|
|
||||||
|
// Append both 5G and 4G network options into popup menu.
|
||||||
|
add5gAnd4gEntry = 10;
|
||||||
|
|
||||||
|
// Append both 5G and LTE network options into popup menu.
|
||||||
|
add5gAndLteEntry = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format of popup menu entries.
|
||||||
|
// The length of this entry need to be less than the network type values
|
||||||
|
// referenced from "choices" field.
|
||||||
|
repeated PresentFormat format = 3;
|
||||||
|
}
|
@@ -39,11 +39,14 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.network.AllowedNetworkTypesListener;
|
import com.android.settings.network.AllowedNetworkTypesListener;
|
||||||
import com.android.settings.network.CarrierConfigCache;
|
import com.android.settings.network.CarrierConfigCache;
|
||||||
import com.android.settings.network.SubscriptionsChangeListener;
|
import com.android.settings.network.SubscriptionsChangeListener;
|
||||||
|
import com.android.settings.network.telephony.NetworkModeChoicesProto.EnabledNetworks;
|
||||||
|
import com.android.settings.network.telephony.NetworkModeChoicesProto.UiOptions;
|
||||||
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
|
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -187,21 +190,6 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum EnabledNetworks {
|
|
||||||
ENABLED_NETWORKS_UNKNOWN,
|
|
||||||
ENABLED_NETWORKS_CDMA_CHOICES,
|
|
||||||
ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES,
|
|
||||||
ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES,
|
|
||||||
ENABLED_NETWORKS_TDSCDMA_CHOICES,
|
|
||||||
ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES,
|
|
||||||
ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES,
|
|
||||||
ENABLED_NETWORKS_EXCEPT_GSM_CHOICES,
|
|
||||||
ENABLED_NETWORKS_EXCEPT_LTE_CHOICES,
|
|
||||||
ENABLED_NETWORKS_4G_CHOICES,
|
|
||||||
ENABLED_NETWORKS_CHOICES,
|
|
||||||
PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE
|
|
||||||
}
|
|
||||||
|
|
||||||
private final class PreferenceEntriesBuilder {
|
private final class PreferenceEntriesBuilder {
|
||||||
private CarrierConfigCache mCarrierConfigCache;
|
private CarrierConfigCache mCarrierConfigCache;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -256,163 +244,144 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
final boolean display2gOptions = carrierConfig
|
final boolean display2gOptions = carrierConfig
|
||||||
.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL);
|
.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL);
|
||||||
clearAllEntries();
|
clearAllEntries();
|
||||||
String[] entryValues;
|
UiOptions.Builder uiOptions = UiOptions.newBuilder();
|
||||||
int[] entryValuesInt;
|
uiOptions.setType(getEnabledNetworkType());
|
||||||
switch (getEnabledNetworkType()) {
|
switch (uiOptions.getType()) {
|
||||||
case ENABLED_NETWORKS_CDMA_CHOICES:
|
case ENABLED_NETWORKS_CDMA_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_cdma_values);
|
.setChoices(R.array.enabled_networks_cdma_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add5gAndLteEntry)
|
||||||
if (entryValuesInt.length < 4) {
|
.addFormat(UiOptions.PresentFormat.add3gEntry)
|
||||||
throw new IllegalArgumentException(
|
.addFormat(UiOptions.PresentFormat.add1xEntry)
|
||||||
"ENABLED_NETWORKS_CDMA_CHOICES index error.");
|
.addFormat(UiOptions.PresentFormat.addGlobalEntry);
|
||||||
}
|
|
||||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
|
|
||||||
addLteEntry(entryValuesInt[0]);
|
|
||||||
add3gEntry(entryValuesInt[1]);
|
|
||||||
if (display2gOptions) {
|
|
||||||
add1xEntry(entryValuesInt[2]);
|
|
||||||
}
|
|
||||||
addGlobalEntry(entryValuesInt[3]);
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES:
|
case ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_cdma_no_lte_values);
|
.setChoices(R.array.enabled_networks_cdma_no_lte_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add3gEntry)
|
||||||
if (entryValuesInt.length < 2) {
|
.addFormat(UiOptions.PresentFormat.add1xEntry);
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add3gEntry(entryValuesInt[0]);
|
|
||||||
if (display2gOptions) {
|
|
||||||
add1xEntry(entryValuesInt[1]);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES:
|
case ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_cdma_only_lte_values);
|
.setChoices(R.array.enabled_networks_cdma_only_lte_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.addLteEntry)
|
||||||
if (entryValuesInt.length < 2) {
|
.addFormat(UiOptions.PresentFormat.addGlobalEntry);
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES index error.");
|
|
||||||
}
|
|
||||||
addLteEntry(entryValuesInt[0]);
|
|
||||||
addGlobalEntry(entryValuesInt[1]);
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_TDSCDMA_CHOICES:
|
case ENABLED_NETWORKS_TDSCDMA_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_tdscdma_values);
|
.setChoices(R.array.enabled_networks_tdscdma_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add5gAndLteEntry)
|
||||||
if (entryValuesInt.length < 3) {
|
.addFormat(UiOptions.PresentFormat.add3gEntry)
|
||||||
throw new IllegalArgumentException(
|
.addFormat(UiOptions.PresentFormat.add2gEntry);
|
||||||
"ENABLED_NETWORKS_TDSCDMA_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
|
|
||||||
addLteEntry(entryValuesInt[0]);
|
|
||||||
add3gEntry(entryValuesInt[1]);
|
|
||||||
if (display2gOptions) {
|
|
||||||
add2gEntry(entryValuesInt[2]);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES:
|
case ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_except_gsm_lte_values);
|
.setChoices(R.array.enabled_networks_except_gsm_lte_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add3gEntry);
|
||||||
if (entryValuesInt.length < 1) {
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add3gEntry(entryValuesInt[0]);
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES:
|
case ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_except_gsm_values);
|
.setChoices(R.array.enabled_networks_except_gsm_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add5gAnd4gEntry)
|
||||||
if (entryValuesInt.length < 2) {
|
.addFormat(UiOptions.PresentFormat.add3gEntry);
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
|
|
||||||
add4gEntry(entryValuesInt[0]);
|
|
||||||
add3gEntry(entryValuesInt[1]);
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES:
|
case ENABLED_NETWORKS_EXCEPT_GSM_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_except_gsm_values);
|
.setChoices(R.array.enabled_networks_except_gsm_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add5gAndLteEntry)
|
||||||
if (entryValuesInt.length < 2) {
|
.addFormat(UiOptions.PresentFormat.add3gEntry);
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"ENABLED_NETWORKS_EXCEPT_GSM_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
|
|
||||||
addLteEntry(entryValuesInt[0]);
|
|
||||||
add3gEntry(entryValuesInt[1]);
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES:
|
case ENABLED_NETWORKS_EXCEPT_LTE_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_except_lte_values);
|
.setChoices(R.array.enabled_networks_except_lte_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add3gEntry)
|
||||||
if (entryValuesInt.length < 2) {
|
.addFormat(UiOptions.PresentFormat.add2gEntry);
|
||||||
throw new IllegalArgumentException(
|
|
||||||
"ENABLED_NETWORKS_EXCEPT_LTE_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add3gEntry(entryValuesInt[0]);
|
|
||||||
if (carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
|
|
||||||
add2gEntry(entryValuesInt[1]);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_4G_CHOICES:
|
case ENABLED_NETWORKS_4G_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_values);
|
.setChoices(R.array.enabled_networks_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add5gAnd4gEntry)
|
||||||
if (entryValuesInt.length < 3) {
|
.addFormat(UiOptions.PresentFormat.add3gEntry)
|
||||||
throw new IllegalArgumentException(
|
.addFormat(UiOptions.PresentFormat.add2gEntry);
|
||||||
"ENABLED_NETWORKS_4G_CHOICES index error.");
|
|
||||||
}
|
|
||||||
add5gEntry(addNrToLteNetworkType(
|
|
||||||
entryValuesInt[0]));
|
|
||||||
add4gEntry(entryValuesInt[0]);
|
|
||||||
add3gEntry(entryValuesInt[1]);
|
|
||||||
if (display2gOptions) {
|
|
||||||
add2gEntry(entryValuesInt[2]);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ENABLED_NETWORKS_CHOICES:
|
case ENABLED_NETWORKS_CHOICES:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.enabled_networks_values);
|
.setChoices(R.array.enabled_networks_values)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.add5gAndLteEntry)
|
||||||
if (entryValuesInt.length < 3) {
|
.addFormat(UiOptions.PresentFormat.add3gEntry)
|
||||||
throw new IllegalArgumentException("ENABLED_NETWORKS_CHOICES index error.");
|
.addFormat(UiOptions.PresentFormat.add2gEntry);
|
||||||
}
|
|
||||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[0]));
|
|
||||||
addLteEntry(entryValuesInt[0]);
|
|
||||||
add3gEntry(entryValuesInt[1]);
|
|
||||||
if (display2gOptions) {
|
|
||||||
add2gEntry(entryValuesInt[2]);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE:
|
case PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE:
|
||||||
entryValues = getResourcesForSubId().getStringArray(
|
uiOptions = uiOptions
|
||||||
R.array.preferred_network_mode_values_world_mode);
|
.setChoices(R.array.preferred_network_mode_values_world_mode)
|
||||||
entryValuesInt = Stream.of(entryValues).mapToInt(Integer::parseInt).toArray();
|
.addFormat(UiOptions.PresentFormat.addGlobalEntry)
|
||||||
if (entryValuesInt.length < 3) {
|
.addFormat(UiOptions.PresentFormat.addWorldModeCdmaEntry)
|
||||||
throw new IllegalArgumentException(
|
.addFormat(UiOptions.PresentFormat.addWorldModeGsmEntry);
|
||||||
"PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE index error.");
|
|
||||||
}
|
|
||||||
addGlobalEntry(entryValuesInt[0]);
|
|
||||||
|
|
||||||
addCustomEntry(
|
|
||||||
getResourcesForSubId().getString(
|
|
||||||
R.string.network_world_mode_cdma_lte),
|
|
||||||
entryValuesInt[1]);
|
|
||||||
addCustomEntry(
|
|
||||||
getResourcesForSubId().getString(
|
|
||||||
R.string.network_world_mode_gsm_lte),
|
|
||||||
entryValuesInt[2]);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("Not supported enabled network types.");
|
throw new IllegalArgumentException("Not supported enabled network types.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String[] entryValues = getResourcesForSubId().getStringArray(uiOptions.getChoices());
|
||||||
|
final int[] entryValuesInt = Stream.of(entryValues)
|
||||||
|
.mapToInt(Integer::parseInt).toArray();
|
||||||
|
final List<UiOptions.PresentFormat> formatList = uiOptions.getFormatList();
|
||||||
|
if (entryValuesInt.length < formatList.size()) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
uiOptions.getType().name() + " index error.");
|
||||||
|
}
|
||||||
|
// Compose options based on given values and formats.
|
||||||
|
IntStream.range(0, formatList.size()).forEach(entryIndex -> {
|
||||||
|
switch (formatList.get(entryIndex)) {
|
||||||
|
case add1xEntry:
|
||||||
|
if (display2gOptions) {
|
||||||
|
add1xEntry(entryValuesInt[entryIndex]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case add2gEntry:
|
||||||
|
if (display2gOptions) {
|
||||||
|
add2gEntry(entryValuesInt[entryIndex]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case add3gEntry:
|
||||||
|
add3gEntry(entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case addGlobalEntry:
|
||||||
|
addGlobalEntry(entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case addWorldModeCdmaEntry:
|
||||||
|
addCustomEntry(
|
||||||
|
getResourcesForSubId().getString(
|
||||||
|
R.string.network_world_mode_cdma_lte),
|
||||||
|
entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case addWorldModeGsmEntry:
|
||||||
|
addCustomEntry(
|
||||||
|
getResourcesForSubId().getString(
|
||||||
|
R.string.network_world_mode_gsm_lte),
|
||||||
|
entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case add4gEntry:
|
||||||
|
add4gEntry(entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case addLteEntry:
|
||||||
|
addLteEntry(entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case add5gEntry:
|
||||||
|
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||||
|
break;
|
||||||
|
case add5gAnd4gEntry:
|
||||||
|
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||||
|
add4gEntry(entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
case add5gAndLteEntry:
|
||||||
|
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||||
|
addLteEntry(entryValuesInt[entryIndex]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Not supported ui options format.");
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getPreferredNetworkMode() {
|
private int getPreferredNetworkMode() {
|
||||||
|
@@ -46,6 +46,7 @@ android_app {
|
|||||||
"jsr305",
|
"jsr305",
|
||||||
"settings-contextual-card-protos-lite",
|
"settings-contextual-card-protos-lite",
|
||||||
"settings-log-bridge-protos-lite",
|
"settings-log-bridge-protos-lite",
|
||||||
|
"settings-telephony-protos-lite",
|
||||||
"contextualcards",
|
"contextualcards",
|
||||||
"settings-logtags",
|
"settings-logtags",
|
||||||
"zxing-core-1.7",
|
"zxing-core-1.7",
|
||||||
|
Reference in New Issue
Block a user