From fceefc1b4b53059911bcaf5359547a5855feb893 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 19 Mar 2020 13:37:08 +0100 Subject: [PATCH] Refactoring --- .../java/eu/faircode/email/FragmentPro.java | 23 +------------------ .../java/eu/faircode/email/ServiceUI.java | 19 +++++++++++++++ 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentPro.java b/app/src/main/java/eu/faircode/email/FragmentPro.java index 243d3a5839..814e5c7575 100644 --- a/app/src/main/java/eu/faircode/email/FragmentPro.java +++ b/app/src/main/java/eu/faircode/email/FragmentPro.java @@ -19,9 +19,6 @@ package eu.faircode.email; Copyright 2018-2020 by Marcel Bokhorst (M66B) */ -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Paint; @@ -44,8 +41,6 @@ import androidx.preference.PreferenceManager; import com.google.android.material.snackbar.Snackbar; -import java.util.Date; - public class FragmentPro extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private TextView tvPending; private TextView tvActivated; @@ -90,23 +85,7 @@ public class FragmentPro extends FragmentBase implements SharedPreferences.OnSha @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { prefs.edit().putBoolean("banner", !isChecked).apply(); - - Intent banner = new Intent(getContext(), ServiceUI.class); - banner.setAction("banner"); - PendingIntent pi = PendingIntent.getService(getContext(), ServiceUI.PI_BANNER, banner, PendingIntent.FLAG_UPDATE_CURRENT); - - AlarmManager am = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE); - if (isChecked) { - long now = new Date().getTime(); - long interval = AlarmManager.INTERVAL_DAY * 7; - long due = interval - (now % interval); - long trigger = now + due; - Log.i("Set banner alarm at " + new Date(trigger) + " due=" + due); - am.set(AlarmManager.RTC, trigger, pi); - } else { - Log.i("Cancel banner alarm"); - am.cancel(pi); - } + ServiceUI.schedule(getContext(), isChecked); } }); diff --git a/app/src/main/java/eu/faircode/email/ServiceUI.java b/app/src/main/java/eu/faircode/email/ServiceUI.java index f8a98fc519..79852a09d9 100644 --- a/app/src/main/java/eu/faircode/email/ServiceUI.java +++ b/app/src/main/java/eu/faircode/email/ServiceUI.java @@ -505,4 +505,23 @@ public class ServiceUI extends IntentService { AlarmManagerCompat.setAndAllowWhileIdle(am, AlarmManager.RTC_WAKEUP, next, piSync); } } + + static void scheduleBanner(Context context, boolean set) { + Intent banner = new Intent(context, ServiceUI.class); + banner.setAction("banner"); + PendingIntent pi = PendingIntent.getService(context, ServiceUI.PI_BANNER, banner, PendingIntent.FLAG_UPDATE_CURRENT); + + AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); + if (set) { + long now = new Date().getTime(); + long interval = AlarmManager.INTERVAL_DAY * 7; + long due = interval - (now % interval); + long trigger = now + due; + Log.i("Set banner alarm at " + new Date(trigger) + " due=" + due); + am.set(AlarmManager.RTC, trigger, pi); + } else { + Log.i("Cancel banner alarm"); + am.cancel(pi); + } + } }