summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2016-08-23 12:48:31 -0400
committerJason Monk <jmonk@google.com>2016-08-31 10:46:47 -0400
commit946c2b89396554b2618ea5bbaff4652f75768016 (patch)
treeedd2111bc1f58fbbcd2dd449609a5834f036fb69
parent09cb4f2007b3be5971b4a76fa356501c62632640 (diff)
Start Neko job service after reboot (if needed)
Change-Id: I8350ab922ba534b529876bb73c1023935f5529a9 Fixes: 29922511
-rw-r--r--packages/EasterEgg/src/com/android/egg/neko/NekoService.java8
-rw-r--r--packages/EasterEgg/src/com/android/egg/neko/NekoTile.java3
-rw-r--r--packages/EasterEgg/src/com/android/egg/neko/PrefState.java8
3 files changed, 14 insertions, 5 deletions
diff --git a/packages/EasterEgg/src/com/android/egg/neko/NekoService.java b/packages/EasterEgg/src/com/android/egg/neko/NekoService.java
index 32e335843016..808ec361fb4f 100644
--- a/packages/EasterEgg/src/com/android/egg/neko/NekoService.java
+++ b/packages/EasterEgg/src/com/android/egg/neko/NekoService.java
@@ -102,6 +102,14 @@ public class NekoService extends JobService {
return false;
}
+ public static void registerJobIfNeeded(Context context, long intervalMinutes) {
+ JobScheduler jss = context.getSystemService(JobScheduler.class);
+ JobInfo info = jss.getPendingJob(JOB_ID);
+ if (info == null) {
+ registerJob(context, intervalMinutes);
+ }
+ }
+
public static void registerJob(Context context, long intervalMinutes) {
JobScheduler jss = context.getSystemService(JobScheduler.class);
jss.cancel(JOB_ID);
diff --git a/packages/EasterEgg/src/com/android/egg/neko/NekoTile.java b/packages/EasterEgg/src/com/android/egg/neko/NekoTile.java
index 8a3ec8fa19e9..159b40a3e5af 100644
--- a/packages/EasterEgg/src/com/android/egg/neko/NekoTile.java
+++ b/packages/EasterEgg/src/com/android/egg/neko/NekoTile.java
@@ -68,6 +68,9 @@ public class NekoTile extends TileService implements PrefsListener {
Tile tile = getQsTile();
int foodState = mPrefs.getFoodState();
Food food = new Food(foodState);
+ if (foodState != 0) {
+ NekoService.registerJobIfNeeded(this, food.getInterval(this));
+ }
tile.setIcon(food.getIcon(this));
tile.setLabel(food.getName(this));
tile.setState(foodState != 0 ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE);
diff --git a/packages/EasterEgg/src/com/android/egg/neko/PrefState.java b/packages/EasterEgg/src/com/android/egg/neko/PrefState.java
index 5f54180bc2e0..bf71b197d3cb 100644
--- a/packages/EasterEgg/src/com/android/egg/neko/PrefState.java
+++ b/packages/EasterEgg/src/com/android/egg/neko/PrefState.java
@@ -43,13 +43,11 @@ public class PrefState implements OnSharedPreferenceChangeListener {
public void addCat(Cat cat) {
mPrefs.edit()
.putString(CAT_KEY_PREFIX + String.valueOf(cat.getSeed()), cat.getName())
- .commit();
+ .apply();
}
public void removeCat(Cat cat) {
- mPrefs.edit()
- .remove(CAT_KEY_PREFIX + String.valueOf(cat.getSeed()))
- .commit();
+ mPrefs.edit().remove(CAT_KEY_PREFIX + String.valueOf(cat.getSeed())).apply();
}
public List<Cat> getCats() {
@@ -71,7 +69,7 @@ public class PrefState implements OnSharedPreferenceChangeListener {
}
public void setFoodState(int foodState) {
- mPrefs.edit().putInt(FOOD_STATE, foodState).commit();
+ mPrefs.edit().putInt(FOOD_STATE, foodState).apply();
}
public void setListener(PrefsListener listener) {