diff --git a/app/src/main/java/org/tasks/calendars/CalendarPicker.java b/app/src/main/java/org/tasks/calendars/CalendarPicker.java deleted file mode 100644 index 380369b2d..000000000 --- a/app/src/main/java/org/tasks/calendars/CalendarPicker.java +++ /dev/null @@ -1,128 +0,0 @@ -package org.tasks.calendars; - -import static com.google.common.collect.Lists.transform; -import static org.tasks.PermissionUtil.verifyPermissions; -import static org.tasks.Strings.isNullOrEmpty; - -import android.app.Activity; -import android.app.Dialog; -import android.content.Intent; -import android.os.Bundle; -import android.widget.ListView; -import android.widget.Toast; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.Fragment; -import dagger.hilt.android.AndroidEntryPoint; -import java.util.ArrayList; -import java.util.List; -import javax.inject.Inject; -import org.tasks.R; -import org.tasks.dialogs.DialogBuilder; -import org.tasks.preferences.FragmentPermissionRequestor; -import org.tasks.preferences.PermissionChecker; -import org.tasks.preferences.PermissionRequestor; -import org.tasks.themes.Theme; -import org.tasks.ui.SingleCheckedArrayAdapter; - -@AndroidEntryPoint -public class CalendarPicker extends DialogFragment { - - public static final String EXTRA_CALENDAR_ID = "extra_calendar_id"; - public static final String EXTRA_CALENDAR_NAME = "extra_calendar_name"; - private static final String EXTRA_SELECTED = "extra_selected"; - private final List calendarNames = new ArrayList<>(); - private final List calendars = new ArrayList<>(); - @Inject DialogBuilder dialogBuilder; - @Inject CalendarProvider calendarProvider; - @Inject PermissionChecker permissionChecker; - @Inject FragmentPermissionRequestor permissionRequestor; - @Inject Theme theme; - private SingleCheckedArrayAdapter adapter; - private ListView listView; - - public static CalendarPicker newCalendarPicker(Fragment target, int rc, String selected) { - Bundle arguments = new Bundle(); - arguments.putString(EXTRA_SELECTED, selected); - CalendarPicker fragment = new CalendarPicker(); - fragment.setArguments(arguments); - fragment.setTargetFragment(target, rc); - return fragment; - } - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - theme.applyToContext(getActivity()); - - adapter = - new SingleCheckedArrayAdapter(getActivity(), calendarNames) { - @Override - protected int getDrawable() { - return R.drawable.ic_outline_event_24px; - } - - @Override - protected int getDrawableColor(int position) { - return calendars.get(position).getColor(); - } - }; - - AlertDialog dialog = - dialogBuilder - .newDialog() - .setSingleChoiceItems( - adapter, -1, (d, which) -> { - dismiss(); - AndroidCalendar calendar = calendars.get(which); - Intent data = new Intent(); - data.putExtra(EXTRA_CALENDAR_ID, calendar.getId()); - data.putExtra(EXTRA_CALENDAR_NAME, calendar.getName()); - getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, data); - }) - .setNegativeButton(R.string.cancel, null) - .show(); - listView = dialog.getListView(); - if (permissionChecker.canAccessCalendars()) { - loadCalendars(); - } else if (savedInstanceState == null) { - permissionRequestor.requestCalendarPermissions(); - } - return dialog; - } - - private void loadCalendars() { - calendars.clear(); - calendarNames.clear(); - - calendars.addAll(calendarProvider.getCalendars()); - if (calendars.isEmpty()) { - Toast.makeText(getActivity(), R.string.no_calendars_found, Toast.LENGTH_LONG).show(); - dismiss(); - } else { - calendars.add(0, new AndroidCalendar(null, getString(R.string.dont_add_to_calendar), -1)); - calendarNames.addAll(transform(calendars, AndroidCalendar::getName)); - Bundle arguments = getArguments(); - String selected = arguments.getString(EXTRA_SELECTED); - int selectedIndex = isNullOrEmpty(selected) ? 0 : calendarNames.indexOf(selected); - adapter.notifyDataSetChanged(); - listView.setItemChecked(selectedIndex, true); - listView.setSelection(selectedIndex); - } - } - - @Override - public void onRequestPermissionsResult( - int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if (requestCode == PermissionRequestor.REQUEST_CALENDAR) { - if (verifyPermissions(grantResults)) { - loadCalendars(); - } else { - dismiss(); - } - } else { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - } - } -} diff --git a/app/src/main/java/org/tasks/calendars/CalendarPicker.kt b/app/src/main/java/org/tasks/calendars/CalendarPicker.kt new file mode 100644 index 000000000..ff8e6c2b4 --- /dev/null +++ b/app/src/main/java/org/tasks/calendars/CalendarPicker.kt @@ -0,0 +1,168 @@ +package org.tasks.calendars + +import android.Manifest +import android.app.Activity +import android.app.Dialog +import android.content.Intent +import android.os.Bundle +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.ContentAlpha +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Block +import androidx.compose.material.icons.outlined.Check +import androidx.compose.material.icons.outlined.Event +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import androidx.fragment.app.DialogFragment +import androidx.fragment.app.Fragment +import androidx.fragment.app.viewModels +import com.google.accompanist.permissions.ExperimentalPermissionsApi +import com.google.accompanist.permissions.rememberMultiplePermissionsState +import com.google.android.material.composethemeadapter.MdcTheme +import dagger.hilt.android.AndroidEntryPoint +import org.tasks.R +import org.tasks.compose.collectAsStateLifecycleAware +import org.tasks.dialogs.DialogBuilder +import javax.inject.Inject + +@AndroidEntryPoint +class CalendarPicker : DialogFragment() { + private val viewModel: CalendarPickerViewModel by viewModels() + + @Inject lateinit var dialogBuilder: DialogBuilder + + @OptIn(ExperimentalPermissionsApi::class) + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + return dialogBuilder + .newDialog() + .setContent { + val hasPermissions = rememberMultiplePermissionsState( + permissions = listOf(Manifest.permission.WRITE_CALENDAR, Manifest.permission.READ_CALENDAR), + onPermissionsResult = { result -> + if (result.values.all { it }) { + viewModel.loadCalendars() + } + } + ) + if (hasPermissions.allPermissionsGranted) { + CalendarList( + calendars = viewModel.viewState.collectAsStateLifecycleAware().value.calendars, + selected = arguments?.getString(EXTRA_SELECTED), + onClick = { selectEntry(it) }, + ) + } + LaunchedEffect(hasPermissions) { + if (!hasPermissions.allPermissionsGranted) { + hasPermissions.launchMultiplePermissionRequest() + } + } + } + .show() + } + + @Composable + fun CalendarList( + calendars: List, + selected: String?, + onClick: (AndroidCalendar?) -> Unit, + ) { + MdcTheme { + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + .padding(vertical = 12.dp) + ) { + CalendarRow( + icon = Icons.Outlined.Block, + tint = MaterialTheme.colors.onSurface, + text = stringResource(id = R.string.dont_add_to_calendar), + selected = selected.isNullOrBlank(), + onClick = { onClick(null) }, + ) + calendars.forEach { + CalendarRow( + icon = Icons.Outlined.Event, + tint = Color(it.color), + text = it.name, + selected = selected == it.name, + onClick = { onClick(it) } + ) + } + } + } + } + + @Composable + fun CalendarRow( + icon: ImageVector, + tint: Color, + text: String, + selected: Boolean, + onClick: () -> Unit, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .fillMaxWidth() + .clickable { onClick() } + ) { + Icon( + imageVector = icon, + contentDescription = null, + tint = tint.copy(alpha = ContentAlpha.medium), + modifier = Modifier.padding(start = 16.dp, end = 32.dp, top = 12.dp, bottom = 12.dp), + ) + Text( + text = text, + style = MaterialTheme.typography.body1, + modifier = Modifier.weight(1f), + ) + if (selected) { + Icon( + imageVector = Icons.Outlined.Check, + contentDescription = null, + tint = MaterialTheme.colors.primary.copy(alpha = ContentAlpha.medium), + modifier = Modifier.padding(horizontal = 16.dp, vertical = 12.dp), + ) + } + } + } + + private fun selectEntry(calendar: AndroidCalendar?) { + val data = Intent() + data.putExtra(EXTRA_CALENDAR_ID, calendar?.id) + data.putExtra(EXTRA_CALENDAR_NAME, calendar?.name) + targetFragment!!.onActivityResult(targetRequestCode, Activity.RESULT_OK, data) + dismiss() + } + + companion object { + const val EXTRA_CALENDAR_ID = "extra_calendar_id" + const val EXTRA_CALENDAR_NAME = "extra_calendar_name" + private const val EXTRA_SELECTED = "extra_selected" + + fun newCalendarPicker(target: Fragment?, rc: Int, selected: String?): CalendarPicker { + val arguments = Bundle() + arguments.putString(EXTRA_SELECTED, selected) + val fragment = CalendarPicker() + fragment.arguments = arguments + fragment.setTargetFragment(target, rc) + return fragment + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/tasks/calendars/CalendarPickerViewModel.kt b/app/src/main/java/org/tasks/calendars/CalendarPickerViewModel.kt new file mode 100644 index 000000000..7a91d8931 --- /dev/null +++ b/app/src/main/java/org/tasks/calendars/CalendarPickerViewModel.kt @@ -0,0 +1,36 @@ +package org.tasks.calendars + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch +import javax.inject.Inject + +@HiltViewModel +class CalendarPickerViewModel @Inject constructor( + private val calendarProvider: CalendarProvider +) : ViewModel() { + + data class ViewState( + val calendars: List = emptyList(), + ) + + private val _viewState = MutableStateFlow(ViewState()) + val viewState: StateFlow + get() = _viewState.asStateFlow() + + fun loadCalendars() { + viewModelScope.launch(Dispatchers.IO) { + _viewState.update { it.copy(calendars = calendarProvider.calendars) } + } + } + + init { + loadCalendars() + } +} \ No newline at end of file diff --git a/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt b/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt index ce5e9e72f..5db00efce 100644 --- a/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt +++ b/app/src/main/java/org/tasks/dialogs/AlertDialogBuilder.kt @@ -5,6 +5,8 @@ import android.content.DialogInterface import android.view.View import android.widget.ListAdapter import androidx.appcompat.app.AlertDialog +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.ComposeView import com.google.android.material.dialog.MaterialAlertDialogBuilder class AlertDialogBuilder internal constructor(private val context: Context) { @@ -72,6 +74,11 @@ class AlertDialogBuilder internal constructor(private val context: Context) { return this } + fun setContent(content: @Composable () -> Unit): AlertDialogBuilder { + builder.setView(ComposeView(context).apply { setContent(content) }) + return this + } + fun setOnCancelListener(onCancelListener: DialogInterface.OnCancelListener?): AlertDialogBuilder { builder.setOnCancelListener(onCancelListener) return this diff --git a/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt b/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt index d79d7bf36..7cc34d926 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt @@ -17,7 +17,7 @@ import kotlinx.coroutines.launch import org.tasks.R import org.tasks.activities.ListPicker import org.tasks.calendars.CalendarPicker -import org.tasks.calendars.CalendarPicker.newCalendarPicker +import org.tasks.calendars.CalendarPicker.Companion.newCalendarPicker import org.tasks.calendars.CalendarProvider import org.tasks.data.LocationDao import org.tasks.data.Place @@ -140,6 +140,7 @@ class TaskDefaults : InjectingPreferenceFragment() { ) defaultCalendarPref.summary = data.getStringExtra(CalendarPicker.EXTRA_CALENDAR_NAME) + ?: getString(R.string.dont_add_to_calendar) } REQUEST_RECURRENCE -> if (resultCode == RESULT_OK) { preferences.setString( diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b505b0b26..23952e7fd 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -357,7 +357,6 @@ متقدم اختر منصّة أنشأ \"%s\" - لم يوجد أيّ تقويم تصفية انقل مهام فرعيّة diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 5b3fbc44e..65cb73865 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -336,7 +336,6 @@ Локализация Известия с LED Необходима е апаратна поддръжка - Не са намерени календари Настройки на приспособления Настройки на заглавието Настройки на реда diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 94e12de6d..e780a7541 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -199,7 +199,6 @@ Restartovat nyní Později Překlad - Nenalezeny žádné kalendáře Nastavení ovládacího prvku Opravdu chcete provedené změny zahodit\? Pokračovat v úpravách diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 1459a694e..db1314ff4 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -275,7 +275,6 @@ Rækkeindstillinger Topbjælkeindstillinger Widget-indstillinger - Der blev ikke fundet nogen kalendre Skal understøttes af hardware LED-påmindelse Oversættelse diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index daa4fea29..8075fcc2f 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -325,7 +325,6 @@ Übersetzung Benachrichtigungs-LED Hardware-Unterstützung benötigt - Es wurden keine Kalender gefunden Widget-Einstellungen Kopfleisteneinstellungen Zeileneinstellungen diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index a69741c9a..7a1838475 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -234,7 +234,6 @@ Malfermu liston Faru nenion Agordoj de fenestraĵo - Neniu kalendaro trovita Poste Lingvo Laŭ operaciumo diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c122a63be..275398f87 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -328,7 +328,6 @@ Configuración regional Notificación de LED Se necesita compatibilidad de hárdwer - No se han encontrado calendarios Configuración de widget Configuración de cabecera Configuración de fila diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index eb732b157..321cc8c48 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -211,7 +211,6 @@ Hiljem LED-i teavitused Riistvara tugi on nõutud - Ühtegi kalendrit ei leitud Vidina seaded Päise seaded Rea seaded diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 71486c047..91c3739e3 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -332,7 +332,6 @@ Lokalizazioa LED jakinarazpena Hardwareak onartzea ezinbestekoa - Ez da egutegitik aurkitu Trepetaren ezarpenak Goiburuaren ezarpenak Errenkadaren ezarpenak diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index b42f76105..1a5887508 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -311,7 +311,6 @@ Paikallistaminen LED muistutus Laitetuki vaaditaan - Kalenteria ei löydy Widgetin asetukset Otsikon asetukset Rivin asetukset diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a22d2a593..a11c2eec8 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -310,7 +310,6 @@ Localisation Notification de la LED Support matériel requis - Pas de calendrier trouvé Paramètres du widget Paramètres de l\'en-tête Paramètres de la colonne diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 61f99b47d..f8dda9d8c 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -242,7 +242,6 @@ Localización Notificación LED Precísase de soporte con hardware - Non se atoparon calendarios Configuración de widgets Configuración de cabeceiras Configuración de filas diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f054cc33c..3949473c2 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -371,7 +371,6 @@ Podnožje Postavke redaka Postavke zaglavlja - Nema kalendara Podrška za hardver je obavezna LED obavijest Lokalizacija diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 40d3fbd35..b039a4a22 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -328,7 +328,6 @@ Lokalizáció LED értesítés Hardveres támogatás szükséges - Naptár nem található Widget beállításai Fejléc beállításai Sorok beállíátsai diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 0e212bd30..08756cc34 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -252,7 +252,6 @@ Pelokalan bahasa Notifikasi LED Dukungan perangkat keras diperlukan - Tidak ada kalender yang ditemukan Pengaturan wisaya Pengaturan tajuk Pengaturan baris diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index fb6525815..39676818a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -330,7 +330,6 @@ Localizzazione LED di notifica È richiesto il supporto hardware - Nessun calendario Impostazioni widget Impostazioni intestazione Impostazioni riga diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 5eef6ccc7..4c90b5797 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -362,7 +362,6 @@ לוקאליזציה תאורת התראות נדרשת חומרה תואמת - לא נמצאו לוחות שנה הגדרות ווידג\'ט הגדרות כותרת הגדרות שורה diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 8266ed456..7766f8e5d 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -330,7 +330,6 @@ ローカライズ LED 通知 ハードウェア サポートが必要です - カレンダーが見つかりません ウィジェット設定 ヘッダー設定 行設定 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 9ea154173..9cd84728b 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -327,7 +327,6 @@ 현지화 LED 알림 하드웨어 지원을 필요로 합니다 - 달력 없음 위젯 설정 헤더 설정 줄 설정 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 992ced967..df788ffff 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -350,7 +350,6 @@ Lokalizacija LED pranešimai Reikalingas techninės įrangos palaikymas - Kalendorių nerasta Valdiklio nustatymai Antraščių nustatymai Eilutės nustatymai diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 32ea7d97c..d5bd2ed8d 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -350,7 +350,6 @@ Bakgrunnsbilde Dag/natt Maskinvarestøtte kreves - Fant ingen kalendre Miniprogramsinnstillinger Hodeinnstillinger Radinnstillinger diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 972910e92..badf238de 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -324,7 +324,6 @@ Localisatie LED melding Hardware ondersteuning vereist - Geen kalenders gevonden Widget instellingen Koptekst instellingen Regel instellingen diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 2a550cfd1..2ab09d65c 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -340,7 +340,6 @@ Ustawienia regionalne Powiadomienie LED Wymagane wsparcie sprzętowe - Nie znaleziono kalendzarzy Ustawienie widgetu Ustawienia nagłówka Ustawienia rzędu diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 2ec8e9293..f9b494d94 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -326,7 +326,6 @@ Localização LED de notificações Suporte de hardware necessário - Não foi encontrado nenhum calendário Configurações de Widget Config. cabeçalho Congif. entrada diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index cfde65d71..d093aabce 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -309,7 +309,6 @@ Mais tarde Tradução Notificação no LED - Não foi encontrado nenhum calendário Definições do widget Definições de cabeçalho Definições de linhas diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 35f35aecd..089e501f2 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -170,7 +170,6 @@ Setări de rânduri Setări de antet Setări Widget - Nu s-au găsit calendare Suport hardware necesar Notificare cu LED-uri Localizare diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 50ee089fa..2e7c296a8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -346,7 +346,6 @@ Локализация LED уведомления Необходима аппаратная поддержка - Календарей не найдено Настройки виджета Настройки заголовка Настройки строк diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index b66eb512a..2ad34f5d2 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -198,7 +198,6 @@ පාදකය පේළි සැකසුම් ශීර්ෂ සැකසුම් - දින දර්ශන කිසිවක් හමු නොවීය දෘඩාංග සහාය අවශ්‍යයි LED දැනුම්දීම ප්‍රාදේශීයකරණය diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 492b082ab..e99b66dd0 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -330,7 +330,6 @@ Určovanie polohy LED oznámenia Vyžaduje sa podpora zariadenia - Kalendár nenájdený Widget - nastavenia Nastavenie záhlavia Nastavenie riadka diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index cbb149136..0ee750a62 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -232,7 +232,6 @@ Språk LED Notifiering Hårdvarustöd krävs - Inga kalendrar hittades Inställningar för widget Rensa bort slutförda uppgifter? Ring diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index f1e60db9b..21ba7dffe 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -323,7 +323,6 @@ வரிசை அமைப்புகள் தலைப்பு அமைப்புகள் விட்ஜெட் அமைப்புகள் - காலெண்டர்கள் எதுவும் கிடைக்கவில்லை வன்பொருள் ஆதரவு தேவை LED அறிவிப்பு உள்ளூர்மயமாக்கல் diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index ac1fbf497..53e65d6f6 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -297,7 +297,6 @@ การตั้งค่าแถว การตั้งค่าส่วนหัว การตั้งค่าวิดเจ็ต - ไม่พบปฏิทิน ต้องการการสนับสนุนฮาร์ดแวร์ การแจ้งเตือน LED แปล diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 6afb87863..3413c7f45 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -331,7 +331,6 @@ Yerelleştirme LED bildirimi Donanım desteği gerekiyor - Takvim bulunamadı Widget ayarları Başlık ayarları Satır ayarları diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index cb2db8675..c6e42348f 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -347,7 +347,6 @@ Локалізація LED-сповіщення Потрібна підтримка апартних засобів - Календарів не знайдено Налаштування віджету Налаштування заголовку Налаштування рядку diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 1ea31805a..85842fa94 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -354,7 +354,6 @@ قطار کی سیٹنگ ہیڈر کی سیٹنگ ویجٹ سیٹنگ - کوئی کیلنڈر نہیں ملا ہارڈ وئیر سپورٹ درکار ہے ایل ای ڈی نوٹیفیکیشن لوکلائزیشن diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 7641942fe..44729f19f 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -357,7 +357,6 @@ Cài đặt hàng Cài đặt tiêu đề Cài đặt tiện ích - Không tìm thấy lịch nào Yêu cầu sự hỗ trợ của phần cứng Thông báo LED Ngôn ngữ diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index ba9612427..2d409c0a7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -312,7 +312,6 @@ 本地化 LED 提醒 需要硬件支持 - 没有找到日历 插件设置 标题设置 行设置 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d68ebc5dc..ef70016b5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -168,7 +168,6 @@ 重新啟動 Tasks以使變更生效 馬上重新啟動 稍後 - 找不到日曆 %s重複 每分鐘 每小時 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2f13b3669..2ce997553 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -413,7 +413,6 @@ File %1$s contained %2$s.\n\n Localization LED notification Hardware support required - No calendars found Widget settings Header settings Row settings