aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/Settings/NotificationPreferenceFragment.java
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2019-08-22 03:52:27 +0000
committerAlex Ning <chineseperson5@gmail.com>2019-08-22 03:52:27 +0000
commit0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae (patch)
tree1fc91ae43f15a9dde29155c305279d036fc3096c /app/src/main/java/Settings/NotificationPreferenceFragment.java
parenta2fe95912b00a926f42089bc7e455507306164af (diff)
downloadinfinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.tar
infinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.tar.gz
infinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.tar.bz2
infinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.tar.lz
infinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.tar.xz
infinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.tar.zst
infinity-for-reddit-0840b7144f9a2bf0b1338c04da686b9ef6e4e4ae.zip
Changing theme is now available.
Diffstat (limited to '')
-rw-r--r--app/src/main/java/Settings/NotificationPreferenceFragment.java67
1 files changed, 21 insertions, 46 deletions
diff --git a/app/src/main/java/Settings/NotificationPreferenceFragment.java b/app/src/main/java/Settings/NotificationPreferenceFragment.java
index b0ba633b..17a5d07a 100644
--- a/app/src/main/java/Settings/NotificationPreferenceFragment.java
+++ b/app/src/main/java/Settings/NotificationPreferenceFragment.java
@@ -7,20 +7,14 @@ import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.preference.ListPreference;
-import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreference;
import androidx.work.Constraints;
import androidx.work.ExistingPeriodicWorkPolicy;
import androidx.work.NetworkType;
import androidx.work.PeriodicWorkRequest;
-import androidx.work.WorkInfo;
import androidx.work.WorkManager;
-import com.google.common.util.concurrent.ListenableFuture;
-
-import java.util.List;
-import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
@@ -87,53 +81,34 @@ public class NotificationPreferenceFragment extends PreferenceFragmentCompat {
workManager.enqueueUniquePeriodicWork(PullNotificationWorker.WORKER_TAG,
ExistingPeriodicWorkPolicy.KEEP, pullNotificationRequest);
} else {
- ListenableFuture<List<WorkInfo>> workInfo = workManager.getWorkInfosByTag(PullNotificationWorker.WORKER_TAG);
- try {
- List<WorkInfo> list = workInfo.get();
- if(list != null && list.size() != 0) {
- workManager.cancelAllWorkByTag(PullNotificationWorker.WORKER_TAG);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
+ workManager.cancelAllWorkByTag(PullNotificationWorker.WORKER_TAG);
}
return true;
});
}
if(notificationIntervalListPreference != null) {
- notificationIntervalListPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- notificationInterval = (Long) newValue;
-
- if(enableNotification) {
- Constraints constraints = new Constraints.Builder()
- .setRequiredNetworkType(NetworkType.CONNECTED)
- .build();
-
- PeriodicWorkRequest pullNotificationRequest =
- new PeriodicWorkRequest.Builder(PullNotificationWorker.class,
- notificationInterval, TimeUnit.HOURS)
- .setConstraints(constraints)
- .build();
-
- workManager.enqueueUniquePeriodicWork(PullNotificationWorker.WORKER_TAG,
- ExistingPeriodicWorkPolicy.KEEP, pullNotificationRequest);
- } else {
- ListenableFuture<List<WorkInfo>> workInfo = workManager.getWorkInfosByTag(PullNotificationWorker.WORKER_TAG);
- try {
- List<WorkInfo> list = workInfo.get();
- if(list != null && list.size() != 0) {
- workManager.cancelAllWorkByTag(PullNotificationWorker.WORKER_TAG);
- }
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
-
- return true;
+ notificationIntervalListPreference.setOnPreferenceChangeListener((preference, newValue) -> {
+ notificationInterval = Long.parseLong((String) newValue);
+
+ if(enableNotification) {
+ Constraints constraints = new Constraints.Builder()
+ .setRequiredNetworkType(NetworkType.CONNECTED)
+ .build();
+
+ PeriodicWorkRequest pullNotificationRequest =
+ new PeriodicWorkRequest.Builder(PullNotificationWorker.class,
+ notificationInterval, TimeUnit.HOURS)
+ .setConstraints(constraints)
+ .build();
+
+ workManager.enqueueUniquePeriodicWork(PullNotificationWorker.WORKER_TAG,
+ ExistingPeriodicWorkPolicy.KEEP, pullNotificationRequest);
+ } else {
+ workManager.cancelAllWorkByTag(PullNotificationWorker.WORKER_TAG);
}
+
+ return true;
});
}
}