From cd93a79b8c0f61c9d3be2587f903ec5861bd9e51 Mon Sep 17 00:00:00 2001 From: Zhao Wei Liew Date: Thu, 29 Dec 2016 18:33:27 +0800 Subject: DeviceInfoSettings: Launch normal PlatLogo for LA version Since we've removed the Cid-esque PlatLogo as part of the LineageOS rebrand, get rid of the extra code and simply launch the AOSP PlatLogo when tapping on the LA version pref. Change-Id: I2b70d4115d890771999b0b1b97c8a70495a75562 --- src/com/android/settings/DeviceInfoSettings.java | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 39eaa5a..41e14ba 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -242,7 +242,8 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { - if (preference.getKey().equals(KEY_FIRMWARE_VERSION)) { + if (preference.getKey().equals(KEY_FIRMWARE_VERSION) + || preference.getKey().equals(KEY_MOD_VERSION)) { System.arraycopy(mHits, 1, mHits, 0, mHits.length-1); mHits[mHits.length-1] = SystemClock.uptimeMillis(); if (mHits[0] >= (SystemClock.uptimeMillis()-500)) { @@ -367,20 +368,6 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In if (b.getBoolean(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL)) { ciActionOnSysUpdate(b); } - } else if (preference.getKey().equals(KEY_MOD_VERSION)) { - System.arraycopy(mHits, 1, mHits, 0, mHits.length-1); - mHits[mHits.length-1] = SystemClock.uptimeMillis(); - if (mHits[0] >= (SystemClock.uptimeMillis()-500)) { - Intent intent = new Intent(Intent.ACTION_MAIN); - intent.putExtra("is_cm", true); - intent.setClassName("android", - com.android.internal.app.PlatLogoActivity.class.getName()); - try { - startActivity(intent); - } catch (Exception e) { - Log.e(LOG_TAG, "Unable to start activity " + intent.toString()); - } - } } return super.onPreferenceTreeClick(preferenceScreen, preference); } -- cgit v1.1 From 383b5d8e7076a801b60421bdd929d44de074a801 Mon Sep 17 00:00:00 2001 From: Marcos Marado Date: Tue, 29 Nov 2016 18:24:21 +0000 Subject: SimSettings: avoid NPE Don't assume getPhoneAccount doesn't return null just because you're passing a non-null argument. Avoids: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.telecom.PhoneAccount.getLabel()' on a null object reference at com.android.settings.sim.SimSettings.updateCallValues(SimSettings.java:299) at com.android.settings.sim.SimSettings.updateActivitesCategory(SimSettings.java:237) at com.android.settings.sim.SimSettings.updateAllOptions(SimSettings.java:222) at com.android.settings.sim.SimSettings.updateSubscriptions(SimSettings.java:217) at com.android.settings.sim.SimSettings.-wrap4(SimSettings.java) at com.android.settings.sim.SimSettings$1.onSubscriptionsChanged(SimSettings.java:175) at android.telephony.SubscriptionManager$OnSubscriptionsChangedListener$1.handleMessage(SubscriptionManager.java:397) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5461) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Change-Id: Ibdb5a978744a8f3e5dd916d08297a07d98aca5be --- src/com/android/settings/sim/SimSettings.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java index b97ee03..c5d3822 100644 --- a/src/com/android/settings/sim/SimSettings.java +++ b/src/com/android/settings/sim/SimSettings.java @@ -45,6 +45,7 @@ import android.telephony.SmsManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; import android.text.TextUtils; @@ -288,15 +289,19 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable private void updateCallValues() { final Preference simPref = findPreference(KEY_CALLS); final TelecomManager telecomManager = TelecomManager.from(mContext); - final PhoneAccountHandle phoneAccount = + final PhoneAccountHandle phoneAccountHandle = telecomManager.getUserSelectedOutgoingPhoneAccount(); final List allPhoneAccounts = telecomManager.getCallCapablePhoneAccounts(); simPref.setTitle(R.string.calls_title); + PhoneAccount phoneAccount = null; + if (phoneAccountHandle != null) { + phoneAccount = telecomManager.getPhoneAccount(phoneAccountHandle); + } simPref.setSummary(phoneAccount == null ? mContext.getResources().getString(R.string.sim_calls_ask_first_prefs_title) - : (String)telecomManager.getPhoneAccount(phoneAccount).getLabel()); + : (String)phoneAccount.getLabel()); simPref.setEnabled(allPhoneAccounts.size() > 1); } -- cgit v1.1 From 3a22b88a268939c01b9d027308d551a5f7930690 Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Thu, 29 Dec 2016 10:31:03 +1100 Subject: Settings: CMStats: use sha256 for device IDs Collions may occur with MD5. Change-Id: Ief2049180084e3cf80229ce1919145625d36a74c --- src/com/android/settings/cmstats/Utilities.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/android/settings/cmstats/Utilities.java b/src/com/android/settings/cmstats/Utilities.java index 1e98888..f69e8ca 100644 --- a/src/com/android/settings/cmstats/Utilities.java +++ b/src/com/android/settings/cmstats/Utilities.java @@ -72,7 +72,7 @@ public class Utilities { public static String digest(String input) { try { - MessageDigest md = MessageDigest.getInstance("MD5"); + MessageDigest md = MessageDigest.getInstance("SHA-256"); return new BigInteger(1, md.digest(input.getBytes())).toString(16).toUpperCase(); } catch (Exception e) { return null; -- cgit v1.1 From 640c391b1521005d99f54165ff20fd47a2a13d2d Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Tue, 27 Dec 2016 21:36:39 +1100 Subject: Settings: cmstats: Stop sending stats to cyngn servers Change-Id: I30fa515f924f368b6cd7016ba03f366affaa6e5e --- .../android/settings/cmstats/ReportingService.java | 36 +++----- .../settings/cmstats/StatsUploadJobService.java | 100 +-------------------- 2 files changed, 13 insertions(+), 123 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/cmstats/ReportingService.java b/src/com/android/settings/cmstats/ReportingService.java index 8410143..5c876b9 100644 --- a/src/com/android/settings/cmstats/ReportingService.java +++ b/src/com/android/settings/cmstats/ReportingService.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 The CyanogenMod Project + * (C) 2017 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -51,39 +52,24 @@ public class ReportingService extends IntentService { String deviceCarrierId = Utilities.getCarrierId(getApplicationContext()); boolean optOut = intent.getBooleanExtra(EXTRA_OPTING_OUT, false); - final int cyanogenJobId = AnonymousStats.getNextJobId(getApplicationContext()); final int cmOrgJobId = AnonymousStats.getNextJobId(getApplicationContext()); - if (DEBUG) Log.d(TAG, "scheduling jobs id: " + cyanogenJobId + ", " + cmOrgJobId); + if (DEBUG) Log.d(TAG, "scheduling job id: " + cmOrgJobId); - PersistableBundle cyanogenBundle = new PersistableBundle(); - cyanogenBundle.putBoolean(StatsUploadJobService.KEY_OPT_OUT, optOut); - cyanogenBundle.putString(StatsUploadJobService.KEY_DEVICE_NAME, deviceName); - cyanogenBundle.putString(StatsUploadJobService.KEY_UNIQUE_ID, deviceId); - cyanogenBundle.putString(StatsUploadJobService.KEY_VERSION, deviceVersion); - cyanogenBundle.putString(StatsUploadJobService.KEY_COUNTRY, deviceCountry); - cyanogenBundle.putString(StatsUploadJobService.KEY_CARRIER, deviceCarrier); - cyanogenBundle.putString(StatsUploadJobService.KEY_CARRIER_ID, deviceCarrierId); - cyanogenBundle.putLong(StatsUploadJobService.KEY_TIMESTAMP, System.currentTimeMillis()); - - // get snapshot and persist it - PersistableBundle cmBundle = new PersistableBundle(cyanogenBundle); + PersistableBundle cmBundle = new PersistableBundle(); + cmBundle.putBoolean(StatsUploadJobService.KEY_OPT_OUT, optOut); + cmBundle.putString(StatsUploadJobService.KEY_DEVICE_NAME, deviceName); + cmBundle.putString(StatsUploadJobService.KEY_UNIQUE_ID, deviceId); + cmBundle.putString(StatsUploadJobService.KEY_VERSION, deviceVersion); + cmBundle.putString(StatsUploadJobService.KEY_COUNTRY, deviceCountry); + cmBundle.putString(StatsUploadJobService.KEY_CARRIER, deviceCarrier); + cmBundle.putString(StatsUploadJobService.KEY_CARRIER_ID, deviceCarrierId); + cmBundle.putLong(StatsUploadJobService.KEY_TIMESTAMP, System.currentTimeMillis()); // set job types - cyanogenBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE, - StatsUploadJobService.JOB_TYPE_CYANOGEN); cmBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE, StatsUploadJobService.JOB_TYPE_CMORG); - // schedule cyanogen stats upload - js.schedule(new JobInfo.Builder(cyanogenJobId, new ComponentName(getPackageName(), - StatsUploadJobService.class.getName())) - .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY) - .setMinimumLatency(1000) - .setExtras(cyanogenBundle) - .setPersisted(true) - .build()); - // schedule cmorg stats upload js.schedule(new JobInfo.Builder(cmOrgJobId, new ComponentName(getPackageName(), StatsUploadJobService.class.getName())) diff --git a/src/com/android/settings/cmstats/StatsUploadJobService.java b/src/com/android/settings/cmstats/StatsUploadJobService.java index 580a20f..0171988 100644 --- a/src/com/android/settings/cmstats/StatsUploadJobService.java +++ b/src/com/android/settings/cmstats/StatsUploadJobService.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 The CyanogenMod Project + * (C) 2017 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,8 +47,7 @@ public class StatsUploadJobService extends JobService { private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); public static final String KEY_JOB_TYPE = "job_type"; - public static final int JOB_TYPE_CYANOGEN = 1; - public static final int JOB_TYPE_CMORG = 2; + public static final int JOB_TYPE_CMORG = 1; public static final String KEY_UNIQUE_ID = "uniqueId"; public static final String KEY_DEVICE_NAME = "deviceName"; @@ -114,25 +114,6 @@ public class StatsUploadJobService extends JobService { int jobType = extras.getInt(KEY_JOB_TYPE, -1); if (!isCancelled()) { switch (jobType) { - case JOB_TYPE_CYANOGEN: - try { - JSONObject json = new JSONObject(); - json.put("optOut", optOut); - json.put("uniqueId", deviceId); - json.put("deviceName", deviceName); - json.put("version", deviceVersion); - json.put("country", deviceCountry); - json.put("carrier", deviceCarrier); - json.put("carrierId", deviceCarrierId); - json.put("timestamp", timeStamp); - - success = uploadToCyanogen(json); - } catch (IOException | JSONException e) { - Log.e(TAG, "Could not upload stats checkin to cyanogen server", e); - success = false; - } - break; - case JOB_TYPE_CMORG: try { success = uploadToCM(deviceId, deviceName, deviceVersion, deviceCountry, @@ -192,83 +173,6 @@ public class StatsUploadJobService extends JobService { } - private boolean uploadToCyanogen(JSONObject json) - throws IOException, JSONException { - String authToken = getAuthToken(); - - if (authToken.isEmpty()) { - Log.w(TAG, "no auth token!"); - } - - URL url = new URL(getString(R.string.stats_cyanogen_url)); - HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); - try { - urlConnection.setInstanceFollowRedirects(true); - urlConnection.setDoInput(true); - urlConnection.setDoOutput(true); - - urlConnection.setRequestProperty("Accept-Encoding", "identity"); - urlConnection.setRequestProperty("Authorization", authToken); - urlConnection.setRequestProperty("Content-Type", "application/json"); - - OutputStream os = urlConnection.getOutputStream(); - BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); - writer.write(json.toString()); - writer.flush(); - writer.close(); - os.close(); - - urlConnection.connect(); - - final int responseCode = urlConnection.getResponseCode(); - final boolean success = responseCode == HttpURLConnection.HTTP_OK; - - final String response = getResponse(urlConnection, !success); - if (DEBUG) - Log.d(TAG, "server responseCode: " + responseCode +", response=" + response); - - if (!success) { - Log.w(TAG, "failed sending, server returned: " + response); - } - return success; - } finally { - urlConnection.disconnect(); - } - } - - private String getAuthToken() { - HttpURLConnection urlConnection = null; - try { - URL url = new URL(getString(R.string.stats_cyanogen_token_url)); - urlConnection = (HttpURLConnection) url.openConnection(); - urlConnection.setInstanceFollowRedirects(true); - urlConnection.setDoInput(true); - - urlConnection.setRequestProperty("Accept-Encoding", "identity"); - urlConnection.setRequestProperty("Content-Type", "text/plain"); - - urlConnection.connect(); - - final int responseCode = urlConnection.getResponseCode(); - final boolean success = responseCode == HttpURLConnection.HTTP_OK; - if (DEBUG) Log.d(TAG, "server auth response code=" + responseCode); - final String response = getResponse(urlConnection, !success); - if (DEBUG) - Log.d(TAG, "server auth response=" + response); - - if (success) { - return response; - } - } catch (IOException e) { - Log.e(TAG, "error getting auth token", e); - } finally { - if (urlConnection != null) { - urlConnection.disconnect(); - } - } - return ""; - } - private String getResponse(HttpURLConnection httpUrlConnection, boolean errorStream) throws IOException { InputStream responseStream = new BufferedInputStream(errorStream -- cgit v1.1 From 39de418560fc3d9ea9238aca19303d94c33cdeeb Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Wed, 28 Dec 2016 11:51:38 +1100 Subject: Settings: cmstats: Stop tracking opt-out events Change-Id: Ia0e50b4af3979c374b4202cd6a187a9f0ded9e60 --- .../android/settings/cmstats/AnonymousStats.java | 28 +--------------------- .../android/settings/cmstats/ReportingService.java | 10 -------- .../settings/cmstats/ReportingServiceManager.java | 16 +------------ .../settings/cmstats/StatsUploadJobService.java | 8 ++----- 4 files changed, 4 insertions(+), 58 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/cmstats/AnonymousStats.java b/src/com/android/settings/cmstats/AnonymousStats.java index 232a533..54e124d 100644 --- a/src/com/android/settings/cmstats/AnonymousStats.java +++ b/src/com/android/settings/cmstats/AnonymousStats.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2015 The CyanogenMod Project + * (C) 2017 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,15 +21,9 @@ import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; -import android.os.UserHandle; -import android.preference.Preference; -import android.preference.PreferenceScreen; -import android.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; -import cyanogenmod.providers.CMSettings; - import org.cyanogenmod.internal.logging.CMMetricsLogger; public class AnonymousStats extends SettingsPreferenceFragment { @@ -40,10 +35,6 @@ public class AnonymousStats extends SettingsPreferenceFragment { /* package */ static final String KEY_LAST_JOB_ID = "last_job_id"; /* package */ static final int QUEUE_MAX_THRESHOLD = 1000; - public static final String KEY_STATS = "stats_collection"; - - SwitchPreference mStatsSwitch; - public static SharedPreferences getPreferences(Context context) { return context.getSharedPreferences(PREF_FILE_NAME, 0); } @@ -52,23 +43,6 @@ public class AnonymousStats extends SettingsPreferenceFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.anonymous_stats); - mStatsSwitch = (SwitchPreference) findPreference(KEY_STATS); - } - - @Override - public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { - if (preference == mStatsSwitch) { - boolean checked = mStatsSwitch.isChecked(); - if (checked) { - // clear opt out flags - CMSettings.Secure.putIntForUser(getContentResolver(), - CMSettings.Secure.STATS_COLLECTION_REPORTED, 0, UserHandle.USER_OWNER); - } - // will initiate opt out sequence if necessary - ReportingServiceManager.setAlarm(getActivity()); - return true; - } - return super.onPreferenceTreeClick(preferenceScreen, preference); } public static void updateLastSynced(Context context) { diff --git a/src/com/android/settings/cmstats/ReportingService.java b/src/com/android/settings/cmstats/ReportingService.java index 5c876b9..f04786d 100644 --- a/src/com/android/settings/cmstats/ReportingService.java +++ b/src/com/android/settings/cmstats/ReportingService.java @@ -34,8 +34,6 @@ public class ReportingService extends IntentService { /* package */ static final String TAG = "CMStats"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - public static final String EXTRA_OPTING_OUT = "cmstats::opt_out"; - public ReportingService() { super(ReportingService.class.getSimpleName()); } @@ -50,14 +48,12 @@ public class ReportingService extends IntentService { String deviceCountry = Utilities.getCountryCode(getApplicationContext()); String deviceCarrier = Utilities.getCarrier(getApplicationContext()); String deviceCarrierId = Utilities.getCarrierId(getApplicationContext()); - boolean optOut = intent.getBooleanExtra(EXTRA_OPTING_OUT, false); final int cmOrgJobId = AnonymousStats.getNextJobId(getApplicationContext()); if (DEBUG) Log.d(TAG, "scheduling job id: " + cmOrgJobId); PersistableBundle cmBundle = new PersistableBundle(); - cmBundle.putBoolean(StatsUploadJobService.KEY_OPT_OUT, optOut); cmBundle.putString(StatsUploadJobService.KEY_DEVICE_NAME, deviceName); cmBundle.putString(StatsUploadJobService.KEY_UNIQUE_ID, deviceId); cmBundle.putString(StatsUploadJobService.KEY_VERSION, deviceVersion); @@ -79,12 +75,6 @@ public class ReportingService extends IntentService { .setPersisted(true) .build()); - if (optOut) { - // we've successfully scheduled the opt out. - CMSettings.Secure.putIntForUser(getContentResolver(), - CMSettings.Secure.STATS_COLLECTION_REPORTED, 1, UserHandle.USER_OWNER); - } - // reschedule AnonymousStats.updateLastSynced(this); ReportingServiceManager.setAlarm(this); diff --git a/src/com/android/settings/cmstats/ReportingServiceManager.java b/src/com/android/settings/cmstats/ReportingServiceManager.java index bce1372..286618c 100644 --- a/src/com/android/settings/cmstats/ReportingServiceManager.java +++ b/src/com/android/settings/cmstats/ReportingServiceManager.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2012 The CyanogenMod Project + * (C) 2017 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -47,27 +48,12 @@ public class ReportingServiceManager extends BroadcastReceiver { } } - /** - * opt out if we haven't yet - */ - public static void initiateOptOut(Context context) { - final boolean optOutReported = CMSettings.Secure.getIntForUser(context.getContentResolver(), - CMSettings.Secure.STATS_COLLECTION_REPORTED, 0, UserHandle.USER_OWNER) == 1; - if (!optOutReported) { - Intent intent = new Intent(); - intent.setClass(context, ReportingService.class); - intent.putExtra(ReportingService.EXTRA_OPTING_OUT, true); - context.startServiceAsUser(intent, UserHandle.OWNER); - } - } - public static void setAlarm(Context context) { SharedPreferences prefs = AnonymousStats.getPreferences(context); if (prefs.contains(AnonymousStats.ANONYMOUS_OPT_IN)) { migrate(context, prefs); } if (!Utilities.isStatsCollectionEnabled(context)) { - initiateOptOut(context); return; } long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0); diff --git a/src/com/android/settings/cmstats/StatsUploadJobService.java b/src/com/android/settings/cmstats/StatsUploadJobService.java index 0171988..c4b69ff 100644 --- a/src/com/android/settings/cmstats/StatsUploadJobService.java +++ b/src/com/android/settings/cmstats/StatsUploadJobService.java @@ -56,7 +56,6 @@ public class StatsUploadJobService extends JobService { public static final String KEY_CARRIER = "carrier"; public static final String KEY_CARRIER_ID = "carrierId"; public static final String KEY_TIMESTAMP = "timeStamp"; - public static final String KEY_OPT_OUT = "optOut"; private final Map mCurrentJobs = Collections.synchronizedMap(new ArrayMap()); @@ -108,7 +107,6 @@ public class StatsUploadJobService extends JobService { String deviceCarrier = extras.getString(KEY_CARRIER); String deviceCarrierId = extras.getString(KEY_CARRIER_ID); long timeStamp = extras.getLong(KEY_TIMESTAMP); - boolean optOut = extras.getBoolean(KEY_OPT_OUT); boolean success = false; int jobType = extras.getInt(KEY_JOB_TYPE, -1); @@ -117,7 +115,7 @@ public class StatsUploadJobService extends JobService { case JOB_TYPE_CMORG: try { success = uploadToCM(deviceId, deviceName, deviceVersion, deviceCountry, - deviceCarrier, deviceCarrierId, optOut); + deviceCarrier, deviceCarrierId); } catch (IOException e) { Log.e(TAG, "Could not upload stats checkin to commnity server", e); success = false; @@ -140,12 +138,10 @@ public class StatsUploadJobService extends JobService { private boolean uploadToCM(String deviceId, String deviceName, String deviceVersion, - String deviceCountry, String deviceCarrier, String deviceCarrierId, - boolean optOut) + String deviceCountry, String deviceCarrier, String deviceCarrierId) throws IOException { final Uri uri = Uri.parse(getString(R.string.stats_cm_url)).buildUpon() - .appendQueryParameter("opt_out", optOut ? "1" : "0") .appendQueryParameter("device_hash", deviceId) .appendQueryParameter("device_name", deviceName) .appendQueryParameter("device_version", deviceVersion) -- cgit v1.1 From ed584932ca159e2e49add95f766cb743bf84a960 Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Thu, 29 Dec 2016 12:18:54 +1100 Subject: Settings: CMStats: Upload stats only if user has not opted out Change-Id: If4cd7a2c1cee23e63d6191fbdff08c2219f8b8bc --- src/com/android/settings/cmstats/StatsUploadJobService.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/com/android/settings/cmstats/StatsUploadJobService.java b/src/com/android/settings/cmstats/StatsUploadJobService.java index c4b69ff..4533e28 100644 --- a/src/com/android/settings/cmstats/StatsUploadJobService.java +++ b/src/com/android/settings/cmstats/StatsUploadJobService.java @@ -64,6 +64,11 @@ public class StatsUploadJobService extends JobService { public boolean onStartJob(JobParameters jobParameters) { if (DEBUG) Log.d(TAG, "onStartJob() called with " + "jobParameters = [" + jobParameters + "]"); + + if (!Utilities.isStatsCollectionEnabled(this)) { + return false; + } + final StatsUploadTask uploadTask = new StatsUploadTask(jobParameters); mCurrentJobs.put(jobParameters, uploadTask); uploadTask.execute((Void) null); -- cgit v1.1 From 8535ca7c5b3eb96be20ef16c33d805ebe5bfbbf0 Mon Sep 17 00:00:00 2001 From: Simon Shields Date: Thu, 29 Dec 2016 11:00:19 +1100 Subject: Settings: CMStats: use new server-side API * version the API * instead of sending a POST request with parameters, POST a json blob. Change-Id: I1e83f85ca833b823dfd23eacbc8309d9eeee72a9 --- .../settings/cmstats/StatsUploadJobService.java | 41 +++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/cmstats/StatsUploadJobService.java b/src/com/android/settings/cmstats/StatsUploadJobService.java index 4533e28..c84e1a1 100644 --- a/src/com/android/settings/cmstats/StatsUploadJobService.java +++ b/src/com/android/settings/cmstats/StatsUploadJobService.java @@ -119,10 +119,11 @@ public class StatsUploadJobService extends JobService { switch (jobType) { case JOB_TYPE_CMORG: try { - success = uploadToCM(deviceId, deviceName, deviceVersion, deviceCountry, - deviceCarrier, deviceCarrierId); - } catch (IOException e) { - Log.e(TAG, "Could not upload stats checkin to commnity server", e); + JSONObject json = buildStatsRequest(deviceId, deviceName, + deviceVersion, deviceCountry, deviceCarrier, deviceCarrierId); + success = uploadToCM(json); + } catch (IOException | JSONException e) { + Log.e(TAG, "Could not upload stats checkin to community server", e); success = false; } break; @@ -141,24 +142,32 @@ public class StatsUploadJobService extends JobService { } } + private JSONObject buildStatsRequest(String deviceId, String deviceName, String deviceVersion, + String deviceCountry, String deviceCarrier, + String deviceCarrierId) throws JSONException { + JSONObject request = new JSONObject(); + request.put("device_hash", deviceId); + request.put("device_name", deviceName); + request.put("device_version", deviceVersion); + request.put("device_country", deviceCountry); + request.put("device_carrier", deviceCarrier); + request.put("device_carrier_id", deviceCarrierId); + return request; + } - private boolean uploadToCM(String deviceId, String deviceName, String deviceVersion, - String deviceCountry, String deviceCarrier, String deviceCarrierId) - throws IOException { - - final Uri uri = Uri.parse(getString(R.string.stats_cm_url)).buildUpon() - .appendQueryParameter("device_hash", deviceId) - .appendQueryParameter("device_name", deviceName) - .appendQueryParameter("device_version", deviceVersion) - .appendQueryParameter("device_country", deviceCountry) - .appendQueryParameter("device_carrier", deviceCarrier) - .appendQueryParameter("device_carrier_id", deviceCarrierId).build(); + private boolean uploadToCM(JSONObject json) throws IOException { + final Uri uri = Uri.parse(getString(R.string.stats_cm_url)); URL url = new URL(uri.toString()); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); try { urlConnection.setInstanceFollowRedirects(true); urlConnection.setDoOutput(true); - urlConnection.connect(); + urlConnection.setDoInput(true); + urlConnection.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + + OutputStream os = urlConnection.getOutputStream(); + os.write(json.toString().getBytes("UTF-8")); + os.close(); final int responseCode = urlConnection.getResponseCode(); if (DEBUG) Log.d(TAG, "cm server response code=" + responseCode); -- cgit v1.1 From 1bdefa08e856bbcac3475f42aa9bf194c9b83b27 Mon Sep 17 00:00:00 2001 From: Zhao Wei Liew Date: Sat, 14 Jan 2017 02:29:24 +0800 Subject: DeviceInfo: Set is_lineage intent when launching PlatLogo We use this to decide whether to launch the LineageOS PlatLogo. Change-Id: I23dfc7b6aa6b8d96d45a757a4b44f2399e62196c --- src/com/android/settings/DeviceInfoSettings.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 41e14ba..3eb2f90 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -254,6 +254,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In } Intent intent = new Intent(Intent.ACTION_MAIN); + intent.putExtra("is_lineage", preference.getKey().equals(KEY_MOD_VERSION)); intent.setClassName("android", com.android.internal.app.PlatLogoActivity.class.getName()); try { -- cgit v1.1 From 8586c215c77da79e8e2b08e813442a702a3aa747 Mon Sep 17 00:00:00 2001 From: nijel8 Date: Sat, 7 Jan 2017 09:56:57 -0500 Subject: Settings: Update button backlight brightness in real time When adjusting the button backlight brightness using the seekbar, the brightness did not update in real time, but only when the RESET button is tapped. With this change, the brightness is updated instantly. Change-Id: Ib4db8b4759f2b756495dc3f9319b35cdb548d9e5 --- .../cyanogenmod/ButtonBacklightBrightness.java | 24 +++++++++------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java b/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java index 7c63f34..96f6020 100644 --- a/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java +++ b/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java @@ -49,8 +49,6 @@ public class ButtonBacklightBrightness extends DialogPreference implements public static final String KEY_BUTTON_BACKLIGHT = "pre_navbar_button_backlight"; - private Window mWindow; - private BrightnessControl mButtonBrightness; private BrightnessControl mKeyboardBrightness; private BrightnessControl mActiveControl; @@ -150,10 +148,6 @@ public class ButtonBacklightBrightness extends DialogPreference implements } } }); - - if (getDialog() != null) { - mWindow = getDialog().getWindow(); - } updateBrightnessPreview(); } @@ -280,15 +274,17 @@ public class ButtonBacklightBrightness extends DialogPreference implements } private void updateBrightnessPreview() { - if (mWindow != null) { - LayoutParams params = mWindow.getAttributes(); - if (mActiveControl != null) { - params.buttonBrightness = (float) mActiveControl.getBrightness(false) / 255.0f; - } else { - params.buttonBrightness = -1; - } - mWindow.setAttributes(params); + if (getDialog() == null || getDialog().getWindow() == null) { + return; + } + Window window = getDialog().getWindow(); + LayoutParams params = window.getAttributes(); + if (mActiveControl != null) { + params.buttonBrightness = (float) mActiveControl.getBrightness(false) / 255.0f; + } else { + params.buttonBrightness = -1; } + window.setAttributes(params); } private void updateTimeoutEnabledState() { -- cgit v1.1 From 0cfb58bd75a916ac529b7df676b22af357bc1c03 Mon Sep 17 00:00:00 2001 From: Zhao Wei Liew Date: Mon, 16 Jan 2017 19:11:23 +0800 Subject: ButtonBacklight: Preview timeout once user stops dragging Change-Id: I0abebe1041b6ad42b10e7d24f76ea17046e64666 --- .../settings/cyanogenmod/ButtonBacklightBrightness.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java b/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java index 96f6020..ab3ee3f 100644 --- a/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java +++ b/src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2013 The CyanogenMod Project + * 2017 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -59,6 +60,8 @@ public class ButtonBacklightBrightness extends DialogPreference implements private ContentResolver mResolver; + private int mOriginalTimeout; + public ButtonBacklightBrightness(Context context, AttributeSet attrs) { super(context, attrs); @@ -105,7 +108,8 @@ public class ButtonBacklightBrightness extends DialogPreference implements mTimeoutValue = (TextView) view.findViewById(R.id.timeout_value); mTimeoutBar.setMax(30); mTimeoutBar.setOnSeekBarChangeListener(this); - mTimeoutBar.setProgress(getTimeout()); + mOriginalTimeout = getTimeout(); + mTimeoutBar.setProgress(mOriginalTimeout); handleTimeoutUpdate(mTimeoutBar.getProgress()); ViewGroup buttonContainer = (ViewGroup) view.findViewById(R.id.button_container); @@ -140,6 +144,7 @@ public class ButtonBacklightBrightness extends DialogPreference implements @Override public void onClick(View v) { mTimeoutBar.setProgress(DEFAULT_BUTTON_TIMEOUT); + applyTimeout(DEFAULT_BUTTON_TIMEOUT); if (mButtonBrightness != null) { mButtonBrightness.reset(); } @@ -156,6 +161,7 @@ public class ButtonBacklightBrightness extends DialogPreference implements super.onDialogClosed(positiveResult); if (!positiveResult) { + applyTimeout(mOriginalTimeout); return; } @@ -316,7 +322,7 @@ public class ButtonBacklightBrightness extends DialogPreference implements @Override public void onStopTrackingTouch(SeekBar seekBar) { - // Do nothing here + applyTimeout(seekBar.getProgress()); } private static class SavedState extends BaseSavedState { -- cgit v1.1