Add default duration setting for event

Closes #696
This commit is contained in:
nwuensche 2019-02-09 22:02:48 +01:00
parent 95d403aed9
commit 841614be06
7 changed files with 75 additions and 4 deletions

View File

@ -286,8 +286,12 @@ class EventActivity : SimpleActivity() {
val dateTime = Formatter.getDateTimeFromTS(startTS) val dateTime = Formatter.getDateTimeFromTS(startTS)
mEventStartDateTime = dateTime mEventStartDateTime = dateTime
val addHours = if (intent.getBooleanExtra(NEW_EVENT_SET_HOUR_DURATION, false)) 1 else 0 val addMinutes = if (intent.getBooleanExtra(NEW_EVENT_SET_HOUR_DURATION, false)) {
mEventEndDateTime = mEventStartDateTime.plusHours(addHours) 60
} else {
config.defaultDuration
}
mEventEndDateTime = mEventStartDateTime.plusMinutes(addMinutes)
} }
} }

View File

@ -72,6 +72,7 @@ class SettingsActivity : SimpleActivity() {
checkPrimaryColor() checkPrimaryColor()
setupSectionColors() setupSectionColors()
setupDefaultStartTime() setupDefaultStartTime()
setupDefaultDuration()
} }
override fun onPause() { override fun onPause() {
@ -570,4 +571,29 @@ class SettingsActivity : SimpleActivity() {
} }
} }
} }
private fun setupDefaultDuration() {
var defaultDuration = config.defaultDuration
updateDefaultDurationText(defaultDuration)
settings_set_default_duration_time_holder.setOnClickListener {
CustomIntervalPickerDialog(this, defaultDuration * 60) {
val result = it / 60
defaultDuration = result
config.defaultDuration = result
updateDefaultDurationText(result)
}
}
}
private fun updateDefaultDurationText(defaultDuration: Int) {
settings_set_default_duration_time.text = getDefaultDurationText(defaultDuration)
}
private fun getDefaultDurationText(defaultDuration: Int): String {
return if (defaultDuration == 0) {
"0 " + getString(R.string.minutes_raw)
} else {
getFormattedMinutes(defaultDuration, false)
}
}
} }

View File

@ -177,4 +177,8 @@ class Config(context: Context) : BaseConfig(context) {
var defaultStartTime: Int var defaultStartTime: Int
get() = prefs.getInt(DEFAULT_START_TIME, -1) get() = prefs.getInt(DEFAULT_START_TIME, -1)
set(defaultStartTime) = prefs.edit().putInt(DEFAULT_START_TIME, defaultStartTime).apply() set(defaultStartTime) = prefs.edit().putInt(DEFAULT_START_TIME, defaultStartTime).apply()
var defaultDuration: Int
get() = prefs.getInt(DEFAULT_DURATION, 0)
set(defaultDuration) = prefs.edit().putInt(DEFAULT_DURATION, defaultDuration).apply()
} }

View File

@ -40,7 +40,6 @@ const val YEAR = 31536000
const val WEEK_NUMBERS = "week_numbers" const val WEEK_NUMBERS = "week_numbers"
const val START_WEEKLY_AT = "start_weekly_at" const val START_WEEKLY_AT = "start_weekly_at"
const val END_WEEKLY_AT = "end_weekly_at" const val END_WEEKLY_AT = "end_weekly_at"
const val DEFAULT_START_TIME = "default_start_time"
const val VIBRATE = "vibrate" const val VIBRATE = "vibrate"
const val REMINDER_SOUND_URI = "reminder_sound_uri" const val REMINDER_SOUND_URI = "reminder_sound_uri"
const val REMINDER_SOUND_TITLE = "reminder_sound_title" const val REMINDER_SOUND_TITLE = "reminder_sound_title"
@ -69,6 +68,8 @@ const val DEFAULT_REMINDER_2 = "default_reminder_2"
const val DEFAULT_REMINDER_3 = "default_reminder_3" const val DEFAULT_REMINDER_3 = "default_reminder_3"
const val PULL_TO_REFRESH = "pull_to_refresh" const val PULL_TO_REFRESH = "pull_to_refresh"
const val LAST_VIBRATE_ON_REMINDER = "last_vibrate_on_reminder" const val LAST_VIBRATE_ON_REMINDER = "last_vibrate_on_reminder"
const val DEFAULT_START_TIME = "default_start_time"
const val DEFAULT_DURATION = "default_duration"
// repeat_rule for monthly and yearly repetition // repeat_rule for monthly and yearly repetition
const val REPEAT_SAME_DAY = 1 // i.e. 25th every month, or 3rd june (if yearly repetition) const val REPEAT_SAME_DAY = 1 // i.e. 25th every month, or 3rd june (if yearly repetition)

View File

@ -975,5 +975,39 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:id="@+id/settings_set_default_duration_time_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:paddingLeft="@dimen/normal_margin"
android:paddingTop="@dimen/bigger_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingBottom="@dimen/bigger_margin">
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_set_default_duration_time_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toStartOf="@+id/settings_set_default_duration_time"
android:layout_toLeftOf="@+id/settings_set_default_duration_time"
android:paddingLeft="@dimen/medium_margin"
android:paddingRight="@dimen/medium_margin"
android:text="@string/new_event_default_duration"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/settings_set_default_duration_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginEnd="@dimen/small_margin"
android:layout_marginRight="@dimen/small_margin"
android:background="@null"
android:clickable="false"/>
</RelativeLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -236,6 +236,7 @@
<!-- Strings for settings of new event --> <!-- Strings for settings of new event -->
<string name="new_event_default_start">Neuer Termin startet standardmäßig um</string> <string name="new_event_default_start">Neuer Termin startet standardmäßig um</string>
<string name="new_event_default_duration">Neuer Termin dauert standardmäßig</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at

View File

@ -234,7 +234,8 @@
</string> </string>
<!-- Strings for settings of new event --> <!-- Strings for settings of new event -->
<string name="new_event_default_start">Default time for new event</string> <string name="new_event_default_start">Default start time of new event</string>
<string name="new_event_default_duration">Default duration of new event</string>
<!-- <!--
Haven't found some strings? There's more at Haven't found some strings? There's more at