From 08ff146320a0e3faeff250e013486b7f3f628600 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Wed, 5 Jan 2022 10:52:44 -0600 Subject: [PATCH] Update drawer headers * Move chevron to end * Animate chevron * 'Add' button replaces 'Create new ...' rows --- .../astrid/adapter/ActionViewHolder.kt | 10 +- .../todoroo/astrid/adapter/FilterAdapter.kt | 22 +---- .../astrid/adapter/FilterViewHolder.kt | 21 +++-- .../astrid/adapter/NavigationDrawerAdapter.kt | 32 ++----- .../astrid/adapter/SubheaderClickHandler.kt | 55 +++++++++++ .../astrid/adapter/SubheaderViewHolder.kt | 73 +++++++-------- .../NavigationDrawerCustomization.kt | 60 +++++------- .../java/org/tasks/filters/FilterProvider.kt | 83 ++++++++--------- .../filters/NavigationDrawerSubheader.java | 31 ++++++- .../org/tasks/ui/NavigationDrawerFragment.kt | 4 - .../res/layout/filter_adapter_subheader.xml | 93 ++++++++++++------- app/src/main/res/values-ar/strings.xml | 1 - app/src/main/res/values-bg-rBG/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 1 - app/src/main/res/values-da/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-eu/strings.xml | 1 - app/src/main/res/values-fi/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-hr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-id/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-iw/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-lt/strings.xml | 1 - app/src/main/res/values-nb/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-pl/strings.xml | 1 - app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ro/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-si/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values-ta/strings.xml | 1 - app/src/main/res/values-th/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-vi/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 45 files changed, 271 insertions(+), 247 deletions(-) create mode 100644 app/src/main/java/com/todoroo/astrid/adapter/SubheaderClickHandler.kt diff --git a/app/src/main/java/com/todoroo/astrid/adapter/ActionViewHolder.kt b/app/src/main/java/com/todoroo/astrid/adapter/ActionViewHolder.kt index fc1bc350d..21d1f0f3f 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/ActionViewHolder.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/ActionViewHolder.kt @@ -1,6 +1,6 @@ package com.todoroo.astrid.adapter -import android.app.Activity +import android.content.Context import android.view.View import android.widget.ImageView import android.widget.TextView @@ -10,9 +10,9 @@ import org.tasks.databinding.FilterAdapterActionBinding import org.tasks.themes.DrawableUtil class ActionViewHolder internal constructor( - private val activity: Activity, - itemView: View, - private val onClick: ((FilterListItem?) -> Unit)?) : RecyclerView.ViewHolder(itemView) { + private val context: Context, + itemView: View, + private val onClick: ((FilterListItem?) -> Unit)?) : RecyclerView.ViewHolder(itemView) { private val row: View private val text: TextView @@ -28,7 +28,7 @@ class ActionViewHolder internal constructor( fun bind(filter: FilterListItem) { text.text = filter.listingTitle - icon.setImageDrawable(DrawableUtil.getWrapped(activity, filter.icon)) + icon.setImageDrawable(DrawableUtil.getWrapped(context, filter.icon)) if (onClick != null) { row.setOnClickListener { onClick.invoke(filter) diff --git a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.kt b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.kt index 6ba5e98bd..caa086e03 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.kt @@ -11,19 +11,14 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.BaseAdapter -import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView import com.todoroo.andlib.utility.AndroidUtilities import com.todoroo.astrid.api.Filter import com.todoroo.astrid.api.FilterListItem import com.todoroo.astrid.api.FilterListItem.Type.* -import org.tasks.LocalBroadcastManager import org.tasks.billing.Inventory -import org.tasks.data.CaldavDao -import org.tasks.data.GoogleTaskDao import org.tasks.filters.NavigationDrawerSubheader import org.tasks.locale.Locale -import org.tasks.preferences.Preferences import org.tasks.themes.ColorProvider import java.util.* import javax.inject.Inject @@ -33,10 +28,8 @@ class FilterAdapter @Inject constructor( private val locale: Locale, private val inventory: Inventory, private val colorProvider: ColorProvider, - private val preferences: Preferences, - private val googleTaskDao: GoogleTaskDao, - private val caldavDao: CaldavDao, - private val localBroadcastManager: LocalBroadcastManager) : BaseAdapter() { + private val subheaderClickHandler: SubheaderClickHandler, +) : BaseAdapter() { private var selected: Filter? = null private var items: List = ArrayList() @@ -80,13 +73,7 @@ class FilterAdapter @Inject constructor( newView, false, locale, activity, inventory, colorProvider, null) ACTION -> ActionViewHolder(activity, newView, null) SEPARATOR -> SeparatorViewHolder(newView) - SUBHEADER -> SubheaderViewHolder( - newView, - activity as AppCompatActivity, - preferences, - googleTaskDao, - caldavDao, - localBroadcastManager) + SUBHEADER -> SubheaderViewHolder(newView, subheaderClickHandler) } newView } @@ -104,7 +91,8 @@ class FilterAdapter @Inject constructor( when (item.itemType) { ITEM -> (viewHolder as FilterViewHolder).bind(item, item == selected, 0) ACTION -> (viewHolder as ActionViewHolder).bind(item) - SUBHEADER -> (viewHolder as SubheaderViewHolder).bind((item as NavigationDrawerSubheader)) + SUBHEADER -> + (viewHolder as SubheaderViewHolder).bind((item as NavigationDrawerSubheader)) else -> {} } return view diff --git a/app/src/main/java/com/todoroo/astrid/adapter/FilterViewHolder.kt b/app/src/main/java/com/todoroo/astrid/adapter/FilterViewHolder.kt index 9a2bc6fa6..b5239a7c2 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/FilterViewHolder.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/FilterViewHolder.kt @@ -1,6 +1,6 @@ package com.todoroo.astrid.adapter -import android.app.Activity +import android.content.Context import android.view.View import android.widget.CheckedTextView import android.widget.ImageView @@ -22,13 +22,14 @@ import org.tasks.themes.CustomIcons.getIconResId import org.tasks.themes.DrawableUtil class FilterViewHolder internal constructor( - itemView: View, - private val navigationDrawer: Boolean, - private val locale: Locale, - private val activity: Activity, - private val inventory: Inventory, - private val colorProvider: ColorProvider, - private val onClick: ((FilterListItem?) -> Unit)?) : RecyclerView.ViewHolder(itemView) { + itemView: View, + private val navigationDrawer: Boolean, + private val locale: Locale, + private val context: Context, + private val inventory: Inventory, + private val colorProvider: ColorProvider, + private val onClick: ((FilterListItem?) -> Unit)? +) : RecyclerView.ViewHolder(itemView) { private val row: View private val text: CheckedTextView @@ -63,7 +64,7 @@ class FilterViewHolder internal constructor( text.isChecked = selected } val icon = getIcon(filter) - this.icon.setImageDrawable(DrawableUtil.getWrapped(activity, icon)) + this.icon.setImageDrawable(DrawableUtil.getWrapped(context, icon)) this.icon.drawable.setTint(getColor(filter)) text.text = filter.listingTitle if (count == null || count == 0) { @@ -94,7 +95,7 @@ class FilterViewHolder internal constructor( return color.primaryColor } } - return activity.getColor(R.color.text_primary) + return context.getColor(R.color.text_primary) } private fun getIcon(filter: FilterListItem): Int { diff --git a/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.kt b/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.kt index d3e530886..ef4c1ff19 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/NavigationDrawerAdapter.kt @@ -9,7 +9,6 @@ import android.app.Activity import android.os.Bundle import android.view.LayoutInflater import android.view.ViewGroup -import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.todoroo.astrid.api.Filter @@ -18,14 +17,10 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.asCoroutineDispatcher import kotlinx.coroutines.channels.Channel -import org.tasks.LocalBroadcastManager import org.tasks.activities.DragAndDropDiffer import org.tasks.billing.Inventory -import org.tasks.data.CaldavDao -import org.tasks.data.GoogleTaskDao import org.tasks.filters.NavigationDrawerSubheader import org.tasks.locale.Locale -import org.tasks.preferences.Preferences import org.tasks.themes.ColorProvider import java.util.* import java.util.concurrent.Executors @@ -33,15 +28,13 @@ import javax.inject.Inject import kotlin.math.max class NavigationDrawerAdapter @Inject constructor( - private val activity: Activity, - private val locale: Locale, - private val inventory: Inventory, - private val colorProvider: ColorProvider, - private val preferences: Preferences, - private val googleTaskDao: GoogleTaskDao, - private val caldavDao: CaldavDao, - private val localBroadcastManager: LocalBroadcastManager) - : RecyclerView.Adapter(), DragAndDropDiffer> { + private val activity: Activity, + private val locale: Locale, + private val inventory: Inventory, + private val colorProvider: ColorProvider, + private val subheaderClickHandler: SubheaderClickHandler, +) : RecyclerView.Adapter(), + DragAndDropDiffer> { private lateinit var onClick: (FilterListItem?) -> Unit private var selected: Filter? = null @@ -83,19 +76,14 @@ class NavigationDrawerAdapter @Inject constructor( return when (type) { FilterListItem.Type.ITEM -> FilterViewHolder( view, true, locale, activity, inventory, colorProvider) { onClickFilter(it) } - FilterListItem.Type.SUBHEADER -> SubheaderViewHolder( - view, - activity as AppCompatActivity, - preferences, - googleTaskDao, - caldavDao, - localBroadcastManager) + FilterListItem.Type.SUBHEADER -> SubheaderViewHolder(view, subheaderClickHandler) FilterListItem.Type.ACTION -> ActionViewHolder(activity, view) { onClickFilter(it) } else -> SeparatorViewHolder(view) } } - private fun onClickFilter(filter: FilterListItem?) = onClick(if (filter == selected) null else filter) + private fun onClickFilter(filter: FilterListItem?) = + onClick(if (filter == selected) null else filter) override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val item = getItem(position) diff --git a/app/src/main/java/com/todoroo/astrid/adapter/SubheaderClickHandler.kt b/app/src/main/java/com/todoroo/astrid/adapter/SubheaderClickHandler.kt new file mode 100644 index 000000000..f2dd014e9 --- /dev/null +++ b/app/src/main/java/com/todoroo/astrid/adapter/SubheaderClickHandler.kt @@ -0,0 +1,55 @@ +package com.todoroo.astrid.adapter + +import android.app.Activity +import android.content.Intent +import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.lifecycleScope +import kotlinx.coroutines.launch +import org.tasks.LocalBroadcastManager +import org.tasks.data.CaldavDao +import org.tasks.data.GoogleTaskDao +import org.tasks.dialogs.NewFilterDialog +import org.tasks.filters.NavigationDrawerSubheader +import org.tasks.filters.NavigationDrawerSubheader.SubheaderType.* +import org.tasks.preferences.MainPreferences +import org.tasks.preferences.Preferences +import org.tasks.ui.NavigationDrawerFragment +import javax.inject.Inject + +class SubheaderClickHandler @Inject constructor( + private val activity: Activity, + private val preferences: Preferences, + private val googleTaskDao: GoogleTaskDao, + private val caldavDao: CaldavDao, + private val localBroadcastManager: LocalBroadcastManager, +): SubheaderViewHolder.ClickHandler { + override fun onClick(subheader: NavigationDrawerSubheader) { + (activity as AppCompatActivity).lifecycleScope.launch { + val collapsed = !subheader.isCollapsed + when (subheader.subheaderType) { + PREFERENCE -> preferences.setBoolean(subheader.id.toInt(), collapsed) + GOOGLE_TASKS -> googleTaskDao.setCollapsed(subheader.id, collapsed) + CALDAV, TASKS, ETESYNC -> caldavDao.setCollapsed(subheader.id, collapsed) + } + localBroadcastManager.broadcastRefreshList() + } + } + + override fun onAdd(subheader: NavigationDrawerSubheader) { + when (subheader.addIntentRc) { + NavigationDrawerFragment.REQUEST_NEW_FILTER -> + NewFilterDialog.newFilterDialog().show( + (activity as AppCompatActivity).supportFragmentManager, + FRAG_TAG_NEW_FILTER + ) + else -> activity.startActivityForResult(subheader.addIntent, subheader.addIntentRc) + } + } + + override fun showError() = + activity.startActivity(Intent(activity, MainPreferences::class.java)) + + companion object { + private const val FRAG_TAG_NEW_FILTER = "frag_tag_new_filter" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/todoroo/astrid/adapter/SubheaderViewHolder.kt b/app/src/main/java/com/todoroo/astrid/adapter/SubheaderViewHolder.kt index 16902fe8c..28bcbc7bb 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/SubheaderViewHolder.kt +++ b/app/src/main/java/com/todoroo/astrid/adapter/SubheaderViewHolder.kt @@ -1,77 +1,68 @@ package com.todoroo.astrid.adapter -import android.content.Intent import android.view.View import android.widget.ImageView import android.widget.TextView -import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat -import androidx.lifecycle.lifecycleScope +import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView -import kotlinx.coroutines.launch -import org.tasks.LocalBroadcastManager import org.tasks.R -import org.tasks.data.CaldavDao -import org.tasks.data.GoogleTaskDao import org.tasks.databinding.FilterAdapterSubheaderBinding import org.tasks.filters.NavigationDrawerSubheader -import org.tasks.filters.NavigationDrawerSubheader.SubheaderType -import org.tasks.preferences.MainPreferences -import org.tasks.preferences.Preferences -import org.tasks.themes.DrawableUtil +import org.tasks.filters.NavigationDrawerSubheader.SubheaderType.ETESYNC internal class SubheaderViewHolder( - itemView: View, - private val activity: AppCompatActivity, - private val preferences: Preferences, - private val googleTaskDao: GoogleTaskDao, - private val caldavDao: CaldavDao, - private val localBroadcastManager: LocalBroadcastManager) - : RecyclerView.ViewHolder(itemView) { + itemView: View, + private val clickHandler: ClickHandler, +): RecyclerView.ViewHolder(itemView) { + + interface ClickHandler { + fun onClick(subheader: NavigationDrawerSubheader) + fun onAdd(subheader: NavigationDrawerSubheader) + fun showError() + } private val text: TextView + private val chevron: ImageView + private val add: ImageView private val errorIcon: ImageView + private var rotation = 0f private lateinit var subheader: NavigationDrawerSubheader - private fun onClick() { - activity.lifecycleScope.launch { - val collapsed = !subheader.isCollapsed - when (subheader.subheaderType) { - SubheaderType.PREFERENCE -> preferences.setBoolean(subheader.id.toInt(), collapsed) - SubheaderType.GOOGLE_TASKS -> googleTaskDao.setCollapsed(subheader.id, collapsed) - SubheaderType.CALDAV, SubheaderType.TASKS, SubheaderType.ETESYNC -> - caldavDao.setCollapsed(subheader.id, collapsed) - } - localBroadcastManager.broadcastRefreshList() - } - } - fun bind(subheader: NavigationDrawerSubheader) { + add.isVisible = subheader.addIntent != null this.subheader = subheader text.text = subheader.listingTitle when { - subheader.error || subheader.subheaderType == SubheaderType.ETESYNC -> + subheader.error || subheader.subheaderType == ETESYNC -> with(errorIcon) { - setColorFilter(ContextCompat.getColor(activity, R.color.overdue)) + setColorFilter(ContextCompat.getColor(itemView.context, R.color.overdue)) visibility = View.VISIBLE } else -> errorIcon.visibility = View.GONE } - DrawableUtil.setRightDrawable( - itemView.context, - text, - if (subheader.isCollapsed) R.drawable.ic_keyboard_arrow_down_black_18dp else R.drawable.ic_keyboard_arrow_up_black_18dp) + rotation = if (subheader.isCollapsed) 180f else 0f + chevron.rotation = rotation + } + + private fun rotate() { + rotation = if (rotation == 0f) 180f else 0f + chevron.animate().rotation(rotation).setDuration(250).start() } init { FilterAdapterSubheaderBinding.bind(itemView).let { text = it.text errorIcon = it.iconError - it.subheaderRow.setOnClickListener { onClick() } - } - errorIcon.setOnClickListener { - activity.startActivity(Intent(activity, MainPreferences::class.java)) + chevron = it.chevron + add = it.addItem + it.subheaderRow.setOnClickListener { + rotate() + clickHandler.onClick(subheader) + } } + errorIcon.setOnClickListener { clickHandler.showError() } + add.setOnClickListener { clickHandler.onAdd(subheader) } } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/activities/NavigationDrawerCustomization.kt b/app/src/main/java/org/tasks/activities/NavigationDrawerCustomization.kt index 172f55811..3284f9a43 100644 --- a/app/src/main/java/org/tasks/activities/NavigationDrawerCustomization.kt +++ b/app/src/main/java/org/tasks/activities/NavigationDrawerCustomization.kt @@ -24,13 +24,10 @@ import org.tasks.R import org.tasks.caldav.BaseCaldavCalendarSettingsActivity import org.tasks.data.* import org.tasks.databinding.ActivityTagOrganizerBinding -import org.tasks.dialogs.NewFilterDialog.Companion.newFilterDialog import org.tasks.filters.FilterProvider -import org.tasks.filters.NavigationDrawerAction import org.tasks.filters.PlaceFilter import org.tasks.injection.ThemedInjectingAppCompatActivity import org.tasks.preferences.Preferences -import org.tasks.ui.NavigationDrawerFragment.Companion.REQUEST_NEW_FILTER import javax.inject.Inject @AndroidEntryPoint @@ -96,39 +93,31 @@ class NavigationDrawerCustomization : ThemedInjectingAppCompatActivity(), Toolba } private fun onClick(item: FilterListItem?) { - if (item is NavigationDrawerAction) { - when (item.requestCode) { - REQUEST_NEW_FILTER -> - newFilterDialog().show(supportFragmentManager, FRAG_TAG_NEW_FILTER) - else -> startActivity(item.intent) - } - } else { - when (item) { - is GtasksFilter -> - Intent(this, GoogleTaskListSettingsActivity::class.java) - .putExtra(GoogleTaskListSettingsActivity.EXTRA_STORE_DATA, item.list) - .apply(this::startActivity) - is CaldavFilter -> - lifecycleScope.launch { - caldavDao.getAccountByUuid(item.account)?.let { - Intent(this@NavigationDrawerCustomization, it.listSettingsClass()) - .putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_CALENDAR, item.calendar) - .apply { startActivity(this) } - } + when (item) { + is GtasksFilter -> + Intent(this, GoogleTaskListSettingsActivity::class.java) + .putExtra(GoogleTaskListSettingsActivity.EXTRA_STORE_DATA, item.list) + .apply(this::startActivity) + is CaldavFilter -> + lifecycleScope.launch { + caldavDao.getAccountByUuid(item.account)?.let { + Intent(this@NavigationDrawerCustomization, it.listSettingsClass()) + .putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_CALENDAR, item.calendar) + .apply { startActivity(this) } } - is CustomFilter -> - Intent(this, FilterSettingsActivity::class.java) - .putExtra(FilterSettingsActivity.TOKEN_FILTER, item) - .apply(this::startActivity) - is TagFilter -> - Intent(this, TagSettingsActivity::class.java) - .putExtra(TagSettingsActivity.EXTRA_TAG_DATA, item.tagData) - .apply(this::startActivity) - is PlaceFilter -> - Intent(this, PlaceSettingsActivity::class.java) - .putExtra(PlaceSettingsActivity.EXTRA_PLACE, item.place as Parcelable) - .apply(this::startActivity) - } + } + is CustomFilter -> + Intent(this, FilterSettingsActivity::class.java) + .putExtra(FilterSettingsActivity.TOKEN_FILTER, item) + .apply(this::startActivity) + is TagFilter -> + Intent(this, TagSettingsActivity::class.java) + .putExtra(TagSettingsActivity.EXTRA_TAG_DATA, item.tagData) + .apply(this::startActivity) + is PlaceFilter -> + Intent(this, PlaceSettingsActivity::class.java) + .putExtra(PlaceSettingsActivity.EXTRA_PLACE, item.place as Parcelable) + .apply(this::startActivity) } } @@ -251,6 +240,5 @@ class NavigationDrawerCustomization : ThemedInjectingAppCompatActivity(), Toolba companion object { private val NO_MOVEMENT = makeMovementFlags(0, 0) private val ALLOW_DRAGGING = makeMovementFlags(UP or DOWN, 0) - private const val FRAG_TAG_NEW_FILTER = "frag_tag_new_filter" } } diff --git a/app/src/main/java/org/tasks/filters/FilterProvider.kt b/app/src/main/java/org/tasks/filters/FilterProvider.kt index 2e6c8c21c..aef538824 100644 --- a/app/src/main/java/org/tasks/filters/FilterProvider.kt +++ b/app/src/main/java/org/tasks/filters/FilterProvider.kt @@ -64,7 +64,10 @@ class FilterProvider @Inject constructor( false, collapsed, SubheaderType.PREFERENCE, - R.string.p_collapse_debug.toLong())) + R.string.p_collapse_debug.toLong(), + 0, + null, + )) .apply { if (collapsed) return this } .plus(listOf( BuiltInFilterExposer.getNoListFilter(), @@ -91,18 +94,14 @@ class FilterProvider @Inject constructor( false, collapsed, SubheaderType.PREFERENCE, - R.string.p_collapse_filters.toLong())) + R.string.p_collapse_filters.toLong(), + NavigationDrawerFragment.REQUEST_NEW_FILTER, + if (showCreate) Intent() else null)) .apply { if (collapsed) return this } .plusAllIf(showBuiltIn) { builtInFilterExposer.filters() } .plus(filterDao.getFilters().map(::CustomFilter).sort()) - .plusIf(showCreate) { - NavigationDrawerAction( - context.getString(R.string.add_filter), - R.drawable.ic_outline_add_24px, - NavigationDrawerFragment.REQUEST_NEW_FILTER) - } } private suspend fun addTags(showCreate: Boolean): List = @@ -116,7 +115,13 @@ class FilterProvider @Inject constructor( false, collapsed, SubheaderType.PREFERENCE, - R.string.p_collapse_tags.toLong())) + R.string.p_collapse_tags.toLong(), + NavigationDrawerFragment.REQUEST_NEW_LIST, + if (showCreate) { + Intent(context, TagSettingsActivity::class.java) + } else { + null + })) .apply { if (collapsed) return this } .plus(tagDataDao.getTagFilters() .filterIf(preferences.getBoolean(R.string.p_tags_hide_unused, false)) { @@ -124,13 +129,6 @@ class FilterProvider @Inject constructor( } .map(TagFilters::toTagFilter) .sort()) - .plusIf(showCreate) { - NavigationDrawerAction( - context.getString(R.string.new_tag), - R.drawable.ic_outline_add_24px, - Intent(context, TagSettingsActivity::class.java), - NavigationDrawerFragment.REQUEST_NEW_LIST) - } } private suspend fun addPlaces(showCreate: Boolean): List = @@ -144,7 +142,13 @@ class FilterProvider @Inject constructor( false, collapsed, SubheaderType.PREFERENCE, - R.string.p_collapse_locations.toLong())) + R.string.p_collapse_locations.toLong(), + NavigationDrawerFragment.REQUEST_NEW_PLACE, + if (showCreate) { + Intent(context, LocationPickerActivity::class.java) + } else { + null + })) .apply { if (collapsed) return this } .plus(locationDao.getPlaceFilters() .filterIf(preferences.getBoolean(R.string.p_places_hide_unused, false)) { @@ -152,13 +156,6 @@ class FilterProvider @Inject constructor( } .map(LocationFilters::toLocationFilter) .sort()) - .plusIf(showCreate) { - NavigationDrawerAction( - context.getString(R.string.add_place), - R.drawable.ic_outline_add_24px, - Intent(context, LocationPickerActivity::class.java), - NavigationDrawerFragment.REQUEST_NEW_PLACE) - } } private suspend fun getAllFilters(showCreate: Boolean = true, showBuiltIn: Boolean = true): List = @@ -216,20 +213,19 @@ class FilterProvider @Inject constructor( account.error?.isNotBlank() ?: false, account.isCollapsed, SubheaderType.GOOGLE_TASKS, - account.id)) + account.id, + NavigationDrawerFragment.REQUEST_NEW_LIST, + if (showCreate) { + Intent(context, GoogleTaskListSettingsActivity::class.java) + .putExtra(GoogleTaskListSettingsActivity.EXTRA_ACCOUNT, account) + } else { + null + })) .apply { if (account.isCollapsed) return this } .plus(googleTaskListDao .getGoogleTaskFilters(account.account!!) .map(GoogleTaskFilters::toGtasksFilter) .sort()) - .plusIf(showCreate) { - NavigationDrawerAction( - context.getString(R.string.new_list), - R.drawable.ic_outline_add_24px, - Intent(context, GoogleTaskListSettingsActivity::class.java) - .putExtra(GoogleTaskListSettingsActivity.EXTRA_ACCOUNT, account), - NavigationDrawerFragment.REQUEST_NEW_LIST) - } private suspend fun caldavFilters(showCreate: Boolean = true): List = caldavDao.getAccounts() @@ -252,20 +248,23 @@ class FilterProvider @Inject constructor( account.isEteSyncAccount -> SubheaderType.ETESYNC else -> SubheaderType.CALDAV }, - account.id)) + account.id, + NavigationDrawerFragment.REQUEST_NEW_LIST, + if (showCreate) { + Intent(context, account.listSettingsClass()) + .putExtra( + BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_ACCOUNT, + account + ) + } else { + null + } + )) .apply { if (account.isCollapsed) return this } .plus(caldavDao .getCaldavFilters(account.uuid!!) .map(CaldavFilters::toCaldavFilter) .sort()) - .plusIf(showCreate) { - NavigationDrawerAction( - context.getString(R.string.new_list), - R.drawable.ic_outline_add_24px, - Intent(context, account.listSettingsClass()) - .putExtra(BaseCaldavCalendarSettingsActivity.EXTRA_CALDAV_ACCOUNT, account), - NavigationDrawerFragment.REQUEST_NEW_LIST) - } companion object { private val COMPARATOR = Comparator { f1, f2 -> diff --git a/app/src/main/java/org/tasks/filters/NavigationDrawerSubheader.java b/app/src/main/java/org/tasks/filters/NavigationDrawerSubheader.java index 88d3a79a0..d4a3c05b1 100644 --- a/app/src/main/java/org/tasks/filters/NavigationDrawerSubheader.java +++ b/app/src/main/java/org/tasks/filters/NavigationDrawerSubheader.java @@ -1,8 +1,10 @@ package org.tasks.filters; +import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.os.ParcelCompat; import com.todoroo.astrid.api.FilterListItem; @@ -29,15 +31,27 @@ public class NavigationDrawerSubheader extends FilterListItem { private boolean collapsed; private SubheaderType subheaderType; private long id; + @Nullable + private Intent addIntent; + private int addIntentRc; private NavigationDrawerSubheader() {} public NavigationDrawerSubheader( - String listingTitle, boolean error, boolean collapsed, SubheaderType subheaderType, long id) { + String listingTitle, + boolean error, + boolean collapsed, + SubheaderType subheaderType, + long id, + int addIntentRc, + @Nullable Intent addIntent + ) { this.error = error; this.collapsed = collapsed; this.subheaderType = subheaderType; this.id = id; + this.addIntent = addIntent; + this.addIntentRc = addIntentRc; this.listingTitle = listingTitle; } @@ -49,6 +63,15 @@ public class NavigationDrawerSubheader extends FilterListItem { return collapsed; } + @Nullable + public Intent getAddIntent() { + return addIntent; + } + + public int getAddIntentRc() { + return addIntentRc; + } + public SubheaderType getSubheaderType() { return subheaderType; } @@ -60,13 +83,15 @@ public class NavigationDrawerSubheader extends FilterListItem { collapsed = ParcelCompat.readBoolean(source); subheaderType = (SubheaderType) source.readSerializable(); id = source.readLong(); + addIntent = source.readParcelable(getClass().getClassLoader()); + addIntentRc = source.readInt(); } @Override public boolean areItemsTheSame(@NonNull FilterListItem other) { return other instanceof NavigationDrawerSubheader && subheaderType == ((NavigationDrawerSubheader) other).getSubheaderType() - && id == ((NavigationDrawerSubheader) other).getId(); + && id == other.getId(); } @Override @@ -113,6 +138,8 @@ public class NavigationDrawerSubheader extends FilterListItem { ParcelCompat.writeBoolean(dest, collapsed); dest.writeSerializable(subheaderType); dest.writeLong(id); + dest.writeParcelable(addIntent, 0); + dest.writeInt(addIntentRc); } @Override diff --git a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.kt b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.kt index fa9cba98d..d4dca0290 100644 --- a/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.kt +++ b/app/src/main/java/org/tasks/ui/NavigationDrawerFragment.kt @@ -27,7 +27,6 @@ import org.tasks.LocalBroadcastManager import org.tasks.R import org.tasks.billing.PurchaseActivity import org.tasks.data.TaskDao -import org.tasks.dialogs.NewFilterDialog import org.tasks.extensions.Context.openUri import org.tasks.filters.FilterProvider import org.tasks.filters.NavigationDrawerAction @@ -96,8 +95,6 @@ class NavigationDrawerFragment : BottomSheetDialogFragment() { REQUEST_PURCHASE -> startActivity(Intent(context, PurchaseActivity::class.java)) REQUEST_DONATE -> context?.openUri(R.string.url_donate) - REQUEST_NEW_FILTER -> NewFilterDialog.newFilterDialog() - .show(parentFragmentManager, FRAG_TAG_NEW_FILTER) else -> activity?.startActivityForResult(item.intent, item.requestCode) } } @@ -154,7 +151,6 @@ class NavigationDrawerFragment : BottomSheetDialogFragment() { const val REQUEST_DONATE = 10103 const val REQUEST_NEW_PLACE = 10104 const val REQUEST_NEW_FILTER = 101015 - private const val FRAG_TAG_NEW_FILTER = "frag_tag_new_filter" private const val EXTRA_SELECTED = "extra_selected" fun newNavigationDrawer(selected: Filter?): NavigationDrawerFragment { diff --git a/app/src/main/res/layout/filter_adapter_subheader.xml b/app/src/main/res/layout/filter_adapter_subheader.xml index 45f726149..c14a22758 100644 --- a/app/src/main/res/layout/filter_adapter_subheader.xml +++ b/app/src/main/res/layout/filter_adapter_subheader.xml @@ -7,6 +7,8 @@ android:id="@+id/subheader_row" android:background="?attr/selectableItemBackground" android:focusable="true" + android:paddingStart="0dp" + android:paddingEnd="@dimen/half_keyline_first" android:layout_height="wrap_content"> + android:id="@+id/chevron" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="@dimen/half_keyline_first" + android:src="@drawable/ic_keyboard_arrow_down_black_24dp" + app:tint="@color/icon_tint_with_alpha" + android:layout_toStartOf="@id/add_item" + android:layout_alignWithParentIfMissing="true" + android:layout_alignBottom="@id/text" + android:layout_below="@id/divider" /> + + + + + android:id="@+id/text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ellipsize="end" + android:background="@null" + android:textColor="@color/text_secondary" + android:fontFamily="@string/font_fontFamily_medium" + android:layout_alignParentStart="true" + android:layout_below="@id/divider" + android:layout_toStartOf="@id/chevron" + android:gravity="start|center_vertical" + android:singleLine="true" + android:textAlignment="viewStart" + android:textSize="14sp" + android:padding="@dimen/keyline_first" + tools:ignore="UnusedAttribute" /> \ 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 f0a17abd8..954f74902 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -365,7 +365,6 @@ مشاركة اختر الوقت الأيقونة فقط - أضف مكانًا أخفِ الأماكن الغير مستخدمة عجلة الألوان استكشاف الأخطاء وإصلاحها diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 6bcdb2bb1..bca6a1051 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -461,7 +461,6 @@ Добавяне на филтър Добавяне на етикети Грешка: %s - Добавяне на място Настройки на местата Места Без начална дата diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 70d7f59fc..9f62a7d7e 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -491,7 +491,6 @@ Pouze ikona Pouze text Text a ikona - Přidat místo Skrýt nevyužitá místa Skrýt nevyužité štítky Postranní nabídka diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index b3b9651dc..fd04f045e 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -147,7 +147,6 @@ Kun ikon Kun tekst Tekst og ikon - Tilføj sted Skjul ubrugte steder Skjul ubrugte tags Navigationsmenu diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6b25e7c3d..ebb185dd6 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -496,7 +496,6 @@ Navigationsmenü Ungenutzte Schlagwörter ausblenden Ungenutzte Orte ausblenden - Ort hinzufügen Änderungen verwerfen Text und Symbol Nur Text diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2d8282bd2..90ffbec89 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -495,7 +495,6 @@ Cajón de navegación Ocultar etiquetas no utilizadas Ocultar lugares inusuales - Añadir lugar Descartar los cambios Texto e icono Sólo texto diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index de7c1ad9a..dca4904ea 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -495,7 +495,6 @@ Nabigazio tiradera Ezkutatu erabili gabeko etiketak Ezkutatu erabili gabeko tokiak - Gehitu tokia Baztertu aldaketak Testua eta ikonoa Testua soilik diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 931d13e24..ead9ce2ff 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -372,7 +372,6 @@ Luo tehtävä Ilmoituslista Apua - Lisää paikka Piilota käyttämättömät paikat Piilota käyttämättömät tunnistimet Uudelleenalustus diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index dfd5379db..672150209 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -490,7 +490,6 @@ Tiroir de navigation Masquer les étiquettes inutilisés Masquer les lieux inutilisés - Ajouter un lieu Annuler les modifications Texte et icône Texte seul diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 15829c9fc..f7d3fb76f 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -163,7 +163,6 @@ Odaberi platformu Nisi prijavljen/a Kontaktiraj programera - Dodaj mjesto Sakrij nekorištena mjesta Upravljaj ladicom Postavke mjesta diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3e579a596..c09c5da92 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -492,7 +492,6 @@ Hely beállítások Használaton kívüli címkék elrejtése Használaton kívüli helyek elrejtése - Hely hozzáadása Hamburger menü Módosítások elvetése Szöveg és ikon diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 4bfd8e890..00d8fee11 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -571,7 +571,6 @@ Tutup otomatis ketika mengambil dari tugas suntingan Tutup otomatis ketika mengambil dari daftar tugas Tutup otomatis tabel tanggal dan waktu - Tambah tempat Sembunyikan tempat yang tidak digunakan Pengaturan tempat Tempat diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 95444c4f9..e7adccad8 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -443,7 +443,6 @@ Solo icona Solo testo Testo e icona - Aggiungi luogo Nascondi luoghi non usati Nascondi etichette non usate Menù laterale diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index bad53ba2e..a8f20c6ba 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -587,7 +587,6 @@ מגירת ניווט הסתרת תגיות שאינן בשימוש הסתרת מיקומים שאינם בשימוש - הוספת מיקום לסגור את בוחר התאריך והשעה לאחר בחירת תאריך או שעה לסגור אוטומטית בעת בחירה מווידג׳ט עריכת משימה diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 75bd704d2..300c08b18 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -512,7 +512,6 @@ エラー:%s Tasks.org アカウント %sをクリップボードにコピーしました - 場所を追加 使われていない場所を隠す 場所の設定 場所 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index c44502dec..23022077a 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -536,7 +536,6 @@ 할일 수정 할일 목록 일시 선택상자 닫기 - 위치 추가하기 새 기능 알림 생성하기 제목 다음 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 30b790538..ca28b706e 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -700,7 +700,6 @@ Pridėti filtrą Pridėti etiketes Automatiškai uždaryti datos ir laiko parinkiklį - Pridėti vietą Slėpti nenaudojamas vietas Slėpti nenaudojamas etiketes Aš praleidau tūkstančius valandų dirbdamas su Tasks ir nemokamai skelbiu visą pirminį kodą internete. Kad galėčiau palaikyti savo darbą, kai kurioms funkcijoms reikalinga prenumerata diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 6d2227d89..3fd8085f5 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -495,7 +495,6 @@ Kun ikon Kun tekst Tekst og ikon - Legg til sted Ringetone, vibrering, og mer Skru av batterisparing Trykk her hvis du har problemer med merknader diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 51c9cdcd0..f03e7f891 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -490,7 +490,6 @@ Navigatie la Verberg ongebruikte labels Verberg ongebruikte plaatsen - Voeg plaats toe Negeer veranderingen Tekst en icon Alleen tekst diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 0f10afb7a..b3b79f529 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -507,7 +507,6 @@ Tylko ikona Tylko tekst Tekst i ikona - Dodaj miejsce Ukryj nieużywane miejsca Ukryj nieużywane tagi Panel nawigacji diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 88a63c126..c043c26f5 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -440,7 +440,6 @@ Ícone apenas Apenas texto Texto e ícone - Adicionar um lugar Esconder lugares não usados Esconder etiquetas não usadas Gaveta de navegação diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 11f3bd9e8..8adf267ba 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -498,7 +498,6 @@ Apenas texto Texto e ícone Descartar alterações - Adicionar local Ocultar locais não usados Ocultar etiquetas não usadas Gaveta de navegação diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index ba901c9e6..a9e1c0d4e 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -601,7 +601,6 @@ Doar pictograma Doar text Text și pictogramă - Adăugați locul Ascundeți locurile nefolosite Ascundeți etichetele nefolosite Sertar de navigare diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 556799b55..3da4b0171 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -512,7 +512,6 @@ Только иконка Только текст Текст и иконка - Добавить место Скрыть неиспользуемые места Скрыть неиспользуемые теги Панель навигации diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index 160711b29..e56a572ad 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -219,7 +219,6 @@ තේමාව පාදකයේ පාරාන්ධතාව පෙළ සහ නිරූපකය - ස්ථානය එක් කරන්න භාවිතයට නොගත් ස්ථාන සඟවන්න භාවිතයට නොගත් ටැග් සඟවන්න ස්ථාන diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 04eda6f28..b155a7b2f 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -458,7 +458,6 @@ Ikon endast Text endast Text och ikon - Lägg till plats Plats inställningar Platser Fylld diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index 42f29f6f1..10bdb7b13 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -205,7 +205,6 @@ ஐகான் மட்டுமே உரை மட்டும் உரை மற்றும் ஐகான் - இடத்தைச் சேர்க்கவும் பயன்படுத்தப்படாத இடங்களை மறைக்கவும் பயன்படுத்தப்படாத குறிச்சொற்களை மறைக்கவும் அமைப்புகளை வைக்கவும் diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 4aa4323c0..42fcbe8dc 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -599,7 +599,6 @@ ไอคอนเท่านั้น เฉพาะข้อความ ข้อความและไอคอน - เพิ่มสถานที่ ซ่อนสถานที่ที่ไม่ได้ใช้ ซ่อนแท็กที่ไม่ได้ใช้ ลิ้นชักนําทาง diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8cc83b24a..3f4501458 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -495,7 +495,6 @@ Gezinim çekmecesi Kullanılmayan etiketleri gizle Kullanılmayan yerleri gizle - Yer ekle Tarih veya zaman seçince tarih zaman seçiciyi kapat Tarih zaman seçiciyi kendiliğinden kapat Zaman seç diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7bbe37311..64e76345c 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -505,7 +505,6 @@ Лише піктограми Лише текст Текст та піктограма - Додати місце Сховати місця, що не використовуються Сховати не використовувані мітки Панель навігації diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index d3c1b740c..4b14c46af 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -210,7 +210,6 @@ Chỉ biểu tượng Chỉ văn bản Văn bản và biểu tượng - Thêm địa điểm Ẩn các địa điểm chưa sử dụng Ẩn các thẻ chưa sử dụng Ngăn điều hướng diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index eafb8225c..bf540bb2b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -485,7 +485,6 @@ 抽屉式导航栏 隐藏不用的标签 隐藏不用的地点 - 添加地点 在选择一个日期或时间后关闭日期时间选择器 自动关闭日期时间选择器 挑选时间 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 499a6318b..72af234a6 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -385,7 +385,6 @@ 文字與圖示 僅圖示 僅文字 - 新增地點 隱藏未使用地點 隱藏未使用標籤 暗色主題中顏色將不飽和 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d7dc76b29..9361092be 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -566,7 +566,6 @@ File %1$s contained %2$s.\n\n Navigation drawer Hide unused tags Hide unused places - Add place Text and icon Text only Icon only