Loading res/layout/private_dns_mode_dialog.xml +4 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,10 @@ android:id="@+id/private_dns_mode_off" layout="@layout/preference_widget_dialog_radiobutton"/> <include android:id="@+id/private_dns_mode_cloudflare" layout="@layout/preference_widget_dialog_radiobutton"/> <include android:id="@+id/private_dns_mode_opportunistic" layout="@layout/preference_widget_dialog_radiobutton"/> Loading res/values/cm_strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,11 @@ limitations under the License. --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Private DNS --> <string name="private_dns_mode_cloudflare" translatable="false">Cloudflare DNS</string> <!-- Alternative: 1dot1dot1dot1.cloudflare-dns.com --> <string name="private_dns_hostname_cloudflare" translatable="false">one.one.one.one</string> <!-- Advanced keyboard settings --> <string name="keyboard_extras_title">Extras</string> <string name="advanced_keyboard_settings_title">Advanced settings</string> Loading res/xml/power_usage_summary.xml +5 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,11 @@ settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController" settings:keywords="@string/keywords_battery_adaptive_preferences" /> <!-- Charging control --> <lineageos.preference.LineagePartsPreference android:key="charging_control" settings:requiresService="lineagehealth" /> <!-- Battery light --> <lineageos.preference.LineagePartsPreference android:key="battery_lights" Loading src/com/android/settings/network/PrivateDnsModeDialogPreference.java +26 −2 Original line number Diff line number Diff line Loading @@ -72,9 +72,13 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat // DNS_MODE -> RadioButton id private static final Map<Integer, Integer> PRIVATE_DNS_MAP; // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4; static { PRIVATE_DNS_MAP = new HashMap<>(); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OFF, R.id.private_dns_mode_off); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLOUDFLARE, R.id.private_dns_mode_cloudflare); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OPPORTUNISTIC, R.id.private_dns_mode_opportunistic); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider); } Loading Loading @@ -144,6 +148,15 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat final ContentResolver contentResolver = context.getContentResolver(); mMode = ConnectivitySettingsManager.getPrivateDnsMode(context); if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) { final String privateDnsHostname = ConnectivitySettingsManager.getPrivateDnsHostname(context); final String cloudflareHostname = context.getString(R.string.private_dns_hostname_cloudflare); if (privateDnsHostname.equals(cloudflareHostname)) { mMode = PRIVATE_DNS_MODE_CLOUDFLARE; } } mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname); mEditText.addTextChangedListener(this); Loading @@ -156,6 +169,9 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat // Initial radio button text final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off); offRadioButton.setText(R.string.private_dns_mode_off); final RadioButton cloudflareRadioButton = view.findViewById(R.id.private_dns_mode_cloudflare); cloudflareRadioButton.setText(R.string.private_dns_mode_cloudflare); final RadioButton opportunisticRadioButton = view.findViewById(R.id.private_dns_mode_opportunistic); opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic); Loading @@ -181,15 +197,21 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { final Context context = getContext(); int modeToSet = mMode; if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) { // Only clickable if hostname is valid, so we could save it safely ConnectivitySettingsManager.setPrivateDnsHostname(context, mEditText.getText().toString()); } else if (mMode == PRIVATE_DNS_MODE_CLOUDFLARE) { final String cloudflareHostname = context.getString(R.string.private_dns_hostname_cloudflare); ConnectivitySettingsManager.setPrivateDnsHostname(context, cloudflareHostname); modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME; } FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context, SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode); ConnectivitySettingsManager.setPrivateDnsMode(context, mMode); SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet); ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet); } } Loading @@ -197,6 +219,8 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == R.id.private_dns_mode_off) { mMode = PRIVATE_DNS_MODE_OFF; } else if (checkedId == R.id.private_dns_mode_cloudflare) { mMode = PRIVATE_DNS_MODE_CLOUDFLARE; } else if (checkedId == R.id.private_dns_mode_opportunistic) { mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC; } else if (checkedId == R.id.private_dns_mode_provider) { Loading src/com/android/settings/network/PrivateDnsPreferenceController.java +16 −4 Original line number Diff line number Diff line Loading @@ -65,6 +65,9 @@ public class PrivateDnsPreferenceController extends BasePreferenceController Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER), }; // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4; private final Handler mHandler; private final ContentObserver mSettingsObserver; private final ConnectivityManager mConnectivityManager; Loading @@ -89,7 +92,7 @@ public class PrivateDnsPreferenceController extends BasePreferenceController return UNSUPPORTED_ON_DEVICE; } final UserManager userManager = mContext.getSystemService(UserManager.class); if (userManager.isGuestUser()) return DISABLED_FOR_USER; if (!userManager.isAdminUser()) return DISABLED_FOR_USER; return AVAILABLE; } Loading Loading @@ -129,13 +132,22 @@ public class PrivateDnsPreferenceController extends BasePreferenceController switch (mode) { case PRIVATE_DNS_MODE_OFF: return res.getString(R.string.private_dns_mode_off); case PRIVATE_DNS_MODE_CLOUDFLARE: case PRIVATE_DNS_MODE_OPPORTUNISTIC: return dnsesResolved ? res.getString(R.string.private_dns_mode_on) : res.getString(R.string.private_dns_mode_opportunistic); case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME: return dnsesResolved ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr) : res.getString(R.string.private_dns_mode_provider_failure); if (!dnsesResolved) { return res.getString(R.string.private_dns_mode_provider_failure); } final String privateDnsHostname = ConnectivitySettingsManager.getPrivateDnsHostname(mContext); final String cloudflareHostname = res.getString(R.string.private_dns_hostname_cloudflare); if (privateDnsHostname.equals(cloudflareHostname)) { return res.getString(R.string.private_dns_mode_cloudflare); } return PrivateDnsModeDialogPreference.getHostnameFromSettings(cr); } return ""; } Loading Loading
res/layout/private_dns_mode_dialog.xml +4 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,10 @@ android:id="@+id/private_dns_mode_off" layout="@layout/preference_widget_dialog_radiobutton"/> <include android:id="@+id/private_dns_mode_cloudflare" layout="@layout/preference_widget_dialog_radiobutton"/> <include android:id="@+id/private_dns_mode_opportunistic" layout="@layout/preference_widget_dialog_radiobutton"/> Loading
res/values/cm_strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,11 @@ limitations under the License. --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- Private DNS --> <string name="private_dns_mode_cloudflare" translatable="false">Cloudflare DNS</string> <!-- Alternative: 1dot1dot1dot1.cloudflare-dns.com --> <string name="private_dns_hostname_cloudflare" translatable="false">one.one.one.one</string> <!-- Advanced keyboard settings --> <string name="keyboard_extras_title">Extras</string> <string name="advanced_keyboard_settings_title">Advanced settings</string> Loading
res/xml/power_usage_summary.xml +5 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,11 @@ settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController" settings:keywords="@string/keywords_battery_adaptive_preferences" /> <!-- Charging control --> <lineageos.preference.LineagePartsPreference android:key="charging_control" settings:requiresService="lineagehealth" /> <!-- Battery light --> <lineageos.preference.LineagePartsPreference android:key="battery_lights" Loading
src/com/android/settings/network/PrivateDnsModeDialogPreference.java +26 −2 Original line number Diff line number Diff line Loading @@ -72,9 +72,13 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat // DNS_MODE -> RadioButton id private static final Map<Integer, Integer> PRIVATE_DNS_MAP; // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4; static { PRIVATE_DNS_MAP = new HashMap<>(); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OFF, R.id.private_dns_mode_off); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLOUDFLARE, R.id.private_dns_mode_cloudflare); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OPPORTUNISTIC, R.id.private_dns_mode_opportunistic); PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider); } Loading Loading @@ -144,6 +148,15 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat final ContentResolver contentResolver = context.getContentResolver(); mMode = ConnectivitySettingsManager.getPrivateDnsMode(context); if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) { final String privateDnsHostname = ConnectivitySettingsManager.getPrivateDnsHostname(context); final String cloudflareHostname = context.getString(R.string.private_dns_hostname_cloudflare); if (privateDnsHostname.equals(cloudflareHostname)) { mMode = PRIVATE_DNS_MODE_CLOUDFLARE; } } mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname); mEditText.addTextChangedListener(this); Loading @@ -156,6 +169,9 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat // Initial radio button text final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off); offRadioButton.setText(R.string.private_dns_mode_off); final RadioButton cloudflareRadioButton = view.findViewById(R.id.private_dns_mode_cloudflare); cloudflareRadioButton.setText(R.string.private_dns_mode_cloudflare); final RadioButton opportunisticRadioButton = view.findViewById(R.id.private_dns_mode_opportunistic); opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic); Loading @@ -181,15 +197,21 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat public void onClick(DialogInterface dialog, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { final Context context = getContext(); int modeToSet = mMode; if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) { // Only clickable if hostname is valid, so we could save it safely ConnectivitySettingsManager.setPrivateDnsHostname(context, mEditText.getText().toString()); } else if (mMode == PRIVATE_DNS_MODE_CLOUDFLARE) { final String cloudflareHostname = context.getString(R.string.private_dns_hostname_cloudflare); ConnectivitySettingsManager.setPrivateDnsHostname(context, cloudflareHostname); modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME; } FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context, SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode); ConnectivitySettingsManager.setPrivateDnsMode(context, mMode); SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet); ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet); } } Loading @@ -197,6 +219,8 @@ public class PrivateDnsModeDialogPreference extends CustomDialogPreferenceCompat public void onCheckedChanged(RadioGroup group, int checkedId) { if (checkedId == R.id.private_dns_mode_off) { mMode = PRIVATE_DNS_MODE_OFF; } else if (checkedId == R.id.private_dns_mode_cloudflare) { mMode = PRIVATE_DNS_MODE_CLOUDFLARE; } else if (checkedId == R.id.private_dns_mode_opportunistic) { mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC; } else if (checkedId == R.id.private_dns_mode_provider) { Loading
src/com/android/settings/network/PrivateDnsPreferenceController.java +16 −4 Original line number Diff line number Diff line Loading @@ -65,6 +65,9 @@ public class PrivateDnsPreferenceController extends BasePreferenceController Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER), }; // Only used in Settings, update on additions to ConnectivitySettingsUtils private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4; private final Handler mHandler; private final ContentObserver mSettingsObserver; private final ConnectivityManager mConnectivityManager; Loading @@ -89,7 +92,7 @@ public class PrivateDnsPreferenceController extends BasePreferenceController return UNSUPPORTED_ON_DEVICE; } final UserManager userManager = mContext.getSystemService(UserManager.class); if (userManager.isGuestUser()) return DISABLED_FOR_USER; if (!userManager.isAdminUser()) return DISABLED_FOR_USER; return AVAILABLE; } Loading Loading @@ -129,13 +132,22 @@ public class PrivateDnsPreferenceController extends BasePreferenceController switch (mode) { case PRIVATE_DNS_MODE_OFF: return res.getString(R.string.private_dns_mode_off); case PRIVATE_DNS_MODE_CLOUDFLARE: case PRIVATE_DNS_MODE_OPPORTUNISTIC: return dnsesResolved ? res.getString(R.string.private_dns_mode_on) : res.getString(R.string.private_dns_mode_opportunistic); case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME: return dnsesResolved ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr) : res.getString(R.string.private_dns_mode_provider_failure); if (!dnsesResolved) { return res.getString(R.string.private_dns_mode_provider_failure); } final String privateDnsHostname = ConnectivitySettingsManager.getPrivateDnsHostname(mContext); final String cloudflareHostname = res.getString(R.string.private_dns_hostname_cloudflare); if (privateDnsHostname.equals(cloudflareHostname)) { return res.getString(R.string.private_dns_mode_cloudflare); } return PrivateDnsModeDialogPreference.getHostnameFromSettings(cr); } return ""; } Loading