Add 2 options for notification interval: 15 minutes and 30 minutes.

This commit is contained in:
Alex Ning 2020-06-20 22:20:01 +08:00
parent dce5777fbb
commit 354529ca88
2 changed files with 13 additions and 8 deletions

View File

@ -64,6 +64,10 @@ import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask
import ml.docilealligator.infinityforreddit.AsyncTask.InsertSubscribedThingsAsyncTask; import ml.docilealligator.infinityforreddit.AsyncTask.InsertSubscribedThingsAsyncTask;
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask; import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchToAnonymousAccountAsyncTask; import ml.docilealligator.infinityforreddit.AsyncTask.SwitchToAnonymousAccountAsyncTask;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.PostLayoutBottomSheetFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.PostTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.SortTimeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.SortTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper; import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.Event.ChangeConfirmToExitEvent; import ml.docilealligator.infinityforreddit.Event.ChangeConfirmToExitEvent;
import ml.docilealligator.infinityforreddit.Event.ChangeLockBottomAppBarEvent; import ml.docilealligator.infinityforreddit.Event.ChangeLockBottomAppBarEvent;
@ -73,10 +77,6 @@ import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
import ml.docilealligator.infinityforreddit.FetchMyInfo; import ml.docilealligator.infinityforreddit.FetchMyInfo;
import ml.docilealligator.infinityforreddit.FetchSubscribedThing; import ml.docilealligator.infinityforreddit.FetchSubscribedThing;
import ml.docilealligator.infinityforreddit.Fragment.PostFragment; import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.PostLayoutBottomSheetFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.PostTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.SortTimeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.BottomSheetFragment.SortTypeBottomSheetFragment;
import ml.docilealligator.infinityforreddit.Infinity; import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.ParseAndSaveAccountInfo; import ml.docilealligator.infinityforreddit.ParseAndSaveAccountInfo;
import ml.docilealligator.infinityforreddit.Post.PostDataSource; import ml.docilealligator.infinityforreddit.Post.PostDataSource;
@ -321,7 +321,8 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
private void getCurrentAccountAndBindView() { private void getCurrentAccountAndBindView() {
new GetCurrentAccountAsyncTask(mRedditDataRoomDatabase.accountDao(), account -> { new GetCurrentAccountAsyncTask(mRedditDataRoomDatabase.accountDao(), account -> {
boolean enableNotification = mSharedPreferences.getBoolean(SharedPreferencesUtils.ENABLE_NOTIFICATION_KEY, true); boolean enableNotification = mSharedPreferences.getBoolean(SharedPreferencesUtils.ENABLE_NOTIFICATION_KEY, true);
String notificationInterval = mSharedPreferences.getString(SharedPreferencesUtils.NOTIFICATION_INTERVAL_KEY, "1"); long notificationInterval = Long.parseLong(mSharedPreferences.getString(SharedPreferencesUtils.NOTIFICATION_INTERVAL_KEY, "1"));
TimeUnit timeUnit = notificationInterval == 15 || notificationInterval == 30 ? TimeUnit.MINUTES : TimeUnit.HOURS;
WorkManager workManager = WorkManager.getInstance(this); WorkManager workManager = WorkManager.getInstance(this);
@ -349,7 +350,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
PeriodicWorkRequest pullNotificationRequest = PeriodicWorkRequest pullNotificationRequest =
new PeriodicWorkRequest.Builder(PullNotificationWorker.class, new PeriodicWorkRequest.Builder(PullNotificationWorker.class,
Long.parseLong(notificationInterval), TimeUnit.HOURS) notificationInterval, timeUnit)
.setConstraints(constraints) .setConstraints(constraints)
.build(); .build();
@ -375,7 +376,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
PeriodicWorkRequest pullNotificationRequest = PeriodicWorkRequest pullNotificationRequest =
new PeriodicWorkRequest.Builder(PullNotificationWorker.class, new PeriodicWorkRequest.Builder(PullNotificationWorker.class,
Long.parseLong(notificationInterval), TimeUnit.HOURS) notificationInterval, timeUnit)
.setConstraints(constraints) .setConstraints(constraints)
.build(); .build();
@ -405,7 +406,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
PeriodicWorkRequest pullNotificationRequest = PeriodicWorkRequest pullNotificationRequest =
new PeriodicWorkRequest.Builder(PullNotificationWorker.class, new PeriodicWorkRequest.Builder(PullNotificationWorker.class,
Long.parseLong(notificationInterval), TimeUnit.HOURS) notificationInterval, timeUnit)
.setConstraints(constraints) .setConstraints(constraints)
.build(); .build();

View File

@ -1,5 +1,7 @@
<resources> <resources>
<string-array name="settings_notification_interval"> <string-array name="settings_notification_interval">
<item>15 minutes</item>
<item>30 minutes</item>
<item>1 hour</item> <item>1 hour</item>
<item>2 hours</item> <item>2 hours</item>
<item>3 hours</item> <item>3 hours</item>
@ -10,6 +12,8 @@
</string-array> </string-array>
<string-array name="settings_notification_interval_values"> <string-array name="settings_notification_interval_values">
<item>15</item>
<item>30</item>
<item>1</item> <item>1</item>
<item>2</item> <item>2</item>
<item>3</item> <item>3</item>