Merge "Use GoogleSetting to override DRP setting if available" into lmp-dev
This commit is contained in:
@@ -1273,7 +1273,7 @@
|
||||
<string name="bluetooth_device_advanced_online_mode_title">Connect</string>
|
||||
<!-- Bluetooth settings. Connection options screen. The summary of the online mode checkbox. This describes what the setting does in the context of the screen. -->
|
||||
<string name="bluetooth_device_advanced_online_mode_summary">Connect to Bluetooth device</string>
|
||||
<!-- Bluetooth settings. Connection options screen. The title of the header that is above all of the profiles.
|
||||
<!-- Bluetooth settings. Connection options screen. The title of the header that is above all of the profiles.
|
||||
When a user decides what Bluetooth capabilities to use with the device. -->
|
||||
<string name="bluetooth_device_advanced_profile_header_title">Use for</string>
|
||||
<!-- Bluetooth settings. Connection options screen. Title for option to rename the device. [CHAR LIMIT=30] -->
|
||||
@@ -4834,11 +4834,14 @@
|
||||
<string name="show_all_anrs_summary">Show App Not Responding dialog
|
||||
for background apps</string>
|
||||
|
||||
<!-- UI debug setting: webview data reduction proxy [CHAR LIMIT=100] -->
|
||||
<string name="dev_settings_use_google_settings">Please use GoogleSettings app for this operation</string>
|
||||
|
||||
<!-- UI debug setting: webview data reduction proxy [CHAR LIMIT=50] -->
|
||||
<string name="webview_data_reduction_proxy">Reduce WebView Network Usage</string>
|
||||
<!-- UI debug setting: webview data reduction proxy summary [CHAR LIMIT=200] -->
|
||||
<string name="webview_data_reduction_proxy_summary">Reduce network usage by
|
||||
proxying WebView connections through Google compression servers (Experimental)</string>
|
||||
proxying WebView connections through Google compression servers</string>
|
||||
|
||||
<!-- Activity title for network data usage summary. [CHAR LIMIT=25] -->
|
||||
<string name="data_usage_summary_title">Data usage</string>
|
||||
|
@@ -31,7 +31,9 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.database.Cursor;
|
||||
import android.hardware.usb.IUsbManager;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.BatteryManager;
|
||||
@@ -153,6 +155,9 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs";
|
||||
|
||||
private static final String WEBVIEW_DATA_REDUCTION_PROXY_KEY = "webview_data_reduction_proxy";
|
||||
// GoogleSetting name for the data reduction proxy setting.
|
||||
// Setting type: int ( 0 = disallow, 1 = allow )
|
||||
private static final String WEBVIEW_DATA_REDUCTION_PROXY = "use_webview_data_reduction_proxy";
|
||||
|
||||
private static final String PROCESS_STATS = "proc_stats";
|
||||
|
||||
@@ -166,6 +171,11 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
|
||||
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
|
||||
|
||||
// The setting Uri. Used when querying GoogleSettings.
|
||||
private static final Uri GOOGLE_SETTINGS_CONTENT_URI = Uri.parse("content://com.google.settings/partner");
|
||||
private static final String GOOGLE_SETTINGS_COMPONENT = "com.google.android.gms";
|
||||
private static final String GOOGLE_SETTINGS_ACTIVITY = ".app.settings.GoogleSettingsActivity";
|
||||
|
||||
private static String DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES = "262144"; // 256K
|
||||
|
||||
private IWindowManager mWindowManager;
|
||||
@@ -372,6 +382,13 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
mAllPrefs.add(mProcessStats);
|
||||
|
||||
mWebViewDataReductionProxy = findAndInitCheckboxPref(WEBVIEW_DATA_REDUCTION_PROXY_KEY);
|
||||
mWebViewDataReductionProxy.setOnPreferenceChangeListener(
|
||||
new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
return handleDataReductionProxyPreferenceChange();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private ListPreference addListPreference(String prefKey) {
|
||||
@@ -1277,6 +1294,50 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
getActivity().getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0);
|
||||
}
|
||||
|
||||
// Reads the googlesetting and converts to an int. Throws an exception if GoogleSettings
|
||||
// provider does not exist or if the setting name cannot be found.
|
||||
private int getGoogleSettingValue(String name) throws Exception {
|
||||
String value = null;
|
||||
Cursor c = null;
|
||||
try {
|
||||
ContentResolver resolver = getActivity().getContentResolver();
|
||||
c = resolver.query(GOOGLE_SETTINGS_CONTENT_URI, new String[] { "value" },
|
||||
"name=?", new String[]{ name }, null);
|
||||
if (c != null && c.moveToNext()) value = c.getString(0);
|
||||
} finally {
|
||||
if (c != null) c.close();
|
||||
}
|
||||
// Throw an exception if value is null. This will indicate that setting is not found.
|
||||
return Integer.parseInt(value);
|
||||
}
|
||||
|
||||
private boolean handleDataReductionProxyPreferenceChange() {
|
||||
int val;
|
||||
try {
|
||||
val = getGoogleSettingValue(WEBVIEW_DATA_REDUCTION_PROXY);
|
||||
} catch (Exception e) {
|
||||
// Accessing GoogleSettings failed. Use the developer setting.
|
||||
return true;
|
||||
}
|
||||
|
||||
Intent i = new Intent();
|
||||
i.setClassName(GOOGLE_SETTINGS_COMPONENT,
|
||||
GOOGLE_SETTINGS_COMPONENT + GOOGLE_SETTINGS_ACTIVITY);
|
||||
try {
|
||||
startActivity(i);
|
||||
} catch (android.content.ActivityNotFoundException ex) {
|
||||
// We found the GoogleSetting but for some reason activity not found.
|
||||
// Do our best and put an alert dialog
|
||||
new AlertDialog.Builder(getActivity()).setMessage(
|
||||
getActivity().getResources().getString(
|
||||
R.string.dev_settings_use_google_settings))
|
||||
.setPositiveButton(android.R.string.ok, this)
|
||||
.show();
|
||||
}
|
||||
// Use GoogleSettings to set.
|
||||
return false;
|
||||
}
|
||||
|
||||
private void writeWebViewDataReductionProxyOptions() {
|
||||
Settings.Secure.putInt(getActivity().getContentResolver(),
|
||||
Settings.Secure.WEBVIEW_DATA_REDUCTION_PROXY,
|
||||
@@ -1287,9 +1348,17 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private void updateWebViewDataReductionProxyOptions() {
|
||||
updateCheckBox(mWebViewDataReductionProxy, Settings.Secure.getInt(
|
||||
getActivity().getContentResolver(),
|
||||
Settings.Secure.WEBVIEW_DATA_REDUCTION_PROXY, 0) != 0);
|
||||
int val = -1;
|
||||
try {
|
||||
val = getGoogleSettingValue(WEBVIEW_DATA_REDUCTION_PROXY);
|
||||
} catch (Exception e) {
|
||||
// Accessing GoogleSettings failed. Use the developer setting
|
||||
}
|
||||
if (val == -1) {
|
||||
val = Settings.Secure.getInt(getActivity().getContentResolver(),
|
||||
Settings.Secure.WEBVIEW_DATA_REDUCTION_PROXY, 0);
|
||||
}
|
||||
updateCheckBox(mWebViewDataReductionProxy, val != 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user