diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index c4bcc8103..3c501e746 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -191,7 +191,11 @@ android:windowSoftInputMode="stateHidden" /> - + + + + + diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt index c4e9a51ff..4f4094b80 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskAlarmManager.kt @@ -6,13 +6,14 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.Build.VERSION.SDK_INT -import androidx.core.content.edit import androidx.preference.PreferenceManager import com.habitrpg.android.habitica.data.TaskRepository import com.habitrpg.android.habitica.models.tasks.RemindersItem import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.receivers.NotificationPublisher import com.habitrpg.android.habitica.receivers.TaskReceiver +import com.habitrpg.shared.habitica.HLogger +import com.habitrpg.shared.habitica.LogLevel import io.reactivex.Flowable import io.reactivex.functions.Consumer import java.util.* @@ -61,9 +62,6 @@ class TaskAlarmManager(private var context: Context, private var taskRepository: if (!preventDailyReminder) { scheduleDailyReminder(context) } - PreferenceManager.getDefaultSharedPreferences(context).edit { - putLong("lastReminderSchedule", Date().time) - } } fun scheduleAlarmsForTask(task: Task) { @@ -168,6 +166,7 @@ class TaskAlarmManager(private var context: Context, private var taskRepository: } private fun setAlarm(context: Context, time: Long, pendingIntent: PendingIntent?) { + HLogger.log(LogLevel.INFO, "TaskAlarmManager", "Scheduling for $time") val alarmManager = context.getSystemService(Context.ALARM_SERVICE) as? AlarmManager if (pendingIntent == null) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskAlarmBootReceiver.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskAlarmBootReceiver.kt index 23d20d914..37e82fc7b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskAlarmBootReceiver.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskAlarmBootReceiver.kt @@ -6,6 +6,8 @@ import android.content.Intent import android.content.SharedPreferences import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.helpers.TaskAlarmManager +import com.habitrpg.shared.habitica.HLogger +import com.habitrpg.shared.habitica.LogLevel import javax.inject.Inject class TaskAlarmBootReceiver : BroadcastReceiver() { @@ -18,6 +20,7 @@ class TaskAlarmBootReceiver : BroadcastReceiver() { override fun onReceive(context: Context, arg1: Intent) { HabiticaBaseApplication.userComponent?.inject(this) taskAlarmManager.scheduleAllSavedAlarms(sharedPreferences.getBoolean("preventDailyReminder", false)) + HLogger.log(LogLevel.INFO, this::javaClass.name, "onReceive") } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt index 85150d901..d0ed936d1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/receivers/TaskReceiver.kt @@ -15,6 +15,8 @@ import com.habitrpg.android.habitica.helpers.RxErrorHandler import com.habitrpg.android.habitica.helpers.TaskAlarmManager import com.habitrpg.android.habitica.models.tasks.Task import com.habitrpg.android.habitica.ui.activities.MainActivity +import com.habitrpg.shared.habitica.HLogger +import com.habitrpg.shared.habitica.LogLevel import io.reactivex.functions.Consumer import java.util.* import javax.inject.Inject @@ -31,6 +33,7 @@ class TaskReceiver : BroadcastReceiver() { lateinit var taskRepository: TaskRepository override fun onReceive(context: Context, intent: Intent) { + HLogger.log(LogLevel.INFO, this::javaClass.name, "onReceive") HabiticaBaseApplication.userComponent?.inject(this) val extras = intent.extras if (extras != null) { @@ -58,6 +61,7 @@ class TaskReceiver : BroadcastReceiver() { private fun createNotification(context: Context, task: Task) { val intent = Intent(context, MainActivity::class.java) + HLogger.log(LogLevel.INFO, this::javaClass.name, "Create Notification") intent.putExtra("notificationIdentifier", "task_reminder") val pendingIntent = PendingIntent.getActivity(context, System.currentTimeMillis().toInt(), intent, 0) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt index 7945ec294..91ca338cb 100755 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt @@ -214,6 +214,12 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction { setupNotifications() setupBottomnavigationLayoutListener() + + try { + taskAlarmManager.scheduleAllSavedAlarms(sharedPreferences.getBoolean("preventDailyReminder", false)) + } catch (e: Exception) { + crashlyticsProxy.logException(e) + } } private fun setupNotifications() { @@ -273,15 +279,6 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction { } resumeFromActivity = false - - if (this.sharedPreferences.getLong("lastReminderSchedule", 0) < Date().time - DateUtils.hoursInMs(2)) { - try { - taskAlarmManager.scheduleAllSavedAlarms(sharedPreferences.getBoolean("preventDailyReminder", false)) - } catch (e: Exception) { - crashlyticsProxy.logException(e) - } - } - //Track when the app was last opened, so that we can use this to send out special reminders after a week of inactivity sharedPreferences.edit { putLong("lastAppLaunch", Date().time)