From b4315f9bebfcc754119b17e4f77aebb8b3c8e95e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 21 Feb 2022 00:20:43 -0600 Subject: [PATCH] New reminder control set * Custom random reminder intervals * Add multiple random reminders --- .../astrid/ui/RandomReminderControlSet.kt | 68 ----- .../todoroo/astrid/ui/ReminderControlSet.kt | 244 ++++++++---------- .../org/tasks/compose/AddReminderDialog.kt | 171 ++++++++++-- .../main/java/org/tasks/compose/AlarmRow.kt | 68 +++++ .../java/org/tasks/reminders/AlarmToString.kt | 2 +- app/src/main/res/layout/alarm_edit_row.xml | 32 --- .../main/res/layout/control_set_reminders.xml | 42 +-- app/src/main/res/values-ar/strings.xml | 7 - app/src/main/res/values-bg-rBG/strings.xml | 7 - app/src/main/res/values-ca/strings.xml | 6 - app/src/main/res/values-cs/strings.xml | 7 - app/src/main/res/values-da/strings.xml | 7 - app/src/main/res/values-de/strings.xml | 7 - app/src/main/res/values-el/strings.xml | 6 - app/src/main/res/values-eo/strings.xml | 7 - app/src/main/res/values-es/strings.xml | 7 - app/src/main/res/values-et/strings.xml | 5 - app/src/main/res/values-eu/strings.xml | 7 - app/src/main/res/values-fa/strings.xml | 7 - app/src/main/res/values-fi/strings.xml | 7 - app/src/main/res/values-fr/strings.xml | 7 - app/src/main/res/values-gl/strings.xml | 7 - app/src/main/res/values-hr/strings.xml | 7 - app/src/main/res/values-hu/strings.xml | 7 - app/src/main/res/values-id/strings.xml | 7 - app/src/main/res/values-it/strings.xml | 7 - app/src/main/res/values-iw/strings.xml | 7 - app/src/main/res/values-ja/strings.xml | 7 - app/src/main/res/values-ko/strings.xml | 7 - app/src/main/res/values-lt/strings.xml | 7 - app/src/main/res/values-nb/strings.xml | 7 - app/src/main/res/values-nl/strings.xml | 7 - app/src/main/res/values-pl/strings.xml | 7 - app/src/main/res/values-pt-rBR/strings.xml | 7 - app/src/main/res/values-pt/strings.xml | 7 - app/src/main/res/values-ro/strings.xml | 7 - app/src/main/res/values-ru/strings.xml | 7 - app/src/main/res/values-si/strings.xml | 7 - app/src/main/res/values-sk/strings.xml | 7 - app/src/main/res/values-sl-rSI/strings.xml | 6 - app/src/main/res/values-sv/strings.xml | 7 - app/src/main/res/values-ta/strings.xml | 7 - app/src/main/res/values-th/strings.xml | 7 - app/src/main/res/values-tr/strings.xml | 7 - app/src/main/res/values-uk/strings.xml | 7 - app/src/main/res/values-ur/strings.xml | 7 - app/src/main/res/values-vi/strings.xml | 7 - app/src/main/res/values-zh-rCN/strings.xml | 7 - app/src/main/res/values-zh-rTW/strings.xml | 7 - app/src/main/res/values/arrays.xml | 9 - app/src/main/res/values/keys.xml | 10 - app/src/main/res/values/strings.xml | 8 +- 52 files changed, 339 insertions(+), 604 deletions(-) delete mode 100644 app/src/main/java/com/todoroo/astrid/ui/RandomReminderControlSet.kt create mode 100644 app/src/main/java/org/tasks/compose/AlarmRow.kt delete mode 100644 app/src/main/res/layout/alarm_edit_row.xml diff --git a/app/src/main/java/com/todoroo/astrid/ui/RandomReminderControlSet.kt b/app/src/main/java/com/todoroo/astrid/ui/RandomReminderControlSet.kt deleted file mode 100644 index bdf1f1da1..000000000 --- a/app/src/main/java/com/todoroo/astrid/ui/RandomReminderControlSet.kt +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ -package com.todoroo.astrid.ui - -import android.content.Context -import android.view.View -import android.widget.AdapterView -import android.widget.AdapterView.OnItemSelectedListener -import android.widget.ArrayAdapter -import android.widget.Spinner -import com.todoroo.andlib.utility.DateUtilities -import org.tasks.R -import org.tasks.data.Alarm -import org.tasks.data.Alarm.Companion.TYPE_RANDOM -import org.tasks.ui.TaskEditViewModel - -/** - * Control set dealing with random reminder settings - * - * @author Tim Su @todoroo.com> - */ -internal class RandomReminderControlSet(context: Context, parentView: View, reminderPeriod: Long, vm: TaskEditViewModel) { - init { - val periodSpinner = parentView.findViewById(R.id.reminder_random_interval) - periodSpinner.visibility = View.VISIBLE - // create hour array - val hourStrings = context.resources.getStringArray(R.array.TEA_reminder_random_hours) - val hours = IntArray(hourStrings.size) - for (i in hours.indices) { - hours[i] = hourStrings[i].toInt() - } - // create adapter - val adapter = ArrayAdapter( - context, - android.R.layout.simple_spinner_item, - context.resources.getStringArray(R.array.TEA_reminder_random)) - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) - periodSpinner.adapter = adapter - periodSpinner.onItemSelectedListener = object : OnItemSelectedListener { - override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) { - val newAlarm = - Alarm(vm.task?.id ?: 0, hours[position] * DateUtilities.ONE_HOUR, TYPE_RANDOM) - vm.selectedAlarms.value = - vm.selectedAlarms.value.toMutableList().apply { - find { it.type == TYPE_RANDOM }?.let { - newAlarm.id = it.id - remove(it) - } - add(newAlarm) - } - } - - override fun onNothingSelected(parent: AdapterView<*>?) {} - } - - var i = 0 - while (i < hours.size - 1) { - if (hours[i] * DateUtilities.ONE_HOUR >= reminderPeriod) { - break - } - i++ - } - periodSpinner.setSelection(i) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.kt b/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.kt index 3f1d8cff9..0a1735755 100644 --- a/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.kt +++ b/app/src/main/java/com/todoroo/astrid/ui/ReminderControlSet.kt @@ -1,35 +1,38 @@ -/* - * Copyright (c) 2012 Todoroo Inc - * - * See the file "LICENSE" for the full license governing this code. - */ package com.todoroo.astrid.ui import android.app.Activity import android.content.DialogInterface import android.content.Intent -import android.graphics.Paint import android.os.Bundle -import android.view.View import android.view.ViewGroup -import android.widget.LinearLayout -import android.widget.TextView -import androidx.annotation.StringRes -import androidx.compose.material.AlertDialog +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.material.ripple.rememberRipple +import androidx.compose.runtime.collectAsState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextDecoration +import androidx.core.content.res.ResourcesCompat import com.google.android.material.composethemeadapter.MdcTheme import com.todoroo.andlib.utility.AndroidUtilities import dagger.hilt.android.AndroidEntryPoint import org.tasks.R import org.tasks.activities.DateAndTimePickerActivity import org.tasks.compose.AddReminderDialog -import org.tasks.compose.Constants +import org.tasks.compose.AlarmRow import org.tasks.data.Alarm import org.tasks.data.Alarm.Companion.TYPE_DATE_TIME -import org.tasks.data.Alarm.Companion.TYPE_RANDOM import org.tasks.data.Alarm.Companion.TYPE_REL_END import org.tasks.data.Alarm.Companion.TYPE_REL_START import org.tasks.data.Alarm.Companion.whenDue @@ -44,39 +47,31 @@ import org.tasks.ui.TaskEditControlFragment import java.util.concurrent.TimeUnit import javax.inject.Inject - -/** - * Control set dealing with reminder settings - * - * @author Tim Su @todoroo.com> - */ @AndroidEntryPoint class ReminderControlSet : TaskEditControlFragment() { @Inject lateinit var activity: Activity @Inject lateinit var dialogBuilder: DialogBuilder @Inject lateinit var alarmToString: AlarmToString - private lateinit var alertContainer: LinearLayout - private lateinit var mode: TextView - - private var randomControlSet: RandomReminderControlSet? = null - private val showDialog = mutableStateOf(false) + private val showCustomDialog = mutableStateOf(false) + private val showRandomDialog = mutableStateOf(false) + private val ringMode = mutableStateOf(0) override fun createView(savedInstanceState: Bundle?) { - showDialog.value = savedInstanceState?.getBoolean(DIALOG_VISIBLE) ?: false - mode.paintFlags = mode.paintFlags or Paint.UNDERLINE_TEXT_FLAG + showCustomDialog.value = savedInstanceState?.getBoolean(CUSTOM_DIALOG_VISIBLE) ?: false + showRandomDialog.value = savedInstanceState?.getBoolean(RANDOM_DIALOG_VISIBLE) ?: false when { viewModel.ringNonstop!! -> setRingMode(2) viewModel.ringFiveTimes!! -> setRingMode(1) else -> setRingMode(0) } - viewModel.selectedAlarms.value.forEach(this::addAlarmRow) } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) - outState.putBoolean(DIALOG_VISIBLE, showDialog.value) + outState.putBoolean(CUSTOM_DIALOG_VISIBLE, showCustomDialog.value) + outState.putBoolean(RANDOM_DIALOG_VISIBLE, showRandomDialog.value) } private fun onClickRingType() { @@ -98,16 +93,7 @@ class ReminderControlSet : TaskEditControlFragment() { private fun setRingMode(ringMode: Int) { viewModel.ringNonstop = ringMode == 2 viewModel.ringFiveTimes = ringMode == 1 - mode.setText(getRingModeString(ringMode)) - } - - @StringRes - private fun getRingModeString(ringMode: Int): Int { - return when (ringMode) { - 2 -> R.string.ring_nonstop - 1 -> R.string.ring_five_times - else -> R.string.ring_once - } + this.ringMode.value = ringMode } private fun addAlarm(selected: String) { @@ -120,7 +106,7 @@ class ReminderControlSet : TaskEditControlFragment() { getString(R.string.when_overdue) -> addAlarmRow(whenOverdue(id)) getString(R.string.randomly) -> - addAlarmRow(Alarm(id, TimeUnit.DAYS.toMillis(14), TYPE_RANDOM)) + addRandomAlarm() getString(R.string.pick_a_date_and_time) -> addNewAlarm() getString(R.string.repeat_option_custom) -> @@ -146,66 +132,80 @@ class ReminderControlSet : TaskEditControlFragment() { @OptIn(ExperimentalComposeUiApi::class) override fun bind(parent: ViewGroup?) = ControlSetRemindersBinding.inflate(layoutInflater, parent, true).let { - alertContainer = it.alertContainer - mode = it.reminderAlarm.apply { - setOnClickListener { onClickRingType() } - } - it.alarmsAdd.setOnClickListener { addAlarm() } - it.dialogView.setContent { + + it.alertContainer.setContent { MdcTheme { - val openDialog = remember { showDialog } - val selectedInterval = rememberSaveable { mutableStateOf(15L as Long?) } - val selectedMultiplier = rememberSaveable { mutableStateOf(0) } - if (openDialog.value) { - AlertDialog( - onDismissRequest = { - openDialog.value = false - AndroidUtilities.hideKeyboard(activity) - }, - text = { - AddReminderDialog.AddReminderDialog( - openDialog, - selectedInterval, - selectedMultiplier, - ) - }, - confirmButton = { - Constants.TextButton(text = R.string.ok, onClick = { - val multiplier = -1 * when (selectedMultiplier.value) { - 1 -> TimeUnit.HOURS.toMillis(1) - 2 -> TimeUnit.DAYS.toMillis(1) - 3 -> TimeUnit.DAYS.toMillis(7) - else -> TimeUnit.MINUTES.toMillis(1) - } - - selectedInterval.value?.let { i -> - addAlarmRow( - Alarm( - viewModel.task?.id ?: 0L, - i * multiplier, - TYPE_REL_END - ) + val alarms = viewModel.selectedAlarms.collectAsState() + Column { + alarms.value.forEach { alarm -> + AlarmRow(alarmToString.toString(alarm)) { + viewModel.selectedAlarms.value = + viewModel.selectedAlarms.value.minus(alarm) + } + } + Row(modifier = Modifier.fillMaxWidth()) { + Text( + text = stringResource(id = R.string.add_reminder), + style = MaterialTheme.typography.body1, + modifier = Modifier + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(bounded = false), + onClick = { addAlarm() } + ) + .alpha( + ResourcesCompat.getFloat( + LocalContext.current.resources, + R.dimen.alpha_disabled ) - openDialog.value = false - AndroidUtilities.hideKeyboard(activity) - } - }) - }, - dismissButton = { - Constants.TextButton( - text = R.string.cancel, - onClick = { - openDialog.value = false - AndroidUtilities.hideKeyboard(activity) - }) - }, - ) - } else { - selectedInterval.value = 15 - selectedMultiplier.value = 0 + ) + ) + Spacer(modifier = Modifier.weight(1f)) + val ringMode = remember { this@ReminderControlSet.ringMode } + if (alarms.value.isNotEmpty()) { + Text( + text = stringResource( + id = when (ringMode.value) { + 2 -> R.string.ring_nonstop + 1 -> R.string.ring_five_times + else -> R.string.ring_once + } + ), + style = MaterialTheme.typography.body1.copy( + textDecoration = TextDecoration.Underline + ), + modifier = Modifier.clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(bounded = false), + onClick = { onClickRingType() } + ) + ) + } + } } + + val openCustomDialog = remember { showCustomDialog } + AddReminderDialog.AddCustomReminderDialog( + openCustomDialog, + addAlarm = this::addAlarmRow, + closeDialog = { + openCustomDialog.value = false + AndroidUtilities.hideKeyboard(activity) + } + ) + + val openRandomDialog = remember { showRandomDialog } + AddReminderDialog.AddRandomReminderDialog( + openRandomDialog, + addAlarm = this::addAlarmRow, + closeDialog = { + openRandomDialog.value = false + AndroidUtilities.hideKeyboard(activity) + } + ) } } + it.root } @@ -217,11 +217,7 @@ class ReminderControlSet : TaskEditControlFragment() { if (requestCode == REQUEST_NEW_ALARM) { if (resultCode == Activity.RESULT_OK) { val timestamp = data!!.getLongExtra(MyTimePickerDialog.EXTRA_TIMESTAMP, 0L) - if (viewModel.selectedAlarms.value.none { it.type == TYPE_DATE_TIME && timestamp == it.time }) { - val alarm = Alarm(viewModel.task?.id ?: 0, timestamp, TYPE_DATE_TIME) - viewModel.selectedAlarms.value = viewModel.selectedAlarms.value.plus(alarm) - addAlarmRow(alarm) - } + addAlarmRow(Alarm(0, timestamp, TYPE_DATE_TIME)) } } else { super.onActivityResult(requestCode, resultCode, data) @@ -229,49 +225,28 @@ class ReminderControlSet : TaskEditControlFragment() { } private fun addAlarmRow(alarm: Alarm) { - val alarmRow = addAlarmRow(alarm) { - if (alarm.type == TYPE_RANDOM) { - viewModel.selectedAlarms.value = - viewModel.selectedAlarms.value.filterNot { it.type == TYPE_RANDOM } - randomControlSet = null - } else { - viewModel.selectedAlarms.value = - viewModel.selectedAlarms.value.filterNot { it.same(alarm) } + with (viewModel.selectedAlarms) { + if (value.none { it.same(alarm) }) { + value = value.plus(alarm) } } - if (alarm.type == TYPE_RANDOM) { - randomControlSet = RandomReminderControlSet(activity, alarmRow, alarm.time, viewModel) - } } private fun addNewAlarm() { val intent = Intent(activity, DateAndTimePickerActivity::class.java) - intent.putExtra( - DateAndTimePickerActivity.EXTRA_TIMESTAMP, DateTimeUtils.newDateTime().noon().millis) + .putExtra( + DateAndTimePickerActivity.EXTRA_TIMESTAMP, + DateTimeUtils.newDateTime().noon().millis + ) startActivityForResult(intent, REQUEST_NEW_ALARM) } private fun addCustomAlarm() { - showDialog.value = true + showCustomDialog.value = true } - private fun addAlarmRow(alarm: Alarm, onRemove: View.OnClickListener): View { - val alertItem = requireActivity().layoutInflater.inflate(R.layout.alarm_edit_row, null) - alertContainer.addView(alertItem) - addAlarmRow(alertItem, alarm, onRemove) - return alertItem - } - - private fun addAlarmRow(alertItem: View, alarm: Alarm, onRemove: View.OnClickListener?) { - val display = alertItem.findViewById(R.id.alarm_string) - viewModel.selectedAlarms.value = viewModel.selectedAlarms.value.plus(alarm) - display.text = alarmToString.toString(alarm) - alertItem - .findViewById(R.id.clear) - .setOnClickListener { v: View? -> - alertContainer.removeView(alertItem) - onRemove?.onClick(v) - } + private fun addRandomAlarm() { + showRandomDialog.value = true } private val options: List @@ -286,9 +261,7 @@ class ReminderControlSet : TaskEditControlFragment() { if (viewModel.selectedAlarms.value.find { it.type == TYPE_REL_END && it.time == TimeUnit.HOURS.toMillis(24) } == null) { options.add(getString(R.string.when_overdue)) } - if (randomControlSet == null) { - options.add(getString(R.string.randomly)) - } + options.add(getString(R.string.randomly)) options.add(getString(R.string.pick_a_date_and_time)) options.add(getString(R.string.repeat_option_custom)) return options @@ -297,7 +270,8 @@ class ReminderControlSet : TaskEditControlFragment() { companion object { const val TAG = R.string.TEA_ctrl_reminders_pref private const val REQUEST_NEW_ALARM = 12152 - private const val DIALOG_VISIBLE = "dialog_visible" + private const val CUSTOM_DIALOG_VISIBLE = "custom_dialog_visible" + private const val RANDOM_DIALOG_VISIBLE = "random_dialog_visible" } } diff --git a/app/src/main/java/org/tasks/compose/AddReminderDialog.kt b/app/src/main/java/org/tasks/compose/AddReminderDialog.kt index 2b7e7d9bc..10445b360 100644 --- a/app/src/main/java/org/tasks/compose/AddReminderDialog.kt +++ b/app/src/main/java/org/tasks/compose/AddReminderDialog.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll +import androidx.compose.material.AlertDialog import androidx.compose.material.MaterialTheme import androidx.compose.material.OutlinedTextField import androidx.compose.material.RadioButton @@ -42,11 +43,102 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import kotlinx.coroutines.android.awaitFrame import org.tasks.R +import org.tasks.data.Alarm +import java.util.concurrent.TimeUnit @ExperimentalComposeUiApi object AddReminderDialog { @Composable - fun AddReminderDialog( + fun AddRandomReminderDialog( + openDialog: MutableState, + addAlarm: (Alarm) -> Unit, + closeDialog: () -> Unit, + ) { + val interval = rememberSaveable { mutableStateOf(15L as Long?) } + val multiplier = rememberSaveable { mutableStateOf(0) } + if (openDialog.value) { + AlertDialog( + onDismissRequest = closeDialog, + text = { AddRandomReminder(openDialog, interval, multiplier) }, + confirmButton = { + Constants.TextButton(text = R.string.ok, onClick = { + interval.value?.let { i -> + addAlarm(Alarm(0, i * multiplier.millis, Alarm.TYPE_RANDOM)) + closeDialog() + } + }) + }, + dismissButton = { + Constants.TextButton( + text = R.string.cancel, + onClick = closeDialog + ) + }, + ) + } else { + interval.value = 15 + multiplier.value = 0 + } + } + + @Composable + fun AddCustomReminderDialog( + openDialog: MutableState, + addAlarm: (Alarm) -> Unit, + closeDialog: () -> Unit, + ) { + val interval = rememberSaveable { mutableStateOf(15L as Long?) } + val multiplier = rememberSaveable { mutableStateOf(0) } + if (openDialog.value) { + AlertDialog( + onDismissRequest = closeDialog, + text = { AddCustomReminder(openDialog, interval, multiplier) }, + confirmButton = { + Constants.TextButton(text = R.string.ok, onClick = { + interval.value?.let { i -> + addAlarm(Alarm(0, -1 * i * multiplier.millis, Alarm.TYPE_REL_END)) + closeDialog() + } + }) + }, + dismissButton = { + Constants.TextButton( + text = R.string.cancel, + onClick = closeDialog + ) + }, + ) + } else { + interval.value = 15 + multiplier.value = 0 + } + } + + @Composable + fun AddRandomReminder( + visible: MutableState, + interval: MutableState, + selected: MutableState + ) { + val scrollState = rememberScrollState() + Column( + modifier = Modifier + .fillMaxWidth() + .verticalScroll(scrollState) + ) { + CenteredH6(text = stringResource(id = R.string.randomly_every, "").trim()) + val focusRequester = remember { FocusRequester() } + OutlinedLongInput(interval, focusRequester) + Spacer(modifier = Modifier.height(16.dp)) + options.forEachIndexed { index, option -> + RadioRow(index, option, interval, selected) + } + ShowKeyboard(visible, focusRequester) + } + } + + @Composable + fun AddCustomReminder( visible: MutableState, interval: MutableState, selected: MutableState, @@ -61,18 +153,27 @@ object AddReminderDialog { val focusRequester = remember { FocusRequester() } OutlinedLongInput(interval, focusRequester) Spacer(modifier = Modifier.height(16.dp)) - val options = listOf( - R.plurals.reminder_minutes, - R.plurals.reminder_hours, - R.plurals.reminder_days, - R.plurals.reminder_week, - ) options.forEachIndexed { index, option -> - RadioRow(index, option, interval, selected) + RadioRow(index, option, interval, selected, R.string.alarm_before_due) } ShowKeyboard(visible, focusRequester) } } + + private val options = listOf( + R.plurals.reminder_minutes, + R.plurals.reminder_hours, + R.plurals.reminder_days, + R.plurals.reminder_week, + ) + + private val MutableState.millis: Long + get() = when (value) { + 1 -> TimeUnit.HOURS.toMillis(1) + 2 -> TimeUnit.DAYS.toMillis(1) + 3 -> TimeUnit.DAYS.toMillis(7) + else -> TimeUnit.MINUTES.toMillis(1) + } } @ExperimentalComposeUiApi @@ -117,8 +218,13 @@ fun OutlinedLongInput( @Composable fun CenteredH6(@StringRes resId: Int) { + CenteredH6(text = stringResource(id = resId)) +} + +@Composable +fun CenteredH6(text: String) { Text( - text = stringResource(id = resId), + text = text, textAlign = TextAlign.Center, modifier = Modifier .fillMaxWidth() @@ -129,7 +235,13 @@ fun CenteredH6(@StringRes resId: Int) { } @Composable -fun RadioRow(index: Int, option: Int, interval: MutableState, selected: MutableState) { +fun RadioRow( + index: Int, + option: Int, + interval: MutableState, + selected: MutableState, + formatString: Int? = null, +) { val number = interval.value?.toInt() ?: 1 val optionString = LocalContext.current.resources.getQuantityString(option, number) Row( @@ -150,7 +262,10 @@ fun RadioRow(index: Int, option: Int, interval: MutableState, selected: M ) Text( text = if (index == selected.value) { - stringResource(id = R.string.alarm_before_due, optionString) + formatString + ?.let { stringResource(id = formatString, optionString) } + ?: optionString + } else { optionString }, @@ -165,9 +280,35 @@ fun RadioRow(index: Int, option: Int, interval: MutableState, selected: M @Preview(showBackground = true) @Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) @Composable -fun AddReminderOne() = +fun AddCustomReminderOne() = + MaterialTheme(if (isSystemInDarkTheme()) darkColors() else lightColors()) { + AddReminderDialog.AddCustomReminder( + visible = remember { mutableStateOf(true) }, + interval = remember { mutableStateOf(1L) }, + selected = remember { mutableStateOf(0) } + ) + } + +@ExperimentalComposeUiApi +@Preview(showBackground = true) +@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +fun AddCustomReminder() = + MaterialTheme(if (isSystemInDarkTheme()) darkColors() else lightColors()) { + AddReminderDialog.AddCustomReminder( + visible = remember { mutableStateOf(true) }, + interval = remember { mutableStateOf(15L) }, + selected = remember { mutableStateOf(1) } + ) + } + +@ExperimentalComposeUiApi +@Preview(showBackground = true) +@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +fun AddRandomReminderOne() = MaterialTheme(if (isSystemInDarkTheme()) darkColors() else lightColors()) { - AddReminderDialog.AddReminderDialog( + AddReminderDialog.AddRandomReminder( visible = remember { mutableStateOf(true) }, interval = remember { mutableStateOf(1L) }, selected = remember { mutableStateOf(0) } @@ -178,9 +319,9 @@ fun AddReminderOne() = @Preview(showBackground = true) @Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) @Composable -fun AddReminderMultiple() = +fun AddRandomReminder() = MaterialTheme(if (isSystemInDarkTheme()) darkColors() else lightColors()) { - AddReminderDialog.AddReminderDialog( + AddReminderDialog.AddRandomReminder( visible = remember { mutableStateOf(true) }, interval = remember { mutableStateOf(15L) }, selected = remember { mutableStateOf(1) } diff --git a/app/src/main/java/org/tasks/compose/AlarmRow.kt b/app/src/main/java/org/tasks/compose/AlarmRow.kt new file mode 100644 index 000000000..7b7f317e3 --- /dev/null +++ b/app/src/main/java/org/tasks/compose/AlarmRow.kt @@ -0,0 +1,68 @@ +package org.tasks.compose + +import android.content.res.Configuration +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.Icon +import androidx.compose.material.IconButton +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.alpha +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.core.content.res.ResourcesCompat +import org.tasks.R + + +@Composable +fun AlarmRow(text: String, remove: () -> Unit = {}) { + Row( + modifier = Modifier + .fillMaxWidth() + ) { + Text( + text = text, + modifier = Modifier.padding(bottom = 16.dp) + ) + Spacer(modifier = Modifier.weight(1f)) + IconButton( + onClick = remove, + modifier = Modifier + .size(40.dp) + .padding(start = 16.dp, bottom = 16.dp) + ) { + Icon( + painter = painterResource(id = R.drawable.ic_outline_clear_24px), + modifier = Modifier.alpha( + ResourcesCompat.getFloat( + LocalContext.current.resources, + R.dimen.alpha_secondary + ) + ), + contentDescription = stringResource(id = R.string.delete) + ) + } + } +} + +@Preview(showBackground = true) +@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) +@Composable +fun AlarmRowPreview() { + MaterialTheme(if (isSystemInDarkTheme()) darkColors() else lightColors()) { + AlarmRow(text = "When due") { + + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/tasks/reminders/AlarmToString.kt b/app/src/main/java/org/tasks/reminders/AlarmToString.kt index 59cf89fe7..4fb896037 100644 --- a/app/src/main/java/org/tasks/reminders/AlarmToString.kt +++ b/app/src/main/java/org/tasks/reminders/AlarmToString.kt @@ -41,7 +41,7 @@ class AlarmToString @Inject constructor( resources.getString(res, getDurationString(alarm.time)) } Alarm.TYPE_RANDOM -> - resources.getString(R.string.randomly_once) + " " + resources.getString(R.string.randomly_every, getDurationString(alarm.time)) Alarm.TYPE_SNOOZE -> resources.getString( R.string.snoozed_until, diff --git a/app/src/main/res/layout/alarm_edit_row.xml b/app/src/main/res/layout/alarm_edit_row.xml deleted file mode 100644 index 7bd3c44eb..000000000 --- a/app/src/main/res/layout/alarm_edit_row.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/control_set_reminders.xml b/app/src/main/res/layout/control_set_reminders.xml index 713a832b5..7c181f470 100644 --- a/app/src/main/res/layout/control_set_reminders.xml +++ b/app/src/main/res/layout/control_set_reminders.xml @@ -1,39 +1,5 @@ - - - - - - - - - - - + diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 25010373f..a42a87d3b 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -70,12 +70,6 @@ مهام قوقل تسجيل ملاحظة هل أنت متأكد؟ لا يمكن التراجع - ساعة - يوم - أسبوع - خلال أسبوعين - شهر - خلال شهرين أكمل غفوة ابتداء ساعات الهدوء @@ -293,7 +287,6 @@ يجب أن يكون %1$s قبل %2$s لساعة نصف القطر - عشوائيًّا مرّة واحدة مجلّد النّسخ الاحتياطيّة البارحة غدًا diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index b06300eda..0721fa927 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -137,12 +137,6 @@ Звънене веднъж Звънене пет пъти Звънене без прекъсване - на час - на ден - в седмицата - на две седмици - в месеца - на два месеца Завършен Отлагане Отлагане всички @@ -285,7 +279,6 @@ Добавяне на напомняне Добавяне на място Премахване - Произволно веднъж Произволно Избиране на дата и час След крайния срок diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 1b0002dae..ef9c019aa 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -217,12 +217,6 @@ Grava una nota de veu Sona cinc cops Sona ininterrompudament - una hora - un dia - una setmana - en dues setmanes - un mes - en dos mesos Posposa tot Cada \ No newline at end of file diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index c41391f11..3748923c3 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -108,12 +108,6 @@ Účet %s nebyl nalezen — přes nastavení Google Tasks se odhlaste a znovu přihlaste. Nahrát poznámku Opravdu\? Nelze vrátit zpět - hodina - den - týden - za dva týdny - měsíc - za dva měsíce Dokončeno Odložit Nerušit od @@ -334,7 +328,6 @@ Přizpůsobit obrazovku úprav Přidat upomínku Přidat místo - Náhodně jednou Vybrat datum a čas S termínem Okruh diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 068ae0117..ec4884e86 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -55,9 +55,6 @@ Åbn kalenderbegivenhed %s (udført) Google Huskeliste - en time - en dag - en uge Udført Slumre Hviletid begynder @@ -345,7 +342,6 @@ Når der er frist Vælg dato og tidspunkt Tilfældigt - Tilfældigt én gang Fjern Tilføj sted Tilføj påmindelse @@ -490,9 +486,6 @@ Notifikationer for opgaver uden frist-tid dukker op kl. %s Standardpåmindelse Udsæt alle - om to måneder - en måned - om to uger Ring uafbrudt Ring fem gange Ring én gang diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 3d172990f..22fa31e58 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -131,12 +131,6 @@ Einmal klingeln Fünfmal klingeln Ununterbrochen klingeln - in der Stunde - am Tag - in der Woche - in zwei Wochen - im Monat - in 2 Monaten Abgeschlossen Schlummern Alle schlummern @@ -278,7 +272,6 @@ Erinnerung hinzufügen Ort hinzufügen Entfernen - Zufällig einmal Zufällig Tag und Uhrzeit auswählen Wenn überfällig diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 972380a91..f5251b769 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -101,12 +101,6 @@ Λογαριασμός %s δεν βρέθηκε - παρακαλώ αποσυνδεθείτε και συνδεθείτε πάλι απο τις ρυθμίσεις του Google Tasks. Ηχογράφηση σημείωσης Είστε σίγουρος; Δεν μπορεί να ακυρωθεί - μια ώρα - μια μέρα - μια εβδομάδα - σε δύο εβδομάδες - ένα μήνα - σε δύο μήνες Ολοκληρωμένο Αναβολή Ξεκίνησε η ώρα ησυχίας diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index dedceeaa6..9c110bf58 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -57,7 +57,6 @@ %d taskoj Propra… - tage Sen komencdato KAJ NE @@ -121,7 +120,6 @@ ĉia %1$s %2$s Nur hodiaŭ Nur teksto - Hazarde unufoje RIPETI ĈIUJARE RIPETI ĈIUMONATE RIPETI ĈIUSEMAJNE @@ -150,11 +148,6 @@ Malŝaltitaj Hazardaj memorigiloj Defaŭlta memorigilo - du monate - monate - du semajne - semajne - hore Ĉu vi certas\? Ne povos malfari En listo… En GTasks Listo… diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index abf6d0da6..64b324aef 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -131,12 +131,6 @@ Sonar una vez Sonar cinco veces Sonar sin parar - una hora - un día - una semana - en dos semanas - un mes - en dos meses Terminada Posponer Posponer todo @@ -279,7 +273,6 @@ Añadir recordatorio Añadir ubicación Eliminar - Aleatorio, una sola vez Aleatoriamente Elegir fecha y hora Si está atrasada diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index 67a3c4c0c..1581b48bb 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -105,11 +105,6 @@ Helista üks kord Helista 5 korda Helista lõputult - tund - päev - nädal - kahe nädala pärast - kahe kuu pärast Valmis Lükka edasi Lükka kõik edasi diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index b3de5f5ae..86430866a 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -133,12 +133,6 @@ Doinua behin Doinua bost aldiz Doinua etengabe - ordubete - egun bat - astebete - bi aste - hilabete - bi hilabete Burututa Atzeratu Atzeratu denak @@ -281,7 +275,6 @@ Gehitu oroigarria Gehitu kokalekua Kendu - Ausaz behin Ausaz Hautatu data eta ordua Epemuga gaindituta badago diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 76108d94a..017db1608 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -90,12 +90,6 @@ یک بار زنگ بزن پنج بار زنگ بزن بدون توقف زنگ بزن - یک ساعت - یک روز - یک هفته - دو هفته آینده - یک ماه - در دو ماه کامل شروع ساعات خلوتی پایان ساعات خلوتی @@ -179,7 +173,6 @@ کمک مالی اضافه کردن یادآورد حذف - به طور تصادفی یک دفعه به طور تصادفی انتخاب یک تاریخ و زمان پس از موعود diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 8bdf284f0..8a6321a0d 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -122,12 +122,6 @@ Soi kerran Soi viisi kertaa Soi jatkuvasti - tunti - päivä - viikko - kahden viikon kuluessa - kuukausi - kahden kuukauden kuluessa Täydennä Torkku Torkuta kaikki @@ -268,7 +262,6 @@ Lahjoita Lisää muistutus Poista - Satunnaisesti kerran Satunnaisesti Valitse päivä ja aika Kun myöhässä diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a0cc2a93c..690817c10 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -124,12 +124,6 @@ Sonner une fois Sonner cinq fois Sonner en continu - une heure - un jour - une semaine - dans deux semaines - un mois - dans deux mois Déjà fait Rappeler plus tard Tout rappeler @@ -262,7 +256,6 @@ Ajouter un rappel Ajouter une localisation Retirer - Une fois aléatoirement Aléatoirement Choisir date et heure En cas de retard diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 72dc942ab..e75f58eaf 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -123,12 +123,6 @@ Sonar una vez Sonar cinco veces Sonar sin parar - una hora - un día - una semana - en dos semanas - un mes - en dos meses Terminada Posponer El horario en silencio empieza @@ -195,7 +189,6 @@ Donar Añadir recordatorio Eliminar - Aleatorio, una sola vez Aleatoriamente Elegir fecha y hora Si está atrasada diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index b80d6fc00..2d64fa31f 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -442,7 +442,6 @@ Radijus Odaberi datum i vrijeme Slučajno - Slučajno jednom Ukloni Bez podsjetnika tijekom vremena neobavještavanja Ocijeni Tasks @@ -490,12 +489,6 @@ Odgodi sve Odgodi Obavljeno - u dva mjeseca - na mjesec - u dva tjedna - na tjedan - na dan - na sat Zvoni neprekidno Zvoni pet puta Zvoni jednom diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 0404d85bd..543470846 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -130,12 +130,6 @@ Egy csengés Öt csengés Folyamatos csengés - egy óra - egy nap - egy hét - két héten belül - egy hónap - két hónapon belül Befejezve Szundi Szundi mind @@ -278,7 +272,6 @@ Emlékeztető hozzáadása Hely hozzáadása Eltávolítás - Véletlenszerűen egyszer Véletlenszerűen Válasszon dátumot és időpontot Határidő lejárta után diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index a7cb9e26f..00aaf65e1 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -94,12 +94,6 @@ Dering sekali Dering lima kali Dering nonstop - satu jam - satu hari - satu minggu - dalam dua minggu - satu bulan - dalam dua bulan Selesai Tunda Tunda semua @@ -606,7 +600,6 @@ Tampilkan yang belum dimulai %1$s harus datang setelah %2$s Radius - Secara acak satu kali Tunjukan Batas Waktu kmrn bsk diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 686092855..79aa18b90 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -133,12 +133,6 @@ Suona una volta Suona cinque volte Suona ininterrottamente - ogni ora - ogni giorno - ogni settimana - ogni due settimane - ogni mese - ogni due mesi Completata Rimanda Posticipa tutti @@ -280,7 +274,6 @@ Aggiungi promemoria Aggiungi posizione Elimina - In modo casuale Casualmente Scegli data e ora Una volta scaduta diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 7388abf5b..f0f8125fd 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -133,12 +133,6 @@ צלצל פעם אחת צלצל חמש פעמים צלצל ללא הפסקה - שעה - יום - שבוע - שבועיים - חודש - חדשיים בוצעה נודניק נדנד על כולם @@ -311,7 +305,6 @@ הוסף תזכורת הוסף מיקום הסר - אקראי יחיד אקראי בחר תאריך ושעה לאחר מועד היעד diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index dfdf39f21..ddcabe726 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -133,12 +133,6 @@ 1回通知音を鳴らす 5回通知音を鳴らす 通知音を鳴らし続ける - 1時間 - 1日 - 1週間 - 2週間以内 - 1か月 - 2か月以内 完了しました スヌーズ すべてスヌーズ @@ -280,7 +274,6 @@ リマインダーを追加 場所を追加 削除 - 1回ランダムに ランダムに 日付と時間を選択 期限を過ぎたとき diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 9d2d03f56..ef8bea3ae 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -131,12 +131,6 @@ 한번 울림 다섯번 울림 계속 울림 - 한 시간 - 하루 - 일주일 - 2주일 - 한달 - 두달 완료 알림 잠시 미루기 모든 알람 잠시 미루기 @@ -277,7 +271,6 @@ 알림 추가 위치 추가 지우기 - 무작위로 한 번 무작위로 날짜와 시간 선택 마감일이 지났을 때 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 190974c4b..26a9b5260 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -137,12 +137,6 @@ Suskambėti vieną kartą Suskambėti penkis kartus Skambėti nepaliaujant - valandą - dieną - savaitę - dvi savaites - mėnesį - per du mėnesius Užbaigta Užmigdyti Užmigdyti visus @@ -300,7 +294,6 @@ Pridėti priminimą Pridėti vietą Išmesti - Atsitiktinai vieną kartą Atsitiktinai Pasirinkti datą ir laiką Kai vėluojama diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 94fd5fa3e..5759401ba 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -225,12 +225,6 @@ Ring én gang Ring fem ganger Ring konstant - én time - én dag - én uke - om to uker - én måned - om to måneder Slumre alle Forvalgt påminnelse Merknader for gjøremål uten tidsfrister vil vises %s. @@ -311,7 +305,6 @@ Legg til påminnelse Legg til sted Fjern - Tilfeldig én gang Tilfeldig Velg dato og tid Når forfalt diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a813219c0..2e1e27e63 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -132,12 +132,6 @@ Een keer bellen Vijf keer bellen Blijven bellen - per uur - per dag - per week - per twee weken - per maand - per twee maanden Voltooid Sluimeren Alle sluimeren @@ -278,7 +272,6 @@ Herinnering toevoegen Locatie toevoegen Verwijderen - Willekeurig eenmaal Willekeurig Datum en tijd kiezen Bij vervallen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 0af21f145..a5f9a4a54 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -127,12 +127,6 @@ Dzwoń raz Dzwoń pięć razy Dzwoń nonstop - na godzinę - dziennie - na tydzień - na dwa tygodnie - na miesiąc - na dwa miesiące Gotowe Drzemka Uśpij wszystkie @@ -290,7 +284,6 @@ Dodaj przypomnienie Dodaj lokalizację Usuń - Losowo raz Losowo Wybierz datę i czas Gdy zaległe diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 19b612de5..76d5a2f06 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -128,12 +128,6 @@ Tocar uma vez Tocar cinco vezes Tocar continuamente - por hora - por dia - por semana - a cada duas semanas - a cada mês - a cada dois meses Concluída Adiar Adiar todos @@ -276,7 +270,6 @@ Adicionar lembrete Adicionar localização Remover - Aleatoriamente uma vez Aleatoriamente Escolha data e horário Quando vencida diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 77f5ec029..e0f7e50ce 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -122,12 +122,6 @@ Tocar uma vez Tocar 5 vezes Tocar sem parar - uma hora - um dia - uma semana - em duas semanas - um mês - em dois meses Terminada Suspender todos Início da hora de silêncio @@ -267,7 +261,6 @@ Fazer um donativo Adicionar lembrete Remover - Uma vez aleatória Aleatoriamente Escolher a data e a hora Quando ultrapassado diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index b990bfd01..a57e2c63a 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -245,7 +245,6 @@ În caz de întârziere Alegeți o dată și o oră Aleatoriu - Aleatoriu o dată Eliminați Adăugați locația Adăugați un memento @@ -400,12 +399,6 @@ Amânați tot Amână Complet - în două luni - o lună - în două săptămâni - o săptămână - o zi - o oră Sună non-stop Sună de cinci ori Sună o dată diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 91fff3f7b..428b37afe 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -132,12 +132,6 @@ 1 раз 5 раз Звучать безостановочно - час - день - неделя - через две недели - месяц - в два месяца Завершено Отложить Отложить все @@ -295,7 +289,6 @@ Добавить напоминание Добавить место Удалить - Случайно один раз Случайно Дата и время Когда просрочено diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index f55dae3c5..506249463 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -357,12 +357,6 @@ නිරන්තර දැනුම්දීම් ඉවත් කළ නොහැක නිරන්තර දැනුම්දීම් පෙරනිමි මතක් කිරීම - මාස දෙකකට වතාවක් - මසකට වතාවක් - සති දෙකකට වතාවක් - සතියකට වතාවක් - දිනකට වතාවක් - පැයකට වතාවක් නොනවත්වාම නාද කරන්න එක් වරක් නාද කරන්න පස් වතාවක් නාද කරන්න @@ -655,7 +649,6 @@ කල් ඉකුත් වූ විට දිනයක් සහ වේලාවක් තෝරන්න අහඹු ලෙස - අහඹු ලෙස වරක් ඉවත් කරන්න ස්ථානය එක් කරන්න මතක් කිරීමක් එක් කරන්න diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index ec00e73cc..879dbb554 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -133,12 +133,6 @@ Zvoniť raz Zvoniť päť krát Zvoniť neustále - hodina - deň - týždeň - v dvoch týždňoch - mesiac - v dvoch mesiacoch Dokončené Odložiť Uspi všetko @@ -281,7 +275,6 @@ Pridať pripomienku Pridaj polohu Odstrániť - Raz náhodne Náhodne Vybrať dátum a čas Keď po termíne diff --git a/app/src/main/res/values-sl-rSI/strings.xml b/app/src/main/res/values-sl-rSI/strings.xml index edc904fe6..722e43e02 100644 --- a/app/src/main/res/values-sl-rSI/strings.xml +++ b/app/src/main/res/values-sl-rSI/strings.xml @@ -101,12 +101,6 @@ Račun %s ni najden—prosimo odjavite se, nato pa ponovno prijavite skozi nastavitve Google Nalog. Posnemi opombo Ste prepričani? Tega ni mogoče razveljaviti - na uro - dan - na teden - na dva tedna - na mesec - na dva meseca Končano Dremež Tihe ure se začnejo ob diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 3a336d11f..b6126eb5a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -122,12 +122,6 @@ Ring en gång Ring fem gånger Ring konstant - en timme - ett dygn - en vecka - två veckor - en månad - två månader Slutförd Skjut upp Tyst period börjar @@ -192,7 +186,6 @@ Donera Lägg till en påminnelse Ta bort - En gång slumpmässigt Slumpmässigt Ställ in datum och tid Efter förfallotid diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 2663e44c5..89191a178 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -115,12 +115,6 @@ அனைத்தையும் உறக்கநிலையில் வைக்கவும் உறக்கநிலை முழுமை - இரண்டு மாதங்களில் - ஒரு மாதம் - இரண்டு வாரங்களில் - ஒரு வாரம் - ஒரு நாள் - ஒரு மணி நேரம் நீ சொல்வது உறுதியா\? செயல்தவிர்க்க முடியாது ஒரு குறிப்பைப் பதிவுசெய்க கணக்கு %s காணப்படவில்லை - தயவுசெய்து வெளியேறி, Google பணிகள் அமைப்புகளிலிருந்து மீண்டும் உள்நுழைக. @@ -407,7 +401,6 @@ தாமதமாகும்போது தேதி மற்றும் நேரத்தைத் தேர்ந்தெடுங்கள் சீரற்ற - சீரற்ற ஒரு முறை அகற்று இருப்பிடத்தைச் சேர்க்கவும் நினைவூட்டலைச் சேர்க்கவும் diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index b7c320b83..ecf72529b 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -368,7 +368,6 @@ เมื่อพ้นกําหนด เลือกวันที่และเวลา คว้าง - สุ่มหนึ่งครั้ง ลบ เพิ่มตําแหน่งที่ตั้ง เพิ่มตัวเตือน @@ -513,12 +512,6 @@ สิ้นสุดชั่วโมงเงียบ ชั่วโมงที่เงียบสงบเริ่มต้น ปิดเสียงเตือนทั้งหมด - ในสองเดือน - เดือน - ในสองสัปดาห์ - สัปดาห์ - หนึ่งวัน - หนึ่งชั่วโมง แหวนไม่หยุดนิ่ง แหวนห้าครั้ง เรียกหนึ่งครั้ง diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 3b4245b30..1bab850eb 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -133,12 +133,6 @@ Bir kez çal Beş kez çal Durmadan çal - bir saat - bir gün - bir hafta - iki hafta içinde - bir ay - iki ay içinde Tamamlandı Ertele Tümünü ertele @@ -281,7 +275,6 @@ Anımsatıcı ekle Konum ekle Kaldır - Şunda rastgele bir kez Gelişigüzel Bir tarih ve zaman seç Geciktiğinde diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index f4476d69b..e26b7e93d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -132,12 +132,6 @@ Звучати один раз Звучати п’ять разів Звучати безперервно - година - дня - тижня - у два тижні - місяця - у два місяці Виконано Відкласти Відкласти все @@ -296,7 +290,6 @@ Додати нагадування Додати місце Вилучити - Випадково раз Випадково Обрати дату й час Коли прострочено diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 41be286d4..485336e8a 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -161,12 +161,6 @@ سارا اسنوز کریں اسنوز کریں مکمل - دو مہینوں میں - ایک مہینہ - دو ہفتوں میں - ایک ہفتہ - ایک دن - ایک گھنٹہ بغیر رکے رنگ بجنا پانچ بار رنگ بجنا ایک بار رنگ بجنا @@ -307,7 +301,6 @@ جب واجب الادا ہو تاریخ اور وقت مقرر کریں بے ترتیب - بلاترتیب ایک دفعہ ختم کریں لوکیشن لگائیں ہاد دہانی لگائیں diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 18d7015cc..4cf128114 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -439,7 +439,6 @@ Khi quá hạn Chọn ngày và thời gian Ngẫu nhiên - Ngẫu nhiên một lần Xoá Thêm vị trí Thêm lời nhắc @@ -591,17 +590,11 @@ Báo lại tất cả Báo lại Hoàn thành - hai tháng sau - một tháng - hai tuần sau Bắt đầu trước… Bắt đầu trước: \? Hạn trước… Hạn trước: \? Tên hiển thị - một tuần - một ngày - một tiếng Đổ chuông không ngừng Đổ chuông năm lần Đổ chuông một lần diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 96d9a3e98..2bd0cb58a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -120,12 +120,6 @@ 响铃一次 响铃五次 响个不停 - 一个小时 - 一天 - 一个星期 - 两星期内 - 一个月 - 两个月内 已完成 延后 全都稍后提醒 @@ -262,7 +256,6 @@ 捐献 添加提醒 移除 - 随机一次 随机 选个日期和时间 过期时 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 10df3d336..80339f3dc 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -100,12 +100,6 @@ 響鈴一次 響鈴五次 不斷響鈴 - 一個小時 - 一天 - 一個星期 - 兩星期內 - 一個月 - 兩個月內 已完成 晚點提醒 無聲開始時間 @@ -254,7 +248,6 @@ 當過期時 選擇時間和日期 隨機地 - 隨機一次 移除 新增地點 新增提醒 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 14dc8ba66..3368d2775 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -120,15 +120,6 @@ @string/now - - @string/random_reminder_hour - @string/random_reminder_day - @string/random_reminder_week - @string/random_reminder_two_weeks - @string/random_reminder_month - @string/random_reminder_two_months - - @string/default_random_reminder_disabled @string/default_random_reminder_hourly diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index c0b215170..201124eed 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -94,16 +94,6 @@ p_show_task_edit_comments - - - 1 - 24 - 168 - 336 - 730 - 1460 - - 0 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7f7da3e08..629d044b8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -153,12 +153,6 @@ File %1$s contained %2$s.\n\n Ring once Ring five times Ring nonstop - an hour - a day - a week - in two weeks - a month - in two months Complete Snooze Snooze all @@ -344,7 +338,7 @@ File %1$s contained %2$s.\n\n Add reminder Add location Remove - Randomly once + Randomly every %s Randomly Pick a date and time When overdue