summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/cmstats/ReportingServiceManager.java
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2015-06-15 14:42:37 -0700
committerAdnan Begovic <adnan@cyngn.com>2015-11-23 14:26:12 -0800
commit0e05f466d0d4f1790542a3e33e9272d285c29c82 (patch)
treed7792a8fe27edb00a6a69bf7ac25173160d00251 /src/com/android/settings/cmstats/ReportingServiceManager.java
parent457a0871f257dd5fc29d24cb0f001db9ab6ed3ca (diff)
downloadpackages_apps_Settings-0e05f466d0d4f1790542a3e33e9272d285c29c82.tar.gz
packages_apps_Settings-0e05f466d0d4f1790542a3e33e9272d285c29c82.tar.bz2
packages_apps_Settings-0e05f466d0d4f1790542a3e33e9272d285c29c82.zip
Settings: update community metrics
- Send community metrics to CM.org as well as Cyanogen server - Kill off Google Analytics - Use JobScheduler to intelligently schedule uploads when network connection is available Change-Id: Ibd7d84a961dda4af20db9226191380e9f977b5de Signed-off-by: Roman Birg <roman@cyngn.com>
Diffstat (limited to 'src/com/android/settings/cmstats/ReportingServiceManager.java')
-rw-r--r--src/com/android/settings/cmstats/ReportingServiceManager.java47
1 files changed, 21 insertions, 26 deletions
diff --git a/src/com/android/settings/cmstats/ReportingServiceManager.java b/src/com/android/settings/cmstats/ReportingServiceManager.java
index 4fc42424e..e7ca159e8 100644
--- a/src/com/android/settings/cmstats/ReportingServiceManager.java
+++ b/src/com/android/settings/cmstats/ReportingServiceManager.java
@@ -22,9 +22,6 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.provider.Settings;
import android.util.Log;
public class ReportingServiceManager extends BroadcastReceiver {
@@ -32,12 +29,16 @@ public class ReportingServiceManager extends BroadcastReceiver {
private static final long MILLIS_PER_DAY = 24L * MILLIS_PER_HOUR;
private static final long UPDATE_INTERVAL = 1L * MILLIS_PER_DAY;
+ public static final String ACTION_LAUNCH_SERVICE =
+ "com.android.settings.action.TRIGGER_REPORT_METRICS";
+ public static final String EXTRA_FORCE = "force";
+
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
setAlarm(context, 0);
- } else {
- launchService(context);
+ } else if (intent.getAction().equals(ACTION_LAUNCH_SERVICE)){
+ launchService(context, intent.getBooleanExtra(EXTRA_FORCE, false));
}
}
@@ -63,7 +64,7 @@ public class ReportingServiceManager extends BroadcastReceiver {
millisFromNow = (lastSynced + UPDATE_INTERVAL) - System.currentTimeMillis();
}
- Intent intent = new Intent(ConnectivityManager.CONNECTIVITY_ACTION);
+ Intent intent = new Intent(ACTION_LAUNCH_SERVICE);
intent.setClass(context, ReportingServiceManager.class);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
@@ -73,32 +74,26 @@ public class ReportingServiceManager extends BroadcastReceiver {
+ millisFromNow / MILLIS_PER_HOUR + " hours");
}
- public static void launchService(Context context) {
- ConnectivityManager cm = (ConnectivityManager)
- context.getSystemService(Context.CONNECTIVITY_SERVICE);
-
- NetworkInfo networkInfo = cm.getActiveNetworkInfo();
- if (networkInfo == null || !networkInfo.isConnected()) {
- return;
- }
-
+ public static void launchService(Context context, boolean force) {
SharedPreferences prefs = AnonymousStats.getPreferences(context);
if (!Utilities.isStatsCollectionEnabled(context)) {
return;
}
- long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0);
- if (lastSynced == 0) {
- setAlarm(context, 0);
- return;
- }
- long timeElapsed = System.currentTimeMillis() - lastSynced;
- if (timeElapsed < UPDATE_INTERVAL) {
- long timeLeft = UPDATE_INTERVAL - timeElapsed;
- Log.d(ReportingService.TAG, "Waiting for next sync : "
- + timeLeft / MILLIS_PER_HOUR + " hours");
- return;
+ if (!force) {
+ long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0);
+ if (lastSynced == 0) {
+ setAlarm(context, 0);
+ return;
+ }
+ long timeElapsed = System.currentTimeMillis() - lastSynced;
+ if (timeElapsed < UPDATE_INTERVAL) {
+ long timeLeft = UPDATE_INTERVAL - timeElapsed;
+ Log.d(ReportingService.TAG, "Waiting for next sync : "
+ + timeLeft / MILLIS_PER_HOUR + " hours");
+ return;
+ }
}
Intent intent = new Intent();