From 3227e43fc4bc914f8bde1d06017ae16ced3fe278 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Sun, 29 Sep 2019 09:49:30 +0800 Subject: Change project structures. --- .../Settings/NotificationPreferenceFragment.java | 118 --------------------- 1 file changed, 118 deletions(-) delete mode 100644 app/src/main/java/Settings/NotificationPreferenceFragment.java (limited to 'app/src/main/java/Settings/NotificationPreferenceFragment.java') diff --git a/app/src/main/java/Settings/NotificationPreferenceFragment.java b/app/src/main/java/Settings/NotificationPreferenceFragment.java deleted file mode 100644 index 4d9051fe..00000000 --- a/app/src/main/java/Settings/NotificationPreferenceFragment.java +++ /dev/null @@ -1,118 +0,0 @@ -package Settings; - - -import android.app.Activity; -import android.content.SharedPreferences; -import android.os.Bundle; - -import androidx.fragment.app.Fragment; -import androidx.preference.ListPreference; -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.WorkManager; - -import java.util.concurrent.TimeUnit; - -import javax.inject.Inject; - -import ml.docilealligator.infinityforreddit.Infinity; -import ml.docilealligator.infinityforreddit.PullNotificationWorker; -import ml.docilealligator.infinityforreddit.R; -import ml.docilealligator.infinityforreddit.SharedPreferencesUtils; - -/** - * A simple {@link Fragment} subclass. - */ -public class NotificationPreferenceFragment extends PreferenceFragmentCompat { - - private boolean enableNotification; - private long notificationInterval; - - private WorkManager workManager; - - @Inject - SharedPreferences sharedPreferences; - - @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - setPreferencesFromResource(R.xml.notification_preferences, rootKey); - - Activity activity = getActivity(); - - if(activity != null) { - workManager = WorkManager.getInstance(activity); - - ((Infinity) activity.getApplication()).getAppComponent().inject(this); - - SwitchPreference enableNotificationSwitchPreference = findPreference(SharedPreferencesUtils.ENABLE_NOTIFICATION_KEY); - ListPreference notificationIntervalListPreference = findPreference(SharedPreferencesUtils.NOTIFICATION_INTERVAL_KEY); - - enableNotification = sharedPreferences.getBoolean(SharedPreferencesUtils.ENABLE_NOTIFICATION_KEY, true); - notificationInterval = Long.parseLong(sharedPreferences.getString(SharedPreferencesUtils.NOTIFICATION_INTERVAL_KEY, "1")); - - if(enableNotification) { - if (notificationIntervalListPreference != null) { - notificationIntervalListPreference.setVisible(true); - } - } - - if(enableNotificationSwitchPreference != null) { - enableNotificationSwitchPreference.setOnPreferenceChangeListener((preference, newValue) -> { - enableNotification = ((Boolean) newValue); - if(notificationIntervalListPreference != null) { - notificationIntervalListPreference.setVisible(enableNotification); - } - - if(enableNotification) { - Constraints constraints = new Constraints.Builder() - .setRequiredNetworkType(NetworkType.CONNECTED) - .build(); - - PeriodicWorkRequest pullNotificationRequest = - new PeriodicWorkRequest.Builder(PullNotificationWorker.class, - notificationInterval, TimeUnit.HOURS) - .setConstraints(constraints) - .setInitialDelay(notificationInterval, TimeUnit.HOURS) - .build(); - - workManager.enqueueUniquePeriodicWork(PullNotificationWorker.WORKER_TAG, - ExistingPeriodicWorkPolicy.REPLACE, pullNotificationRequest); - } else { - workManager.cancelUniqueWork(PullNotificationWorker.WORKER_TAG); - } - return true; - }); - } - - if(notificationIntervalListPreference != null) { - 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) - .setInitialDelay(notificationInterval, TimeUnit.HOURS) - .build(); - - workManager.enqueueUniquePeriodicWork(PullNotificationWorker.WORKER_TAG, - ExistingPeriodicWorkPolicy.REPLACE, pullNotificationRequest); - } else { - workManager.cancelUniqueWork(PullNotificationWorker.WORKER_TAG); - } - - return true; - }); - } - } - } -} -- cgit v1.2.3