Merge branch 'main' into main

pull/3687/head
Alex Baker 5 months ago committed by GitHub
commit e439c4cb31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -10,26 +10,26 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.2)
aws-partitions (1.1107.0)
aws-sdk-core (3.224.0)
aws-eventstream (1.4.0)
aws-partitions (1.1122.0)
aws-sdk-core (3.226.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-kms (1.101.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-kms (1.106.0)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.186.1)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-s3 (1.191.0)
aws-sdk-core (~> 3, >= 3.225.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.11.0)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
base64 (0.3.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
@ -58,10 +58,10 @@ GEM
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.1.0)
faraday-multipart (1.1.1)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
@ -71,7 +71,7 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.4.0)
fastlane (2.227.2)
fastlane (2.228.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@ -159,7 +159,7 @@ GEM
mutex_m
jmespath (1.6.2)
json (2.12.2)
jwt (2.10.1)
jwt (2.10.2)
base64
logger (1.7.0)
mini_magick (4.13.2)
@ -168,13 +168,13 @@ GEM
multipart-post (2.4.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
naturally (2.2.1)
naturally (2.3.0)
nkf (0.2.0)
optparse (0.6.0)
os (1.1.4)
plist (3.7.2)
public_suffix (6.0.2)
rake (13.2.1)
rake (13.3.0)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)

2
app/proguard.pro vendored

@ -26,6 +26,8 @@
-dontwarn net.fortuna.ical4j.model.**
-dontwarn org.codehaus.groovy.**
-dontwarn org.apache.log4j.** # ignore warnings from log4j dependency
-dontwarn com.github.erosb.jsonsKema.** # ical4android
-dontwarn org.jparsec.** # ical4android
-keep class net.fortuna.ical4j.** { *; } # keep all model classes (properties/factories, created at runtime)
-keep class at.bitfire.** { *; } # all DAVdroid code is required

@ -75,6 +75,10 @@ object AndroidUtilities {
return Build.VERSION.SDK_INT >= VERSION_CODES.TIRAMISU
}
fun atLeastAndroid16(): Boolean {
return Build.VERSION.SDK_INT >= VERSION_CODES.BAKLAVA
}
fun assertMainThread() {
check(!(BuildConfig.DEBUG && !isMainThread)) { "Should be called from main thread" }
}

@ -5,9 +5,11 @@ import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Build
import android.provider.Settings
import android.speech.RecognizerIntent
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.BuildConfig
import timber.log.Timber
import java.util.Locale
import javax.inject.Inject
@ -27,6 +29,15 @@ class Device @Inject constructor(
return (activities.size != 0)
}
private fun isDontKeepActivitiesEnabled(): Boolean {
return try {
Settings.Global.getInt(context.contentResolver, Settings.Global.ALWAYS_FINISH_ACTIVITIES) == 1
} catch (e: Exception) {
Timber.e(e)
false
}
}
val debugInfo: String
get() = """
----------
@ -43,5 +54,7 @@ class Device @Inject constructor(
foreground location: ${permissionChecker.canAccessForegroundLocation()}
calendar: ${permissionChecker.canAccessCalendars()}
----------
dont keep activities: ${isDontKeepActivitiesEnabled()}
----------
""".trimIndent()
}

@ -8,6 +8,7 @@ import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.tasks.R
import org.tasks.injection.ApplicationScope
import timber.log.Timber
@ -25,18 +26,21 @@ class AppWidgetManager @Inject constructor(
?: intArrayOf()
fun reconfigureWidgets(vararg appWidgetIds: Int) = scope.launch(Dispatchers.IO) {
Timber.d("reconfigureWidgets(${appWidgetIds.joinToString()})")
val intent = Intent(context, TasksWidget::class.java)
intent.action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
intent.putExtra(
AppWidgetManager.EXTRA_APPWIDGET_IDS,
appWidgetIds.takeIf { it.isNotEmpty() } ?: widgetIds)
context.sendBroadcast(intent)
updateWidgets()
}
fun updateWidgets() = scope.launch(Dispatchers.IO) {
Timber.d("Updating widgets")
appWidgetManager?.notifyAppWidgetViewDataChanged(widgetIds, R.id.list_view)
val appWidgetIds = widgetIds
Timber.d("updateWidgets: ${appWidgetIds.joinToString()}")
withContext(Dispatchers.Main) {
appWidgetManager?.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.list_view)
}
}
fun exists(id: Int) = appWidgetManager?.getAppWidgetInfo(id) != null

@ -24,7 +24,7 @@ class RequestPinWidgetReceiver : BroadcastReceiver() {
val widgetPreferences = WidgetPreferences(context, preferences, widgetId)
widgetPreferences.setFilter(filter)
widgetPreferences.setColor(color)
appWidgetManager.reconfigureWidgets()
appWidgetManager.reconfigureWidgets(widgetId)
}
companion object {

@ -5,6 +5,7 @@ import android.content.Intent
import android.view.View
import android.widget.RemoteViews
import android.widget.RemoteViewsService.RemoteViewsFactory
import com.todoroo.andlib.utility.AndroidUtilities.atLeastAndroid16
import com.todoroo.astrid.core.SortHelper
import com.todoroo.astrid.subtasks.SubtasksHelper
import kotlinx.coroutines.runBlocking
@ -50,6 +51,7 @@ internal class TasksWidgetViewFactory(
private val markdown: Markdown,
private val headerFormatter: HeaderFormatter,
) : RemoteViewsFactory {
private val taskLimit = if (atLeastAndroid16()) 25 + 1 else Int.MAX_VALUE
private val indentPadding = (20 * context.resources.displayMetrics.density).toInt()
private val settings = widgetPreferences.getWidgetListSettings()
private val hPad = context.resources.getDimension(R.dimen.widget_padding).toInt()
@ -87,10 +89,11 @@ internal class TasksWidgetViewFactory(
override fun onDestroy() {}
override fun getCount() = tasks.size
override fun getCount() = tasks.size.coerceAtMost(taskLimit)
override fun getViewAt(position: Int): RemoteViews? = tasks.let {
when {
position == taskLimit - 1 && it.size > taskLimit -> buildFooter()
it.isHeader(position) -> buildHeader(it.getSection(position))
position < it.size -> buildUpdate(it.getItem(position))
else -> null
@ -99,10 +102,11 @@ internal class TasksWidgetViewFactory(
override fun getLoadingView(): RemoteViews = newRemoteView()
override fun getViewTypeCount(): Int = 2
override fun getViewTypeCount(): Int = 3
override fun getItemId(position: Int) = tasks.let {
when {
position == taskLimit - 1 && it.size > taskLimit -> 0
it.isHeader(position) -> it.getSection(position).value
position < it.size -> it.getItem(position).id
else -> 0
@ -113,6 +117,16 @@ internal class TasksWidgetViewFactory(
private fun newRemoteView() = RemoteViews(BuildConfig.APPLICATION_ID, R.layout.widget_row)
private fun buildFooter(): RemoteViews {
return RemoteViews(BuildConfig.APPLICATION_ID, R.layout.widget_footer).apply {
setOnClickFillInIntent(
R.id.widget_view_more,
Intent(WidgetClickActivity.OPEN_TASK_LIST)
.putExtra(WidgetClickActivity.EXTRA_FILTER, filter)
)
}
}
private fun buildHeader(section: AdapterSection): RemoteViews {
val sortGroup = section.value
val header: String? = if (filter.supportsSorting()) {

@ -57,6 +57,16 @@ class WidgetClickActivity : AppCompatActivity(), OnDismissHandler {
)
finish()
}
OPEN_TASK_LIST -> {
val filter = intent.getParcelableExtra<Filter?>(EXTRA_FILTER)
Timber.tag("$action filter=$filter")
startActivity(
TaskIntents
.getTaskListIntent(this, filter)
.putExtra(FINISH_AFFINITY, true)
)
finish()
}
TOGGLE_SUBTASKS -> {
val task = task
val collapsed = intent.getBooleanExtra(EXTRA_COLLAPSED, false)
@ -110,6 +120,7 @@ class WidgetClickActivity : AppCompatActivity(), OnDismissHandler {
companion object {
const val COMPLETE_TASK = "COMPLETE_TASK"
const val EDIT_TASK = "EDIT_TASK"
const val OPEN_TASK_LIST = "OPEN_TASK_LIST"
const val TOGGLE_SUBTASKS = "TOGGLE_SUBTASKS"
const val RESCHEDULE_TASK = "RESCHEDULE_TASK"
const val TOGGLE_GROUP = "TOGGLE_GROUP"

@ -264,7 +264,7 @@ class WidgetPreferences(
setBoolean(R.string.p_widget_sort_ascending, ascending)
}
override var groupAscending: Boolean
get() = getBoolean(R.string.p_widget_group_ascending, false)
get() = getBoolean(R.string.p_widget_group_ascending, true)
set(ascending) {
setBoolean(R.string.p_widget_group_ascending, ascending)
}

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/widget_view_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/widget_view_more_tasks"
android:textSize="14sp"
android:padding="8dp" />
</RelativeLayout>

@ -564,7 +564,7 @@
<string name="tasks_org_description">Synchronisiere deine Aufgaben mit Tasks.org</string>
<string name="subscription">Abonnement</string>
<string name="filter_criteria_unstarted">Nicht gestartet</string>
<string name="show_unstarted">Noch nicht gestartete anzeigen</string>
<string name="show_unstarted">Nicht gestartete anzeigen</string>
<string name="widget_show_title">Titel anzeigen</string>
<string name="filter_any_start_date">Jedes Startdatum</string>
<string name="no_start_date">Kein Startdatum</string>

@ -736,4 +736,11 @@
<string name="add_shortcut_to_home_screen">Dodaj prečac na početni ekran</string>
<string name="add_widget_to_home_screen">Dodaj widget na početni ekran</string>
<string name="comment">Komentar</string>
<string name="app_settings">Postavke aplikacije</string>
<string name="continue_without_sync">Nastavi bez sinkronizacije</string>
<string name="help_me_choose">Pomogni mi odabrati</string>
<string name="delete_tasks_warning">%s će se izbrisati. Ovo se ne može opozvati!</string>
<string name="banner_app_updated_title">Aplikacija je aktualizirana</string>
<string name="banner_app_updated_description">Aplikacija Tasks je upravo aktualizirana na %s. Želiš li vidjeti bilješke o izdanju?</string>
<string name="multiline_title_off">Pritisni „Gotovo” za spremanje zadatka</string>
</resources>

@ -31,4 +31,716 @@
<string name="import_progress_read">Учитавам задатак %d…</string>
<string name="TLA_menu_settings">Подешавања</string>
<string name="email">Е-пошта</string>
</resources>
<string name="import_summary_message">Датотека %1$s садржи %2$s.\n\n %3$s увезених,\n %4$s већ постојећих\n %5$s са грешкама</string>
<string name="default_list">Подразумевана листа</string>
<string name="help_and_feedback">Помоћ и повратне информације</string>
<string name="discard_confirmation">Да ли желиш да одбациш промене?</string>
<string name="keep_editing">Настави уређивање</string>
<string name="DLG_delete_this_task_question">Обрисати задатак?</string>
<string name="DLG_hour_minutes">Време (сати : минути)</string>
<string name="DLG_undo">Поништи</string>
<string name="WID_dateButtonUnset">Кликни да поставиш</string>
<string name="TLA_no_items">Нема задатака.</string>
<string name="TLA_menu_sort">Сортирај</string>
<string name="tomorrow">Сутра</string>
<string name="TLA_menu_search">Претражи</string>
<string name="app_settings">Подешавања апликације</string>
<string name="TAd_actionEditTask">Преправи</string>
<string name="yesterday">Јуче</string>
<string name="customize_drawer_summary">Превуци и пусти за прерасподелу ставки менија</string>
<string name="today">Данас</string>
<string name="action_call">Позив</string>
<string name="action_open">Отвори</string>
<string name="SSD_sort_my_order">Мој редослед</string>
<string name="show_unstarted">Прикажи незапочете</string>
<string name="astrid_sort_order">Астрид ручно сортирање</string>
<string name="show_completed">Прикажи завршене</string>
<string name="astrid_sort_order_summary">Омогући Астрид ручни мод сортирања за ,,Моји задаци\'\', ,,Данас\'\' и тагове. Овај мод сортирања ће бити замењен ,,Мој редослед\'\' модом у будућем ажурирању</string>
<string name="SSD_sort_start">По датуму почетка</string>
<string name="sort_created">По времену креирања</string>
<string name="sort_list">По листи</string>
<string name="sort_completed">По времену завршетка</string>
<string name="FLA_search_filter">Поклапање \'%s\'</string>
<string name="FLA_new_filter">Креирај нови филтер</string>
<string name="TEA_add_subtask">Додај подзадатак</string>
<string name="TEA_note_label">Опис</string>
<string name="TEA_estimatedDuration_label">Колико ће трајати?</string>
<string name="TEA_elapsedDuration_label">Утрошено време</string>
<string name="save">Сачувај</string>
<string name="TEA_timer_est">Процена %s</string>
<string name="TEA_timer_elap">Протекло %s</string>
<string name="due_date">Датум доспећа</string>
<string name="due_time">Време доспећа</string>
<string name="start_date">Датум почетка</string>
<string name="day_before_due">Дан пре доспећа</string>
<string name="week_before_due">Седмица пре доспећа</string>
<string name="TEA_control_repeat">Понови</string>
<string name="TEA_control_gcal">Календар</string>
<string name="TEA_control_importance">Приоритет</string>
<string name="TEA_control_location">Локација</string>
<string name="TEA_control_notes">Опис</string>
<string name="TEA_control_files">Датотеке</string>
<string name="TEA_control_reminders">Подсетници</string>
<string name="TEA_control_timer">Подешавања тајмера</string>
<string name="TEA_control_hidden_section">----Увек сакриј----</string>
<string name="TEA_creation_date">Датум креирања</string>
<string name="none">Празно</string>
<string name="EPr_edit_screen_options">Измени подешавања екрана</string>
<string name="EPr_beastMode_reset">Ресетуј на подразумевано</string>
<string name="EPr_fullTask_title">Прикажи пуно име задатка</string>
<string name="task_list_options">Подешавања листе задатака</string>
<string name="EPr_cal_end_or_start_at_due_time">Време догађаја календара</string>
<string name="always_display_full_date">Прикажи пун датум</string>
<string name="EPr_reset_preferences">Подешавања ресета</string>
<string name="EPr_reset_preferences_warning">Подешавања ће бити ресетована на подразумевано</string>
<string name="EPr_delete_task_data">Обриши податке задатка</string>
<string name="EPr_delete_task_data_warning">Сви задаци ће бити обрисани</string>
<string name="EPr_default_importance_title">Подразумевани приоритет</string>
<string name="default_start_date">Подразумевани датум почетка</string>
<string name="default_due_date">Подразумевани датум доспећа</string>
<string name="EPr_default_reminders_title">Подразумевани подсетници</string>
<string name="EPr_default_reminders_mode_title">Подразумевани тип звона/вибрације</string>
<string name="default_location">Подразумевана локација</string>
<string name="day_after_tomorrow">Дан после сутра</string>
<string name="next_week">Следећа седмица</string>
<string name="no_reminders">Нема подсетника</string>
<string name="BFE_Active">Моји задаци</string>
<string name="BFE_Recent">Недавно модификовани</string>
<string name="CFC_dueBefore_name">Доспеће до…</string>
<string name="no_due_date">Без датума доспећа</string>
<string name="no_start_date">Без датума почетка</string>
<string name="filter_any_start_date">Било који датум почетка</string>
<string name="next_month">Следећи месец</string>
<string name="CFC_importance_name">Приоритет…</string>
<string name="CFC_tag_text">Таг: ?</string>
<string name="CFC_tag_name">Таг…</string>
<string name="CFC_title_contains_name">Наслов садржи…</string>
<string name="gcal_TEA_error">Грешка при додавању задатка!</string>
<string name="gtasks_GTA_clear_completed">Брисање завршено</string>
<string name="gtasks_GLA_authenticating">Аутентификација…</string>
<string name="gtasks_GLA_errorIOAuth">Грешка при комуникацији са Гугл серверима. Молимо покушај касније.</string>
<string name="gtasks_GPr_header">Гугл Задаци</string>
<string name="gtasks_error_accountNotFound">Налог %s није пронађен—одјави се и пријави се поново из подешавања Гугл Задатака.</string>
<string name="ring_once">Зазвони једном</string>
<string name="ring_five_times">Зазвони пет пута</string>
<string name="ring_nonstop">Звони непрестано</string>
<string name="rmd_NoA_done">Заврши</string>
<string name="rmd_NoA_snooze">Одложи</string>
<string name="snooze_all">Одложи све</string>
<string name="rmd_EPr_quiet_hours_start_title">Почетак режима без узнемиравања</string>
<string name="rmd_EPr_quiet_hours_end_title">Завршетак режима без узнемиравања</string>
<string name="rmd_EPr_rmd_time_desc">Обавештења за задатке без времена доспећа ће се појавити у %s</string>
<string name="persistent_notifications">Перзистентна обавештења</string>
<string name="persistent_notifications_description">Перзистентна обавештења се не могу брисати</string>
<string name="swipe_to_snooze_title">Превуци за одлагање</string>
<string name="swipe_to_snooze_description">Време одлагања</string>
<string name="swipe_to_snooze_time_immediately">одмах</string>
<string name="swipe_to_snooze_time_15_minutes">након 15 минута</string>
<string name="swipe_to_snooze_time_30_minutes">након 30 минута</string>
<string name="swipe_to_snooze_time_1_hour">након 1 часа</string>
<string name="swipe_to_snooze_time_24_hours">након 24 часа</string>
<string name="default_random_reminder_disabled">Онемогућено</string>
<string name="default_random_reminder_hourly">Часовно</string>
<string name="default_random_reminder_daily">Дневно</string>
<string name="default_random_reminder_weekly">Седмично</string>
<string name="repeat_option_does_not_repeat">Без понављања</string>
<string name="repeat_option_every_day">Сваки дан</string>
<string name="repeat_option_every_week">Сваке седмице</string>
<string name="repeat_option_every_month">Сваког месеца</string>
<string name="repeat_option_every_year">Сваке године</string>
<plurals name="repeat_occurrence">
<item quantity="one">понављање</item>
<item quantity="few">понављања</item>
<item quantity="other">понављања</item>
</plurals>
<plurals name="task_count">
<item quantity="one">%d задатак</item>
<item quantity="few">%d задатка</item>
<item quantity="other">%d задатака</item>
</plurals>
<plurals name="subtask_count">
<item quantity="one">%d подзадатак</item>
<item quantity="few">%d подзадатка</item>
<item quantity="other">%d подзадатака</item>
</plurals>
<plurals name="list_count">
<item quantity="one">%d листа</item>
<item quantity="few">%d листе</item>
<item quantity="other">%d листи</item>
</plurals>
<plurals name="repeat_times">
<item quantity="one">време</item>
<item quantity="few">времена</item>
<item quantity="other">времена</item>
</plurals>
<plurals name="repeat_minutes">
<item quantity="one">минут</item>
<item quantity="few">минута</item>
<item quantity="other">минута</item>
</plurals>
<plurals name="reminder_minutes">
<item quantity="one">Минут</item>
<item quantity="few">Минута</item>
<item quantity="other">Минута</item>
</plurals>
<plurals name="repeat_n_minutes">
<item quantity="one">%d минут</item>
<item quantity="few">%d минута</item>
<item quantity="other">%d минута</item>
</plurals>
<plurals name="repeat_hours">
<item quantity="one">час</item>
<item quantity="few">часа</item>
<item quantity="other">часова</item>
</plurals>
<plurals name="reminder_hours">
<item quantity="one">Час</item>
<item quantity="few">Часа</item>
<item quantity="other">Часова</item>
</plurals>
<plurals name="repeat_n_hours">
<item quantity="one">%d час</item>
<item quantity="few">%d часа</item>
<item quantity="other">%d часова</item>
</plurals>
<plurals name="repeat_days">
<item quantity="one">дан</item>
<item quantity="few">дана</item>
<item quantity="other">дана</item>
</plurals>
<plurals name="reminder_days">
<item quantity="one">Дан</item>
<item quantity="few">Дана</item>
<item quantity="other">Дана</item>
</plurals>
<plurals name="repeat_n_days">
<item quantity="one">%d дан</item>
<item quantity="few">%d дана</item>
<item quantity="other">%d дана</item>
</plurals>
<plurals name="repeat_weeks">
<item quantity="one">седмица</item>
<item quantity="few">седмице</item>
<item quantity="other">седмица</item>
</plurals>
<plurals name="reminder_week">
<item quantity="one">Седмица</item>
<item quantity="few">Седмице</item>
<item quantity="other">Седмица</item>
</plurals>
<plurals name="repeat_n_weeks">
<item quantity="one">%d седмица</item>
<item quantity="few">%d седмице</item>
<item quantity="other">%d седмица</item>
</plurals>
<plurals name="repeat_months">
<item quantity="one">месец</item>
<item quantity="few">месеца</item>
<item quantity="other">месеци</item>
</plurals>
<plurals name="repeat_n_months">
<item quantity="one">%d месец</item>
<item quantity="few">%d месеца</item>
<item quantity="other">%d месеци</item>
</plurals>
<plurals name="repeat_years">
<item quantity="one">година</item>
<item quantity="few">године</item>
<item quantity="other">година</item>
</plurals>
<plurals name="repeat_n_years">
<item quantity="one">%d година</item>
<item quantity="few">%d године</item>
<item quantity="other">%d година</item>
</plurals>
<string name="repeat_type_due">датум доспећа</string>
<string name="repeat_type_completion">датум завршетка</string>
<string name="repeat_type_completion_capitalized">Датум завршетка</string>
<string name="repeat_snackbar">%1$s одложен за %2$s</string>
<string name="new_tag">Креирај нови таг</string>
<string name="new_list">Креирај нову листу</string>
<string name="delete_tag_confirmation">Обриши %s?</string>
<string name="delete_comment">коментар</string>
<string name="comment">Коментар</string>
<string name="TEA_timer_controls">Тајмер</string>
<string name="EPr_voiceInputEnabled_title">Гласовни улаз</string>
<string name="EPr_voiceRemindersEnabled_title">Гласовни подсетници</string>
<string name="voice_command_added_task">Додат задатак</string>
<plurals name="Ntasks">
<item quantity="one">1 задатак</item>
<item quantity="few">%d задатка</item>
<item quantity="other">%d задатака</item>
</plurals>
<string name="now">Сада</string>
<string name="next_sunday">Следеће недеље</string>
<string name="next_monday">Следећег понедељка</string>
<string name="next_tuesday">Следећег уторка</string>
<string name="next_wednesday">Следеће среде</string>
<string name="next_thursday">Следећег четвртка</string>
<string name="next_friday">Следећег петка</string>
<string name="next_saturday">Следеће суботе</string>
<string name="widget_show_settings">Прикажи подешавања</string>
<string name="widget_show_title">Прикажи назив</string>
<string name="widget_show_menu">Прикажи мени</string>
<string name="notifications">Обавештења</string>
<string name="backup_directory">Директоријум резерви</string>
<string name="google_drive_backup">Гугл Драјв резерве</string>
<string name="miscellaneous">Разно</string>
<string name="subtasks">Подзадаци</string>
<string name="enabled">Омогућено</string>
<string name="font_size">Величина фонта</string>
<string name="header_spacing">Размак</string>
<string name="row_spacing">Размак између редова</string>
<string name="customize_edit_screen_summary">Премести или обриши поља</string>
<string name="source_code">Изворни кôд</string>
<string name="add_reminder">Додај подсетник</string>
<string name="add_location">Додај локацију</string>
<string name="remove">Избриши</string>
<string name="randomly_every">Насумично сваки %s</string>
<string name="randomly">Насумично</string>
<string name="pick_a_date_and_time">Одабери датум и време</string>
<string name="tags">Тагови</string>
<string name="change_priority">Промени приоритет</string>
<string name="filters">Филтери</string>
<string name="date_shortcut_morning">Јутро</string>
<string name="date_shortcut_afternoon">Подне</string>
<string name="date_shortcut_evening">Вече</string>
<string name="date_shortcut_night">Ноћ</string>
<string name="date_shortcut_tomorrow_morning">Сутра ујутру</string>
<string name="date_shortcut_tomorrow_afternoon">Сутра поподне</string>
<string name="date_shortcut_tomorrow_evening">Сутра увече</string>
<string name="discard_changes">Одбаци измене?</string>
<string name="menu_discard_changes">Одбаци измене</string>
<string name="discard">Обустави</string>
<string name="tag_settings">Подешавања тагова</string>
<string name="list_settings">Подешавања листе</string>
<string name="delete">Обриши</string>
<string name="copy">Копирај</string>
<string name="move">Премести</string>
<string name="add_attachment">Додај прилог</string>
<string name="take_a_picture">Направи фотографију</string>
<string name="pick_from_gallery">Одабери из галерије</string>
<string name="pick_from_storage">Одабери из меморије</string>
<string name="privacy_policy">Полиса приватности</string>
<string name="send_anonymous_statistics">Побољшај Задатке</string>
<string name="send_anonymous_statistics_summary">Пошаљи анонимне статистике коришћења и извештаје падова апликације ради побољшања. Лични подаци неће бити прикупљени.</string>
<string name="tag_already_exists">Таг већ постоји</string>
<string name="name_cannot_be_empty">Поље имена не може бити празно</string>
<string name="username_required">Корисничко име је неопходно</string>
<string name="password_required">Шифра је неопходна</string>
<string name="url_required">URL је неопходан</string>
<string name="url_invalid_scheme">Мора почети са http(s)://</string>
<string name="no_title">(Без назива)</string>
<string name="default_tags">Подразумевани тагови</string>
<string name="default_recurrence">Подразумевано враћање</string>
<string name="filter">Филтер</string>
<string name="opacity">Непрозирност</string>
<string name="opacity_header">Непрозирност заглавља</string>
<string name="opacity_row">Непрозирност редова</string>
<string name="opacity_footer">Непрозирност подножја</string>
<string name="theme">Тема</string>
<string name="color">Боја</string>
<string name="icon">Иконица</string>
<string name="theme_black">Црно</string>
<string name="theme_light">Светло</string>
<string name="theme_dark">Тамно</string>
<string name="theme_wallpaper">Позадина</string>
<string name="theme_day_night">Дан/Ноћ</string>
<string name="theme_system_default">Системски подразумевано</string>
<string name="theme_dynamic">Динамично</string>
<string name="language">Језик</string>
<string name="restart_required">Рестартуј Задатке како би се промене виделе</string>
<string name="restart_now">Рестартуј сада</string>
<string name="restart_later">Касније</string>
<string name="widget_settings">Подешавања виџета</string>
<string name="widget_header_settings">Подешавања заглавља</string>
<string name="widget_row_settings">Подешавања редова</string>
<string name="widget_open_list">Отвори листу</string>
<string name="widget_due_date_below_title">Испод назива</string>
<string name="widget_due_date_hidden">Скривено</string>
<string name="clear_completed_tasks_confirmation">Обрисати завршене задатке?</string>
<string name="copy_multiple_tasks_confirmation">%s копирано</string>
<string name="delete_multiple_tasks_confirmation">%s избрисано</string>
<string name="delete_selected_tasks">Избрисати одабране задатке?</string>
<string name="copy_selected_tasks">Копирати одабране задатке?</string>
<string name="date_and_time">Време и датум</string>
<string name="add_account">Додај налог</string>
<string name="continue_without_sync">Настави без синхронизације</string>
<string name="help_me_choose">Помоћ при одабиру</string>
<string name="user">Корисник</string>
<string name="password">Шифра</string>
<string name="url">URL</string>
<string name="error_adding_account">Грешка: %s</string>
<string name="notification_disable_battery_optimizations_description">Оптимизација батерије може одложити обавештења</string>
<string name="default_reminder">Подразумевани подсетник</string>
<string name="badges">Беџеви</string>
<string name="list">Листа</string>
<string name="repeats_from">Понавља се од</string>
<string name="repeats_single">Понављање %s</string>
<string name="repeats_minutely">по минуту</string>
<string name="repeats_hourly">по часу</string>
<string name="repeats_daily">дневно</string>
<string name="repeats_weekly">седмично</string>
<string name="repeats_monthly">месечно</string>
<string name="repeats_yearly">годишње</string>
<string name="repeats_every">Понавља се сваког</string>
<string name="repeats_weekly_on">Понавља се</string>
<string name="repeats_never">Никада</string>
<string name="repeats_on">На</string>
<string name="repeats_after">Након</string>
<string name="dont_add_to_calendar">Не додавати у календар</string>
<string name="default_calendar">Подразумевани календар</string>
<string name="rmd_time_description">Прикажи обавештења за задатке без времена доспећа</string>
<string name="bundle_notifications_summary">Споји неколико обавештења у једно</string>
<string name="repeat_monthly_on_day_number">Месечно на дан %1d</string>
<string name="repeat_monthly_on_the_nth_weekday">Месечно на %1$s %2$s</string>
<string name="repeat_monthly_first_week">први</string>
<string name="repeat_monthly_second_week">други</string>
<string name="repeat_monthly_third_week">трећи</string>
<string name="repeat_monthly_fourth_week">четврти</string>
<string name="repeat_monthly_fifth_week">пети</string>
<string name="repeat_monthly_last_week">последњи</string>
<string name="tasker_create_task">Креирај задатак</string>
<string name="help">Помоћ</string>
<string name="network_error">Повезивање безуспешно</string>
<string name="subscription">Претплате</string>
<string name="manage_subscription">Модификуј претплате</string>
<string name="button_subscribe">Претплати се</string>
<string name="button_unsubscribe">Откажи претплату</string>
<string name="about">О нама</string>
<string name="license_summary">,,Задаци\'\' је софтвер отвореног карактера, са лиценцом ,,GNU General Public License v3.0\'\'</string>
<string name="requires_pro_subscription">Захтева претплату</string>
<string name="this_feature_requires_a_subscription">Ова функционалност захтева претплату</string>
<string name="logout">Одјави се</string>
<string name="delete_tasks_warning">%s ће бити избрисан. Ово се не може опозвати!</string>
<string name="logout_warning">Сви подаци везани за овај налог ће бити обрисани са уређаја</string>
<string name="cannot_access_account">Не може се приступити налогу</string>
<string name="reinitialize_account">Поново иницијализуј</string>
<string name="action_create_new_task">Креирај нови задатак</string>
<string name="action_new_task">Нови задатак</string>
<string name="show_description">Прикажи опис</string>
<string name="show_full_description">Прикажи потпун опис</string>
<string name="linkify">Прикажи линкове</string>
<string name="linkify_description">Додај линкове до веб сајтова, адреса и бројева телефона</string>
<string name="visit_website">Посети веб сајт</string>
<string name="choose_a_location">Одабери локацију</string>
<string name="pick_this_location">Одабери ову локацију</string>
<string name="or_choose_a_location">Или бирај локацију</string>
<string name="background_location_permission_required">,,Задаци\'\' скупља податке о локацији како би локационо везани подсетници радили, чак и када је апликација угашена или се не користи.</string>
<string name="location_permission_required_location">Потребна је локациона дозвола за налажење тренутне локације</string>
<string name="open_map">Отвори мапу</string>
<string name="choose_new_location">Одабери нову локацију</string>
<string name="banner_app_updated_title">Апликација је ажурирана</string>
<string name="whats_new">Шта је ново</string>
<string name="version_string">Верзија %s</string>
<string name="invalid_backup_file">Невалидна датотека резерве</string>
<string name="google_tasks_add_to_top">Нови задаци на врх</string>
<string name="expand_subtasks">Прошири подзадатке</string>
<string name="enter_tag_name">Унеси назив тага</string>
<string name="choose_synchronization_service">Одабери платформу</string>
<string name="tasks_org_description">Синхронизуј задатке са Tasks.org</string>
<string name="google_tasks_selection_description">Основни сервис који се синхронизује са Гугл налогом</string>
<string name="etesync_selection_description">End-to-end енкриптована синхронизација</string>
<string name="decsync_selection_description">Синхронизација базирана на датотеци</string>
<string name="microsoft_selection_description">Синхронизуј са личним Мајкрософт налогом</string>
<string name="davx5_selection_description">Синхронизуј своје задатке са DAVx⁵ апликацијом</string>
<string name="show_advanced_settings">Прикажи напредна подешавања</string>
<string name="preferences_advanced">Напредно</string>
<string name="documentation">Документација</string>
<string name="wearable_notifications">Обавештења ,,Wearable\'\' уређаја</string>
<string name="wearable_notifications_summary">Прикажи обавештења на ,,Wearable\'\' уређају</string>
<string name="disable_battery_optimizations">Онемогући оптимизацију батерије</string>
<string name="more_settings">Додатна подешавања</string>
<string name="more_notification_settings_summary">Звук звона, вибрација и додатно</string>
<string name="invalid_username_or_password">Невалидно корисничко име или шифра</string>
<string name="upgrade_blurb_1">Здраво! Моје име је Алекс. Ја сам независни развојни инжењер у ,,Задаци\'\' апликацији</string>
<string name="upgrade_blurb_2">Провео сам хиљаде часова радећи на апликацији, коју објављујем онлајн бесплатно. Како бисте подржали мој рад, неке функционалности захтевају претплату</string>
<string name="back">Назад</string>
<string name="places">Места</string>
<string name="place_settings">Подешавања места</string>
<string name="hide_unused_tags">Сакриј некоришћене тагове</string>
<string name="hide_unused_places">Сакриј некоришћена места</string>
<string name="chip_appearance_text_and_icon">Текст и иконица</string>
<string name="chip_appearance_text_only">Само текст</string>
<string name="chip_appearance_icon_only">Само иконица</string>
<string name="no_date">Без датума</string>
<string name="no_time">Без времена</string>
<string name="shortcut_pick_time">Одабери време</string>
<string name="auto_dismiss_datetime">Аутоматски затвори прозор за одабир датума и времена</string>
<string name="auto_dismiss_datetime_list">Листа задатака</string>
<string name="auto_dismiss_datetime_widget">Виџет</string>
<string name="auto_dismiss_datetime_summary">Затвори прозор за одабир након бирања датума или времена</string>
<string name="select_all">Одабери све</string>
<string name="share">Подели</string>
<string name="actfm_picture_clear">Обриши слику</string>
<string name="display_name">Прикажи име</string>
<string name="customize_drawer">Прилагоди навигациони мени</string>
<string name="EPr_show_task_edit_comments">Прикажи коментаре у екрану за измене</string>
<string name="EPr_cal_start_at_due_time">Стартуј догађаје календара у време доспећа</string>
<string name="EPr_manage_delete_completed_gcal">Обриши догађаје календара за завршене задатке</string>
<string name="EPr_manage_delete_completed_gcal_message">Обрисати све догађаје за завршене задатке?</string>
<string name="EPr_manage_delete_gcal_status">Обрисано %d догађаја календара!</string>
<string name="EPr_manage_delete_all_gcal">Обриши све догађаје календара за задатке</string>
<string name="EPr_manage_delete_all_gcal_message">Обрисати све догађаје за задатке?</string>
<string name="EPr_default_location_reminder_title">Подразумевани подсетник локације</string>
<string name="priority_high">Висок</string>
<string name="priority_medium">Средњи</string>
<string name="priority_low">Низак</string>
<string name="default_location_reminder_on_arrival">У тренутку доласка</string>
<string name="default_location_reminder_on_departure">У тренутку одласка</string>
<string name="default_location_reminder_on_arrival_or_departure">У тренутку доласка и одласка</string>
<string name="CFC_startBefore_text">Крени од: ?</string>
<string name="CFC_startBefore_name">Крени од…</string>
<string name="CFC_tag_contains_name">Назив тага садржи…</string>
<string name="CFC_tag_contains_text">Назив тага садржи: ?</string>
<string name="CFC_title_contains_text">Назив садржи: ?</string>
<string name="gcal_TEA_showCalendar_label">Отвори догађај у календару</string>
<string name="calendar_event_not_found">Догађај у календару није нађен</string>
<string name="CFC_gtasks_list_text">У листи: ?</string>
<string name="CFC_list_name">У листи…</string>
<string name="premium_record_audio">Сними белешку</string>
<string name="rmd_EPr_rmd_time_title">Време подсетника</string>
<string name="swipe_to_snooze_time_description">Обрисано обавештење ће бити одложено и поново креирано %s</string>
<string name="default_random_reminder_bi_weekly">Једном у две седмице</string>
<string name="repeat_option_custom">Друго…</string>
<string name="TPl_notification">Тајмери активни за %s!</string>
<string name="TEA_timer_comment_started">започет задатак:</string>
<string name="TEA_timer_comment_stopped">заустављен задатак:</string>
<string name="TEA_timer_comment_spent">Време утрошено:</string>
<string name="voice_create_prompt">Причај како би креирао задатак</string>
<string name="EPr_voiceRemindersEnabled_desc_enabled">Апликација ће изговорити назив задатка приликом подсећања</string>
<string name="widget_show_checkboxes">Прикажи чекирана поља</string>
<string name="widget_show_header">Прикажи заглавље</string>
<string name="widget_show_dividers">Прикажи разделнике</string>
<string name="quiet_hours">Време без узнемиравања</string>
<string name="quiet_hours_in_effect">Време без узнемиравања је активно</string>
<string name="attachment_directory">Директоријум са прилозима</string>
<string name="customize_edit_screen">Подеси екран измене</string>
<string name="translations">Допринеси преводима</string>
<string name="send_application_logs">Пошаљи извештај апликације</string>
<string name="when_overdue">Након доспећа</string>
<string name="when_due">До доспећа</string>
<string name="when_started">Након стартовања</string>
<string name="geofence_radius">Радијус геоограде</string>
<string name="location_radius_meters">%s м</string>
<string name="date_shortcut_hour">За час</string>
<string name="date_shortcut_tomorrow_night">Сутра у току ноћи</string>
<string name="date_shortcut_must_come_before">%1$s мора бити пре %2$s</string>
<string name="date_shortcut_must_come_after">%1$s мора бити након %2$s</string>
<string name="filter_criteria_unstarted">Није започето</string>
<string name="no_app_found">Ниједна апликација не може извршити захтев</string>
<string name="url_host_name_required">Назив уређаја на мрежи је неопходан</string>
<string name="back_button_saves_task">Дугме ,,назад\'\' чува задатак</string>
<string name="show_edit_screen_without_unlock">Прикажи екран измене без откључавања</string>
<string name="show_edit_screen_without_unlock_summary">Омогућава коришћење брзих подешавања без откључавања уређаја</string>
<string name="launcher_icon">Иконица за покретање</string>
<string name="settings_localization">Локализација</string>
<string name="widget_due_date_after_title">Након назива</string>
<string name="bundle_notifications">Пакет обавештења</string>
<string name="repeats_single_on">Понавља се %1$s на %2$s</string>
<string name="repeats_single_until">Понавља се %1$s, завршава се %2$s</string>
<string name="repeats_single_number_of_times">Понавља се %1$s, појављује се %2$d %3$s</string>
<string name="repeats_single_on_until">Понавља се %1$s на %2$s, завршава се %3$s</string>
<string name="repeats_single_on_number_of_times">Понавља се %1$s на %2$s, појављује се %3$d %4$s</string>
<string name="repeats_custom_recurrence">Прилагођено понављање</string>
<string name="repeats_ends">Завршава се</string>
<string name="repeats_plural">Понавља се сваких %s</string>
<string name="repeats_plural_on">Понавља се сваких %1$s на %2$s</string>
<string name="repeats_plural_until">Понавља се сваких %1$s, завршава се %2$s</string>
<string name="repeats_plural_number_of_times">Понавља се сваких %1$s, појављује се %2$d %3$s</string>
<string name="repeats_plural_on_until">Понавља се сваких %1$s на %2$s, завршава се %3$s</string>
<string name="repeats_plural_on_number_of_times">Понавља се сваких%1$s на %2$s, појављује се %3$d %4$s</string>
<string name="list_separator_with_space">", "</string>
<string name="badges_description">Прикажи број задатака на иконици за покретање. Неки покретачи не подржавају беџеве.</string>
<string name="repeat_monthly_every_day_of_nth_week">сваки %1$s %2$s</string>
<string name="tasker_list_notification">Обавештење листе</string>
<string name="upgrade_to_pro">Пређи на претплату</string>
<string name="refresh_purchases">Освежи уплате</string>
<string name="pro_dashclock_extension">Екстензија ,,Dashclock\'\'</string>
<string name="location_remind_arrival">Подсети при доласку</string>
<string name="location_remind_departure">Подсети при одласку</string>
<string name="location_arrived">Долазак у %s</string>
<string name="location_departed">Одлазак у %s</string>
<string name="building_notifications">Генерисање обавештења</string>
<string name="missing_permissions">Недостају дозволе</string>
<string name="third_party_licenses">Лиценце треће стране</string>
<string name="banner_app_updated_description">Апликација је ажурирана на %s. Приказати белешке о ажурирању?</string>
<string name="name_your_price">Наведи цену</string>
<string name="collapse_subtasks">Споји подзадатке</string>
<string name="subtasks_multilevel_google_task">Подзадаци у више нивоа нису подржани од стране Гугл Задатака</string>
<string name="subtasks_multilevel_microsoft">Подзадаци у више нивоа нису подржани од стране ,,Microsoft To Do\'\'</string>
<string name="caldav_selection_description">Синхронизација заснована на стандардима отвореног интернета</string>
<string name="caldav_account_description">Захтева налог код ,,CalDAV\'\' провајдера или приватни сервер. Пронађи провајдера на страници tasks.org/caldav</string>
<string name="etesync_account_description">Захтева налог код ,,EteSync.com\'\' или приватни сервер</string>
<string name="preferences_look_and_feel">Изглед и персонализација</string>
<string name="troubleshooting">Решавање проблема</string>
<string name="notification_troubleshooting_summary">Тапни овде уколико постоје проблеми са обавештењима</string>
<string name="color_wheel">Палета боја</string>
<string name="chips">Апликациони чипови</string>
<string name="chip_appearance">Изглед апликационих чипова</string>
<string name="navigation_drawer">Навигациони мени</string>
<string name="auto_dismiss_datetime_list_summary">Аутоматско затварање након одабира из листе задатака</string>
<string name="auto_dismiss_datetime_edit">Измена задатка</string>
<string name="auto_dismiss_datetime_edit_summary">Аутоматско затварање након бирања из измене задатка</string>
<string name="auto_dismiss_datetime_widget_summary">Аутоматско затварање након бирања из виџета</string>
<string name="calendar_event_created">Догађај у календару креиран на %s</string>
<string name="widget_id">Идентификација виџета: %d</string>
<string name="settings_default">Подразумевано</string>
<string name="compact">Компактно</string>
<string name="custom_filter_criteria">Критеријум филтера</string>
<string name="filter_overdue">После доспећа</string>
<string name="filter_today_only">Само данас</string>
<string name="filter_any_due_date">Било који датум доспећа</string>
<string name="filter_after_today">Након данашњег дана</string>
<string name="filter_no_tags">Без тагова</string>
<string name="add_tags">Додај тагове</string>
<string name="filter_high_priority">Висок приоритет</string>
<string name="filter_medium_priority">Средњи приоритет</string>
<string name="filter_low_priority">Низак приоритет</string>
<string name="filter_no_priority">Без приоритета</string>
<string name="filter_eisenhower_box_1">Важно и ургентно</string>
<string name="filter_eisenhower_box_2">Важно и није ургентно</string>
<string name="filter_eisenhower_box_3">Није важно и ургентно</string>
<string name="filter_eisenhower_box_4">Није важно и није ургентно</string>
<string name="enjoying_tasks">Задовољни апликацијом?</string>
<string name="donate_nag">Подржите нас донацијом!</string>
<string name="donate_today">Донирај данас</string>
<string name="donate_maybe_later">Можда касније</string>
<string name="support_development_subscribe">Откључај додатне функционалности и подржи софтвер отвореног кода</string>
<string name="got_it">Јасно!</string>
<string name="sort_start_group">Старт %s</string>
<string name="sort_due_group">Доспеће %s</string>
<string name="sort_created_group">Креирано %s</string>
<string name="sort_modified_group">Модификовано %s</string>
<string name="sort_completion_group">Завршетак %s</string>
<string name="on_launch">При покретању</string>
<string name="open_last_viewed_list">Отвори последње прегледану листу</string>
<string name="local_lists">Локална листа</string>
<string name="lists">Листе</string>
<string name="reset_sort_order">Ресетуј редослед сортирања</string>
<string name="permission_read_tasks">Потпуни приступ бази података апликације</string>
<string name="automatic_backups">Аутоматске резервне копије</string>
<string name="android_auto_backup">Андроид сервис резервних копија</string>
<string name="android_auto_backup_device_summary">Неопходна је пријава преко подешавања уређаја. Не подржавају сви уређаји сервисе резервних копија.</string>
<string name="last_backup">Последње резервно копирање: %s</string>
<string name="last_backup_never">никада</string>
<string name="device_settings">Подешавања уређаја</string>
<string name="account">Кориснички налог</string>
<string name="foreground_location">Предња локација</string>
<string name="background_location">Задња локација</string>
<string name="backups_ignore_warnings">Игнориши упозорења</string>
<string name="backups_ignore_warnings_summary">Игнориши упозорења уколико нису потребне резервне копије или постоји лично решење за резервне копије</string>
<string name="backup_location_warning">УПОЗОРЕЊЕ: Датотеке на локацији %s ће бити обрисане уколико се апликација деинсталира! Молимо одабери локацију како би спречио брисање својих фајлова.</string>
<string name="multi_select_reschedule">Поново закажи</string>
<string name="date_picker_multiple">Вишеструко</string>
<string name="custom_filter_has_subtask">Садржи подзадатке</string>
<string name="custom_filter_is_subtask">Јесте подзадатак</string>
<string name="custom_filter_has_reminder">Садржи подсетник</string>
<string name="your_subscription_expired">Претплата је истекла. Претплати се поново за наставак сервиса.</string>
<string name="insufficient_subscription">Недовољан пакет претплате. Молимо за претплату на виши пакет за наставак сервиса.</string>
<string name="insufficient_sponsorship">Није пронађено одговарајуће спонзорство за ,,GitHub\'\'</string>
<string name="no_google_play_subscription">Није пронађено одговарајуће спонзорство за ,,Google Play\'\'</string>
<string name="price_per_year">$%s/годишње</string>
<string name="price_per_month">$%s/месечно</string>
<string name="price_per_month_with_currency">%s/месечно</string>
<string name="price_per_year_with_currency">%s/годишње</string>
<string name="current_subscription">Тренутна претплата: %s</string>
<string name="follow_reddit">Придружи се r/tasks</string>
<string name="follow_twitter">Запрати @tasks_org</string>
<string name="social">Друштвене мреже</string>
<string name="support">Подршка</string>
<string name="issue_tracker">Праћење проблема</string>
<string name="open_source">Кôд отвореног типа</string>
<string name="privacy">Приватност</string>
<string name="authorization_cancelled">Отказана ауторизација</string>
<string name="google_play_subscribers">,,Google Play\'\' претплатници</string>
<string name="github_sponsors">,,GitHub\'\' спонзори</string>
<string name="sign_in_with_google">Пријави се путем Гугла</string>
<string name="sign_in_with_github">Пријави се путем GitHub-а</string>
<string name="authentication_required">Неопходна аутентикација</string>
<string name="github_sponsor">Спонзор</string>
<string name="migrate">Мигрирај</string>
<string name="migrating_tasks">Мигрирајући задаци</string>
<string name="migrate_count">Премести %s на Tasks.org</string>
<string name="above_average">Изнад просека</string>
<string name="save_percent">Усними %d%%</string>
<string name="sign_in_to_tasks">Пријави се на Tasks.org</string>
<string name="sign_in_to_tasks_disclosure">Мејл адреса и идентификациони број ће бити послати и складиштени од стране Tasks.org. Ове информације ће се користити за аутентикацију и обезбеђење важних обавештења у вези сервиса. Ове информације се неће делити ни са ким.</string>
<string name="app_password">Шифра апликације</string>
<string name="app_passwords">Шифре апликације</string>
<string name="app_passwords_more_info">Синхронизуј задатке и календар са десктоп и мобилним апликацијама треће стране. Тапни овде за додатне информације</string>
<string name="generate_new_password">Генериши нову шифру</string>
<string name="app_password_enter_description">Унеси име шифре (опционо)</string>
<string name="app_password_created_at">Креирано: %s</string>
<string name="app_password_last_access">Последњи пут коришћено: %s</string>
<string name="app_password_delete_confirmation">Свака апликација која користи ову шифру ће бити одјављена</string>
<string name="app_password_save">Користи ове креденцијале за конфигурацију апликације од треће стране. Они омогућавају потпуни приступ Tasks.org налогу, не записуј их нигде и не дели их ни са ким!</string>
<string name="copied_to_clipboard">%s копирано у привремену меморију</string>
<string name="tasks_org_account">Tasks.org налог</string>
<string name="tasks_org_account_required">Неопходан налог на Tasks.org</string>
<string name="account_not_included">Није укључено у ,,Задај цену\'\' тип претплате</string>
<string name="list_members">Чланови листе</string>
<string name="remove_user">Уклонити корисника?</string>
<string name="remove_user_confirmation">%1$s више нема приступ до %2$s</string>
<string name="share_list">Подели листу</string>
<string name="invite">Позови</string>
<string name="invite_declined">Позив одбијен</string>
<string name="invite_awaiting_response">Чека се на одговор</string>
<string name="invite_invalid">Невалидан позив</string>
<string name="pro_free_trial">Нови претплатници добијају 7-дневно бесплатно коришћење. Може се отказати у било ком тренутку</string>
<string name="upgrade_more_customization">Додатно прилагоди</string>
<string name="upgrade_more_customization_description">Откључај све теме, боје, и иконице</string>
<string name="upgrade_tasks_org_account_description">Синхронизуј са Tasks.org и сарађуј са другим корисницима</string>
<string name="upgrade_desktop_access">Приступ десктопу</string>
<string name="upgrade_desktop_access_description">Синхронизуј са апликацијама треће стране као што су ,,Outlook\'\' и ,,Apple Reminders\'\'</string>
<string name="upgrade_open_source_description">Ова претплата омогућава наставак развоја апликације</string>
<string name="more_options">Додатне опције</string>
<string name="markdown">Редукција</string>
<string name="markdown_description">Омогући Редукцију у називу и опису</string>
<string name="completion_sound">Произведи звук за завршетак</string>
<string name="completed">Завршено</string>
<string name="snackbar_task_completed">Задатак завршен</string>
<string name="completed_tasks_at_bottom">Премести завршене задатке на дно</string>
<string name="snackbar_tasks_completed">%d задатака завршено</string>
<string name="alarm_before_start">%s пре почетка</string>
<string name="alarm_after_start">%s након почетка</string>
<string name="alarm_before_due">%s пре доспећа</string>
<string name="alarm_after_due">%s након доспећа</string>
<string name="snoozed_until">Одложено до %s</string>
<string name="custom_notification">Лична обавештења</string>
<string name="caldav_server_unknown">Непознато</string>
<string name="caldav_server_other">Друго</string>
<string name="caldav_server_type">Тип сервера</string>
<string name="dismiss">Одбаци</string>
<string name="hint_customize_edit_title">Превише информација?</string>
<string name="hint_customize_edit_body">Персонализуј овај екран премештањем или брисањем поља</string>
<string name="enable_reminders">Омогући подсетнике</string>
<string name="enable_reminders_description">Подсетници су онемогућени у подешавањима уређаја</string>
<string name="enable_alarms">Обавести ме у право време</string>
<string name="enable_alarms_description">За могућност обавештења у право време, дозволи подешавања аларма и подсетника у подешавањима уређаја</string>
<string name="sign_in">Пријави се</string>
<string name="consent_agree">Слажем се</string>
<string name="consent_deny">Не сада</string>
<string name="sort_sorting">Сортирање</string>
<string name="sort_grouping">Груписање</string>
<string name="sort_ascending">Растући редослед</string>
<string name="sort_descending">Опадајући редослед</string>
<string name="sort_not_available">Није доступно за тагове, филтере, или места</string>
<string name="add_shortcut_to_home_screen">Додај пречицу на почетни екран</string>
<string name="add_widget_to_home_screen">Додај виџет на почетни екран</string>
<string name="cost_free">Цена: Бесплатно</string>
<string name="cost_money">Цена: $</string>
<string name="cost_more_money">Цена: $$$</string>
<string name="multiline_title">Омогући називе у више редова</string>
<string name="multiline_title_on">Притисни Ентер за додавање размака између редова</string>
<string name="multiline_title_off">Притисни ,,Готово\'\' за чување задатка</string>
<string name="sync_warning_microsoft_title">О ,,Microsoft To Do\'\' синхронизацији</string>
<string name="sync_warning_microsoft">Не синхронизују се сви детаљи задатка са ,,Microsoft To Do\'\'.</string>
<string name="sync_warning_google_tasks_title">О ,,Google Tasks\'\' синхронизацији</string>
<string name="sync_warning_google_tasks">Не синхронизују се сви детаљи задатка са ,,Google Tasks\'\'</string>
<string name="button_learn_more">Више информација</string>
<string name="EPr_cal_end_at_due_time">Окончај догађаје календара у време доспећа</string>
<string name="task_defaults">Подразумевано за задатке</string>
<string name="CFC_importance_text">Минимум приоритета ?</string>
<string name="caldav_home_set_not_found">Сет није пронађен</string>
</resources>

@ -427,7 +427,7 @@
<string name="etesync_account_description">Kräver ett konto hos EteSync.com eller en egen värdserver</string>
<string name="caldav_account_description">Kräver ett konto hos en CalDAV-tjänsteleverantör eller en egen server. Hitta en tjänsteleverantör genom att besöka tasks.org/caldav</string>
<string name="menu_discard_changes">Ignorera ändringar</string>
<string name="astrid_sort_order_summary">Slå på Astrids manuella sortering för \'Mina uppgifter\', \'Idag\', och taggar. Den här sorteringen kommer ersättas av \'Min sortering\' i en framtida uppdatering.</string>
<string name="astrid_sort_order_summary">Aktivera Astrids manuella sorteringsläge för \"Mina uppgifter\", \"Idag\" och taggar. Detta sorteringsläge kommer att ersättas av \"Min sortering\" i en framtida uppdatering.</string>
<string name="markdown_description">Aktivera Markdown i titel och beskrivning</string>
<string name="markdown">Markdown</string>
<string name="more_options">Fler alternativ</string>

@ -718,4 +718,7 @@
<string name="banner_app_updated_title">பயன் புதுப்பிக்கப்பட்டது</string>
<string name="multiline_title_off">பணியைச் சேமிக்க முடிந்தது என்பதை அழுத்தவும்</string>
<string name="banner_app_updated_description">பணிகள் இப்போதுதான் %s ஆகப் புதுப்பிக்கப்பட்டது. வெளியீட்டுக் குறிப்புகளைப் பார்க்க விரும்புகிறீர்களா?</string>
<string name="continue_without_sync">ஒத்திசைவு இல்லாமல் தொடரவும்</string>
<string name="help_me_choose">தேர்வு செய்ய எனக்கு உதவு</string>
<string name="delete_tasks_warning">%s நீக்கப்படும். இதை செயல்தவிர்க்க முடியாது!</string>
</resources>

@ -729,4 +729,5 @@ File %1$s contained %2$s.\n\n
<string name="sync_warning_google_tasks_title">About Google Task sync</string>
<string name="sync_warning_google_tasks">Not all task details sync with Google Tasks</string>
<string name="button_learn_more">Learn more</string>
<string name="widget_view_more_tasks">View more tasks</string>
</resources>

@ -24,7 +24,7 @@ buildscript {
}
tasks.getByName<Wrapper>("wrapper") {
gradleVersion = "8.14.1"
gradleVersion = "8.14.2"
distributionType = Wrapper.DistributionType.ALL
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,8 +1,8 @@
[versions]
versionCode = "140710" # increment by 2
versionName = "14.7.3"
agp = "8.10.1"
android-compileSdk = "35"
agp = "8.11.0"
android-compileSdk = "36"
android-minSdk = "26"
android-targetSdk = "34"
accompanist = "0.37.3"
@ -11,23 +11,23 @@ appauth = "0.11.1"
appcompat = "1.7.1"
cert4android = "7814052"
coil = "2.7.0"
compose = "2025.06.00"
compose = "2025.06.01"
constraintlayout = "2.2.1"
dagger-hilt = "2.56.2"
dashclock-api = "2.0.0"
dav4jvm = "2.2.1"
desugar_jdk_libs = "2.1.5"
etebase = "2.3.2"
firebase = "33.14.0"
firebase = "33.16.0"
firebase-crashlytics-gradle = "3.0.4"
google-oauth2 = "1.37.0"
google-api-drive = "v3-rev20250511-2.0.0"
google-oauth2 = "1.37.1"
google-api-drive = "v3-rev20250701-2.0.0"
google-api-tasks = "v1-rev20250518-2.0.0"
google-services = "4.4.2"
google-services = "4.4.3"
grpc = "1.73.0"
hilt = "1.2.0"
horologist = "0.6.23"
ical4android = "12fe73a"
ical4android = "2fe63dd"
jchronic = "0.2.6"
jems = "1.33"
junit-junit = "4.13.2"
@ -55,11 +55,11 @@ preference = "1.2.1"
protobuf = "4.31.1"
recyclerview = "1.4.0"
rfc5545-datetime = "0.2.4"
room = "2.7.1"
room = "2.7.2"
shortcut-badger = "1.1.22"
timber = "5.0.1"
swiperefreshlayout = "1.1.0"
work = "2.10.1"
work = "2.10.2"
androidx-test = "1.6.1"
androidx-test-runner = "1.6.2"
xpp3 = "1.1.6"
@ -86,13 +86,13 @@ androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-ru
androidx-lifecycle-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel", version.ref = "lifecycle" }
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" }
androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" }
androidx-navigation = { module = "androidx.navigation:navigation-compose", version = "2.9.0" }
androidx-navigation = { module = "androidx.navigation:navigation-compose", version = "2.9.1" }
androidx-paging-compose = { module = "androidx.paging:paging-compose", version = "3.3.6" }
androidx-preference = { module = "androidx.preference:preference", version.ref = "preference" }
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" }
androidx-room = { module = "androidx.room:room-runtime", version.ref = "room" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room"}
androidx-sqlite = { module = "androidx.sqlite:sqlite-bundled", version = "2.5.1" }
androidx-sqlite = { module = "androidx.sqlite:sqlite-bundled", version = "2.5.2" }
androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "swiperefreshlayout" }
androidx-test-core = { module = "androidx.test:core", version.ref = "androidx-test" }
androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidx-test" }
@ -175,7 +175,7 @@ play-services-oss-licenses = { module = "com.google.android.gms:play-services-os
shortcut-badger = { module = "me.leolin:ShortcutBadger", version.ref = "shortcut-badger" }
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
xpp3 = { module = "org.ogce:xpp3", version.ref = "xpp3" }
androidx-ui-tooling-preview-android = { group = "androidx.compose.ui", name = "ui-tooling-preview-android", version = "1.8.2" }
androidx-ui-tooling-preview-android = { group = "androidx.compose.ui", name = "ui-tooling-preview-android", version = "1.8.3" }
iconics = { module = "com.mikepenz:iconics-core", version = "5.5.0-b01" }
play-services-wearable = { group = "com.google.android.gms", name = "play-services-wearable", version = "19.0.0" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
@ -204,7 +204,7 @@ protobuf-kotlin-lite = { group = "com.google.protobuf", name = "protobuf-kotlin-
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
jetbrains-compose = { id = "org.jetbrains.compose", version = "1.8.1" }
jetbrains-compose = { id = "org.jetbrains.compose", version = "1.8.2" }
kotlin-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

@ -1,4 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="settings">Подешавања</string>
</resources>
<string name="search">Претражи</string>
<string name="search_no_results">Нема резултата</string>
<string name="requires_pro_subscription">Премијум функционалност</string>
<string name="subscription_required_description">Откључај све функционалности за само 1 USD годишње</string>
<string name="subscribe">Претплати се</string>
<string name="filter_my_tasks">Моји задаци</string>
<string name="filter_notifications">Обавештења</string>
<string name="filter_snoozed">Одложен</string>
<string name="filter_today">Данас</string>
<string name="filter_recently_modified">Недавно модификовани</string>
<string name="default_list">Подразумевана листа</string>
<string name="help_and_feedback">Помоћ и повратне информације</string>
<string name="drawer_filters">Филтери</string>
<string name="drawer_tags">Тагови</string>
<string name="drawer_places">Места</string>
<string name="drawer_local_lists">Локална листа</string>
<string name="tmrw">Сутра</string>
<string name="tomorrow_abbrev_lowercase">сутра</string>
<string name="tomorrow">Сутра</string>
<string name="tomorrow_lowercase">сутра</string>
<string name="yest">Јуче</string>
<string name="yesterday_abbrev_lowercase">јуче</string>
<string name="yesterday">Јуче</string>
<string name="yesterday_lowercase">јуче</string>
<string name="today">Данас</string>
<string name="today_lowercase">данас</string>
<string name="add_task">Додај задатак</string>
<string name="show_unstarted">Прикажи незапочете</string>
<string name="show_completed">Прикажи завршене</string>
<string name="wear_install_app">Инсталирај на уређају</string>
<string name="wear_unknown_error">Непозната грешка</string>
<string name="filter_timer">Задаци са тајмером</string>
</resources>

@ -27,10 +27,10 @@
<string name="today_lowercase">idag</string>
<string name="search_no_results">Inga resultat</string>
<string name="subscription_required_description">Lås upp alla funktioner för så lite som 1$ USD/år</string>
<string name="requires_pro_subscription">Pro funktion</string>
<string name="requires_pro_subscription">Pro-funktion</string>
<string name="add_task">Lägg till uppgift</string>
<string name="show_unstarted">Visa inte påbörjade</string>
<string name="show_completed">Visa slutförda</string>
<string name="wear_install_app">Installera på telefon</string>
<string name="wear_unknown_error">Okänt fel</string>
</resources>
</resources>

@ -1,15 +1,15 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
"config:recommended"
],
"packageRules": [
{
"matchPackagePatterns": [
"^org.jetbrains.kotlin",
"^com.google.devtools.ksp"
],
"groupName": "kotlin"
"groupName": "kotlin",
"matchPackageNames": [
"/^org.jetbrains.kotlin/",
"/^com.google.devtools.ksp/"
]
}
]
}

Loading…
Cancel
Save