mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-01-19 20:28:42 +01:00
adding an option to switch between notification/email reminders
This commit is contained in:
parent
0a358f209b
commit
e3d34a9737
@ -57,7 +57,7 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.simplemobiletools:commons:5.10.8'
|
implementation 'com.simplemobiletools:commons:5.10.9'
|
||||||
implementation 'joda-time:joda-time:2.10.1'
|
implementation 'joda-time:joda-time:2.10.1'
|
||||||
implementation 'androidx.multidex:multidex:2.0.1'
|
implementation 'androidx.multidex:multidex:2.0.1'
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ import com.simplemobiletools.commons.dialogs.RadioGroupDialog
|
|||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.*
|
import com.simplemobiletools.commons.helpers.*
|
||||||
import com.simplemobiletools.commons.models.RadioItem
|
import com.simplemobiletools.commons.models.RadioItem
|
||||||
|
import com.simplemobiletools.commons.views.MyTextView
|
||||||
import kotlinx.android.synthetic.main.activity_event.*
|
import kotlinx.android.synthetic.main.activity_event.*
|
||||||
import org.joda.time.DateTime
|
import org.joda.time.DateTime
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -45,6 +46,9 @@ class EventActivity : SimpleActivity() {
|
|||||||
private var mReminder1Minutes = 0
|
private var mReminder1Minutes = 0
|
||||||
private var mReminder2Minutes = 0
|
private var mReminder2Minutes = 0
|
||||||
private var mReminder3Minutes = 0
|
private var mReminder3Minutes = 0
|
||||||
|
private var mReminder1Type = REMINDER_NOTIFICATION
|
||||||
|
private var mReminder2Type = REMINDER_NOTIFICATION
|
||||||
|
private var mReminder3Type = REMINDER_NOTIFICATION
|
||||||
private var mRepeatInterval = 0
|
private var mRepeatInterval = 0
|
||||||
private var mRepeatLimit = 0L
|
private var mRepeatLimit = 0L
|
||||||
private var mRepeatRule = 0
|
private var mRepeatRule = 0
|
||||||
@ -146,10 +150,32 @@ class EventActivity : SimpleActivity() {
|
|||||||
event_reminder_2.setOnClickListener { showReminder2Dialog() }
|
event_reminder_2.setOnClickListener { showReminder2Dialog() }
|
||||||
event_reminder_3.setOnClickListener { showReminder3Dialog() }
|
event_reminder_3.setOnClickListener { showReminder3Dialog() }
|
||||||
|
|
||||||
|
event_reminder_1_type.setOnClickListener {
|
||||||
|
showReminderTypePicker(mReminder1Type) {
|
||||||
|
mReminder1Type = it
|
||||||
|
updateReminderTypeText(event_reminder_1_type, mReminder1Type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
event_reminder_2_type.setOnClickListener {
|
||||||
|
showReminderTypePicker(mReminder2Type) {
|
||||||
|
mReminder2Type = it
|
||||||
|
updateReminderTypeText(event_reminder_2_type, mReminder2Type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
event_reminder_3_type.setOnClickListener {
|
||||||
|
showReminderTypePicker(mReminder3Type) {
|
||||||
|
mReminder3Type = it
|
||||||
|
updateReminderTypeText(event_reminder_3_type, mReminder3Type)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
event_type_holder.setOnClickListener { showEventTypeDialog() }
|
event_type_holder.setOnClickListener { showEventTypeDialog() }
|
||||||
|
|
||||||
if (mEvent.flags and FLAG_ALL_DAY != 0)
|
if (mEvent.flags and FLAG_ALL_DAY != 0) {
|
||||||
event_all_day.toggle()
|
event_all_day.toggle()
|
||||||
|
}
|
||||||
|
|
||||||
updateTextColors(event_scrollview)
|
updateTextColors(event_scrollview)
|
||||||
updateIconColors()
|
updateIconColors()
|
||||||
@ -253,6 +279,9 @@ class EventActivity : SimpleActivity() {
|
|||||||
mReminder1Minutes = mEvent.reminder1Minutes
|
mReminder1Minutes = mEvent.reminder1Minutes
|
||||||
mReminder2Minutes = mEvent.reminder2Minutes
|
mReminder2Minutes = mEvent.reminder2Minutes
|
||||||
mReminder3Minutes = mEvent.reminder3Minutes
|
mReminder3Minutes = mEvent.reminder3Minutes
|
||||||
|
mReminder1Type = mEvent.reminder1Type
|
||||||
|
mReminder2Type = mEvent.reminder2Type
|
||||||
|
mReminder3Type = mEvent.reminder3Type
|
||||||
mRepeatInterval = mEvent.repeatInterval
|
mRepeatInterval = mEvent.repeatInterval
|
||||||
mRepeatLimit = mEvent.repeatLimit
|
mRepeatLimit = mEvent.repeatLimit
|
||||||
mRepeatRule = mEvent.repeatRule
|
mRepeatRule = mEvent.repeatRule
|
||||||
@ -558,10 +587,15 @@ class EventActivity : SimpleActivity() {
|
|||||||
updateReminder1Text()
|
updateReminder1Text()
|
||||||
updateReminder2Text()
|
updateReminder2Text()
|
||||||
updateReminder3Text()
|
updateReminder3Text()
|
||||||
|
updateReminderTypeTexts()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateReminder1Text() {
|
private fun updateReminder1Text() {
|
||||||
event_reminder_1.text = getFormattedMinutes(mReminder1Minutes)
|
event_reminder_1.text = getFormattedMinutes(mReminder1Minutes)
|
||||||
|
event_reminder_1_type.apply {
|
||||||
|
beVisibleIf(mReminder1Minutes != REMINDER_OFF)
|
||||||
|
text = getString(R.string.notification)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateReminder2Text() {
|
private fun updateReminder2Text() {
|
||||||
@ -575,6 +609,11 @@ class EventActivity : SimpleActivity() {
|
|||||||
alpha = 1f
|
alpha = 1f
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event_reminder_2_type.apply {
|
||||||
|
beVisibleIf(mReminder2Minutes != REMINDER_OFF)
|
||||||
|
text = getString(R.string.notification)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateReminder3Text() {
|
private fun updateReminder3Text() {
|
||||||
@ -588,6 +627,32 @@ class EventActivity : SimpleActivity() {
|
|||||||
alpha = 1f
|
alpha = 1f
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event_reminder_3_type.apply {
|
||||||
|
beVisibleIf(mReminder3Minutes != REMINDER_OFF)
|
||||||
|
text = getString(R.string.notification)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun showReminderTypePicker(currentValue: Int, callback: (Int) -> Unit) {
|
||||||
|
val items = arrayListOf(
|
||||||
|
RadioItem(REMINDER_NOTIFICATION, getString(R.string.notification)),
|
||||||
|
RadioItem(REMINDER_EMAIL, getString(R.string.email))
|
||||||
|
)
|
||||||
|
RadioGroupDialog(this, items, currentValue) {
|
||||||
|
callback(it as Int)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateReminderTypeTexts() {
|
||||||
|
updateReminderTypeText(event_reminder_1_type, mReminder1Type)
|
||||||
|
updateReminderTypeText(event_reminder_2_type, mReminder2Type)
|
||||||
|
updateReminderTypeText(event_reminder_3_type, mReminder3Type)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateReminderTypeText(view: MyTextView, type: Int) {
|
||||||
|
val text = getString(if (type == REMINDER_NOTIFICATION) R.string.notification else R.string.email)
|
||||||
|
view.text = text
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateRepetitionText() {
|
private fun updateRepetitionText() {
|
||||||
@ -765,10 +830,22 @@ class EventActivity : SimpleActivity() {
|
|||||||
"$CALDAV-$mEventCalendarId"
|
"$CALDAV-$mEventCalendarId"
|
||||||
}
|
}
|
||||||
|
|
||||||
val reminders = sortedSetOf(mReminder1Minutes, mReminder2Minutes, mReminder3Minutes).filter { it != REMINDER_OFF }
|
val reminders = LinkedHashMap<Int, Int>().apply {
|
||||||
val reminder1 = reminders.getOrElse(0) { REMINDER_OFF }
|
put(mReminder1Minutes, mReminder1Type)
|
||||||
val reminder2 = reminders.getOrElse(1) { REMINDER_OFF }
|
put(mReminder2Minutes, mReminder2Type)
|
||||||
val reminder3 = reminders.getOrElse(2) { REMINDER_OFF }
|
put(mReminder3Minutes, mReminder3Type)
|
||||||
|
}
|
||||||
|
|
||||||
|
val sortedReminders = reminders.toSortedMap().filter { it.key != REMINDER_OFF }
|
||||||
|
val keys = sortedReminders.keys.toList()
|
||||||
|
val reminder1 = keys.getOrElse(0) { REMINDER_OFF }
|
||||||
|
val reminder2 = keys.getOrElse(1) { REMINDER_OFF }
|
||||||
|
val reminder3 = keys.getOrElse(2) { REMINDER_OFF }
|
||||||
|
|
||||||
|
val types = sortedReminders.values.toList()
|
||||||
|
mReminder1Type = types.getOrElse(0) { REMINDER_NOTIFICATION }
|
||||||
|
mReminder2Type = types.getOrElse(1) { REMINDER_NOTIFICATION }
|
||||||
|
mReminder3Type = types.getOrElse(2) { REMINDER_NOTIFICATION }
|
||||||
|
|
||||||
config.apply {
|
config.apply {
|
||||||
if (usePreviousEventReminders) {
|
if (usePreviousEventReminders) {
|
||||||
@ -786,6 +863,9 @@ class EventActivity : SimpleActivity() {
|
|||||||
reminder1Minutes = reminder1
|
reminder1Minutes = reminder1
|
||||||
reminder2Minutes = reminder2
|
reminder2Minutes = reminder2
|
||||||
reminder3Minutes = reminder3
|
reminder3Minutes = reminder3
|
||||||
|
reminder1Type = mReminder1Type
|
||||||
|
reminder2Type = mReminder2Type
|
||||||
|
reminder3Type = mReminder3Type
|
||||||
repeatInterval = mRepeatInterval
|
repeatInterval = mRepeatInterval
|
||||||
importId = newImportId
|
importId = newImportId
|
||||||
flags = mEvent.flags.addBitIf(event_all_day.isChecked, FLAG_ALL_DAY)
|
flags = mEvent.flags.addBitIf(event_all_day.isChecked, FLAG_ALL_DAY)
|
||||||
|
@ -187,11 +187,27 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/event_date_time_divider"
|
android:layout_below="@+id/event_date_time_divider"
|
||||||
android:layout_marginStart="@dimen/small_margin"
|
android:layout_marginStart="@dimen/small_margin"
|
||||||
|
android:layout_toStartOf="@+id/event_reminder_1_type"
|
||||||
android:layout_toEndOf="@+id/event_reminder_image"
|
android:layout_toEndOf="@+id/event_reminder_image"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:lines="1"
|
||||||
android:paddingTop="@dimen/activity_margin"
|
android:paddingTop="@dimen/activity_margin"
|
||||||
android:paddingBottom="@dimen/activity_margin"
|
android:paddingBottom="@dimen/activity_margin"
|
||||||
android:textSize="@dimen/day_text_size"/>
|
android:textSize="@dimen/day_text_size"
|
||||||
|
tools:text="@string/add_another_reminder"/>
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/event_reminder_1_type"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/event_date_time_divider"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="@dimen/small_margin"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:padding="@dimen/activity_margin"
|
||||||
|
android:textSize="@dimen/day_text_size"
|
||||||
|
tools:text="@string/notification"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
android:id="@+id/event_reminder_2"
|
android:id="@+id/event_reminder_2"
|
||||||
@ -199,13 +215,29 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/event_reminder_1"
|
android:layout_below="@+id/event_reminder_1"
|
||||||
android:layout_alignStart="@+id/event_reminder_1"
|
android:layout_alignStart="@+id/event_reminder_1"
|
||||||
|
android:layout_toStartOf="@+id/event_reminder_2_type"
|
||||||
android:alpha="0.4"
|
android:alpha="0.4"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:lines="1"
|
||||||
android:paddingTop="@dimen/activity_margin"
|
android:paddingTop="@dimen/activity_margin"
|
||||||
android:paddingBottom="@dimen/activity_margin"
|
android:paddingBottom="@dimen/activity_margin"
|
||||||
android:text="@string/add_another_reminder"
|
android:text="@string/add_another_reminder"
|
||||||
android:textSize="@dimen/day_text_size"
|
android:textSize="@dimen/day_text_size"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"
|
||||||
|
tools:text="@string/add_another_reminder"/>
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/event_reminder_2_type"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/event_reminder_1"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="@dimen/small_margin"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:padding="@dimen/activity_margin"
|
||||||
|
android:textSize="@dimen/day_text_size"
|
||||||
|
tools:text="@string/notification"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
android:id="@+id/event_reminder_3"
|
android:id="@+id/event_reminder_3"
|
||||||
@ -213,13 +245,29 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/event_reminder_2"
|
android:layout_below="@+id/event_reminder_2"
|
||||||
android:layout_alignStart="@+id/event_reminder_1"
|
android:layout_alignStart="@+id/event_reminder_1"
|
||||||
|
android:layout_toStartOf="@+id/event_reminder_3_type"
|
||||||
android:alpha="0.4"
|
android:alpha="0.4"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:lines="1"
|
||||||
android:paddingTop="@dimen/activity_margin"
|
android:paddingTop="@dimen/activity_margin"
|
||||||
android:paddingBottom="@dimen/activity_margin"
|
android:paddingBottom="@dimen/activity_margin"
|
||||||
android:text="@string/add_another_reminder"
|
android:text="@string/add_another_reminder"
|
||||||
android:textSize="@dimen/day_text_size"
|
android:textSize="@dimen/day_text_size"
|
||||||
android:visibility="gone"/>
|
android:visibility="gone"
|
||||||
|
tools:text="@string/add_another_reminder"/>
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/event_reminder_3_type"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/event_reminder_2"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="@dimen/small_margin"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:padding="@dimen/activity_margin"
|
||||||
|
android:textSize="@dimen/day_text_size"
|
||||||
|
tools:text="@string/notification"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/event_reminder_divider"
|
android:id="@+id/event_reminder_divider"
|
||||||
@ -253,7 +301,8 @@
|
|||||||
android:background="?attr/selectableItemBackground"
|
android:background="?attr/selectableItemBackground"
|
||||||
android:paddingTop="@dimen/normal_margin"
|
android:paddingTop="@dimen/normal_margin"
|
||||||
android:paddingBottom="@dimen/normal_margin"
|
android:paddingBottom="@dimen/normal_margin"
|
||||||
android:textSize="@dimen/day_text_size"/>
|
android:textSize="@dimen/day_text_size"
|
||||||
|
tools:text="@string/no_repetition"/>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/event_repetition_rule_holder"
|
android:id="@+id/event_repetition_rule_holder"
|
||||||
|
Loading…
Reference in New Issue
Block a user