From 7f5cbf372aa0878432a67ca211e9eec4990579f1 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 8 Jan 2021 18:32:24 -0600 Subject: [PATCH] Repurpose "Hide until" as "Start date" --- .../astrid/activity/TaskEditFragment.kt | 5 + .../astrid/activity/TaskListFragment.kt | 4 +- .../main/java/com/todoroo/astrid/data/Task.kt | 7 +- .../todoroo/astrid/ui/HideUntilControlSet.kt | 259 ------------------ .../todoroo/astrid/ui/StartDateControlSet.kt | 172 ++++++++++++ .../java/org/tasks/dialogs/StartDatePicker.kt | 235 ++++++++++++++++ .../tasks/filters/FilterCriteriaProvider.kt | 2 +- .../TaskEditControlSetFragmentManager.kt | 6 +- .../java/org/tasks/ui/TaskEditViewModel.kt | 22 +- app/src/main/res/layout/control_set_hide.xml | 26 +- .../res/layout/dialog_start_date_picker.xml | 29 ++ .../layout/start_date_picker_shortcuts.xml | 149 ++++++++++ .../main/res/menu/menu_task_list_fragment.xml | 4 +- app/src/main/res/values-af-rZA/strings.xml | 1 - app/src/main/res/values-ar/strings.xml | 3 - app/src/main/res/values-bg-rBG/strings.xml | 9 - app/src/main/res/values-ca/strings.xml | 8 - app/src/main/res/values-cs/strings.xml | 9 - app/src/main/res/values-da/strings.xml | 9 - app/src/main/res/values-de/strings.xml | 9 - app/src/main/res/values-el/strings.xml | 4 - app/src/main/res/values-es/strings.xml | 9 - app/src/main/res/values-et/strings.xml | 5 - app/src/main/res/values-eu/strings.xml | 9 - app/src/main/res/values-fa/strings.xml | 4 - app/src/main/res/values-fi/strings.xml | 9 - app/src/main/res/values-fr/strings.xml | 9 - app/src/main/res/values-gl/strings.xml | 5 - app/src/main/res/values-hr/strings.xml | 2 - app/src/main/res/values-hu/strings.xml | 9 - app/src/main/res/values-id/strings.xml | 8 - app/src/main/res/values-it/strings.xml | 9 - app/src/main/res/values-iw/strings.xml | 9 - app/src/main/res/values-ja/strings.xml | 9 - app/src/main/res/values-ko/strings.xml | 9 - app/src/main/res/values-lt/strings.xml | 9 - app/src/main/res/values-ml/strings.xml | 2 - app/src/main/res/values-nb/strings.xml | 9 - app/src/main/res/values-nl/strings.xml | 9 - app/src/main/res/values-pl/strings.xml | 9 - app/src/main/res/values-pt-rBR/strings.xml | 9 - app/src/main/res/values-pt/strings.xml | 9 - app/src/main/res/values-ru/strings.xml | 9 - app/src/main/res/values-sk/strings.xml | 9 - app/src/main/res/values-sl-rSI/strings.xml | 4 - app/src/main/res/values-sr/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 9 - app/src/main/res/values-ta/strings.xml | 9 - app/src/main/res/values-tl/strings.xml | 3 - app/src/main/res/values-tr/strings.xml | 9 - app/src/main/res/values-uk/strings.xml | 9 - app/src/main/res/values-ur/strings.xml | 8 - app/src/main/res/values-zh-rCN/strings.xml | 9 - app/src/main/res/values-zh-rTW/strings.xml | 9 - app/src/main/res/values/arrays.xml | 17 +- app/src/main/res/values/keys.xml | 4 +- app/src/main/res/values/strings.xml | 13 +- .../res/xml/preferences_task_defaults.xml | 18 +- app/src/main/res/xml/preferences_widget.xml | 2 +- 59 files changed, 636 insertions(+), 639 deletions(-) delete mode 100644 app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.kt create mode 100644 app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt create mode 100644 app/src/main/java/org/tasks/dialogs/StartDatePicker.kt create mode 100644 app/src/main/res/layout/dialog_start_date_picker.xml create mode 100644 app/src/main/res/layout/start_date_picker_shortcuts.xml diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt index 1f3dfff3a..349042561 100755 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt @@ -36,6 +36,7 @@ import com.todoroo.astrid.data.Task import com.todoroo.astrid.notes.CommentsController import com.todoroo.astrid.repeats.RepeatControlSet import com.todoroo.astrid.timers.TimerPlugin +import com.todoroo.astrid.ui.StartDateControlSet import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.launch @@ -284,6 +285,9 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener { private val subtaskControlSet: SubtaskControlSet? get() = getFragment(SubtaskControlSet.TAG) + private val startDateControlSet: StartDateControlSet? + get() = getFragment(StartDateControlSet.TAG) + private fun getFragment(tag: Int): T? { return childFragmentManager.findFragmentByTag(getString(tag)) as T? } @@ -328,6 +332,7 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener { */ fun onDueDateChanged() { repeatControlSet?.onDueDateChanged() + startDateControlSet?.onDueDateChanged() } fun onRemoteListChanged(filter: Filter?) { diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index ddc751487..da942adba 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -255,7 +255,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL if (filter.hasMenu()) { toolbar.inflateMenu(filter.menu) } - val hidden = menu.findItem(R.id.menu_show_hidden) + val hidden = menu.findItem(R.id.menu_show_unstarted) val completed = menu.findItem(R.id.menu_show_completed) if (!taskAdapter.supportsHiddenTasks() || !filter.supportsHiddenTasks()) { completed.isChecked = true @@ -333,7 +333,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL .show(childFragmentManager, FRAG_TAG_SORT_DIALOG) true } - R.id.menu_show_hidden -> { + R.id.menu_show_unstarted -> { item.isChecked = !item.isChecked preferences.setBoolean(R.string.p_show_hidden_tasks, item.isChecked) loadTaskListContent() diff --git a/app/src/main/java/com/todoroo/astrid/data/Task.kt b/app/src/main/java/com/todoroo/astrid/data/Task.kt index 43f55a92b..35e0ca122 100644 --- a/app/src/main/java/com/todoroo/astrid/data/Task.kt +++ b/app/src/main/java/com/todoroo/astrid/data/Task.kt @@ -10,12 +10,10 @@ import com.google.ical.values.RRule import com.todoroo.andlib.data.Table import com.todoroo.andlib.sql.Field import com.todoroo.andlib.utility.DateUtilities -import com.todoroo.astrid.ui.HideUntilControlSet import org.tasks.Strings import org.tasks.backup.XmlReader import org.tasks.data.Tag import org.tasks.date.DateTimeUtils -import org.tasks.date.DateTimeUtils.newDateTime import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.time.DateTime import org.tasks.time.DateTimeUtils.startOfDay @@ -199,9 +197,6 @@ class Task : Parcelable { /** Checks whether task is done. Requires DUE_DATE */ fun hasDueDate() = dueDate > 0 - fun createHideUntil(value: HideUntilControlSet.HideUntilValue?) = - value?.let { createHideUntil(it.setting, it.date) } ?: 0 - /** * Create hide until for this task. * @@ -214,7 +209,7 @@ class Task : Parcelable { HIDE_UNTIL_DUE, HIDE_UNTIL_DUE_TIME -> dueDate HIDE_UNTIL_DAY_BEFORE -> dueDate - DateUtilities.ONE_DAY HIDE_UNTIL_WEEK_BEFORE -> dueDate - DateUtilities.ONE_WEEK - HIDE_UNTIL_SPECIFIC_DAY, HIDE_UNTIL_SPECIFIC_DAY_TIME -> customDate + HIDE_UNTIL_SPECIFIC_DAY, HIDE_UNTIL_SPECIFIC_DAY_TIME -> customDate.startOfDay() else -> throw IllegalArgumentException("Unknown setting $setting") } if (date <= 0) { diff --git a/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.kt b/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.kt deleted file mode 100644 index 9c1f409c2..000000000 --- a/app/src/main/java/com/todoroo/astrid/ui/HideUntilControlSet.kt +++ /dev/null @@ -1,259 +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.app.Activity -import android.content.Intent -import android.os.Bundle -import android.view.View -import android.view.ViewGroup -import android.widget.* -import android.widget.AdapterView.OnItemSelectedListener -import butterknife.BindView -import butterknife.OnClick -import com.todoroo.andlib.utility.DateUtilities -import com.todoroo.astrid.data.Task -import dagger.hilt.android.AndroidEntryPoint -import org.tasks.R -import org.tasks.activities.DateAndTimePickerActivity -import org.tasks.date.DateTimeUtils -import org.tasks.dialogs.MyTimePickerDialog -import org.tasks.locale.Locale -import org.tasks.preferences.Preferences -import org.tasks.ui.HiddenTopArrayAdapter -import org.tasks.ui.TaskEditControlFragment -import java.util.* -import javax.inject.Inject - -/** - * Control set for specifying when a task should be hidden - * - * @author Tim Su @todoroo.com> - */ -@AndroidEntryPoint -class HideUntilControlSet : TaskEditControlFragment(), OnItemSelectedListener { - private val spinnerItems: MutableList = ArrayList() - - @Inject lateinit var activity: Activity - @Inject lateinit var preferences: Preferences - @Inject lateinit var locale: Locale - - @BindView(R.id.hideUntil) - lateinit var spinner: Spinner - - @BindView(R.id.clear) - lateinit var clearButton: ImageView - - private lateinit var adapter: ArrayAdapter - private var previousSetting = Task.HIDE_UNTIL_NONE - private var selection = 0 - private var existingDate = EXISTING_TIME_UNSET - - @OnClick(R.id.clear) - fun clearHideUntil() { - updateSpinnerOptions(0) - selection = 0 - spinner.setSelection(selection) - refreshDisplayView() - } - - override fun onRowClick() { - spinner.performClick() - } - - override fun createView(savedInstanceState: Bundle?) { - adapter = object : HiddenTopArrayAdapter( - activity, android.R.layout.simple_spinner_item, spinnerItems) { - override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { - var selectedItemPosition = position - if (parent is AdapterView<*>) { - selectedItemPosition = parent.selectedItemPosition - } - val tv = activity.layoutInflater.inflate(android.R.layout.simple_spinner_item, parent, false) as TextView - tv.setPadding(0, 0, 0, 0) - val value = getItem(selectedItemPosition) - if (value!!.setting == Task.HIDE_UNTIL_NONE) { - clearButton.visibility = View.GONE - tv.text = value.labelDisplay - tv.setTextColor(activity.getColor(R.color.text_tertiary)) - } else { - val display = value.labelDisplay - tv.text = getString(R.string.TEA_hideUntil_display, display) - tv.setTextColor(activity.getColor(R.color.text_primary)) - } - return tv - } - } - if (savedInstanceState == null) { - val dueDate = viewModel.dueDate!! - var hideUntil = viewModel.hideUntil!! - val dueDay = DateTimeUtils.newDateTime(dueDate) - .withHourOfDay(0) - .withMinuteOfHour(0) - .withSecondOfMinute(0) - .withMillisOfSecond(0) - - // For the hide until due case, we need the time component - val dueTime = dueDate / 1000L * 1000L - if (hideUntil <= 0) { - selection = 0 - hideUntil = 0 - if (viewModel.isNew) { - when (preferences.getIntegerFromString(R.string.p_default_hideUntil_key, Task.HIDE_UNTIL_NONE)) { - Task.HIDE_UNTIL_DUE -> selection = 1 - Task.HIDE_UNTIL_DUE_TIME -> selection = 2 - Task.HIDE_UNTIL_DAY_BEFORE -> selection = 3 - Task.HIDE_UNTIL_WEEK_BEFORE -> selection = 4 - } - } - } else if (hideUntil == dueDay.millis) { - selection = 1 - hideUntil = 0 - } else if (hideUntil == dueTime) { - selection = 2 - hideUntil = 0 - } else if (hideUntil + DateUtilities.ONE_DAY == dueDay.millis) { - selection = 3 - hideUntil = 0 - } else if (hideUntil + DateUtilities.ONE_WEEK == dueDay.millis) { - selection = 4 - hideUntil = 0 - } - updateSpinnerOptions(hideUntil) - } else { - updateSpinnerOptions(savedInstanceState.getLong(EXTRA_CUSTOM)) - selection = savedInstanceState.getInt(EXTRA_SELECTION) - } - spinner.adapter = adapter - spinner.setSelection(selection) - spinner.onItemSelectedListener = this - refreshDisplayView() - } - - override val layout = R.layout.control_set_hide - - override val icon = R.drawable.ic_outline_visibility_off_24px - - override fun controlId() = TAG - - override val isClickable = true - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - if (requestCode == REQUEST_HIDE_UNTIL) { - if (resultCode == Activity.RESULT_OK) { - setCustomDate(data!!.getLongExtra(MyTimePickerDialog.EXTRA_TIMESTAMP, 0L)) - } - } else { - super.onActivityResult(requestCode, resultCode, data) - } - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - outState.putLong(EXTRA_CUSTOM, existingDate) - outState.putInt(EXTRA_SELECTION, selection) - } - - private fun updateSpinnerOptions(specificDate: Long) { - spinnerItems.clear() - // set up base values - val labelsSpinner = resources.getStringArray(R.array.TEA_hideUntil_spinner) - val labelsDisplay = resources.getStringArray(R.array.TEA_hideUntil_display) - spinnerItems.addAll( - ArrayList( - listOf( - HideUntilValue(labelsSpinner[0], labelsDisplay[0], Task.HIDE_UNTIL_DUE), - HideUntilValue(labelsSpinner[1], labelsDisplay[1], Task.HIDE_UNTIL_DUE_TIME), - HideUntilValue(labelsSpinner[2], labelsDisplay[2], Task.HIDE_UNTIL_DAY_BEFORE), - HideUntilValue(labelsSpinner[3], labelsDisplay[3], Task.HIDE_UNTIL_WEEK_BEFORE), - HideUntilValue( - labelsSpinner[4], - "", - Task.HIDE_UNTIL_SPECIFIC_DAY, - -1)))) // no need for a string for display here, since the chosen day will be - // displayed - existingDate = if (specificDate > 0) { - spinnerItems.add(0, getHideUntilValue(specificDate)) - specificDate - } else { - spinnerItems.add( - 0, HideUntilValue(getString(R.string.TEA_hideUntil_label), Task.HIDE_UNTIL_NONE)) - EXISTING_TIME_UNSET - } - adapter.notifyDataSetChanged() - } - - private fun getHideUntilValue(timestamp: Long): HideUntilValue { - val hideUntilAsDate = DateTimeUtils.newDateTime(timestamp) - return if (hideUntilAsDate.hourOfDay == 0 && hideUntilAsDate.minuteOfHour == 0 && hideUntilAsDate.secondOfMinute == 0) { - HideUntilValue( - DateUtilities.getDateString(context, DateTimeUtils.newDateTime(timestamp)), - Task.HIDE_UNTIL_SPECIFIC_DAY, - timestamp) - } else { - HideUntilValue( - DateUtilities.getLongDateStringWithTime(timestamp, locale.locale), - Task.HIDE_UNTIL_SPECIFIC_DAY_TIME, - timestamp) - } - } - - override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) { - // if specific date selected, show dialog - // ... at conclusion of dialog, update our list - val item = adapter.getItem(position) - if (item!!.date == SPECIFIC_DATE.toLong()) { - val customDate = DateTimeUtils.newDateTime(if (existingDate == EXISTING_TIME_UNSET) DateUtilities.now() else existingDate) - .withSecondOfMinute(0) - val intent = Intent(activity, DateAndTimePickerActivity::class.java) - intent.putExtra(DateAndTimePickerActivity.EXTRA_TIMESTAMP, customDate.millis) - startActivityForResult(intent, REQUEST_HIDE_UNTIL) - spinner.setSelection(previousSetting) - } else { - previousSetting = position - } - selection = spinner.selectedItemPosition - refreshDisplayView() - } - - // --- listening for events - private fun setCustomDate(timestamp: Long) { - updateSpinnerOptions(timestamp) - spinner.setSelection(0) - refreshDisplayView() - } - - override fun onNothingSelected(arg0: AdapterView<*>?) { - // ignore - } - - private fun refreshDisplayView() { - viewModel.hideUntilValue = adapter.getItem(selection) - clearButton.visibility = if (viewModel.hideUntilValue!!.setting == Task.HIDE_UNTIL_NONE) View.GONE else View.VISIBLE - } - - class HideUntilValue internal constructor( - private val labelSpinner: String, - val labelDisplay: String, - val setting: Int, - val date: Long = 0 - ) { - internal constructor(label: String, setting: Int) : this(label, label, setting, 0) - - internal constructor(label: String, setting: Int, date: Long) : this(label, label, setting, date) - - override fun toString() = labelSpinner - } - - companion object { - const val TAG = R.string.TEA_ctrl_hide_until_pref - private const val EXTRA_CUSTOM = "extra_custom" - private const val EXTRA_SELECTION = "extra_selection" - private const val SPECIFIC_DATE = -1 - private const val EXISTING_TIME_UNSET = -2L - private const val REQUEST_HIDE_UNTIL = 11011 - } -} \ No newline at end of file diff --git a/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt b/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt new file mode 100644 index 000000000..98c5e849f --- /dev/null +++ b/app/src/main/java/com/todoroo/astrid/ui/StartDateControlSet.kt @@ -0,0 +1,172 @@ +package com.todoroo.astrid.ui + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import android.widget.TextView +import butterknife.BindView +import com.todoroo.andlib.utility.DateUtilities +import com.todoroo.andlib.utility.DateUtilities.now +import com.todoroo.astrid.data.Task +import dagger.hilt.android.AndroidEntryPoint +import org.tasks.R +import org.tasks.date.DateTimeUtils.newDateTime +import org.tasks.date.DateTimeUtils.toDateTime +import org.tasks.dialogs.StartDatePicker +import org.tasks.dialogs.StartDatePicker.Companion.DAY_BEFORE_DUE +import org.tasks.dialogs.StartDatePicker.Companion.DUE_DATE +import org.tasks.dialogs.StartDatePicker.Companion.DUE_TIME +import org.tasks.dialogs.StartDatePicker.Companion.EXTRA_DAY +import org.tasks.dialogs.StartDatePicker.Companion.EXTRA_TIME +import org.tasks.dialogs.StartDatePicker.Companion.NO_DAY +import org.tasks.dialogs.StartDatePicker.Companion.NO_TIME +import org.tasks.dialogs.StartDatePicker.Companion.WEEK_BEFORE_DUE +import org.tasks.locale.Locale +import org.tasks.preferences.Preferences +import org.tasks.time.DateTimeUtils.millisOfDay +import org.tasks.time.DateTimeUtils.startOfDay +import org.tasks.ui.TaskEditControlFragment +import java.time.format.FormatStyle +import javax.inject.Inject + +@AndroidEntryPoint +class StartDateControlSet : TaskEditControlFragment() { + @Inject lateinit var activity: Activity + @Inject lateinit var preferences: Preferences + @Inject lateinit var locale: Locale + + @BindView(R.id.start_date) + lateinit var startDate: TextView + + private val dueDateTime + get() = viewModel.dueDate!! + + private var selectedDay = NO_DAY + private var selectedTime = NO_TIME + + override fun onRowClick() { + val fragmentManager = parentFragmentManager + if (fragmentManager.findFragmentByTag(FRAG_TAG_DATE_PICKER) == null) { + StartDatePicker.newDateTimePicker( + this, + REQUEST_HIDE_UNTIL, + selectedDay, + selectedTime, + preferences.getBoolean(R.string.p_auto_dismiss_datetime_edit_screen, false)) + .show(fragmentManager, FRAG_TAG_DATE_PICKER) + } + } + + override fun createView(savedInstanceState: Bundle?) { + if (savedInstanceState == null) { + val dueDay = dueDateTime.startOfDay() + val dueTime = dueDateTime.millisOfDay() + val hideUntil = viewModel.hideUntil?.takeIf { it > 0 }?.toDateTime() + if (hideUntil == null) { + if (viewModel.isNew) { + when (preferences.getIntegerFromString(R.string.p_default_hideUntil_key, Task.HIDE_UNTIL_NONE)) { + Task.HIDE_UNTIL_DUE -> selectedDay = DUE_DATE + Task.HIDE_UNTIL_DUE_TIME -> selectedDay = DUE_TIME + Task.HIDE_UNTIL_DAY_BEFORE -> selectedDay = DAY_BEFORE_DUE + Task.HIDE_UNTIL_WEEK_BEFORE -> selectedDay = WEEK_BEFORE_DUE + } + } + } else { + selectedDay = hideUntil.startOfDay().millis + selectedTime = hideUntil.millisOfDay + selectedDay = when (selectedDay) { + dueDay -> if (selectedTime == dueTime) { + selectedTime = NO_TIME + DUE_TIME + } else { + DUE_DATE + } + dueDay.toDateTime().minusDays(1).millis -> + DAY_BEFORE_DUE + dueDay.toDateTime().minusDays(7).millis -> + WEEK_BEFORE_DUE + else -> selectedDay + } + } + } else { + selectedDay = savedInstanceState.getLong(EXTRA_DAY) + selectedTime = savedInstanceState.getInt(EXTRA_TIME) + } + refreshDisplayView() + } + + override val layout = R.layout.control_set_hide + + override val icon = R.drawable.ic_pending_actions_24px + + override fun controlId() = TAG + + override val isClickable = true + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + if (requestCode == REQUEST_HIDE_UNTIL) { + if (resultCode == Activity.RESULT_OK) { + selectedDay = data?.getLongExtra(EXTRA_DAY, 0L) ?: NO_DAY + selectedTime = data?.getIntExtra(EXTRA_TIME, 0) ?: NO_TIME + applySelectionToHideUntil() + } + } else { + super.onActivityResult(requestCode, resultCode, data) + } + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putLong(EXTRA_DAY, selectedDay) + outState.putInt(EXTRA_TIME, selectedTime) + } + + private fun getRelativeDateString(resId: Int) = if (selectedTime == NO_TIME) { + getString(resId) + } else { + "${getString(resId)} ${DateUtilities.getTimeString(context, newDateTime().withMillisOfDay(selectedTime))}" + } + + private fun refreshDisplayView() { + startDate.text = when (selectedDay) { + DUE_DATE -> getRelativeDateString(R.string.due_date) + DUE_TIME -> getString(R.string.due_time) + DAY_BEFORE_DUE -> getRelativeDateString(R.string.day_before_due) + WEEK_BEFORE_DUE -> getRelativeDateString(R.string.week_before_due) + in 1..Long.MAX_VALUE -> DateUtilities.getRelativeDateTime( + activity, + selectedDay + selectedTime, + locale.locale, + FormatStyle.FULL, + preferences.alwaysDisplayFullDate, + false + ) + else -> null + } + val started = viewModel.hideUntil?.takeIf { it > 0 }?.let { it < now() } ?: false + startDate.setTextColor( + activity.getColor(if (started) R.color.overdue else R.color.text_primary) + ) + } + + fun onDueDateChanged() = applySelectionToHideUntil() + + private fun applySelectionToHideUntil() { + val due = dueDateTime.takeIf { it > 0 }?.toDateTime() + val millisOfDay = selectedTime + viewModel.hideUntil = when (selectedDay) { + DUE_DATE -> due?.withMillisOfDay(millisOfDay)?.millis ?: 0 + DUE_TIME -> due?.millis ?: 0 + DAY_BEFORE_DUE -> due?.minusDays(1)?.withMillisOfDay(millisOfDay)?.millis ?: 0 + WEEK_BEFORE_DUE -> due?.minusDays(7)?.withMillisOfDay(millisOfDay)?.millis ?: 0 + else -> selectedDay + selectedTime + } + refreshDisplayView() + } + + companion object { + const val TAG = R.string.TEA_ctrl_hide_until_pref + private const val REQUEST_HIDE_UNTIL = 11011 + private const val FRAG_TAG_DATE_PICKER = "frag_tag_date_picker" + } +} \ No newline at end of file diff --git a/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt b/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt new file mode 100644 index 000000000..e859355a8 --- /dev/null +++ b/app/src/main/java/org/tasks/dialogs/StartDatePicker.kt @@ -0,0 +1,235 @@ +package org.tasks.dialogs + +import android.app.Activity +import android.app.Activity.RESULT_OK +import android.content.Intent +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import butterknife.ButterKnife +import butterknife.OnClick +import com.todoroo.andlib.utility.DateUtilities +import com.todoroo.astrid.dao.TaskDao +import com.todoroo.astrid.data.Task +import dagger.hilt.android.AndroidEntryPoint +import org.tasks.R +import org.tasks.databinding.DialogStartDatePickerBinding +import org.tasks.date.DateTimeUtils.newDateTime +import org.tasks.dialogs.MyTimePickerDialog.newTimePicker +import org.tasks.locale.Locale +import org.tasks.notifications.NotificationManager +import org.tasks.time.DateTime +import java.time.format.FormatStyle +import javax.inject.Inject + +@AndroidEntryPoint +class StartDatePicker : BaseDateTimePicker() { + + @Inject lateinit var activity: Activity + @Inject lateinit var locale: Locale + @Inject lateinit var taskDao: TaskDao + @Inject lateinit var notificationManager: NotificationManager + + lateinit var binding: DialogStartDatePickerBinding + private var customDate = NO_DAY + private var customTime = NO_TIME + private var selectedDay = NO_DAY + private var selectedTime = NO_TIME + private val today = newDateTime().startOfDay() + override val calendarView get() = binding.calendarView + override val morningButton get() = binding.shortcuts.morningButton + override val afternoonButton get() = binding.shortcuts.afternoonButton + override val eveningButton get() = binding.shortcuts.eveningButton + override val nightButton get() = binding.shortcuts.nightButton + + companion object { + private const val REQUEST_TIME = 10101 + private const val FRAG_TAG_TIME_PICKER = "frag_tag_time_picker" + const val EXTRA_DAY = "extra_day" + const val EXTRA_TIME = "extra_time" + const val NO_DAY = 0L + const val NO_TIME = 0 + const val DUE_DATE = -1L + const val DAY_BEFORE_DUE = -2L + const val WEEK_BEFORE_DUE = -3L + const val DUE_TIME = -4L + + fun newDateTimePicker(target: Fragment, rc: Int, day: Long, time: Int, autoClose: Boolean): StartDatePicker { + val bundle = Bundle() + bundle.putLong(EXTRA_DAY, day) + bundle.putInt(EXTRA_TIME, time) + bundle.putBoolean(EXTRA_AUTO_CLOSE, autoClose) + val fragment = StartDatePicker() + fragment.arguments = bundle + fragment.setTargetFragment(target, rc) + return fragment + } + } + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { + binding = DialogStartDatePickerBinding.inflate(theme.getLayoutInflater(context)) + setupShortcutsAndCalendar() + ButterKnife.bind(this, binding.root) + binding.calendarView.setOnDateChangeListener { _, y, m, d -> + returnDate(day = DateTime(y, m + 1, d).millis) + refreshButtons() + } + selectedDay = savedInstanceState?.getLong(EXTRA_DAY) ?: requireArguments().getLong(EXTRA_DAY) + selectedTime = + savedInstanceState?.getInt(EXTRA_TIME) + ?: requireArguments().getInt(EXTRA_TIME) + .takeIf { Task.hasDueTime(it.toLong()) } + ?: NO_TIME + + return binding.root + } + + override fun refreshButtons() { + when (selectedDay) { + 0L -> binding.shortcuts.dateGroup.check(R.id.no_date_button) + DUE_DATE -> binding.shortcuts.dateGroup.check(R.id.due_date_button) + DUE_TIME -> { + binding.shortcuts.dateGroup.check(R.id.due_time_button) + binding.shortcuts.timeGroup.clearChecked() + } + DAY_BEFORE_DUE -> binding.shortcuts.dateGroup.check(R.id.day_before_due_button) + WEEK_BEFORE_DUE -> binding.shortcuts.dateGroup.check(R.id.week_before_due_button) + else -> { + customDate = selectedDay + binding.shortcuts.dateGroup.check(R.id.current_date_selection) + binding.shortcuts.currentDateSelection.visibility = View.VISIBLE + binding.shortcuts.currentDateSelection.text = + DateUtilities.getRelativeDay(context, selectedDay, locale.locale, FormatStyle.MEDIUM) + } + } + if (Task.hasDueTime(selectedTime.toLong())) { + when (selectedTime) { + morning -> binding.shortcuts.timeGroup.check(R.id.morning_button) + afternoon -> binding.shortcuts.timeGroup.check(R.id.afternoon_button) + evening -> binding.shortcuts.timeGroup.check(R.id.evening_button) + night -> binding.shortcuts.timeGroup.check(R.id.night_button) + else -> { + customTime = selectedTime + binding.shortcuts.timeGroup.check(R.id.current_time_selection) + binding.shortcuts.currentTimeSelection.visibility = View.VISIBLE + binding.shortcuts.currentTimeSelection.text = DateUtilities.getTimeString(context, today.withMillisOfDay(selectedTime)) + } + } + if (selectedDay == DUE_TIME) { + selectedDay = DUE_DATE + } + } else if (selectedDay != DUE_TIME) { + binding.shortcuts.timeGroup.check(R.id.no_time) + } + if (selectedDay > 0) { + binding.calendarView.setDate(selectedDay, true, true) + } + } + + @OnClick(R.id.no_date_button) + fun clearDate() = returnDate(day = 0, time = 0) + + @OnClick(R.id.no_time) + fun clearTime() = returnDate( + day = when (selectedDay) { + DUE_TIME -> DUE_DATE + else -> selectedDay + }, + time = 0 + ) + + @OnClick(R.id.due_date_button) + fun setToday() = returnDate(day = DUE_DATE) + + @OnClick(R.id.day_before_due_button) + fun setTomorrow() = returnDate(day = DAY_BEFORE_DUE) + + @OnClick(R.id.week_before_due_button) + fun setNextWeek() = returnDate(day = WEEK_BEFORE_DUE) + + @OnClick(R.id.morning_button) + fun setMorning() = returnSelectedTime(morning) + + @OnClick(R.id.afternoon_button) + fun setAfternoon() = returnSelectedTime(afternoon) + + @OnClick(R.id.evening_button) + fun setEvening() = returnSelectedTime(evening) + + @OnClick(R.id.night_button) + fun setNight() = returnSelectedTime(night) + + @OnClick(R.id.due_time_button) + fun setDueTime() = returnDate(day = DUE_TIME, time = NO_TIME) + + @OnClick(R.id.current_date_selection) + fun currentDate() = returnDate(day = customDate) + + @OnClick(R.id.current_time_selection) + fun currentTime() = returnSelectedTime(customTime) + + @OnClick(R.id.pick_time_button) + fun pickTime() { + val time = if (selectedTime < 0 || !Task.hasDueTime(today.withMillisOfDay(selectedTime).millis)) { + today.noon().millisOfDay + } else { + selectedTime + } + newTimePicker(this, REQUEST_TIME, today.withMillisOfDay(time).millis) + .show(parentFragmentManager, FRAG_TAG_TIME_PICKER) + } + + private fun returnSelectedTime(millisOfDay: Int) { + val day = when { + selectedDay == DUE_TIME -> DUE_DATE + selectedDay != 0L -> selectedDay + today.withMillisOfDay(millisOfDay).isAfterNow -> today.millis + else -> today.plusDays(1).millis + } + returnDate(day = day, time = millisOfDay) + } + + private fun returnDate(day: Long = selectedDay, time: Int = selectedTime) { + selectedDay = day + selectedTime = time + if (closeAutomatically()) { + sendSelected() + } else { + refreshButtons() + } + } + + override fun sendSelected() { + if (selectedDay != arguments?.getLong(EXTRA_DAY) + || selectedTime != arguments?.getInt(EXTRA_TIME)) { + val intent = Intent().apply { + putExtra(EXTRA_DAY, selectedDay) + putExtra(EXTRA_TIME, selectedTime) + } + targetFragment?.onActivityResult(targetRequestCode, RESULT_OK, intent) + } + dismiss() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + + outState.putLong(EXTRA_DAY, selectedDay) + outState.putInt(EXTRA_TIME, selectedTime) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + if (requestCode == REQUEST_TIME) { + if (resultCode == RESULT_OK) { + val timestamp = data!!.getLongExtra(MyTimePickerDialog.EXTRA_TIMESTAMP, today.millis) + returnSelectedTime(newDateTime(timestamp).millisOfDay + 1000) + } else { + refreshButtons() + } + } else { + super.onActivityResult(requestCode, resultCode, data) + } + } +} diff --git a/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt b/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt index 64deebb80..3d6e95b44 100644 --- a/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt +++ b/app/src/main/java/org/tasks/filters/FilterCriteriaProvider.kt @@ -119,7 +119,7 @@ class FilterCriteriaProvider @Inject constructor( private val hiddenFilter: CustomFilterCriterion get() = BooleanCriterion( IDENTIFIER_HIDDEN, - context.getString(R.string.widget_due_date_hidden), + context.getString(R.string.filter_criteria_unstarted), select(Task.ID) .from(Task.TABLE) .where(field("${Task.HIDE_UNTIL.gt(PermaSql.VALUE_NOW)}").eq(1)) diff --git a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.kt b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.kt index f03311163..a1da8d8ea 100644 --- a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.kt +++ b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.kt @@ -7,7 +7,7 @@ import com.todoroo.astrid.files.FilesControlSet import com.todoroo.astrid.repeats.RepeatControlSet import com.todoroo.astrid.tags.TagsControlSet import com.todoroo.astrid.timers.TimerControlSet -import com.todoroo.astrid.ui.HideUntilControlSet +import com.todoroo.astrid.ui.StartDateControlSet import com.todoroo.astrid.ui.ReminderControlSet import dagger.hilt.android.qualifiers.ActivityContext import org.tasks.BuildConfig @@ -44,7 +44,7 @@ class TaskEditControlSetFragmentManager @Inject constructor( PriorityControlSet.TAG -> PriorityControlSet() DescriptionControlSet.TAG -> DescriptionControlSet() CalendarControlSet.TAG -> CalendarControlSet() - HideUntilControlSet.TAG -> HideUntilControlSet() + StartDateControlSet.TAG -> StartDateControlSet() ReminderControlSet.TAG -> ReminderControlSet() LocationControlSet.TAG -> LocationControlSet() FilesControlSet.TAG -> FilesControlSet() @@ -97,7 +97,7 @@ class TaskEditControlSetFragmentManager @Inject constructor( DescriptionControlSet.TAG, CalendarControlSet.TAG, PriorityControlSet.TAG, - HideUntilControlSet.TAG, + StartDateControlSet.TAG, ReminderControlSet.TAG, LocationControlSet.TAG, FilesControlSet.TAG, diff --git a/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt b/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt index 392b2a5d7..3a80767f6 100644 --- a/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskEditViewModel.kt @@ -23,7 +23,6 @@ import com.todoroo.astrid.service.TaskCompleter import com.todoroo.astrid.service.TaskDeleter import com.todoroo.astrid.service.TaskMover import com.todoroo.astrid.timers.TimerPlugin -import com.todoroo.astrid.ui.HideUntilControlSet import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableSet @@ -36,11 +35,13 @@ import org.tasks.R import org.tasks.Strings import org.tasks.calendars.CalendarEventProvider import org.tasks.data.* +import org.tasks.date.DateTimeUtils.toDateTime import org.tasks.location.GeofenceApi import org.tasks.preferences.PermissionChecker import org.tasks.preferences.Preferences import org.tasks.time.DateTime import org.tasks.time.DateTimeUtils.currentTimeMillis +import org.tasks.time.DateTimeUtils.startOfDay import timber.log.Timber import java.text.ParseException @@ -105,10 +106,17 @@ class TaskEditViewModel @ViewModelInject constructor( var description: String? = null get() = field ?: task?.notes.stripCarriageReturns() - val hideUntil: Long - get() = task?.hideUntil ?: 0 - - var hideUntilValue: HideUntilControlSet.HideUntilValue? = null + var hideUntil: Long? = null + get() = field ?: task?.hideUntil ?: 0 + set(value) { + field = when { + value == null -> null + value == 0L -> 0 + hasDueTime(value) -> + value.toDateTime().withSecondOfMinute(1).withMillisOfSecond(0).millis + else -> value.startOfDay() + } + } var recurrence: String? = null get() = field ?: task?.recurrence @@ -251,7 +259,7 @@ class TaskEditViewModel @ViewModelInject constructor( it.dueDate != dueDate || it.priority != priority || it.notes != description || - it.hideUntil != it.createHideUntil(hideUntilValue) || + it.hideUntil != hideUntil || if (it.recurrence.isNullOrBlank()) { !recurrence.isNullOrBlank() } else { @@ -292,7 +300,7 @@ class TaskEditViewModel @ViewModelInject constructor( it.dueDate = dueDate!! it.priority = priority!! it.notes = description - it.hideUntil = it.createHideUntil(hideUntilValue) + it.hideUntil = hideUntil!! it.recurrence = recurrence it.repeatUntil = repeatUntil!! it.elapsedSeconds = elapsedSeconds!! diff --git a/app/src/main/res/layout/control_set_hide.xml b/app/src/main/res/layout/control_set_hide.xml index 9a561278b..892de90f6 100644 --- a/app/src/main/res/layout/control_set_hide.xml +++ b/app/src/main/res/layout/control_set_hide.xml @@ -1,24 +1,8 @@ - - - - - - - - - - - + android:textAlignment="viewStart" /> diff --git a/app/src/main/res/layout/dialog_start_date_picker.xml b/app/src/main/res/layout/dialog_start_date_picker.xml new file mode 100644 index 000000000..a045ae92f --- /dev/null +++ b/app/src/main/res/layout/dialog_start_date_picker.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/layout/start_date_picker_shortcuts.xml b/app/src/main/res/layout/start_date_picker_shortcuts.xml new file mode 100644 index 000000000..f41e28a0c --- /dev/null +++ b/app/src/main/res/layout/start_date_picker_shortcuts.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/menu_task_list_fragment.xml b/app/src/main/res/menu/menu_task_list_fragment.xml index 4d3049292..97d99fe46 100644 --- a/app/src/main/res/menu/menu_task_list_fragment.xml +++ b/app/src/main/res/menu/menu_task_list_fragment.xml @@ -27,9 +27,9 @@ + android:title="@string/show_unstarted"/> Ewekansige herinneringe Dra by tot vertalings Geen herinneringe gedurende stil ure nie - Wys onsigbare Wys voltooide Batteryoptimalisering kan kennisgewings vertraag \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e672901f4..88fb7d6d8 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -21,7 +21,6 @@ بواسطة التعديل الأخير اسم المهمة الأولوية - إخفاء حتى وصف كم من الوقت ستأخذ؟ الوقت المنقضي @@ -54,7 +53,6 @@ نوع رنين/اهتزاز افتراضي بعد غد الأسبوع القادم - لا تُخبئ مهامي ما تم تعديله مؤخرا أو @@ -139,7 +137,6 @@ اختر التاريخ و الوقت تصفيات إعدادات التصفية - عرض المهام المخفية إظهار المهام المكتملة التعتيم تخصيص اللغة و الجهة diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index ac088241d..f03718f77 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -37,8 +37,6 @@ Име на задачата Приоритет Без дата - Скрий до - Скрий до %s Описание Колко време ще отнеме? Време, което вече е отделено @@ -50,10 +48,6 @@ До време Ден преди крайния срок Седмица преди крайния срок - до дата - до време - ден преди крайния срок - седмица преди крайния срок Повторение Календар Приоритет @@ -97,7 +91,6 @@ Изтрити %d събития от календара! Настройки по подразбиране Приоритет по подразбиране - Скрий до - по подразбиране Напомняния по подразбиране Напомняния за местоположение по подразбиране Радиус по подразбиране @@ -107,7 +100,6 @@ Нисък Ден след утрешния Следваща седмица - Не скривай При краен срок При крайния срок или просрочване Няма напомняния @@ -331,7 +323,6 @@ Копирай Премести Настройки на филтъра - Покажи скрити Покажи завършени Обратно Добавяне на прикачен файл diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index cc55fe538..b499b6e66 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -25,7 +25,6 @@ Nom de la tasca Prioritat Sense data - Amaga fins al Descripció Quant de temps us portarà\? Temps que ja s\'hi ha invertit @@ -45,7 +44,6 @@ Segur que voleu suprimir els esdeveniments de calendari de les tasques completades? Demà passat La setmana que ve - No amagis Tasques actives Modificades fa poc o @@ -94,7 +92,6 @@ Sense recordatoris durant les hores de silenci Filtres Configuració dels filtres - Mostra ocultes Mostra completades Ordenació inversa Idioma @@ -114,7 +111,6 @@ Truca Obre Crea un filtre - Amaga fins %s Desa Est. %s La meva comanda @@ -127,10 +123,6 @@ Ubicació Agenda Repeteix - la setmana abans del venciment - el dia abans del venciment - hora de venciment - data de venciment Data de venciment Transcorregut %s \ 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 49dcb35ff..4342fdbc9 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -29,8 +29,6 @@ Název úkolu Důležitost Bez termínu - Skrýt až do - Skrýt až do %s Popis Kolik času to zabere\? Již strávený čas @@ -82,7 +80,6 @@ Opravdu chcete odstranit všechny události z úkolů? Smazáno %d událostí v kalendáři! Výchozí důležitost - Výchozí doba skrytí Výchozí upomínky Výchozí vyzvánění / vibrace Vysoká @@ -90,7 +87,6 @@ Nízká Pozítří Příští týden - Neskrývat V termínu V termínu nebo po něm Moje úkoly @@ -207,7 +203,6 @@ Nastavení štítku Smazat Nastavení filtru - Zobrazit skryté Zobrazit dokončené Seřadit pozpátku Přidat přílohu @@ -239,10 +234,6 @@ Pokračovat v úpravách Volat Otevřít - termín dokončení - čas dokončení - den před termínem - týden před termínem Umístění Výchozí hodnoty úkolu Žádné upomínky diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 79cf1defd..c8b127424 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -24,8 +24,6 @@ Matcher ‘%s’ Opgavenavn Prioritet - Skjul indtil - Skjul indtil %s Beskrivelse Hvor lang tid tager det? Tid allerede brugt på denne opgave @@ -38,7 +36,6 @@ Ignorér alle begivenheder Ignorér kun denne begivenhed Standardprioritet - Skjul indtil… som standard Standardpåmindelser Mine opgaver Senest ændrede @@ -341,7 +338,6 @@ Tag et billede Vedhæft fil Vis udførte - Vis skjulte Filterindstillinger Flyt Kopiér @@ -544,7 +540,6 @@ Ingen påmindelser Ved frist eller overskredet Ved frist - Skjul ikke Næste uge I overmorgen Lav @@ -587,10 +582,6 @@ Sted Kalender Gentag - ugen før frist - dagen før frist - frist-tid - frist-dato Ugen før frist Dagen før frist Frist-tid diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 9cdf17ffb..8023d2860 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -38,8 +38,6 @@ Aufgabenname Dringlichkeit Ohne Datum - Ausblenden bis - Ausblenden bis %s Beschreibung Wie lange wird es dauern? Zeit, die schon für die Aufgabe gebraucht wurde @@ -51,10 +49,6 @@ Fälligkeitsuhrzeit Tag vor Fälligkeit Woche vor Fälligkeit - Fälligkeitsdatum - Fälligkeitsuhrzeit - Tag vor Fälligkeit - Woche vor Fälligkeit Wiederholen Kalender Dringlichkeit @@ -98,7 +92,6 @@ %d Kalendereinträge gelöscht! Standardwerte für Aufgaben Dringlichkeitsvorgabe - Standardmäßig ausblenden bis Vorgaben für Erinnerungen Ortsbasierte Standarderinnerungen Standardradius @@ -108,7 +101,6 @@ Niedrig Übermorgen Nächste Woche - Nicht ausblenden Zum Termin Zum Termin oder wenn überfällig Keine Erinnerungen @@ -329,7 +321,6 @@ Kopieren Bewegen Filtereinstellungen - Ausgeblendete anzeigen Erledigte anzeigen Rückwärts Anhang hinzufügen diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 59398e3bc..46eb1e43e 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -30,8 +30,6 @@ Όνομα καθήκοντος Προτεραιότητα Χωρίς ημερομηνία - Απόκρυψη μέχρι - Απόκρυψη μέχρι %s Περιγραφή Πόσο θα διαρκέσει? Χρόνος που ήδη πέρασε @@ -75,12 +73,10 @@ Θέλετε στα αλήθεια την διαγραφή όλων των γεγονότων για τις εργασίες σας; Διαγράφτηκαν %d γεγονότα ημερολογίου! Προκαθορισμένη προτεραιότητα - Προκαθορισμένη απόκρυψη μέχρι Προκαθορισμένες υπενθυμίσεις Προκαθορισμένος ήχος/τύπος δόνησης Μεθαύριο Επόμενη εβδομάδα - Μη απόκρυψη Στην προθεσμία Στην λήξη η και μετά ή diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 90187762d..6e83d6a48 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -39,8 +39,6 @@ Nombre de la tarea Prioridad Sin fecha - Ocultar hasta - Ocultar hasta %s Descripción ¿Cuanto tiempo llevará? Tiempo ya empleado en la tarea @@ -51,10 +49,6 @@ Hora de vencimiento Día previo al vencimiento Semana previa al vencimiento - fecha de vencimiento - hora de vencimiento - día previo al vencimiento - semana previa al vencimiento Repetir Calendario Prioridad @@ -98,7 +92,6 @@ ¡Borrados %d eventos del calendario! Configuración por defecto de tareas Prioridad predeterminada - Ocultar por defecto hasta Recordatorios por defecto Recordatorios de ubicación predeterminados Radio predeterminado @@ -108,7 +101,6 @@ Baja Pasado mañana Semana siguiente - No ocultar En la fecha de vencimiento En la fecha de vencimiento o ya vencida Sin recordatorio @@ -331,7 +323,6 @@ Copiar Mover Configuración del filtro - Mostrar oculto Mostrar completado Invertir Adjuntar archivo diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index c34f629f3..c9dbda32d 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -28,8 +28,6 @@ Ülesande nimi Tähtsus Kuupäeva pole - Peida kuni - Peida kuni %s Kirjeldus Kui kaua see aega võtab\? Juba kulunud aeg @@ -38,7 +36,6 @@ Kulunud %s Aega pole Tähtaeg - nädal enne tähtaega Korda Kalender Tähtsus @@ -77,7 +74,6 @@ Madal Ülehomme Järgmisel nädalal - Ära peida Meeldetuletusi pole Saabumisel Lahkumisel @@ -200,7 +196,6 @@ Kopeeri Liiguta Filtri seaded - Näita peidetuid Nõita lõpetatuid Pööra ümber Lisa fail diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index b8749ba51..2ec5db14a 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -39,8 +39,6 @@ Zereginaren izena Lehentasuna Datarik ez - Ezkutatu noiz arte - Ezkutatu %s arte Deskripzioa Zenbat hartuko dizu\? Jada erabilitako denbora @@ -52,10 +50,6 @@ Epemuga-ordua Epemugaren aurreko eguna Epemugaren aurreko astea - epemuga data - epemuga-ordua - epemugaren aurreko eguna - epemugaren aurreko astea Errepikatu Egutegia Lehentasuna @@ -99,7 +93,6 @@ %d gertaera ezabatuta egutegitik! Zereginen lehenespenak Lehenetsitako lehentasuna - Lehenetsita ezkutatu noiz arte Lehenetsitako oroigarriak Lehenetsitako kokaleku-oroigarriak Lehenetsitako erradioa @@ -109,7 +102,6 @@ Baxua Etzi Datorren astean - Ez ezkutatu Epemugan Epemugan edo hau gaindituta dagoenean Oroigarririk ez @@ -334,7 +326,6 @@ Kopiatu Lekuz aldatu Iragazki-ezarpenak - Erakutsi ezkutatutakoak Erakutsi burututakoak Alderantziz Gehitu eranskina diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 91680c9f8..d3796467b 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -25,8 +25,6 @@ نام وظیفه اولویت بدون تاریخ - مخفی تا - پنهان باشد تا %s توضیحات این چقدر طول میکشد ؟ زمان سپری شده @@ -70,7 +68,6 @@ کم پس فردا هفته بعد - مخفی نکن روز موعود در روز موعد یا پس از موعود وظایف من @@ -211,7 +208,6 @@ تنظیمات تگ حذف تنظیمات فیلتر - نمایش مخفی ها نمایش انجام شده ها برعکس الصاق پیوست diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index af7a1bd60..c7148978a 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -35,8 +35,6 @@ Tehtävän nimi Tärkeys Ei päiväystä - Piilota kunnes - Piilota kunnes %s Kuvaus Kuinka pitkään se kestää? Aika on jo käytetty @@ -90,7 +88,6 @@ Poistettu %d kalenteritapahtumaa! Tehtävän oletukset Oletusprioriteetti - Oletus piilota kunnes Oletusmuistutukset Oletussoittoääni/värinä -tyyppi Korkea @@ -98,7 +95,6 @@ Matala Ylihuomenna Ensi viikko - Älä piilota Määräaikana Määräpäivänä tai yliajalla Omat tehtävät @@ -314,7 +310,6 @@ Poista Kopio Suodatusasetukset - Näytä piilotetut Näytä valmiit Käänteinen Lisää liite @@ -511,10 +506,6 @@ Tehtävät jäävät listaan näkyviin vielä hetkeksi valmistuttuaankin Näytä tehtävät hetkellisesti valmistuttuaan Sijainti - Viikko ennen määräpäivän - Päivää ennen määräpäivän - Määräaika - Määräpäivä Lisää alitehtävä Oma järjestys Avaa diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0bf21ddb1..88870ea6d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -34,8 +34,6 @@ Nom de la tâche Priorité Sans date - Masquer jusqu\'à - Masquer jusqu\'à %s Combien de temps cela va-t-il prendre ? Temps déjà passé sur la tâche Sauvegarder @@ -46,10 +44,6 @@ Heure d\'échéance Jour avant échéance Semaine avant échéance - date d\'échéance - heure d\'échéance - jour(s) avant échéance - semaine(s) avant échéance Répéter Calendrier Priorité @@ -92,7 +86,6 @@ %d événements du calendrier ont été supprimés ! Valeurs par défaut Priorité par défaut - Masquer par défaut jusqu\'à Rappels par défaut Rappels d\'emplacement par défaut Rayon par défaut @@ -102,7 +95,6 @@ Faible Après-demain La semaine prochaine - Ne pas masquer À la date limite À la date limite ou après Aucun rappel @@ -313,7 +305,6 @@ Copier Déplacer Paramètres du filtre - Afficher les tâches cachées Afficher les tâches terminées Inverser Ajouter une pièce jointe diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 9ea05068f..5f7311683 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -32,8 +32,6 @@ Nombre de la tarea Prioridad Sin fecha - Ocultar hasta - Ocultar hasta %s Descripción ¿Cuanto tiempo llevará? Tiempo ya empleado en la tarea @@ -86,7 +84,6 @@ ¡Borrados %d eventos del calendario! Configuración por defecto de tareas Prioridad predeterminada - Ocultar por defecto hasta Recordatorios por defecto Tipo predeterminado de timbre/vibración Alta @@ -94,7 +91,6 @@ Baja Pasado mañana Semana siguiente - No ocultar En la fecha de vencimiento En la fecha de vencimiento o ya vencida Mis Tareas @@ -236,7 +232,6 @@ Eliminar Copiar Configuración de Filtros - Mostrar oculto Mostrar completado Invertir Adjuntar archivo diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 1d32f78cf..559fd50d8 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -6,7 +6,6 @@ Izvezi zadatke Sigurnosne kopije Postavke zaslona za uređivanje - Sakrij do %s Uvezi sigurnosnu kopiju Upravljaj popisima Prikaži puni datum @@ -20,7 +19,6 @@ Kalendar Spremi Opis - Sakrij do Dodaj podzadatak Prioritet Naziv zadatka diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 1d1219bd4..3a7499b0f 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -37,8 +37,6 @@ Feladat neve Prioritás Dátum nélkül - Elrejtés eddig - Elrejtés eddig: %s Leírás Meddig fog tartani? Már eltöltött idő @@ -50,10 +48,6 @@ Esedékesség ideje Egy nappal a határidő előtt Egy héttel a határidő előtt - határidő - esedékesség ideje - egy nappal a határidő előtt - egy héttel a határidő előtt Ismétlés Naptár Prioritás @@ -97,7 +91,6 @@ %d naptárbejegyzés törölve! Feladat alapértelmezései Alapértelmezett prioritás - Alapértelmezett elrejtési idő Alapértelmezett emlékeztetők Alapértelmezett hely emlékeztetők Alapértelmezett távolság @@ -107,7 +100,6 @@ Alacsony Holnapután Következő hét - Nem rejtett Határidő bekövetkeztekor Határidő bekövetkeztekor vagy túllépésekor Nincs emlékeztető @@ -330,7 +322,6 @@ Másolás Mozgatás Szűrő beállítások - Rejtettek megjelenítése Elvégzettek megjelenítése Visszafelé Csatolmány hozzáadása diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index cb665fe77..afa931804 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -43,12 +43,8 @@ Belum ada tugas yang dibuat. Panggil Jatuh tempo - Sembunyikan sampai - Sembunyikan sampai %s Tanggal jatuh tempo Waktu jatuh tempo - tanggal jatuh tempo - waktu jatuh tempo ----Selalu Sembunyi---- Asisten kalender Nihil @@ -74,7 +70,6 @@ Rendah Lusa Minggu depan - Jangan sembunyikan Saat batas waktu Saat batas waktu atau saat lewat jatuh tempo Tidak ada pengingat @@ -245,7 +240,6 @@ Salin Pindah Pengaturan Filter - Tampilkan tersembunyi Tampilkan selesai Tambah lampiran Ambil gambar @@ -485,8 +479,6 @@ Pengingat lokasi default Anda telah mengabaikan beberapa acara dalam kalender. Haruskah Tasks berhenti menanyakannya kepada Anda\? Atur Pengingat - Seminggu sebelum jatuh tempo - Hari sebelum jatuh tempo Seminggu sebelum jatuh tempo Tidak Ada Waktu Berlalu %s diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ddd47226a..2daa27103 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -39,8 +39,6 @@ Nome attività Priorità Senza data - Nascondi fino a - Nascondi fino a %s Descrizione Quanto tempo impiegherà? Tempo già speso per l\'attività @@ -52,10 +50,6 @@ Ora di scadenza Giorno prima della scadenza Settimana prima della scadenza - data di scadenza - ora di scadenza - giorno prima della scadenza - settimana prima della scadenza Ripeti Calendario Priorità @@ -99,7 +93,6 @@ %d eventi del calendario sono stati eliminati! Opzioni predefinite attività Priorità predefinita - Nascondi, per impostazione predefinita, fino a Promemoria predefiniti Posizione promemoria predefinita Raggio predefinito @@ -109,7 +102,6 @@ Bassa Dopodomani Settimana prossima - Non nascondere Alla scadenza Alla scadenza o già scaduta Nessun promemoria @@ -332,7 +324,6 @@ Copia Sposta Impostazioni filtro - Mostra nascoste Mostra completate Inverso Aggiungi allegato diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index d203307c2..9d4d9bc4b 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -39,8 +39,6 @@ שם המשימה עדיפות ללא תאריך - הסתר עד - הסתר עד %s תיאור כמה זמן תיקח המשימה? זמן שהושקע במשימה @@ -52,10 +50,6 @@ מועד הביצוע יום לפני מועד היעד שבוע לפני מועד היעד - תאריך יעד - זמן יעד - ימים לפני מועד יעד - שבוע לפני מועד יעד חזרה יומן עדיפות @@ -99,7 +93,6 @@ %d אירועי יומן נמחקו! ברירות מחדל למשימות עדיפות מחדל - ברירת מחדל לזמן הסתרה תזכורות ברירת מחדל תזכורות מיקום ברירת מחדל רדיוס ברירת מחדל @@ -109,7 +102,6 @@ נמוך מחרתיים בשבוע הבא - אל תסתיר במועד הסף במועד היעד או לאחריו אין תזכורות @@ -364,7 +356,6 @@ העתק הזז הגדרות סינון - הצגת משימות נסתרות הצגת משימות שבוצעו אחורה הוספ/י קובץ diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 7ad7dfb64..cc7b1313b 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -34,8 +34,6 @@ タスク名 優先順位 日付なし - 非表示の期限 - %s まで表示しない 概要 所要時間は? 既にタスクに費やした時間 @@ -47,10 +45,6 @@ 期限時間 期限の前日から 期限の一週間前から - 期限日 - 期限時間 - 期限までの日 - 期限までの週 繰り返し カレンダー 優先順位 @@ -94,7 +88,6 @@ %d カレンダーイベントが削除されました! タスクのデフォルト 標準の優先順位 - 表示期間 標準リマインダー デフォルトの場所リマインダー デフォルトの半径 @@ -104,7 +97,6 @@ 明後日 来週 - 常に表示する 期限に 期限または期限を過ぎて リマインダーはありません @@ -328,7 +320,6 @@ コピー 移動 フィルター設定 - 非表示を表示 完了を表示 逆順 添付ファイルを追加 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index f85571d5e..e0ecbfe10 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -37,8 +37,6 @@ 할일 제목 우선순위 마감일 없음 - 숨기기 기한 - %s 까지 숨기기 설명 일정 완료 예상 시간은? 일정에 이미 소모한 시간 @@ -50,10 +48,6 @@ 마감 시간 마감 하루 전 마감 일주일 전 - 마감일 - 마감시간 - 마감 하루 전 - 마감 일주일 전 반복 달력 우선순위 @@ -97,7 +91,6 @@ %d 달력 이벤트를 삭제했습니다! 할일 기본값 기본 우선순위 - 기본 숨기기 기한 기본 알림 기본 위치 알림 기본 반경 @@ -107,7 +100,6 @@ 낮음 모레 다음 주 - 숨기지 않기 완료일에 마감일이나 그 이후 알림 없음 @@ -329,7 +321,6 @@ 복사 이동 필터 설정 - 숨겨진 할일 표시 완료한 할일 표시 역순 첨부파일 추가 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 4a3568fd8..71fec1b0f 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -34,8 +34,6 @@ Užduoties pavadinimas Pirmenybė Be datos - Slėpti iki - Slėpti iki %s Aprašymas Kiek laiko tai užtruks? Praleista laiko @@ -47,10 +45,6 @@ Termino laikas Diena iki termino pabaigos Savaitė iki termino pabaigos - termino data - termino laikas - diena iki termino pabaigos - savaitė iki termino pabaigos Kartoti Kalendorius Pirmenybė @@ -94,7 +88,6 @@ Ištrinta %d kalendoriaus įvykių! Užduočių įprasti nustatymai Numatytasis prioritetas - Įprastai slėpti iki Numatytieji priminimai Numatytieji vietų priminimai Numatytasis spindulys @@ -104,7 +97,6 @@ Žemas Poryt Kitą savaitę - Neslėpti Atėjus terminui Atėjus terminui arba po jo Jokių priminimų @@ -327,7 +319,6 @@ Kopijuoti Perkelti Filtrų nustatymai - Rodyti paslėptus Rodyti užbaigtus Atvirkščiai Pridėti failą diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 74ecc5255..7d539bff1 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -29,8 +29,6 @@ മുൻഗണന ഉപ ടാസ്‌ക് ചേർക്കുക തീയതിയില്ല - വരെ മറയ്‌ക്കുക - %sവരെ മറയ്‌ക്കുക വിവരണം എത്ര സമയമെടുക്കും\? സംരക്ഷിക്കുക diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 0665ee314..2a3ce46b1 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -27,8 +27,6 @@ Jamfører med \'%s\' Gjøremålsnavn Prioritet - Skjul frem til - Skjul frem til: %s Beskrivelse Hvor lang tid vil det ta? Tid brukt til nå @@ -41,9 +39,7 @@ Påminnelser ----Skjul alltid---- Forvalgsprioritert - Forvalgt skjuling til Forvalgte påminnelser - Ikke skjul Mine gjøremål Nylig endret eller @@ -129,7 +125,6 @@ Etiketter Filtre Filterinnstillinger - Vis skjulte Vis fullførte Etiketten finnes allerede Ugjennomsiktighet @@ -174,10 +169,6 @@ Tidsfrist Dagen før tidsfristen Uken før tidsfristen - på tidsfristen - tidsfrist - dagen før tidsfristen - uken før tidsfristen Gjenta Kalneder Sted diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a976fd646..b896ee5fb 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -33,8 +33,6 @@ Taak naam Prioriteit Geen datum - Verbergen tot - Verberg tot %s Omschrijving Hoe lang duurt het\? Bestede tijd tot nu toe @@ -46,10 +44,6 @@ Eindtijd Dag voor einddatum Week voor einddatum - einddatum - verval tijd - dag voor verval - week voor verval Herhaal Agenda Prioriteit @@ -93,7 +87,6 @@ %d agenda-items verwijderd! Basisinstellingen nieuwe taak Standaard prioriteit - Standaard verbergen tot Standaard herinneringen Standaard locatie herinneringen Standaard straal @@ -103,7 +96,6 @@ Laag Overmorgen Volgende week - Niet verbergen Op de einddatum Op of na de einddatum Geen herinneringen @@ -324,7 +316,6 @@ Kopieer Verplaats Filter instellingen - Toon verborgen Toon voltooide Omgekeerde Bijlage toevoegen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 42135517f..f58fbc5bf 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -34,8 +34,6 @@ Tytuł zadania Priorytet Brak daty - Ukrywanie - Ukryj do %s Opis Jak długo to zajmie? Czas dotychczas spędzony nad tym zadaniem @@ -47,10 +45,6 @@ Dokładnie w terminie Dzień przed terminem Tydzień przed terminem - w terminie - o czasie - Dzień przed terminem - tydzień przed terminem Powtórz Kalendarz Priorytet @@ -94,7 +88,6 @@ Usunięto %d wydarzeń kalendarza! Domyślne ustawienia zadań Domyślny priorytet - Ukrywanie zadania (domyślnie) Przypomnienia (domyślnie) Domyślne powiadomienia o lokalizacji Domyślny promień @@ -104,7 +97,6 @@ Mało ważne Pojutrze Przyszły tydzień - Nie ukrywaj W dniu terminu nieprzekraczalnego W nieprzekraczalnym terminie lub gdy zaległe Brak przypomnień @@ -342,7 +334,6 @@ Kopiuj Przenieś Ustawienia filtrów - Pokaż ukryte Pokaż ukończone Odwrotnie Dodaj załącznik diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ae49c1e9c..31069aee2 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -36,8 +36,6 @@ Nome da tarefa Prioridade Sem data - Ocultar até - Ocultar até %s Descrição Quanto tempo isto vai levar? Tempo já gasto @@ -48,10 +46,6 @@ No tempo devido Dias antes do vencimento Semanas antes do vencimento - data de vencimento - prazo de entrega - dia antes do vencimento - semana antes do vencimento Repetir Calendário Prioridade @@ -95,7 +89,6 @@ %d eventos de agenda apagados! Padrões de tarefa Prioridade padrão - Padrão de Ocultar até Lembretes padrões Lembretes de localização padrão Raio padrão @@ -105,7 +98,6 @@ Baixa Depois de amanhã Próxima semana - Não ocultar No vencimento No prazo ou vencidas Sem lembretes @@ -328,7 +320,6 @@ Copiar Mover Configurações de filtro - Mostrar ocultas Mostrar concluídas Reverso Adicionar anexo diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 47c8935a9..2774e102b 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -34,8 +34,6 @@ Nome da tarefa Prioridade Sem data - Ocultar até - Ocultar até %s Descrição Quanto tempo irá durar? Tempo já gasto @@ -88,7 +86,6 @@ Eliminados %d eventos de calendário! Predefinições Prioridade predefinida - Predefinição de ocultar até Lembretes predefinidos Tipo de vibração/toque predefinido Alta @@ -96,7 +93,6 @@ Baixa Depois de amanhã Próxima semana - Não ocultar Na data limite Na data limite ou ultrapassada Minhas tarefas @@ -311,7 +307,6 @@ Apagar Copiar Definições de filtro - Mostrar ocultas Mostrar terminadas Reverter Adicionar anexo @@ -391,10 +386,6 @@ Ligar Abrir Est. %s - Data conclusão - Hora conclusão - Dia anterior à conclusão - Semana anterior à conclusão ontem amanhã hoje diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index bdec8a08f..732ecf6ea 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -39,8 +39,6 @@ Имя задачи Приоритет Без даты - Скрыть до - Скрыть до %s Описание Сколько времени это займет\? Затраченное время @@ -52,10 +50,6 @@ Намеченное время Сутки до намеченной даты Неделя до намеченной даты - намеченной даты - намеченного времени - сутки до намеченной даты - неделя до намеченной даты Повтор Календарь Приоритет @@ -99,7 +93,6 @@ Удалено %d календарных событий! Параметры по умолчанию Приоритет по умолчанию - Срок скрытия по умолчанию Напоминания по умолчанию Напоминания о месте по умолчанию Радиус по умолчанию @@ -109,7 +102,6 @@ Низкий Послезавтра Следующая неделя - Не скрывать В срок Вовремя или просрочена Без напоминаний @@ -348,7 +340,6 @@ Копировать Перенести Настройки фильтра - Показать скрытые Показать выполненные Наоборот Прикрепить файл diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index a2da5e229..6b4eca928 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -34,8 +34,6 @@ Názov úlohy Dôležitosť Bez dátumu - Skryť do - Skryť do %s Popis Ako dlho to bude trvať? Ako dlho už pracujete na úlohe @@ -47,10 +45,6 @@ Čas dokončenia Deň pre ukončením Týždeň pred ukončením - termín deň - termín čas - o deň skôr - o týždeň skôr Opakovať Kalendár Priorita @@ -94,7 +88,6 @@ Zmazané %d udalosti kalendára! Predvoľby úloh Predvolená dôležitosť - Predvolené Skryť do Predvolené pripomienky Východzie upozornenia podľa polohy Predvolený polomer @@ -104,7 +97,6 @@ Nízka Pozajtra Nasledujúci týždeň - Neskrývať V termíne V termíne alebo po termíne Žiadne upozornenia @@ -328,7 +320,6 @@ Kopírovať Presunúť Nastavenie filtra - Zobraziť skryté Zobraziť dokončené Opačné Pridať prílohu diff --git a/app/src/main/res/values-sl-rSI/strings.xml b/app/src/main/res/values-sl-rSI/strings.xml index eb4f67ac2..37256fa81 100644 --- a/app/src/main/res/values-sl-rSI/strings.xml +++ b/app/src/main/res/values-sl-rSI/strings.xml @@ -30,8 +30,6 @@ Poimenovanje opravka Prioriteta Brez datuma - Skrij do - Skrij do %s Opis Kako dolgo bo trajalo? Porabljen čas @@ -75,12 +73,10 @@ Ste prepričani, da želite zbrisati vse opravke iz vaših dogodkov? Število zbrisanih dogodkov na koledarju: %d Privzeta dospelost - Privzeto skrij do Privzeti opomniki Privzeti način zvonenja/vibriranja Pojutrišnjem Naslednji teden - Ne skrij Ob dospelosti Ob dospelosti ali potem Moji Opravki diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 4ebad54cd..7974b1ace 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -24,7 +24,6 @@ Oceni Task Bez podsetnika u mirnim satima Подешавања филтера - Prikaži skrivene Обнови сажетак Копија сачувана од %1$s до %2$s. Увези задатке diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index db480bb35..127171c04 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -32,8 +32,6 @@ Uppgiftsnamn Prioritet Inget datum - Dölj tills - Dölj tills %s Beskrivning Hur lång tid kommer det att ta? Tid redan spenderad på uppgiften @@ -87,7 +85,6 @@ %d kalenderhändelser raderade! Förval för nya uppgifter Standard prioritet - Standard Dölj tills Standardpåminnelser Standardtyp av ringsignal/vibration Hög @@ -95,7 +92,6 @@ Låg I övermorgon Nästa vecka - Dölj inte Vid förfallodagen Vid eller efter förfallodagen Mina Uppgifter @@ -234,7 +230,6 @@ Listinställningar Ta bort Filterinställningar - Visa dolda Visa slutförda Omvänt Bifoga filer @@ -269,10 +264,6 @@ Rensa bort slutförda uppgifter? Ring Öppna - förfallodatum - förfallotid - dagen innan förfallodatum - veckan innan förfallodatum Plats Standardplatspåminnelse Standardavstånd diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index cc4f7b0ef..844a64456 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -3,7 +3,6 @@ நினைவூட்டல்கள் இல்லை காலக்கெடு அல்லது தாமதமாக காலக்கெடுவில் - மறைக்க வேண்டாம் அடுத்த வாரம் நாளை மறுநாள் குறைந்த @@ -12,7 +11,6 @@ இயல்புநிலை ஆரம் இயல்புநிலை இருப்பிட நினைவூட்டல்கள் இயல்புநிலை நினைவூட்டல்கள் - இயல்புநிலை வரை மறை இயல்புநிலை முன்னுரிமை பணி இயல்புநிலை பணிகளுக்காக உங்கள் எல்லா நிகழ்வுகளையும் நீக்க விரும்புகிறீர்களா\? @@ -53,16 +51,11 @@ முன்னுரிமை நாள்காட்டி மீண்டும் செய்யவும் - வாரத்திற்கு முன் - செலுத்த வேண்டிய நாள் முன் - உரிய நேரத்தில் - உரிய தேதி செலுத்த வேண்டிய வாரம் முன் செலுத்த வேண்டிய நாள் முன் உரிய தேதி உரிய தேதி நேரம் இல்லை - வரைக்கும் மறை துணை பணி சேர்க்கவும் புதிய வடிப்பானை உருவாக்கவும் படைப்பு நேரம் மூலம் @@ -178,7 +171,6 @@ அல்லது சமீபத்தில் மாற்றியவை என் வேலைகள் - %s வரை மூடு %d… வேலையை படிக்கிறது பணிகள் தரவுத்தளத்திற்கான முழு அணுகல் வரிசை வரிசையை மீட்டமைக்கவும் @@ -416,7 +408,6 @@ இணைப்பை சேர்க்கவும் தலைகீழ் நிகழ்ச்சி முடிந்தது - மறைக்கப்பட்டதைக் காட்டு அமைப்புகளை வடிகட்டவும் நகர்வு நகலெடுக்கவும் diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml index 942ac5260..d752b4e0d 100644 --- a/app/src/main/res/values-tl/strings.xml +++ b/app/src/main/res/values-tl/strings.xml @@ -7,8 +7,6 @@ Tumutugma \'%s\' Pangalan ng gawain Prayoridad - Itago hanggang - Itago hanggang %s Walang paalala Sa pagdating o @@ -51,7 +49,6 @@ Kontakin ang developer Halagahan ang Tasks Walang paalala sa tahimik na mga oras - Ipakita ang nakatago Ipakita ang natapos Pangalan ng gumagamit kailangan Password kailangan diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e0b460ac1..7a37f3c81 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -39,8 +39,6 @@ Görev adı Öncelik Tarih yok - Şuna kadar gizle - %s kadar gizle Açıklama Ne kadar sürecek? Önceden geçirilen zaman @@ -52,10 +50,6 @@ Bitiş zamanı Bitişten önceki gün Bitişten önceki hafta - bitiş tarihi - bitiş zamanı - son günden bir gün önce - son günden bir hafta önce Yinele Takvim Öncelik @@ -99,7 +93,6 @@ %d takvim olayı silindi! Görev öntanımlıları Öntanımlı öncelik - Öntanımlı şuna kadar gizleme Öntanımlı hatırlatmalar Öntanımlı konum hatırlatmalar Öntanımlı yarıçap @@ -109,7 +102,6 @@ Düşük Yarından Sonra Gelecek Hafta - Gizleme Son tarihte Son tarihte ya da geciktiğinde Hatırlatma yok @@ -333,7 +325,6 @@ Kopyala Taşı Süzgeç ayarları - Gizlenenleri göster Tamamlananları göster Ters Ek ekle diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index fbecf2671..d7fcb266f 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -37,8 +37,6 @@ Ім\'я завдання Пріоритет Без дати - Приховати до - Приховати до %s Опис Як довго це триватиме? Часу витрачено @@ -50,10 +48,6 @@ Призначеного часу За день до За тиждень до - призначеної дати - призначеного часу - за день до - за тиждень до Повторити Календар Пріоритет @@ -97,7 +91,6 @@ Видалено %d календарних подій! Типові налаштування завдань Пріоритет по замовчуванню - Термін приховування за замовчуванням Нагадування по замовчуванню Типове нагадування місцезнаходження Радіус за замовчуванням @@ -107,7 +100,6 @@ Низький Післязавтра Наступного тижня - Не приховувати Під час дедлайну Вчасно або прострочено Без нагадувань @@ -346,7 +338,6 @@ Копіювати Перемістити Налаштування фільтрів - Показати приховані Показати завершені Реверс Додати вкладення diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 5880099eb..618aa3f0e 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -12,10 +12,6 @@ ترجیح کیلنڈر دہرائیں - وقت مقررہ سے ہفتہ قبل - مقررہ وقت سے ایک دن پہلے - مقررہ وقت - مقررہ تاریخ وقت مقررہ سے ہفتہ قبل مقررہ دن سے ایک دن قبل وقت مقرر @@ -26,8 +22,6 @@ صرف شدہ وقت یہ کتنی دیر لے گا؟ تفصیل - %s تک چھپائیں - اس وقت تک چھپائیں کوئی تاریخ نہیں ذیلی ٹاسک بنائیں ترجیح @@ -78,7 +72,6 @@ کوئی یاددہانی نہیں آخری تاریخ یا زائد المیعاد پر مقررہ تاریخ پر - نہ چھپائیں اگلے ہفتے پرسوں کم @@ -89,7 +82,6 @@ ڈیفالٹ رداس ڈیفالٹ لوکیشن کی یاد دہانیاں ڈیفالٹ یاددہانی - ڈیفالٹ چھپائیں اتنے عرصے تک ڈیفالٹ ترجیح ٹاسک کے ڈیفالٹس %d کیلنڈر ایونٹس ڈٰیلییٹ ہوگئے! diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 824442112..2661e6354 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -34,8 +34,6 @@ 任务名 优先级 暂无数据 - 隐藏直到 - 隐藏直到 %s 描述 要花多久时间? 已用于任务的时间 @@ -47,10 +45,6 @@ 到期时间 截止期前一天 截止期前一周 - 截止日期 - 截止时间 - 截止期前一天 - 截止期前一周 重复 日历 优先级 @@ -93,7 +87,6 @@ 已删除 %d 个日历事件! 任务默认值 默认优先级 - 默认隐藏直到 默认提醒 默认铃声/振动类型 @@ -101,7 +94,6 @@ 后天 下周 - 不隐藏 截止期限时 截止期限或过期时 我的任务 @@ -313,7 +305,6 @@ 拷贝 移动 过滤器设置 - 显示隐藏的任务 显示已完成任务 反向 添加附件 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 5ad1351bc..5973c8138 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -32,8 +32,6 @@ 新增過濾器 工作名稱 優先權 - 隱藏直到 - 隱藏直到%s 描述 要花多久? 已消耗的時間 @@ -73,7 +71,6 @@ 已經刪除了 %d 個日曆事件了! 工作預設值 預設優先權 - 預設隱藏直到… 預設提醒 預設鈴聲 / 震動類型 @@ -81,7 +78,6 @@ 後天 下週 - 不隱藏 在截止期限時 在截止期限或過期時 我的工作 @@ -185,7 +181,6 @@ %1$s 必須在 %2$s 之前 %1$s 必須在 %2$s 之後 過濾器設定 - 顯示隱藏 顯示已完成 預設清單 透明度 @@ -214,10 +209,6 @@ 儲存 到期時間 到期前一天 - 到期日 - 到期時間 - 到期前一天 - 到期前一週 重複 月曆 地點 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 2b106408a..4a69166eb 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -1,23 +1,8 @@ - - @string/due_date - @string/due_time - @string/day_before_due - @string/week_before_due - @string/pick_a_date_and_time - - - - @string/TEA_hideUntil_due_date - @string/TEA_hideUntil_due_time - @string/TEA_hideUntil_day_before_due - @string/TEA_hideUntil_week_before_due - - - @string/dont_hide + @string/no_start_date @string/due_date @string/due_time @string/day_before_due diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index 6646a95e1..9cbfea647 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -246,6 +246,7 @@ default_calendar_id + @string/start_date @string/due_date @string/TEA_control_repeat @string/TEA_control_importance @@ -256,7 +257,6 @@ @string/TEA_control_reminders @string/TEA_control_files @string/TEA_control_notes - @string/TEA_hideUntil_label @string/TEA_control_gcal @string/TEA_control_timer @string/TEA_control_hidden_section @@ -286,6 +286,7 @@ astrid_sort_enabled + @string/TEA_ctrl_hide_until_pref @string/TEA_ctrl_when_pref @string/TEA_ctrl_repeat_pref @string/TEA_ctrl_importance_pref @@ -296,7 +297,6 @@ @string/TEA_ctrl_reminders_pref @string/TEA_ctrl_files_pref @string/TEA_ctrl_notes_pref - @string/TEA_ctrl_hide_until_pref @string/TEA_ctrl_gcal @string/TEA_ctrl_timer_pref @string/TEA_ctrl_hide_section_pref diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a3b88d9c5..4bbf89dd2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -48,8 +48,6 @@ File %1$s contained %2$s.\n\n Priority Add subtask No date - Hide until - Hide until %s Description How long will it take? Time already spent @@ -62,10 +60,6 @@ File %1$s contained %2$s.\n\n Start date Day before due Week before due - due date - due time - day before due - week before due Repeat Calendar Priority @@ -113,7 +107,7 @@ File %1$s contained %2$s.\n\n Deleted %d calendar events! Task defaults Default priority - Default hide until + Default start date Default due date Default reminders Default location reminders @@ -125,7 +119,6 @@ File %1$s contained %2$s.\n\n Low Day after tomorrow Next week - Don\'t hide At deadline At deadline or overdue No reminders @@ -143,6 +136,7 @@ File %1$s contained %2$s.\n\n Due By: ? Due By… No due date + No start date Next Month Priority at least ? Priority… @@ -372,8 +366,9 @@ File %1$s contained %2$s.\n\n Copy Move Filter settings - Show hidden + Show unstarted Show completed + Not started Reverse No app could handle this request Add attachment diff --git a/app/src/main/res/xml/preferences_task_defaults.xml b/app/src/main/res/xml/preferences_task_defaults.xml index 722d9892d..f69b99812 100644 --- a/app/src/main/res/xml/preferences_task_defaults.xml +++ b/app/src/main/res/xml/preferences_task_defaults.xml @@ -29,6 +29,15 @@ android:summary="%s" android:title="@string/EPr_default_importance_title" /> + + - - + android:title="@string/show_unstarted" />