aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-12-03 02:32:49 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-12-03 02:32:52 +0000
commite79d504cf521e6dd516f0d15eb29f9e61be3e85d (patch)
tree8533b53e06daa6a390f72e4eb8c80df04126482c
parentd179e40899b648ce2ceb8543678176f9a696ff30 (diff)
parent47ae0c3af41404efadcb4127d2e06acff992b2d8 (diff)
downloadlatinime-e79d504cf521e6dd516f0d15eb29f9e61be3e85d.tar.gz
latinime-e79d504cf521e6dd516f0d15eb29f9e61be3e85d.tar.xz
latinime-e79d504cf521e6dd516f0d15eb29f9e61be3e85d.zip
Merge "Cancel interval alarm for dictionary decaying in onDestroy."
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java1
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java37
-rw-r--r--java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java2
3 files changed, 32 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 66746cb6a..44dffa44e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -731,6 +731,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
unregisterReceiver(mDictionaryPackInstallReceiver);
unregisterReceiver(mDictionaryDumpBroadcastReceiver);
mStatsUtilsManager.onDestroy();
+ DictionaryDecayBroadcastReciever.cancelIntervalAlarmForDictionaryDecaying(this);
super.onDestroy();
}
diff --git a/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java b/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
index 221bb9a8f..e974f3320 100644
--- a/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
+++ b/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
@@ -43,17 +43,40 @@ public class DictionaryDecayBroadcastReciever extends BroadcastReceiver {
/**
* Interval to update for decaying dictionaries.
*/
- /* package */ static final long DICTIONARY_DECAY_INTERVAL = TimeUnit.MINUTES.toMillis(60);
+ static final long DICTIONARY_DECAY_INTERVAL_IN_MILLIS = TimeUnit.MINUTES.toMillis(60);
- public static void setUpIntervalAlarmForDictionaryDecaying(Context context) {
- AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
+ private static PendingIntent getPendingIntentForDictionaryDecay(final Context context) {
final Intent updateIntent = new Intent(DICTIONARY_DECAY_INTENT_ACTION);
updateIntent.setClass(context, DictionaryDecayBroadcastReciever.class);
- final long alarmTime = System.currentTimeMillis() + DICTIONARY_DECAY_INTERVAL;
- final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0 /* requestCode */,
+ return PendingIntent.getBroadcast(context, 0 /* requestCode */,
updateIntent, PendingIntent.FLAG_CANCEL_CURRENT);
- if (null != alarmManager) alarmManager.setInexactRepeating(AlarmManager.RTC,
- alarmTime, DICTIONARY_DECAY_INTERVAL, pendingIntent);
+ }
+
+ /**
+ * Set up interval alarm for dynamic dictionaries.
+ */
+ public static void setUpIntervalAlarmForDictionaryDecaying(final Context context) {
+ final AlarmManager alarmManager =
+ (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
+ if (null == alarmManager) {
+ return;
+ }
+ final long alarmTriggerTimeInMillis =
+ System.currentTimeMillis() + DICTIONARY_DECAY_INTERVAL_IN_MILLIS;
+ alarmManager.setInexactRepeating(AlarmManager.RTC, alarmTriggerTimeInMillis,
+ DICTIONARY_DECAY_INTERVAL_IN_MILLIS, getPendingIntentForDictionaryDecay(context));
+ }
+
+ /**
+ * Cancel interval alarm that has been set up.
+ */
+ public static void cancelIntervalAlarmForDictionaryDecaying(final Context context) {
+ final AlarmManager alarmManager =
+ (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
+ if (null == alarmManager) {
+ return;
+ }
+ alarmManager.cancel(getPendingIntentForDictionaryDecay(context));
}
@Override
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index 8c5eb0aa7..74196dd6d 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -74,7 +74,7 @@ public class PersonalizationHelper {
private static int sCurrentTimestampForTesting = 0;
public static void currentTimeChangedForTesting(final int currentTimestamp) {
if (TimeUnit.MILLISECONDS.toSeconds(
- DictionaryDecayBroadcastReciever.DICTIONARY_DECAY_INTERVAL)
+ DictionaryDecayBroadcastReciever.DICTIONARY_DECAY_INTERVAL_IN_MILLIS)
< currentTimestamp - sCurrentTimestampForTesting) {
runGCOnAllOpenedUserHistoryDictionaries();
runGCOnAllOpenedPersonalizationDictionaries();