package com.jdroid.android.context; import com.jdroid.android.utils.SharedPreferencesHelper; import com.jdroid.java.date.DateUtils; public class UsageStats { private static final String USAGE_STATS = "usageStats"; private static final String APP_LOADS = "appLoads"; private static final String FIRST_APP_LOAD_TIMESTAMP = "firstAppLoadTimestamp"; private static final String LAST_CRASH_TIMESTAMP = "lastCrashTimestamp"; private static SharedPreferencesHelper sharedPreferencesHelper; private static Long lastStopTime = DateUtils.nowMillis(); public static void incrementAppLoad() { Long appLoads = getSharedPreferencesHelper().loadPreferenceAsLong(APP_LOADS, 0L); getSharedPreferencesHelper().savePreferenceAsync(APP_LOADS, appLoads + 1); } public static Long getAppLoads() { return getSharedPreferencesHelper().loadPreferenceAsLong(APP_LOADS, 0L); } public static Long getLastStopTime() { return lastStopTime; } public static void setLastStopTime() { lastStopTime = DateUtils.nowMillis(); } public static void setLastCrashTimestamp() { getSharedPreferencesHelper().savePreferenceAsync(LAST_CRASH_TIMESTAMP, DateUtils.nowMillis()); } public static Long getLastCrashTimestamp() { return getSharedPreferencesHelper().loadPreferenceAsLong(LAST_CRASH_TIMESTAMP, 0L); } public static Long getFirstAppLoadTimestamp() { Long firstAppLoadTimestamp = getSharedPreferencesHelper().loadPreferenceAsLong(FIRST_APP_LOAD_TIMESTAMP); if (firstAppLoadTimestamp == null) { firstAppLoadTimestamp = DateUtils.nowMillis(); getSharedPreferencesHelper().savePreferenceAsync(FIRST_APP_LOAD_TIMESTAMP, firstAppLoadTimestamp); } return firstAppLoadTimestamp; } public static void reset() { getSharedPreferencesHelper().removeAllPreferences(); } public static void simulateHeavyUsage() { reset(); getSharedPreferencesHelper().savePreferenceAsync(APP_LOADS, 100L); getSharedPreferencesHelper().savePreferenceAsync(FIRST_APP_LOAD_TIMESTAMP, 0L); getSharedPreferencesHelper().savePreferenceAsync(LAST_CRASH_TIMESTAMP, 0L); } private static SharedPreferencesHelper getSharedPreferencesHelper() { if (sharedPreferencesHelper == null) { sharedPreferencesHelper = SharedPreferencesHelper.get(USAGE_STATS); } return sharedPreferencesHelper; } }