Merge tag '6.6.3'

pull/820/head
Alex Baker 7 years ago
commit cb4641dda1

@ -1,5 +1,15 @@
Change Log Change Log
--- ---
### 6.6.3 (2019-05-08)
* Fix backup import crash
* Fix crash when refreshing purchases
* Google Tasks synchronization bug fix
* Update translations
* Polish - mujehu
* Russian - Balbatoon
* Slovak - Cuco
### 6.6.2 (2019-04-22) ### 6.6.2 (2019-04-22)
* Backup and restore preferences * Backup and restore preferences

@ -21,8 +21,8 @@ android {
defaultConfig { defaultConfig {
testApplicationId "org.tasks.test" testApplicationId "org.tasks.test"
applicationId "org.tasks" applicationId "org.tasks"
versionCode 578 versionCode 579
versionName "6.6.2" versionName "6.6.3"
targetSdkVersion 28 targetSdkVersion 28
minSdkVersion 16 minSdkVersion 16
multiDexEnabled true multiDexEnabled true

@ -105,9 +105,13 @@ public class BillingClientImpl implements BillingClient, PurchasesUpdatedListene
purchases, purchases,
Single.fromCallable(() -> billingClient.queryPurchases(SkuType.SUBS)), Single.fromCallable(() -> billingClient.queryPurchases(SkuType.SUBS)),
(iaps, subs) -> { (iaps, subs) -> {
if (subs.getResponseCode() == BillingResponse.OK) { if (iaps.getResponseCode() != BillingResponse.OK) {
iaps.getPurchasesList().addAll(subs.getPurchasesList()); return iaps;
} }
if (subs.getResponseCode() != BillingResponse.OK) {
return subs;
}
iaps.getPurchasesList().addAll(subs.getPurchasesList());
return iaps; return iaps;
}); });
} }

@ -2,13 +2,10 @@ package org.tasks.dialogs;
import android.app.Dialog; import android.app.Dialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.webkit.MimeTypeMap;
import com.todoroo.astrid.backup.TasksXmlImporter; import com.todoroo.astrid.backup.TasksXmlImporter;
import java.io.IOException;
import javax.inject.Inject; import javax.inject.Inject;
import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking; import org.tasks.analytics.Tracking;
@ -16,21 +13,25 @@ import org.tasks.backup.TasksJsonImporter;
import org.tasks.injection.ForApplication; import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingNativeDialogFragment; import org.tasks.injection.InjectingNativeDialogFragment;
import org.tasks.injection.NativeDialogFragmentComponent; import org.tasks.injection.NativeDialogFragmentComponent;
import timber.log.Timber; import org.tasks.ui.Toaster;
public class ImportTasksDialog extends InjectingNativeDialogFragment { public class ImportTasksDialog extends InjectingNativeDialogFragment {
private static final String EXTRA_URI = "extra_uri"; private static final String EXTRA_URI = "extra_uri";
private static final String EXTRA_EXTENSION = "extra_extension";
@Inject TasksXmlImporter xmlImporter; @Inject TasksXmlImporter xmlImporter;
@Inject TasksJsonImporter jsonImporter; @Inject TasksJsonImporter jsonImporter;
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject Tracker tracker; @Inject Tracker tracker;
@Inject @ForApplication Context context; @Inject @ForApplication Context context;
@Inject Toaster toaster;
public static ImportTasksDialog newImportTasksDialog(Uri data) { public static ImportTasksDialog newImportTasksDialog(Uri data, String extension) {
ImportTasksDialog importTasksDialog = new ImportTasksDialog(); ImportTasksDialog importTasksDialog = new ImportTasksDialog();
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putParcelable(EXTRA_URI, data); args.putParcelable(EXTRA_URI, data);
args.putString(EXTRA_EXTENSION, extension);
importTasksDialog.setArguments(args); importTasksDialog.setArguments(args);
return importTasksDialog; return importTasksDialog;
} }
@ -39,18 +40,13 @@ public class ImportTasksDialog extends InjectingNativeDialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) { public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle arguments = getArguments(); Bundle arguments = getArguments();
Uri data = arguments.getParcelable(EXTRA_URI); Uri data = arguments.getParcelable(EXTRA_URI);
String extension = arguments.getString(EXTRA_EXTENSION);
ProgressDialog progressDialog = dialogBuilder.newProgressDialog(); ProgressDialog progressDialog = dialogBuilder.newProgressDialog();
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(false); progressDialog.setCancelable(false);
progressDialog.setIndeterminate(true); progressDialog.setIndeterminate(true);
progressDialog.show(); progressDialog.show();
setCancelable(false); setCancelable(false);
try {
String extension =
data.getScheme().equals(ContentResolver.SCHEME_CONTENT)
? MimeTypeMap.getSingleton()
.getExtensionFromMimeType(context.getContentResolver().getType(data))
: MimeTypeMap.getFileExtensionFromUrl(data.getPath());
switch (extension) { switch (extension) {
case "json": case "json":
jsonImporter.importTasks(getActivity(), data, progressDialog); jsonImporter.importTasks(getActivity(), data, progressDialog);
@ -61,13 +57,9 @@ public class ImportTasksDialog extends InjectingNativeDialogFragment {
tracker.reportEvent(Tracking.Events.IMPORT_XML); tracker.reportEvent(Tracking.Events.IMPORT_XML);
break; break;
default: default:
throw new IOException("Invalid file type: " + extension); throw new RuntimeException("Invalid extension: " + extension);
} }
return progressDialog; return progressDialog;
} catch (IOException e) {
Timber.e(e);
}
return null;
} }
@Override @Override

@ -24,6 +24,7 @@ import android.webkit.MimeTypeMap;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.documentfile.provider.DocumentFile; import androidx.documentfile.provider.DocumentFile;
import com.google.common.base.Strings;
import com.google.common.io.ByteStreams; import com.google.common.io.ByteStreams;
import com.google.common.io.Files; import com.google.common.io.Files;
import java.io.File; import java.io.File;
@ -144,6 +145,24 @@ public class FileHelper {
return null; return null;
} }
public static String getExtension(Context context, Uri uri) {
if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
String extension =
MimeTypeMap.getSingleton()
.getExtensionFromMimeType(context.getContentResolver().getType(uri));
if (!Strings.isNullOrEmpty(extension)) {
return extension;
}
}
String extension = MimeTypeMap.getFileExtensionFromUrl(uri.getPath());
if (!Strings.isNullOrEmpty(extension)) {
return extension;
}
return Files.getFileExtension(getFilename(context, uri));
}
public static String getMimeType(Context context, Uri uri) { public static String getMimeType(Context context, Uri uri) {
String filename = getFilename(context, uri); String filename = getFilename(context, uri);
String extension = Files.getFileExtension(filename); String extension = Files.getFileExtension(filename);

@ -193,9 +193,6 @@ public class GoogleTaskSynchronizer {
break; break;
} }
eTag = remoteLists.getEtag(); eTag = remoteLists.getEtag();
if (!Strings.isNullOrEmpty(eTag) && eTag.equals(account.getEtag())) {
return;
}
List<TaskList> items = remoteLists.getItems(); List<TaskList> items = remoteLists.getItems();
if (items != null) { if (items != null) {
gtaskLists.addAll(items); gtaskLists.addAll(items);

@ -443,9 +443,15 @@ public class BasicPreferences extends InjectingPreferenceActivity
} }
} else if (requestCode == REQUEST_PICKER) { } else if (requestCode == REQUEST_PICKER) {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
newImportTasksDialog(data.getData()).show(getFragmentManager(), FRAG_TAG_IMPORT_TASKS); Uri uri = data.getData();
String extension = FileHelper.getExtension(this, uri);
if (!("json".equalsIgnoreCase(extension) || "xml".equalsIgnoreCase(extension))) {
toaster.longToast(R.string.invalid_backup_file);
} else {
newImportTasksDialog(uri, extension).show(getFragmentManager(), FRAG_TAG_IMPORT_TASKS);
result.putBoolean(AppearancePreferences.EXTRA_RESTART, true); result.putBoolean(AppearancePreferences.EXTRA_RESTART, true);
} }
}
} else if (requestCode == RC_DRIVE_BACKUP) { } else if (requestCode == RC_DRIVE_BACKUP) {
boolean success = resultCode == RESULT_OK; boolean success = resultCode == RESULT_OK;
((CheckBoxPreference) findPreference(R.string.p_google_drive_backup)).setChecked(success); ((CheckBoxPreference) findPreference(R.string.p_google_drive_backup)).setChecked(success);

@ -21,6 +21,10 @@ public class Toaster {
this.locale = locale; this.locale = locale;
} }
public void longToast(@StringRes int resId, String arg) {
longToast(context.getString(resId, arg));
}
public void longToast(@StringRes int resId, int number) { public void longToast(@StringRes int resId, int number) {
longToast(context.getString(resId, locale.formatNumber(number))); longToast(context.getString(resId, locale.formatNumber(number)));
} }

@ -57,12 +57,14 @@
<string name="day_before_due">Dzień przed terminem</string> <string name="day_before_due">Dzień przed terminem</string>
<string name="week_before_due">Tydzień przed terminem</string> <string name="week_before_due">Tydzień przed terminem</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as due_date, just without capitalization." name="TEA_hideUntil_due_date">w terminie</string> <string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as due_date, just without capitalization." name="TEA_hideUntil_due_date">w terminie</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as due_time, just without capitalization." name="TEA_hideUntil_due_time">o czasie</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as day_before_due, just without capitalization." name="TEA_hideUntil_day_before_due">Dzień przed terminem</string> <string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as day_before_due, just without capitalization." name="TEA_hideUntil_day_before_due">Dzień przed terminem</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as week_before_due, just without capitalization." name="TEA_hideUntil_week_before_due">tydzień przed terminem</string> <string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as week_before_due, just without capitalization." name="TEA_hideUntil_week_before_due">tydzień przed terminem</string>
<string name="TEA_control_when">Kiedy</string> <string name="TEA_control_when">Kiedy</string>
<string name="TEA_control_repeat">Powtórz</string> <string name="TEA_control_repeat">Powtórz</string>
<string name="TEA_control_gcal">Kalendarz</string> <string name="TEA_control_gcal">Kalendarz</string>
<string name="TEA_control_importance">Priorytet</string> <string name="TEA_control_importance">Priorytet</string>
<string name="TEA_control_location">Lokalizacja</string>
<string name="TEA_control_notes">Opis</string> <string name="TEA_control_notes">Opis</string>
<string name="TEA_control_files">Pliki</string> <string name="TEA_control_files">Pliki</string>
<string name="TEA_control_reminders">Przypomnienia</string> <string name="TEA_control_reminders">Przypomnienia</string>
@ -110,6 +112,8 @@
<string name="EPr_default_importance_title">Domyślny priorytet</string> <string name="EPr_default_importance_title">Domyślny priorytet</string>
<string name="EPr_default_hideUntil_title">Ukrywanie zadania (domyślnie)</string> <string name="EPr_default_hideUntil_title">Ukrywanie zadania (domyślnie)</string>
<string name="EPr_default_reminders_title">Przypomnienia (domyślnie)</string> <string name="EPr_default_reminders_title">Przypomnienia (domyślnie)</string>
<string name="EPr_default_location_reminder_title">Domyślne powiadomienia o lokalizacji</string>
<string name="EPr_default_location_radius">Domyślny promień</string>
<string name="EPr_default_reminders_mode_title">Domyślny dzwonek/wibracja</string> <string name="EPr_default_reminders_mode_title">Domyślny dzwonek/wibracja</string>
<string name="priority_high">Ważne</string> <string name="priority_high">Ważne</string>
<string name="priority_medium">Średnio ważne</string> <string name="priority_medium">Średnio ważne</string>
@ -121,6 +125,9 @@
<string name="at_deadline">W dniu terminu nieprzekraczalnego</string> <string name="at_deadline">W dniu terminu nieprzekraczalnego</string>
<string name="at_deadline_or_overdue">W nieprzekraczalnym terminie lub gdy zaległe</string> <string name="at_deadline_or_overdue">W nieprzekraczalnym terminie lub gdy zaległe</string>
<string name="no_reminders">Brak przypomnień</string> <string name="no_reminders">Brak przypomnień</string>
<string name="default_location_reminder_on_arrival">Po przybyciu</string>
<string name="default_location_reminder_on_departure">Przy wyruszaniu</string>
<string name="default_location_reminder_on_arrival_or_departure">Po przybyciu i przy wyruszeniu</string>
<string name="BFE_Active">Moje zadania</string> <string name="BFE_Active">Moje zadania</string>
<string name="BFE_Recent">Niedawno zmodyfikowane</string> <string name="BFE_Recent">Niedawno zmodyfikowane</string>
<string name="CFA_universe_all">Aktywne zadania</string> <string name="CFA_universe_all">Aktywne zadania</string>
@ -203,8 +210,8 @@
<item quantity="other">%d zadań</item> <item quantity="other">%d zadań</item>
</plurals> </plurals>
<plurals name="repeat_times"> <plurals name="repeat_times">
<item quantity="one">czas</item> <item quantity="one">raz</item>
<item quantity="other">times</item> <item quantity="other">razy</item>
</plurals> </plurals>
<plurals name="repeat_minutes"> <plurals name="repeat_minutes">
<item quantity="one">minuta</item> <item quantity="one">minuta</item>
@ -240,7 +247,7 @@
</plurals> </plurals>
<plurals name="repeat_months"> <plurals name="repeat_months">
<item quantity="one">miesiąc</item> <item quantity="one">miesiąc</item>
<item quantity="other">miesiący</item> <item quantity="other">miesięcy</item>
</plurals> </plurals>
<plurals name="repeat_n_months"> <plurals name="repeat_n_months">
<item quantity="one">%d miesiąc</item> <item quantity="one">%d miesiąc</item>
@ -255,11 +262,13 @@
<item quantity="other">%d lat</item> <item quantity="other">%d lat</item>
</plurals> </plurals>
<string name="repeat_type_due">w terminie</string> <string name="repeat_type_due">w terminie</string>
<string name="repeat_type_completion">data zakoµczenia</string> <string name="repeat_type_completion">data zakończenia</string>
<string name="repeat_forever">Powtarzaj bez końca</string> <string name="repeat_forever">Powtarzaj bez końca</string>
<string name="repeat_until">Powtarzaj do %s</string> <string name="repeat_until">Powtarzaj do %s</string>
<string name="repeat_number_of_times">Powtarzaj ilość razy.</string> <string name="repeat_number_of_times">Powtarzaj ilość razy.</string>
<string name="repeat_occurs">Występuje</string>
<string name="repeat_snackbar">%1$s przełożone na %2$s</string> <string name="repeat_snackbar">%1$s przełożone na %2$s</string>
<string comment="display new due date and time in snackbar after completing repeating task, e.g. \'Tomorrow at 8 AM\' or \'21 May at 8 AM\'" name="repeat_snackbar_time">%1$s o %2$s</string>
<string name="new_tag">Stwórz nowy tag</string> <string name="new_tag">Stwórz nowy tag</string>
<string name="new_list">Utwórz nową listę</string> <string name="new_list">Utwórz nową listę</string>
<string name="tag_FEx_untagged">Na żadnej liście</string> <string name="tag_FEx_untagged">Na żadnej liście</string>
@ -298,6 +307,7 @@
<string name="quiet_hours">Ciche gdzoiny</string> <string name="quiet_hours">Ciche gdzoiny</string>
<string name="attachment_directory">Katalog załączników</string> <string name="attachment_directory">Katalog załączników</string>
<string name="backup_directory">Katalog kopii zapasowych</string> <string name="backup_directory">Katalog kopii zapasowych</string>
<string name="google_drive_backup">Kopiuj do Dysku Google</string>
<string name="miscellaneous">Różne</string> <string name="miscellaneous">Różne</string>
<string name="synchronization">Synchronizacja</string> <string name="synchronization">Synchronizacja</string>
<string name="enabled">Włączone</string> <string name="enabled">Włączone</string>
@ -320,6 +330,7 @@
<string name="pick_a_date_and_time">Wybierz datę i czas</string> <string name="pick_a_date_and_time">Wybierz datę i czas</string>
<string name="when_overdue">Gdy zaległe</string> <string name="when_overdue">Gdy zaległe</string>
<string name="when_due">Gdy w terminie</string> <string name="when_due">Gdy w terminie</string>
<string name="geofence_radius">Promień</string>
<string name="tags">Tagi</string> <string name="tags">Tagi</string>
<string name="filters">Filtry</string> <string name="filters">Filtry</string>
<string name="date_shortcut_hour">Na godzinę</string> <string name="date_shortcut_hour">Na godzinę</string>
@ -352,6 +363,7 @@
<string name="send_anonymous_statistics">Ulepsz Tasks</string> <string name="send_anonymous_statistics">Ulepsz Tasks</string>
<string name="send_anonymous_statistics_summary">Wyślij anonimowe statyki użycia i raporty o awariach celem ulepszenia Tasks. Żadne prywatne dane nie będą gromadzone.</string> <string name="send_anonymous_statistics_summary">Wyślij anonimowe statyki użycia i raporty o awariach celem ulepszenia Tasks. Żadne prywatne dane nie będą gromadzone.</string>
<string name="tag_already_exists">Tag już istnieje</string> <string name="tag_already_exists">Tag już istnieje</string>
<string name="duplicate_name">Duplikuj nazwę</string>
<string name="name_cannot_be_empty">Nazwa nie może być pusta</string> <string name="name_cannot_be_empty">Nazwa nie może być pusta</string>
<string name="username_required">Wymagana nazwa użytkownika</string> <string name="username_required">Wymagana nazwa użytkownika</string>
<string name="password_required">Wymagane hasło</string> <string name="password_required">Wymagane hasło</string>
@ -418,6 +430,7 @@
<string name="date_and_time">Data i czas</string> <string name="date_and_time">Data i czas</string>
<string name="start_of_week">Początek tygodnia</string> <string name="start_of_week">Początek tygodnia</string>
<string name="use_locale_default">Użyj domyślnych</string> <string name="use_locale_default">Użyj domyślnych</string>
<string name="use_native_datetime_pickers">Użyj natywnych narzędzi wyboru daty i czasu</string>
<string name="add_account">Dodaj konto</string> <string name="add_account">Dodaj konto</string>
<string name="user">Użytkownik</string> <string name="user">Użytkownik</string>
<string name="password">Hasło</string> <string name="password">Hasło</string>
@ -433,7 +446,9 @@
<string name="repeats_single">Powtarza się %s</string> <string name="repeats_single">Powtarza się %s</string>
<string name="repeats_single_on">Powtarza się %1$s w: %2$s</string> <string name="repeats_single_on">Powtarza się %1$s w: %2$s</string>
<string name="repeats_single_until">Powtarza się %1$s do %2$s</string> <string name="repeats_single_until">Powtarza się %1$s do %2$s</string>
<string name="repeats_single_number_of_times">Powtarzane %1$s, występuje %2$d %3$s</string>
<string name="repeats_single_on_until">Powtarza się %1$s w %2$s do %3$s</string> <string name="repeats_single_on_until">Powtarza się %1$s w %2$s do %3$s</string>
<string name="repeats_single_on_number_of_times">Powtarzane %1$s w %2$s, występuje %3$d %4$s</string>
<string name="repeats_minutely">co minutę</string> <string name="repeats_minutely">co minutę</string>
<string name="repeats_hourly">co godzinę</string> <string name="repeats_hourly">co godzinę</string>
<string name="repeats_daily">raz dziennie</string> <string name="repeats_daily">raz dziennie</string>
@ -441,12 +456,19 @@
<string name="repeats_monthly">raz w miesiącu</string> <string name="repeats_monthly">raz w miesiącu</string>
<string name="repeats_yearly">raz w roku</string> <string name="repeats_yearly">raz w roku</string>
<string name="repeats_plural">Powtarzaj co %s</string> <string name="repeats_plural">Powtarzaj co %s</string>
<string name="repeats_plural_on">Powtarzane co każde %1$s w %2$s</string>
<string name="repeats_plural_until">Powtarzane co każde %1$s aż do %2$s</string>
<string name="repeats_plural_number_of_times">Powtarzane co każde %1$s, występuje %2$d %3$s</string>
<string name="repeats_plural_on_until">Powtarzane co każde %1$s w %2$s aż do %3$s</string>
<string name="repeats_plural_on_number_of_times">Powtarzane co każde %1$s w %2$s, występuje %3$d %4$s</string>
<string name="dont_add_to_calendar">Nie dodawaj do kalendarza</string> <string name="dont_add_to_calendar">Nie dodawaj do kalendarza</string>
<string name="default_calendar">Domyślny kalendarz</string> <string name="default_calendar">Domyślny kalendarz</string>
<string name="badges_description">Wyświetl liczbę zadań na ikonie Tasks. Nie wszystkie programy wspierają plakietki.</string> <string name="badges_description">Wyświetl liczbę zadań na ikonie Tasks. Nie wszystkie programy wspierają plakietki.</string>
<string name="bundle_notifications_summary">Wyświetlaj wiele powiadomień jako jedno powiadomienie</string>
<string name="repeat_monthly_same_day_each_month">tego samego dnia każdego miesiąca</string> <string name="repeat_monthly_same_day_each_month">tego samego dnia każdego miesiąca</string>
<string name="dont_sync">Nie synchronizowane</string> <string name="dont_sync">Nie synchronizowane</string>
<string name="repeat_monthly_every_day_of_nth_week">każdy %1$s %2$s</string> <string name="repeat_monthly_every_day_of_nth_week">każdy %1$s %2$s</string>
<string name="repeat_monthly_on_every_day_of_nth_week">co każde %1$s %2$s</string>
<string name="repeat_monthly_first_week">pierwszy</string> <string name="repeat_monthly_first_week">pierwszy</string>
<string name="repeat_monthly_second_week">drugi</string> <string name="repeat_monthly_second_week">drugi</string>
<string name="repeat_monthly_third_week">trzeci</string> <string name="repeat_monthly_third_week">trzeci</string>
@ -458,22 +480,47 @@
<string name="network_error">Błąd połączenia</string> <string name="network_error">Błąd połączenia</string>
<string name="background_sync_unmetered_only">Tylko niezliczane połączenia</string> <string name="background_sync_unmetered_only">Tylko niezliczane połączenia</string>
<string name="upgrade_to_pro">Upgrade do pro</string> <string name="upgrade_to_pro">Upgrade do pro</string>
<string name="manage_subscription">Zarządzaj subskrypcją</string>
<string name="refresh_purchases">Odśwież zakupy</string> <string name="refresh_purchases">Odśwież zakupy</string>
<string name="button_subscribed">Subskrybowane</string> <string name="button_subscribed">Subskrybowane</string>
<string name="button_subscribe">Zasubskrybuj</string> <string name="button_subscribe">Zasubskrybuj</string>
<string name="button_more_info">Więcej informacji</string> <string name="button_more_info">Więcej informacji</string>
<string name="owned">Posiadane</string> <string name="owned">Posiadane</string>
<string name="error_billing_unavailable">Płatność niedostępna. Upewnij się, że aplikacja Google Play jest poprawnie skonfigurowana.</string>
<string name="error_billing_default">Płatność niedostępna. Sprawdź swoje urządzenie.</string>
<string name="about">O</string> <string name="about">O</string>
<string name="license_summary">Tasks jest aplikacją darmową z otwartym kodem źródłowym, rozprowadzaną na licencją GNU General Public License v3.0</string>
<string name="themes">Dodatkowe motywy</string> <string name="themes">Dodatkowe motywy</string>
<string name="pro_caldav_sync">Synchronizacja CalDAV</string> <string name="pro_caldav_sync">Synchronizacja CalDAV</string>
<string name="pro_multiple_google_task_accounts">Wiele kont Google Task</string> <string name="pro_multiple_google_task_accounts">Wiele kont Google Task</string>
<string name="pro_google_places_search">Wyszukiwanie w Google Places</string>
<string name="requires_pro_subscription">Wymaga subskrypcji pro</string> <string name="requires_pro_subscription">Wymaga subskrypcji pro</string>
<string name="logout">Wyloguj</string> <string name="logout">Wyloguj</string>
<string name="logout_warning">Wyloguj z %s? Wszystkie dane z tego konta zostaną usunięte z urządzenia</string> <string name="logout_warning">Wyloguj z %s? Wszystkie dane z tego konta zostaną usunięte z urządzenia</string>
<string name="cannot_access_account">Brak dostępu do konta</string> <string name="cannot_access_account">Brak dostępu do konta</string>
<string name="reinitialize_account">Powiąż ponownie</string>
<string name="action_create_new_task">Stwórz nowe zadanie</string> <string name="action_create_new_task">Stwórz nowe zadanie</string>
<string name="show_description">Pokaż opis</string> <string name="show_description">Pokaż opis</string>
<string name="show_full_description">Pokaż pełen opis</string> <string name="show_full_description">Pokaż pełen opis</string>
<string name="linkify">Pokaż linki</string> <string name="linkify">Pokaż linki</string>
<string name="linkify_description">Dodaj linki do stron WWW, adresów i numerów telefonów</string> <string name="linkify_description">Dodaj linki do stron WWW, adresów i numerów telefonów</string>
<string name="location_remind_arrival">Przypomnij po przybyciu</string>
<string name="location_remind_departure">Przypomnij przy wyruszaniu</string>
<string name="visit_website">Wejdź na stronę</string>
<string name="location_arrived">Przybyto do %s</string>
<string name="location_departed">Wyruszono z %s</string>
<string name="building_notifications">Generowanie powiadomień</string>
<string name="choose_a_location">Wybierz lokalizację</string>
<string name="pick_this_location">Ustaw wybraną lokalizację</string>
<string name="or_choose_a_location">Lub wybierz lokalizację</string>
<string name="map_provider">Dostawca map</string>
<string name="map_search_provider">Silnik wyszukiwania</string>
<string name="missing_permissions">Brakujące uprawnienia</string>
<string name="location_permission_required_geofence">Uprawnienia lokalizacji są wymagane do powiadomień o lokalizacji</string>
<string name="location_permission_required_location">Uprawnienia lokalizacji są wymagane do ustalenia twojej aktualnej lokalizacji</string>
<string name="open_map">Otwórz mapę</string>
<string name="choose_new_location">Wybierz nową lokalizację</string>
<string name="third_party_licenses">Licencje innych podmiotów</string>
<string name="changelog">Lista zmian</string>
<string name="version_string">Wersja %s</string>
</resources> </resources>

@ -511,6 +511,15 @@
<string name="linkify_description">Добавить ссылки на сайты, адреса и номера телефонов</string> <string name="linkify_description">Добавить ссылки на сайты, адреса и номера телефонов</string>
<string name="location_remind_arrival">Напомнить по прибытии</string> <string name="location_remind_arrival">Напомнить по прибытии</string>
<string name="location_remind_departure">Напомнить покинув место</string> <string name="location_remind_departure">Напомнить покинув место</string>
<string name="visit_website">Посетить вебсайт</string>
<string name="location_arrived">Прибытие в %s</string> <string name="location_arrived">Прибытие в %s</string>
<string name="location_departed">Покинули %s</string> <string name="location_departed">Покинули %s</string>
<string name="choose_a_location">Выбрать местоположение</string>
<string name="pick_this_location">Выбрать это местоположение</string>
<string name="or_choose_a_location">Или выбрать местоположение</string>
<string name="map_provider">Поставщик системы карт</string>
<string name="map_search_provider">Поставщик системы поиска</string>
<string name="missing_permissions">Отсутствующие разрешения</string>
<string name="changelog">Список изменений</string>
<string name="version_string">Версия %s</string>
</resources> </resources>

@ -30,6 +30,8 @@
<string name="TLA_menu_search">Hľadať</string> <string name="TLA_menu_search">Hľadať</string>
<string name="TLA_menu_settings">Nastavenia</string> <string name="TLA_menu_settings">Nastavenia</string>
<string name="TAd_actionEditTask">Upraviť</string> <string name="TAd_actionEditTask">Upraviť</string>
<string name="action_call">Volať</string>
<string name="action_open">Otvoriť</string>
<string name="SSD_sort_drag">Ručne triediť s podúlohami</string> <string name="SSD_sort_drag">Ručne triediť s podúlohami</string>
<string name="SSD_sort_auto">Chytré triedenie</string> <string name="SSD_sort_auto">Chytré triedenie</string>
<string name="SSD_sort_alpha">Podľa názvu</string> <string name="SSD_sort_alpha">Podľa názvu</string>
@ -54,10 +56,15 @@
<string name="due_time">Čas dokončenia</string> <string name="due_time">Čas dokončenia</string>
<string name="day_before_due">Deň pre ukončením</string> <string name="day_before_due">Deň pre ukončením</string>
<string name="week_before_due">Týždeň pred ukončením</string> <string name="week_before_due">Týždeň pred ukončením</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as due_date, just without capitalization." name="TEA_hideUntil_due_date">termín deň</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as due_time, just without capitalization." name="TEA_hideUntil_due_time">termín čas</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as day_before_due, just without capitalization." name="TEA_hideUntil_day_before_due">o deň skôr</string>
<string comment="Used for displaying the chosen hide until value in the task edit screen. Should be the same as week_before_due, just without capitalization." name="TEA_hideUntil_week_before_due">o týždeň skôr</string>
<string name="TEA_control_when">Kedy</string> <string name="TEA_control_when">Kedy</string>
<string name="TEA_control_repeat">Opakovať</string> <string name="TEA_control_repeat">Opakovať</string>
<string name="TEA_control_gcal">Kalendár</string> <string name="TEA_control_gcal">Kalendár</string>
<string name="TEA_control_importance">Priorita</string> <string name="TEA_control_importance">Priorita</string>
<string name="TEA_control_location">Poloha</string>
<string name="TEA_control_notes">Popis</string> <string name="TEA_control_notes">Popis</string>
<string name="TEA_control_files">Prílohy</string> <string name="TEA_control_files">Prílohy</string>
<string name="TEA_control_reminders">Pripomienky</string> <string name="TEA_control_reminders">Pripomienky</string>
@ -106,6 +113,7 @@
<string name="EPr_default_hideUntil_title">Predvolené Skryť do</string> <string name="EPr_default_hideUntil_title">Predvolené Skryť do</string>
<string name="EPr_default_reminders_title">Predvolené pripomienky</string> <string name="EPr_default_reminders_title">Predvolené pripomienky</string>
<string name="EPr_default_location_reminder_title">Východzie upozornenia podľa polohy</string> <string name="EPr_default_location_reminder_title">Východzie upozornenia podľa polohy</string>
<string name="EPr_default_location_radius">Predvolený polomer</string>
<string name="EPr_default_reminders_mode_title">Východzie vyzváňanie/vybrovanie</string> <string name="EPr_default_reminders_mode_title">Východzie vyzváňanie/vybrovanie</string>
<string name="priority_high">Vysoká</string> <string name="priority_high">Vysoká</string>
<string name="priority_medium">Stredná</string> <string name="priority_medium">Stredná</string>
@ -149,6 +157,7 @@
<string name="gcal_completed_title">%s (dokončené)</string> <string name="gcal_completed_title">%s (dokončené)</string>
<string name="CFC_gtasks_list_text">V zozname: ?</string> <string name="CFC_gtasks_list_text">V zozname: ?</string>
<string name="CFC_gtasks_list_name">V zozname GTasks...</string> <string name="CFC_gtasks_list_name">V zozname GTasks...</string>
<string name="CFC_caldav_list_name">V zozname CalDAV …</string>
<string name="gtasks_GTA_clear_completed">Vymazať dokončené</string> <string name="gtasks_GTA_clear_completed">Vymazať dokončené</string>
<string name="gtasks_GLA_authenticating">Overovanie...</string> <string name="gtasks_GLA_authenticating">Overovanie...</string>
<string name="gtasks_GLA_errorIOAuth">Prepáč, nastal problém v komunikácii s Google serverom. Prosím, skús to znovu neskôr.</string> <string name="gtasks_GLA_errorIOAuth">Prepáč, nastal problém v komunikácii s Google serverom. Prosím, skús to znovu neskôr.</string>
@ -260,6 +269,7 @@
<string name="repeat_number_of_times">Opakovať určitý počet krát</string> <string name="repeat_number_of_times">Opakovať určitý počet krát</string>
<string name="repeat_occurs">Vyskytuje sa</string> <string name="repeat_occurs">Vyskytuje sa</string>
<string name="repeat_snackbar">%1$s preložené na %2$s</string> <string name="repeat_snackbar">%1$s preložené na %2$s</string>
<string comment="display new due date and time in snackbar after completing repeating task, e.g. \'Tomorrow at 8 AM\' or \'21 May at 8 AM\'" name="repeat_snackbar_time">%1$s, %2$s</string>
<string name="new_tag">Vytvoriť nový štítok</string> <string name="new_tag">Vytvoriť nový štítok</string>
<string name="new_list">Vytvoriť nový zoznam</string> <string name="new_list">Vytvoriť nový zoznam</string>
<string name="tag_FEx_untagged">Nezaradené</string> <string name="tag_FEx_untagged">Nezaradené</string>
@ -298,6 +308,7 @@
<string name="quiet_hours">Čas ticha</string> <string name="quiet_hours">Čas ticha</string>
<string name="attachment_directory">Priečinok pre prílohy</string> <string name="attachment_directory">Priečinok pre prílohy</string>
<string name="backup_directory">Zalóhovať adresár</string> <string name="backup_directory">Zalóhovať adresár</string>
<string name="google_drive_backup">Kopírovať na Disk Google</string>
<string name="miscellaneous">Rôzne</string> <string name="miscellaneous">Rôzne</string>
<string name="synchronization">Synchronizácia</string> <string name="synchronization">Synchronizácia</string>
<string name="enabled">Povolené</string> <string name="enabled">Povolené</string>
@ -311,6 +322,7 @@
<string name="quiet_hours_summary">Žiadne upozornenia počas obdobia ticha</string> <string name="quiet_hours_summary">Žiadne upozornenia počas obdobia ticha</string>
<string name="TLA_menu_donate">Darovať</string> <string name="TLA_menu_donate">Darovať</string>
<string name="add_reminder">Pridať pripomienku</string> <string name="add_reminder">Pridať pripomienku</string>
<string name="add_location">Pridaj polohu</string>
<string name="remove">Odstrániť</string> <string name="remove">Odstrániť</string>
<string name="randomly_once">Raz náhodne</string> <string name="randomly_once">Raz náhodne</string>
<string name="randomly">Náhodne</string> <string name="randomly">Náhodne</string>
@ -319,6 +331,7 @@
<string name="pick_a_date_and_time">Vybrať dátum a čas</string> <string name="pick_a_date_and_time">Vybrať dátum a čas</string>
<string name="when_overdue">Keď po termíne</string> <string name="when_overdue">Keď po termíne</string>
<string name="when_due">Keď v termíne</string> <string name="when_due">Keď v termíne</string>
<string name="geofence_radius">Polomer</string>
<string name="tags">Štítky</string> <string name="tags">Štítky</string>
<string name="filters">Filtre</string> <string name="filters">Filtre</string>
<string name="date_shortcut_hour">Za hodinu</string> <string name="date_shortcut_hour">Za hodinu</string>
@ -366,6 +379,7 @@
<string name="theme">Téma</string> <string name="theme">Téma</string>
<string name="color">Farba</string> <string name="color">Farba</string>
<string name="accent">Zvýraznenie </string> <string name="accent">Zvýraznenie </string>
<string name="launcher_icon">Ikona</string>
<string name="theme_red">Červená</string> <string name="theme_red">Červená</string>
<string name="theme_pink">Ružová</string> <string name="theme_pink">Ružová</string>
<string name="theme_purple">Fialová</string> <string name="theme_purple">Fialová</string>
@ -387,6 +401,7 @@
<string name="theme_blue_grey">Modro šedá</string> <string name="theme_blue_grey">Modro šedá</string>
<string name="theme_black">Čierna</string> <string name="theme_black">Čierna</string>
<string name="theme_dark_grey">Tmavo šedá</string> <string name="theme_dark_grey">Tmavo šedá</string>
<string name="theme_white">Biela</string>
<string name="theme_light">Svetlá</string> <string name="theme_light">Svetlá</string>
<string name="theme_dark">Tmavá</string> <string name="theme_dark">Tmavá</string>
<string name="theme_wallpaper">Tapeta</string> <string name="theme_wallpaper">Tapeta</string>
@ -467,6 +482,7 @@
<string name="background_sync_unmetered_only">Iba na bezplatných pripojeniach</string> <string name="background_sync_unmetered_only">Iba na bezplatných pripojeniach</string>
<string name="upgrade">Nová verzia</string> <string name="upgrade">Nová verzia</string>
<string name="upgrade_to_pro">Rozšíriť na verziu pro</string> <string name="upgrade_to_pro">Rozšíriť na verziu pro</string>
<string name="manage_subscription">Platená verzia</string>
<string name="refresh_purchases">Obnoviť nákupy</string> <string name="refresh_purchases">Obnoviť nákupy</string>
<string name="button_subscribed">Prihlásený</string> <string name="button_subscribed">Prihlásený</string>
<string name="button_subscribe">Prihlásiť sa</string> <string name="button_subscribe">Prihlásiť sa</string>
@ -480,9 +496,37 @@ Google Play je správne nastavená</string>
<string name="themes">Ďaľšie témy</string> <string name="themes">Ďaľšie témy</string>
<string name="pro_caldav_sync">CaIDAV synchronizácia</string> <string name="pro_caldav_sync">CaIDAV synchronizácia</string>
<string name="pro_multiple_google_task_accounts">Viac účtov Google Task</string> <string name="pro_multiple_google_task_accounts">Viac účtov Google Task</string>
<string name="pro_google_places_search">Miesta Google vyhľadanie</string>
<string name="pro_tasker_plugins">Zásuvný modul Tasker</string> <string name="pro_tasker_plugins">Zásuvný modul Tasker</string>
<string name="pro_dashclock_extension">Rozšírenie Dashclock</string> <string name="pro_dashclock_extension">Rozšírenie Dashclock</string>
<string name="requires_pro_subscription">Vyžaduje platenú verziu pro</string> <string name="requires_pro_subscription">Vyžaduje platenú verziu pro</string>
<string name="logout">Odhlásiť sa</string>
<string name="logout_warning">Odhlásiť sa o %s? Všetky údaje tohto účtu budú odstránené z Vášho zariadenia</string>
<string name="cannot_access_account">Chyba v prístupe k účtu</string>
<string name="reinitialize_account">Znovu aktivovať</string>
<string name="action_create_new_task">Vytvoriť novú úlohu</string>
<string name="show_description">Ukázať popis</string>
<string name="show_full_description">Ukázať plný popis</string>
<string name="linkify">Ukázať prepojenia</string>
<string name="linkify_description">Pridať prepojenia do stránok, adries a telefónnych čísel</string>
<string name="show_list_indicators">Ukázať zoznamy</string>
<string name="location_remind_arrival">Pripomenúť pri príchode</string> <string name="location_remind_arrival">Pripomenúť pri príchode</string>
<string name="location_remind_departure">Pripomenúť pri odchode</string> <string name="location_remind_departure">Pripomenúť pri odchode</string>
<string name="visit_website">Navštíviť stránky</string>
<string name="location_arrived">Príchod o %s</string>
<string name="location_departed">Odchod o %s</string>
<string name="building_notifications">Všeobecné upozornenia</string>
<string name="choose_a_location">Vybrať polohu</string>
<string name="pick_this_location">Vybrať túto polohu</string>
<string name="or_choose_a_location">Alebo vybrať polohu ručne</string>
<string name="map_provider">Mapy poskytuje</string>
<string name="map_search_provider">Vyhľadávanie poskytuje</string>
<string name="missing_permissions">Chýbajúce oprávnenia</string>
<string name="location_permission_required_geofence">Pre upozornenia podľa polohy sú potrebné povolenia</string>
<string name="location_permission_required_location">Pre učenie súčasnej polohy sú potrebné povolenia</string>
<string name="open_map">Otvoriť mapu</string>
<string name="choose_new_location">Zvoliť novú polohu</string>
<string name="third_party_licenses">Licencie tretích strán</string>
<string name="changelog">Zoznam zmien</string>
<string name="version_string">Verzia %s</string>
</resources> </resources>

@ -886,4 +886,5 @@ File %1$s contained %2$s.\n\n
<string name="third_party_licenses">Third-party licenses</string> <string name="third_party_licenses">Third-party licenses</string>
<string name="changelog">Changelog</string> <string name="changelog">Changelog</string>
<string name="version_string">Version %s</string> <string name="version_string">Version %s</string>
<string name="invalid_backup_file">Invalid backup file</string>
</resources> </resources>

Loading…
Cancel
Save