Use ShortcutBadger

pull/574/head
Alex Baker 7 years ago
parent 0ef96ad56d
commit 78deeb8e26

@ -147,6 +147,7 @@ dependencies {
compile ('com.wdullaer:materialdatetimepicker:3.2.3') { compile ('com.wdullaer:materialdatetimepicker:3.2.3') {
exclude group: 'com.android.support', module: 'support-v4' exclude group: 'com.android.support', module: 'support-v4'
} }
compile "me.leolin:ShortcutBadger:1.1.18@aar"
googleplayCompile "com.google.android.gms:play-services-location:${GPS_VERSION}" googleplayCompile "com.google.android.gms:play-services-location:${GPS_VERSION}"
googleplayCompile "com.google.android.gms:play-services-analytics:${GPS_VERSION}" googleplayCompile "com.google.android.gms:play-services-analytics:${GPS_VERSION}"

@ -66,7 +66,6 @@ public class InventoryHelper implements IabBroadcastReceiver.IabBroadcastListene
if (result.isSuccess()) { if (result.isSuccess()) {
inventory = inv; inventory = inv;
checkPurchase(R.string.sku_tasker, R.string.p_purchased_tasker); checkPurchase(R.string.sku_tasker, R.string.p_purchased_tasker);
checkPurchase(R.string.sku_tesla_unread, R.string.p_purchased_tesla_unread);
checkPurchase(R.string.sku_dashclock, R.string.p_purchased_dashclock); checkPurchase(R.string.sku_dashclock, R.string.p_purchased_dashclock);
checkPurchase(R.string.sku_themes, R.string.p_purchased_themes); checkPurchase(R.string.sku_themes, R.string.p_purchased_themes);
localBroadcastManager.broadcastRefresh(); localBroadcastManager.broadcastRefresh();

@ -69,7 +69,6 @@ public class PurchaseHelper implements IabHelper.OnIabSetupFinishedListener {
final List<Purchase> purchases = new ArrayList<>(); final List<Purchase> purchases = new ArrayList<>();
final Purchase tasker = inventory.getPurchase(context.getString(R.string.sku_tasker)); final Purchase tasker = inventory.getPurchase(context.getString(R.string.sku_tasker));
final Purchase dashclock = inventory.getPurchase(context.getString(R.string.sku_dashclock)); final Purchase dashclock = inventory.getPurchase(context.getString(R.string.sku_dashclock));
final Purchase teslaUnread = inventory.getPurchase(context.getString(R.string.sku_tesla_unread));
final Purchase themes = inventory.getPurchase(context.getString(R.string.sku_themes)); final Purchase themes = inventory.getPurchase(context.getString(R.string.sku_themes));
if (tasker != null) { if (tasker != null) {
purchases.add(tasker); purchases.add(tasker);
@ -77,9 +76,6 @@ public class PurchaseHelper implements IabHelper.OnIabSetupFinishedListener {
if (dashclock != null) { if (dashclock != null) {
purchases.add(dashclock); purchases.add(dashclock);
} }
if (teslaUnread != null) {
purchases.add(teslaUnread);
}
if (themes != null) { if (themes != null) {
purchases.add(themes); purchases.add(themes);
} }
@ -96,9 +92,6 @@ public class PurchaseHelper implements IabHelper.OnIabSetupFinishedListener {
preferences.setBoolean(R.string.p_purchased_tasker, false); preferences.setBoolean(R.string.p_purchased_tasker, false);
} else if (purchase.equals(dashclock)) { } else if (purchase.equals(dashclock)) {
preferences.setBoolean(R.string.p_purchased_dashclock, false); preferences.setBoolean(R.string.p_purchased_dashclock, false);
} else if (purchase.equals(teslaUnread)) {
preferences.setBoolean(R.string.p_purchased_tesla_unread, false);
preferences.setBoolean(R.string.p_tesla_unread_enabled, false);
} else if (purchase.equals(themes)) { } else if (purchase.equals(themes)) {
preferences.setBoolean(R.string.p_purchased_themes, false); preferences.setBoolean(R.string.p_purchased_themes, false);
} else { } else {

@ -7,7 +7,7 @@ import org.tasks.analytics.Tracker;
import org.tasks.injection.ApplicationComponent; import org.tasks.injection.ApplicationComponent;
import org.tasks.injection.InjectingApplication; import org.tasks.injection.InjectingApplication;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.receivers.TeslaUnreadReceiver; import org.tasks.receivers.Badger;
import org.tasks.themes.ThemeCache; import org.tasks.themes.ThemeCache;
import javax.inject.Inject; import javax.inject.Inject;
@ -20,7 +20,7 @@ public class Tasks extends InjectingApplication {
@Inject FlavorSetup flavorSetup; @Inject FlavorSetup flavorSetup;
@Inject BuildSetup buildSetup; @Inject BuildSetup buildSetup;
@Inject ThemeCache themeCache; @Inject ThemeCache themeCache;
@Inject TeslaUnreadReceiver teslaUnreadReceiver; @Inject Badger badger;
@Override @Override
public void onCreate() { public void onCreate() {
@ -36,7 +36,7 @@ public class Tasks extends InjectingApplication {
flavorSetup.setup(); flavorSetup.setup();
teslaUnreadReceiver.setEnabled(preferences.getBoolean(R.string.p_tesla_unread_enabled, false)); badger.setEnabled(preferences.getBoolean(R.string.p_badges_enabled, true));
themeCache.getThemeBase(preferences.getInt(R.string.p_theme, 0)).setDefaultNightMode(); themeCache.getThemeBase(preferences.getInt(R.string.p_theme, 0)).setDefaultNightMode();

@ -6,6 +6,7 @@ public class Tracking {
public enum Events { public enum Events {
SET_DEFAULT_LIST(R.string.tracking_category_preferences, R.string.p_default_list), SET_DEFAULT_LIST(R.string.tracking_category_preferences, R.string.p_default_list),
SET_BADGE_LIST(R.string.tracking_category_preferences, R.string.p_badge_list),
GTASK_DEFAULT_LIST(R.string.tracking_category_preferences, R.string.p_gtasks_default_list), GTASK_DEFAULT_LIST(R.string.tracking_category_preferences, R.string.p_gtasks_default_list),
SET_THEME(R.string.tracking_category_preferences, R.string.p_theme), SET_THEME(R.string.tracking_category_preferences, R.string.p_theme),
SET_COLOR(R.string.tracking_category_preferences, R.string.p_theme_color), SET_COLOR(R.string.tracking_category_preferences, R.string.p_theme_color),

@ -9,7 +9,6 @@ import org.tasks.receivers.BootCompletedReceiver;
import org.tasks.receivers.CompleteTaskReceiver; import org.tasks.receivers.CompleteTaskReceiver;
import org.tasks.receivers.MyPackageReplacedReceiver; import org.tasks.receivers.MyPackageReplacedReceiver;
import org.tasks.receivers.PushReceiver; import org.tasks.receivers.PushReceiver;
import org.tasks.receivers.TeslaUnreadReceiver;
import org.tasks.widget.TasksWidget; import org.tasks.widget.TasksWidget;
import dagger.Subcomponent; import dagger.Subcomponent;
@ -30,8 +29,6 @@ public interface BroadcastComponent {
void inject(TasksWidget tasksWidget); void inject(TasksWidget tasksWidget);
void inject(TeslaUnreadReceiver teslaUnreadReceiver);
void inject(PushReceiver pushReceiver); void inject(PushReceiver pushReceiver);
void inject(NotificationClearedReceiver notificationClearedReceiver); void inject(NotificationClearedReceiver notificationClearedReceiver);

@ -15,8 +15,10 @@ import com.todoroo.astrid.core.OldTaskPreferences;
import com.todoroo.astrid.reminders.ReminderPreferences; import com.todoroo.astrid.reminders.ReminderPreferences;
import org.tasks.BuildConfig; import org.tasks.BuildConfig;
import org.tasks.LocalBroadcastManager;
import org.tasks.R; import org.tasks.R;
import org.tasks.activities.ColorPickerActivity; import org.tasks.activities.ColorPickerActivity;
import org.tasks.activities.FilterSelectionActivity;
import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking; import org.tasks.analytics.Tracking;
import org.tasks.billing.PurchaseHelper; import org.tasks.billing.PurchaseHelper;
@ -28,7 +30,7 @@ import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.injection.InjectingPreferenceActivity;
import org.tasks.locale.Locale; import org.tasks.locale.Locale;
import org.tasks.locale.LocalePickerDialog; import org.tasks.locale.LocalePickerDialog;
import org.tasks.receivers.TeslaUnreadReceiver; import org.tasks.receivers.Badger;
import org.tasks.themes.ThemeAccent; import org.tasks.themes.ThemeAccent;
import org.tasks.themes.ThemeBase; import org.tasks.themes.ThemeBase;
import org.tasks.themes.ThemeCache; import org.tasks.themes.ThemeCache;
@ -61,6 +63,7 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
private static final int REQUEST_CODE_BACKUP_DIR = 10005; private static final int REQUEST_CODE_BACKUP_DIR = 10005;
private static final int REQUEST_PICKER = 10006; private static final int REQUEST_PICKER = 10006;
public static final int REQUEST_PURCHASE = 10007; public static final int REQUEST_PURCHASE = 10007;
private static final int REQUEST_BADGE_LIST = 10008;
@Inject Tracker tracker; @Inject Tracker tracker;
@Inject Preferences preferences; @Inject Preferences preferences;
@ -70,8 +73,10 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
@Inject DialogBuilder dialogBuilder; @Inject DialogBuilder dialogBuilder;
@Inject Locale locale; @Inject Locale locale;
@Inject ThemeCache themeCache; @Inject ThemeCache themeCache;
@Inject TeslaUnreadReceiver teslaUnreadReceiver; @Inject Badger badger;
@Inject PurchaseHelper purchaseHelper; @Inject PurchaseHelper purchaseHelper;
@Inject DefaultFilterProvider defaultFilterProvider;
@Inject LocalBroadcastManager localBroadcastManager;
private Bundle result; private Bundle result;
@ -152,14 +157,24 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
return false; return false;
}); });
findPreference(R.string.p_tesla_unread_enabled).setOnPreferenceChangeListener((preference, newValue) -> { Preference defaultList = findPreference(getString(R.string.p_badge_list));
Filter filter = defaultFilterProvider.getBadgeFilter();
defaultList.setSummary(filter.listingTitle);
defaultList.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(BasicPreferences.this, FilterSelectionActivity.class);
intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true);
startActivityForResult(intent, REQUEST_BADGE_LIST);
return true;
});
findPreference(R.string.p_badges_enabled).setOnPreferenceChangeListener((preference, newValue) -> {
if (newValue != null) { if (newValue != null) {
if ((boolean) newValue && !preferences.hasPurchase(R.string.p_purchased_tesla_unread)) { boolean enabled = (boolean) newValue;
purchaseHelper.purchase(BasicPreferences.this, getString(R.string.sku_tesla_unread), getString(R.string.p_purchased_tesla_unread), REQUEST_PURCHASE, BasicPreferences.this); badger.setEnabled(enabled);
} else { if (enabled) {
teslaUnreadReceiver.setEnabled((boolean) newValue); showRestartDialog();
return true;
} }
return true;
} }
return false; return false;
}); });
@ -184,7 +199,6 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
findPreference(getString(R.string.debug_unlock_purchases)).setOnPreferenceClickListener(preference -> { findPreference(getString(R.string.debug_unlock_purchases)).setOnPreferenceClickListener(preference -> {
preferences.setBoolean(R.string.p_purchased_dashclock, true); preferences.setBoolean(R.string.p_purchased_dashclock, true);
preferences.setBoolean(R.string.p_purchased_tasker, true); preferences.setBoolean(R.string.p_purchased_tasker, true);
preferences.setBoolean(R.string.p_purchased_tesla_unread, true);
preferences.setBoolean(R.string.p_purchased_themes, true); preferences.setBoolean(R.string.p_purchased_themes, true);
recreate(); recreate();
return true; return true;
@ -276,7 +290,14 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
.show(getFragmentManager(), FRAG_TAG_IMPORT_TASKS); .show(getFragmentManager(), FRAG_TAG_IMPORT_TASKS);
} }
} else if (requestCode == REQUEST_PURCHASE) { } else if (requestCode == REQUEST_PURCHASE) {
purchaseHelper.handleActivityResult(this, requestCode, resultCode, data); purchaseHelper.handleActivityResult(this, requestCode, resultCode, data);
} else if (requestCode == REQUEST_BADGE_LIST) {
if (resultCode == RESULT_OK) {
Filter filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER);
defaultFilterProvider.setBadgeFilter(filter);
findPreference(getString(R.string.p_badge_list)).setSummary(filter.listingTitle);
localBroadcastManager.broadcastRefresh();
}
} else { } else {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }
@ -329,8 +350,6 @@ public class BasicPreferences extends InjectingPreferenceActivity implements
runOnUiThread(() -> { runOnUiThread(() -> {
if (getString(R.string.sku_tasker).equals(sku)) { if (getString(R.string.sku_tasker).equals(sku)) {
((TwoStatePreference) findPreference(R.string.p_purchased_tasker)).setChecked(success); ((TwoStatePreference) findPreference(R.string.p_purchased_tasker)).setChecked(success);
} else if (getString(R.string.sku_tesla_unread).equals(sku)) {
((TwoStatePreference) findPreference(R.string.p_tesla_unread_enabled)).setChecked(success);
} else if (getString(R.string.sku_dashclock).equals(sku)) { } else if (getString(R.string.sku_dashclock).equals(sku)) {
((TwoStatePreference) findPreference(R.string.p_purchased_dashclock)).setChecked(success); ((TwoStatePreference) findPreference(R.string.p_purchased_dashclock)).setChecked(success);
} else if (getString(R.string.sku_themes).equals(sku)) { } else if (getString(R.string.sku_themes).equals(sku)) {

@ -62,6 +62,10 @@ public class DefaultFilterProvider {
this.gtasksFilterExposer = gtasksFilterExposer; this.gtasksFilterExposer = gtasksFilterExposer;
} }
public Filter getBadgeFilter() {
return getFilterFromPreference(R.string.p_badge_list);
}
public Filter getDefaultFilter() { public Filter getDefaultFilter() {
return getFilterFromPreference(R.string.p_default_list); return getFilterFromPreference(R.string.p_default_list);
} }
@ -108,6 +112,14 @@ public class DefaultFilterProvider {
} }
} }
public void setBadgeFilter(Filter filter) {
tracker.reportEvent(Tracking.Events.SET_BADGE_LIST);
String filterPreferenceValue = getFilterPreferenceValue(filter);
if (!Strings.isNullOrEmpty(filterPreferenceValue)) {
preferences.setString(R.string.p_badge_list, filterPreferenceValue);
}
}
public String getFilterPreferenceValue(Filter filter) { public String getFilterPreferenceValue(Filter filter) {
int filterType = getFilterType(filter); int filterType = getFilterType(filter);
switch (filterType) { switch (filterType) {

@ -0,0 +1,66 @@
package org.tasks.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
import org.tasks.LocalBroadcastManager;
import org.tasks.injection.ApplicationScope;
import org.tasks.injection.ForApplication;
import org.tasks.preferences.DefaultFilterProvider;
import javax.inject.Inject;
import me.leolin.shortcutbadger.ShortcutBadger;
import timber.log.Timber;
@ApplicationScope
public class Badger {
private final Context context;
private final DefaultFilterProvider defaultFilterProvider;
private final TaskDao taskDao;
private final LocalBroadcastManager localBroadcastManager;
private boolean enabled;
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
publishCount();
}
};
@Inject
public Badger(@ForApplication Context context, DefaultFilterProvider defaultFilterProvider,
TaskDao taskDao, LocalBroadcastManager localBroadcastManager) {
this.context = context;
this.defaultFilterProvider = defaultFilterProvider;
this.taskDao = taskDao;
this.localBroadcastManager = localBroadcastManager;
}
public void setEnabled(boolean newValue) {
try {
if (newValue) {
localBroadcastManager.registerRefreshReceiver(receiver);
publishCount();
} else if (enabled) {
localBroadcastManager.unregisterReceiver(receiver);
ShortcutBadger.removeCount(context);
}
enabled = newValue;
} catch (Exception e) {
Timber.e(e, e.getMessage());
}
}
private void publishCount() {
Filter badgeFilter = defaultFilterProvider.getBadgeFilter();
int count = taskDao.count(badgeFilter);
ShortcutBadger.applyCount(context, count);
}
}

@ -1,90 +0,0 @@
package org.tasks.receivers;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao;
import org.tasks.BuildConfig;
import org.tasks.LocalBroadcastManager;
import org.tasks.analytics.Tracker;
import org.tasks.injection.ApplicationScope;
import org.tasks.injection.BroadcastComponent;
import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.DefaultFilterProvider;
import javax.inject.Inject;
import timber.log.Timber;
@ApplicationScope
public class TeslaUnreadReceiver extends InjectingBroadcastReceiver {
private static final String TESLA_URI = "content://com.teslacoilsw.notifier/unread_count";
private static final String TESLA_TAG = BuildConfig.APPLICATION_ID + "/com.todoroo.astrid.activity.TaskListActivity";
private final Context context;
private final DefaultFilterProvider defaultFilterProvider;
private final TaskDao taskDao;
private final Tracker tracker;
private final LocalBroadcastManager localBroadcastManager;
private boolean enabled;
@Inject
public TeslaUnreadReceiver(@ForApplication Context context, DefaultFilterProvider defaultFilterProvider,
TaskDao taskDao, Tracker tracker, LocalBroadcastManager localBroadcastManager) {
this.context = context;
this.defaultFilterProvider = defaultFilterProvider;
this.taskDao = taskDao;
this.tracker = tracker;
this.localBroadcastManager = localBroadcastManager;
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
Filter defaultFilter = defaultFilterProvider.getDefaultFilter();
publishCount(taskDao.count(defaultFilter));
}
@Override
protected void inject(BroadcastComponent component) {
component.inject(this);
}
public void setEnabled(boolean newValue) {
try {
if (newValue) {
localBroadcastManager.registerRefreshReceiver(this);
localBroadcastManager.broadcastRefresh();
} else if (enabled) {
localBroadcastManager.unregisterReceiver(this);
publishCount(0);
}
enabled = newValue;
} catch (Exception e) {
Timber.e(e, e.getMessage());
}
}
private void publishCount(int count) {
try {
ContentValues contentValues = new ContentValues();
contentValues.put("tag", TESLA_TAG);
contentValues.put("count", count);
context.getContentResolver().insert(Uri.parse(TESLA_URI), contentValues);
} catch (IllegalArgumentException ex) {
/* Fine, TeslaUnread is not installed. */
} catch (Exception e) {
tracker.reportException(e);
}
}
}

@ -324,7 +324,6 @@
<string name="back_button_saves_task">Бутон \"Назад\" запазва задачата</string> <string name="back_button_saves_task">Бутон \"Назад\" запазва задачата</string>
<string name="default_list">Списък по подразбиране</string> <string name="default_list">Списък по подразбиране</string>
<string name="plugin_description">Tasks е проект с отворен код, поддържан от един разработчик. Някои функции се предлагат както покупки в приложението за да се подпомогне процеса на разработка.</string> <string name="plugin_description">Tasks е проект с отворен код, поддържан от един разработчик. Някои функции се предлагат както покупки в приложението за да се подпомогне процеса на разработка.</string>
<string name="tesla_unread_description">Показване на значка за броя на активните задачи в списъка Ви по подразбиране. Изисква TeslaUnread за Nova Launcher</string>
<string name="themes_purchase_description">Отключете всички теми и да добавите малко цвят към Tasks</string> <string name="themes_purchase_description">Отключете всички теми и да добавите малко цвят към Tasks</string>
<string name="tasker_description">Context-Aware списък уведомления. Изисква Tasker или Locale</string> <string name="tasker_description">Context-Aware списък уведомления. Изисква Tasker или Locale</string>
<string name="donate_summary">Даренията са добре дошли</string> <string name="donate_summary">Даренията са добре дошли</string>

@ -317,7 +317,6 @@
<string name="back_button_saves_task">Zurück-Button speichert die Aufgabe</string> <string name="back_button_saves_task">Zurück-Button speichert die Aufgabe</string>
<string name="default_list">Standard-Liste</string> <string name="default_list">Standard-Liste</string>
<string name="plugin_description">Tasks ist ein Open Source-Projekt eines einzelnen Entwicklers. Manche Funktionen werden daher als In App-Käufe angeboten, um die Entwicklung zu unterstützen.</string> <string name="plugin_description">Tasks ist ein Open Source-Projekt eines einzelnen Entwicklers. Manche Funktionen werden daher als In App-Käufe angeboten, um die Entwicklung zu unterstützen.</string>
<string name="tesla_unread_description">Badge anzeigen mit der Anzahl an aktiven Augaben in der Standard-Liste. Benötigt TeslaUnread für Nova Launcher</string>
<string name="themes_purchase_description">Entsperre alle Themes</string> <string name="themes_purchase_description">Entsperre alle Themes</string>
<string name="tasker_description">Kontext-bezogene Listenbenachrichtigungen. Benötigt Tasker oder Locale</string> <string name="tasker_description">Kontext-bezogene Listenbenachrichtigungen. Benötigt Tasker oder Locale</string>
<string name="donate_summary">Spenden sind sehr willkommen</string> <string name="donate_summary">Spenden sind sehr willkommen</string>

@ -320,7 +320,6 @@
<string name="back_button_saves_task">Botón atrás guarda la tarea</string> <string name="back_button_saves_task">Botón atrás guarda la tarea</string>
<string name="default_list">Lista por defecto</string> <string name="default_list">Lista por defecto</string>
<string name="plugin_description">Tasks es un proyecto de código abierto mantenido por un único desarrollador. Algunas características especializadas se podrán comprar desde la aplicación para mantener su desarrollo.</string> <string name="plugin_description">Tasks es un proyecto de código abierto mantenido por un único desarrollador. Algunas características especializadas se podrán comprar desde la aplicación para mantener su desarrollo.</string>
<string name="tesla_unread_description">Mostrar distintivo con número de tareas activas en la lista predeterminada. Requiere TeslaUnread de Nova Launcher.</string>
<string name="themes_purchase_description">Desbloquea todos los temas y añade color a Tasks</string> <string name="themes_purchase_description">Desbloquea todos los temas y añade color a Tasks</string>
<string name="tasker_description">Notificaciones dependientes del contexto. Requiere Tasker o Locale.</string> <string name="tasker_description">Notificaciones dependientes del contexto. Requiere Tasker o Locale.</string>
<string name="donate_summary">Se agradecen enormemente las donaciones</string> <string name="donate_summary">Se agradecen enormemente las donaciones</string>

@ -322,7 +322,6 @@
<string name="back_button_saves_task">Takaisin -painike tallentaa tehtävän</string> <string name="back_button_saves_task">Takaisin -painike tallentaa tehtävän</string>
<string name="default_list">Oletuslista</string> <string name="default_list">Oletuslista</string>
<string name="plugin_description">Tasks on avoimen koodin projekti jota ylläpitää yksi kehittäjä. Jotkut ominaisuudet ovat saatavina sovelluksen sisäisinä ostoksina joilla tuetaan kehitystyötä.</string> <string name="plugin_description">Tasks on avoimen koodin projekti jota ylläpitää yksi kehittäjä. Jotkut ominaisuudet ovat saatavina sovelluksen sisäisinä ostoksina joilla tuetaan kehitystyötä.</string>
<string name="tesla_unread_description">Näytä aktiivisten tehtävien tunnus oletuslistalta. Vaatii TeslaUnread lisäosan Nova -käynnistimelle</string>
<string name="themes_purchase_description">Avaa kaikki teemat ja lisää väriä Tasks -ohjelmaan</string> <string name="themes_purchase_description">Avaa kaikki teemat ja lisää väriä Tasks -ohjelmaan</string>
<string name="tasker_description">Kontekstiriippuvainen listaus ilmoituksille. Vaatii Tasker tai Locale -sovelluksen</string> <string name="tasker_description">Kontekstiriippuvainen listaus ilmoituksille. Vaatii Tasker tai Locale -sovelluksen</string>
<string name="donate_summary">Lahjoitukset ovat erittäin tervetulleita</string> <string name="donate_summary">Lahjoitukset ovat erittäin tervetulleita</string>

@ -314,7 +314,6 @@
<string name="back_button_saves_task">Faire un retour-arrière pour sauvegarder la tâche</string> <string name="back_button_saves_task">Faire un retour-arrière pour sauvegarder la tâche</string>
<string name="default_list">Liste par défaut</string> <string name="default_list">Liste par défaut</string>
<string name="plugin_description">Tasks est un projet à source ouverte entretenu par un développeur. Quelques contenus payants sont disponible dans l\'application pour supporter le développement.</string> <string name="plugin_description">Tasks est un projet à source ouverte entretenu par un développeur. Quelques contenus payants sont disponible dans l\'application pour supporter le développement.</string>
<string name="tesla_unread_description">Affiche un badge pour le nombre de tâches actives dans votre liste par défaut. TeslaUnread pour Nova Launcher est requis.</string>
<string name="themes_purchase_description">Débloquer tous les thèmes et quelques couleurs à Tasks</string> <string name="themes_purchase_description">Débloquer tous les thèmes et quelques couleurs à Tasks</string>
<string name="tasker_description">Notifications de la sensibilité du contexte de la liste. Tasker ou Local est requis.</string> <string name="tasker_description">Notifications de la sensibilité du contexte de la liste. Tasker ou Local est requis.</string>
<string name="donate_summary">Les donations sont grandement appréciées.</string> <string name="donate_summary">Les donations sont grandement appréciées.</string>

@ -321,7 +321,6 @@
<string name="back_button_saves_task">Botón atrás guarda la tarea</string> <string name="back_button_saves_task">Botón atrás guarda la tarea</string>
<string name="default_list">Lista por defecto</string> <string name="default_list">Lista por defecto</string>
<string name="plugin_description">Tasks es un proyecto de código abierto mantenido por un único desarrollador. Algunas características especializadas se podrán comprar desde la aplicación para mantener su desarrollo.</string> <string name="plugin_description">Tasks es un proyecto de código abierto mantenido por un único desarrollador. Algunas características especializadas se podrán comprar desde la aplicación para mantener su desarrollo.</string>
<string name="tesla_unread_description">Mostrar distintivo con número de tareas activas en la lista predeterminada. Requiere TeslaUnread de Nova Launcher.</string>
<string name="themes_purchase_description">Desbloquea todos los temas y añade color a Tasks</string> <string name="themes_purchase_description">Desbloquea todos los temas y añade color a Tasks</string>
<string name="tasker_description">Notificaciones dependientes del contexto. Requiere Tasker o Locale.</string> <string name="tasker_description">Notificaciones dependientes del contexto. Requiere Tasker o Locale.</string>
<string name="donate_summary">Se agradecen enormemente las donaciones</string> <string name="donate_summary">Se agradecen enormemente las donaciones</string>

@ -324,7 +324,6 @@
<string name="back_button_saves_task">A vissza gomb elmenti a feladatot</string> <string name="back_button_saves_task">A vissza gomb elmenti a feladatot</string>
<string name="default_list">Alapértelmezett lista</string> <string name="default_list">Alapértelmezett lista</string>
<string name="plugin_description">A Tasks egyetlen fejlesztő által karbantartott nyílt forráskódú projekt. Néhány funkció csak alkalmazáson belüli vásárlással érhető el, ezzel is támogatva a fejlesztést.</string> <string name="plugin_description">A Tasks egyetlen fejlesztő által karbantartott nyílt forráskódú projekt. Néhány funkció csak alkalmazáson belüli vásárlással érhető el, ezzel is támogatva a fejlesztést.</string>
<string name="tesla_unread_description">Az alkalmazás ikonján megjeleníti az alapértelmezett listában levő feladatok számát. Használatához TeslaUnread for Nova Launcher szükséges.</string>
<string name="themes_purchase_description">Az összes Tasks téma és szín elérhetővé tétele</string> <string name="themes_purchase_description">Az összes Tasks téma és szín elérhetővé tétele</string>
<string name="tasker_description">Kontextus-függő lista emlékeztető. Használatához Tasker vagy Locale szükséges.</string> <string name="tasker_description">Kontextus-függő lista emlékeztető. Használatához Tasker vagy Locale szükséges.</string>
<string name="donate_summary">Támogatását nagyra értékeljük</string> <string name="donate_summary">Támogatását nagyra értékeljük</string>

@ -321,7 +321,6 @@
<string name="back_button_saves_task">Il tasto indietro salva l\'attività</string> <string name="back_button_saves_task">Il tasto indietro salva l\'attività</string>
<string name="default_list">Lista predefinita</string> <string name="default_list">Lista predefinita</string>
<string name="plugin_description">Tasks è un progetto open source manutenuto da un singolo sviluppatore. Per supportarne lo sviluppo all\'interno dell\'applicazione sono offerte alcune funzioni di nicchia a pagamento...</string> <string name="plugin_description">Tasks è un progetto open source manutenuto da un singolo sviluppatore. Per supportarne lo sviluppo all\'interno dell\'applicazione sono offerte alcune funzioni di nicchia a pagamento...</string>
<string name="tesla_unread_description">Mostra nella lista predefinita un contrassegno con il numero di compiti attivi. Richiede TeslaUnread for Nova Launcher</string>
<string name="themes_purchase_description">Sblocca tutti i temi e aggiungi colori alle attività</string> <string name="themes_purchase_description">Sblocca tutti i temi e aggiungi colori alle attività</string>
<string name="tasker_description">Lista notifiche in base al contesto. Richiede Tasker o Locale</string> <string name="tasker_description">Lista notifiche in base al contesto. Richiede Tasker o Locale</string>
<string name="donate_summary">Sono gradite offerte</string> <string name="donate_summary">Sono gradite offerte</string>

@ -322,7 +322,6 @@
<string name="back_button_saves_task">כפתור \"חזרה\" שומר שינויים במשימה</string> <string name="back_button_saves_task">כפתור \"חזרה\" שומר שינויים במשימה</string>
<string name="default_list">רשימת ברירת מחדל</string> <string name="default_list">רשימת ברירת מחדל</string>
<string name="plugin_description">זו אפליקציית קוד פתוח, מתוחזקת ע\"י מפתח אחד. מספר מאפיינים מוצעים לרכישה בתוך האפליקציה בכדי לתמוך בפיתוח.</string> <string name="plugin_description">זו אפליקציית קוד פתוח, מתוחזקת ע\"י מפתח אחד. מספר מאפיינים מוצעים לרכישה בתוך האפליקציה בכדי לתמוך בפיתוח.</string>
<string name="tesla_unread_description">הצג סמליל של מספר המשימות הפעילות ברשימת ברירת המחדל. נדרשת אפליקציה TeslaUnread ל-Nova Launcher</string>
<string name="themes_purchase_description">בטל נעילת ערכות נושא והוסף צבע למשימות</string> <string name="themes_purchase_description">בטל נעילת ערכות נושא והוסף צבע למשימות</string>
<string name="tasker_description">Context-aware רשימת משימות. נדרש Tasker או Locale</string> <string name="tasker_description">Context-aware רשימת משימות. נדרש Tasker או Locale</string>
<string name="donate_summary">תרומות יתקבלו בברכה</string> <string name="donate_summary">תרומות יתקבלו בברכה</string>

@ -322,7 +322,6 @@
<string name="back_button_saves_task">戻るボタンでタスクを保存します</string> <string name="back_button_saves_task">戻るボタンでタスクを保存します</string>
<string name="default_list">デフォルトリスト</string> <string name="default_list">デフォルトリスト</string>
<string name="plugin_description">Tasks は、1人の開発者が維持しているオープンソース プロジェクトです。開発をサポートするために、ニッチの機能はアプリ内課金で提供されています。</string> <string name="plugin_description">Tasks は、1人の開発者が維持しているオープンソース プロジェクトです。開発をサポートするために、ニッチの機能はアプリ内課金で提供されています。</string>
<string name="tesla_unread_description">デフォルトのリストに、アクティブなタスクの数のバッジを表示します。TeslaUnread for Nova Launcher が必要です</string>
<string name="themes_purchase_description">すべてのテーマのロックを解除して Tasks に色を追加します</string> <string name="themes_purchase_description">すべてのテーマのロックを解除して Tasks に色を追加します</string>
<string name="tasker_description">コンテキスト アウェア リストの通知。Tasker または Locale が必要です</string> <string name="tasker_description">コンテキスト アウェア リストの通知。Tasker または Locale が必要です</string>
<string name="donate_summary">寄付は大歓迎です</string> <string name="donate_summary">寄付は大歓迎です</string>

@ -326,7 +326,6 @@
<string name="back_button_saves_task">뒤로가기 버튼으로 할일 저장</string> <string name="back_button_saves_task">뒤로가기 버튼으로 할일 저장</string>
<string name="default_list">기본 목록</string> <string name="default_list">기본 목록</string>
<string name="plugin_description">Tasks는 한 명의 개발자에 의해 유지되고 있는 오픈 소스 프로젝트입니다. 개발을 지속하기 위해 몇몇 기능들은 인앱 결제를 통해 제공되고 있습니다.</string> <string name="plugin_description">Tasks는 한 명의 개발자에 의해 유지되고 있는 오픈 소스 프로젝트입니다. 개발을 지속하기 위해 몇몇 기능들은 인앱 결제를 통해 제공되고 있습니다.</string>
<string name="tesla_unread_description">기본 목록에 있는 활성화된 할일의 숫자 뱃지를 표시합니다. Nova Launcher용 TeslaUnread가 필요합니다.</string>
<string name="themes_purchase_description">모든 테마 잠금 해제 및 색상 추가</string> <string name="themes_purchase_description">모든 테마 잠금 해제 및 색상 추가</string>
<string name="tasker_description">컨텍스트 기반의 리스트 알림. Tasker 또는 Locale이 필요합니다.</string> <string name="tasker_description">컨텍스트 기반의 리스트 알림. Tasker 또는 Locale이 필요합니다.</string>
<string name="donate_summary">기부를 해주시면 감사하겠습니다</string> <string name="donate_summary">기부를 해주시면 감사하겠습니다</string>

@ -316,7 +316,6 @@
<string name="back_button_saves_task">Terug knop slaat taak op</string> <string name="back_button_saves_task">Terug knop slaat taak op</string>
<string name="default_list">Standaard lijst</string> <string name="default_list">Standaard lijst</string>
<string name="plugin_description">Tasks is een open source project onderhouden bij een ontwikkelaar. Sommige functionaliteit worden als in-app aankopen aangeboden om de ontwikkeling te ondersteunen.</string> <string name="plugin_description">Tasks is een open source project onderhouden bij een ontwikkelaar. Sommige functionaliteit worden als in-app aankopen aangeboden om de ontwikkeling te ondersteunen.</string>
<string name="tesla_unread_description">Toon een badge voor het aantal actieve taken in je standaard lijst. Vereist TeslaUnread voor Nova Launcher</string>
<string name="themes_purchase_description">Ontlock alle thema\'s en voeg kleuren toe aan Tasks</string> <string name="themes_purchase_description">Ontlock alle thema\'s en voeg kleuren toe aan Tasks</string>
<string name="tasker_description"> Contextbewuste notificaties. Vereist Tasker of Locale</string> <string name="tasker_description"> Contextbewuste notificaties. Vereist Tasker of Locale</string>
<string name="donate_summary">Donaties worden erg gewaardeerd</string> <string name="donate_summary">Donaties worden erg gewaardeerd</string>

@ -321,7 +321,6 @@
<string name="back_button_saves_task">Przycisk Cofnij zapisuje zadanie</string> <string name="back_button_saves_task">Przycisk Cofnij zapisuje zadanie</string>
<string name="default_list">Domyślna lista</string> <string name="default_list">Domyślna lista</string>
<string name="plugin_description">Tasks jest projektem na licencji open source utrzymywanym przez jednego developera. Płatne funkcje wspierają rozwój aplikacji.</string> <string name="plugin_description">Tasks jest projektem na licencji open source utrzymywanym przez jednego developera. Płatne funkcje wspierają rozwój aplikacji.</string>
<string name="tesla_unread_description">Pokaż licznik aktywnych zadań w domyślnej liście. Wymaga TeslaUnread dla Nova Launcher</string>
<string name="themes_purchase_description">Odblokuj wszystkie motywy i dodaj trochę kolorów do Tasks</string> <string name="themes_purchase_description">Odblokuj wszystkie motywy i dodaj trochę kolorów do Tasks</string>
<string name="donate_summary">Dotacje są bardzo mile widziane</string> <string name="donate_summary">Dotacje są bardzo mile widziane</string>
<string name="dashclock_purchase_description">Wyświetla liczbę aktywnych zadań. Wymaga DashClock Widget</string> <string name="dashclock_purchase_description">Wyświetla liczbę aktywnych zadań. Wymaga DashClock Widget</string>

@ -314,7 +314,6 @@
<string name="back_button_saves_task">Botão voltar salva a tarefa</string> <string name="back_button_saves_task">Botão voltar salva a tarefa</string>
<string name="default_list">Lista padrão</string> <string name="default_list">Lista padrão</string>
<string name="plugin_description">Tasks é um projeto de código aberto mantido por um desenvolvedor. Algumas funções são oferecidas como compras dentro do app a fim de apoiar o desenvolvimento.</string> <string name="plugin_description">Tasks é um projeto de código aberto mantido por um desenvolvedor. Algumas funções são oferecidas como compras dentro do app a fim de apoiar o desenvolvimento.</string>
<string name="tesla_unread_description">Mostrar um emblema para o número de tarefas ativas na sua lista padrão. Necessita ter o TeslaUnread para Nova Launcher.</string>
<string name="themes_purchase_description">Desbloquear todos os temas e adicionar um pouco de cor ao Tasks</string> <string name="themes_purchase_description">Desbloquear todos os temas e adicionar um pouco de cor ao Tasks</string>
<string name="tasker_description">Notificações contextuadas de listas. Necessita Tasker ou Locale.</string> <string name="tasker_description">Notificações contextuadas de listas. Necessita Tasker ou Locale.</string>
<string name="donate_summary">Doações são muito valiosas</string> <string name="donate_summary">Doações são muito valiosas</string>

@ -321,7 +321,6 @@
<string name="back_button_saves_task">Кнопка «Назад» сохраняет задачу</string> <string name="back_button_saves_task">Кнопка «Назад» сохраняет задачу</string>
<string name="default_list">Список по умолчанию</string> <string name="default_list">Список по умолчанию</string>
<string name="plugin_description">Tasks развивается как проект с открытым исходным кодом и поддерживается единственным разработчиком. Некоторые функции приложения предлагаются как платные для дальнейшего развития программы</string> <string name="plugin_description">Tasks развивается как проект с открытым исходным кодом и поддерживается единственным разработчиком. Некоторые функции приложения предлагаются как платные для дальнейшего развития программы</string>
<string name="tesla_unread_description">Показывать значок для числа активных задач в вашем основном списке. Требуется TeslaUnread для Nova Launcher</string>
<string name="themes_purchase_description">Разблокировать все темы и добавить цвета в оформление Tasks</string> <string name="themes_purchase_description">Разблокировать все темы и добавить цвета в оформление Tasks</string>
<string name="tasker_description">Уведомления списка контекстного подбора. Требуется Tasker или Locale</string> <string name="tasker_description">Уведомления списка контекстного подбора. Требуется Tasker или Locale</string>
<string name="donate_summary">Благодарю за поддержку</string> <string name="donate_summary">Благодарю за поддержку</string>

@ -318,7 +318,6 @@
<string name="back_button_saves_task">Bakåtknapp sparar uppgift</string> <string name="back_button_saves_task">Bakåtknapp sparar uppgift</string>
<string name="default_list">Standardlista</string> <string name="default_list">Standardlista</string>
<string name="plugin_description">Tasks är ett open source projekt som drivs av en ensam utvecklare. Några av funktionerna blir tillgängliga via köp i appar för att stödja fortsatt utveckling.</string> <string name="plugin_description">Tasks är ett open source projekt som drivs av en ensam utvecklare. Några av funktionerna blir tillgängliga via köp i appar för att stödja fortsatt utveckling.</string>
<string name="tesla_unread_description">Visa ett märke för antalet aktiva uppgifter i standardlistan. Kräver TeslaUnread för Nova Launcher</string>
<string name="themes_purchase_description">Lås upp alla teman och sätt lite färg på Tasks</string> <string name="themes_purchase_description">Lås upp alla teman och sätt lite färg på Tasks</string>
<string name="tasker_description">Innehållsbaserade listpåminnelser. Kräver Tasker eller Locale</string> <string name="tasker_description">Innehållsbaserade listpåminnelser. Kräver Tasker eller Locale</string>
<string name="donate_summary">Donationer uppskattas varmt</string> <string name="donate_summary">Donationer uppskattas varmt</string>

@ -323,7 +323,6 @@
<string name="back_button_saves_task">Зберігати завдання кнопкою Назад</string> <string name="back_button_saves_task">Зберігати завдання кнопкою Назад</string>
<string name="default_list">Типовий список</string> <string name="default_list">Типовий список</string>
<string name="plugin_description">Tasks це проект з відкритим кодом, що обслуговується одним розробником. З метою підтримки розробки, деякі функції доступні лише після придбання через додаток.</string> <string name="plugin_description">Tasks це проект з відкритим кодом, що обслуговується одним розробником. З метою підтримки розробки, деякі функції доступні лише після придбання через додаток.</string>
<string name="tesla_unread_description">Показувати значок з кількістю активних завдань в типовому списку. Потрібен TeslaUnread for Nova Launcher</string>
<string name="themes_purchase_description">Розблокувати усі схеми та додати кольори до Tasks</string> <string name="themes_purchase_description">Розблокувати усі схеми та додати кольори до Tasks</string>
<string name="tasker_description">Контекстні сповіщення списку. Потрібен Tasker або Locale</string> <string name="tasker_description">Контекстні сповіщення списку. Потрібен Tasker або Locale</string>
<string name="donate_summary">Пожертви щиро вітаються</string> <string name="donate_summary">Пожертви щиро вітаються</string>

@ -244,12 +244,11 @@
<string name="tracking_event_upgrade">Upgrade</string> <string name="tracking_event_upgrade">Upgrade</string>
<string name="tracking_event_multiselect_delete">Multiselect delete</string> <string name="tracking_event_multiselect_delete">Multiselect delete</string>
<string name="tracking_event_multiselect_clone">Multiselect clone</string> <string name="tracking_event_multiselect_clone">Multiselect clone</string>
<string name="p_tesla_unread_enabled">tesla_unread_enabled</string> <string name="p_badges_enabled">badges_enabled</string>
<string name="p_purchased_tesla_unread">purchased_tesla_unread</string> <string name="p_badge_list">badge_list</string>
<string name="p_purchased_tasker">purchased_tasker</string> <string name="p_purchased_tasker">purchased_tasker</string>
<string name="p_purchased_dashclock">purchased_dashclock</string> <string name="p_purchased_dashclock">purchased_dashclock</string>
<string name="p_purchased_themes">purchased_themes</string> <string name="p_purchased_themes">purchased_themes</string>
<string name="tesla_unread">TeslaUnread</string>
<string name="tasker_locale">Tasker/Locale</string> <string name="tasker_locale">Tasker/Locale</string>
<string name="dashclock">DashClock extension</string> <string name="dashclock">DashClock extension</string>
<string name="p_theme">theme_style</string> <string name="p_theme">theme_style</string>
@ -272,7 +271,6 @@
<string name="p_dashclock_filter">dashclock_filter</string> <string name="p_dashclock_filter">dashclock_filter</string>
<string name="sku_tasker">tasker</string> <string name="sku_tasker">tasker</string>
<string name="sku_tesla_unread">tesla_unread</string>
<string name="sku_dashclock">dashclock</string> <string name="sku_dashclock">dashclock</string>
<string name="debug_unlock_purchases">Unlock purchases</string> <string name="debug_unlock_purchases">Unlock purchases</string>
<string name="debug_consume_purchases">Consume purchases</string> <string name="debug_consume_purchases">Consume purchases</string>

@ -713,7 +713,6 @@ File %1$s contained %2$s.\n\n
<string name="back_button_saves_task">Back button saves task</string> <string name="back_button_saves_task">Back button saves task</string>
<string name="default_list">Default list</string> <string name="default_list">Default list</string>
<string name="plugin_description">Tasks is an open source project maintained by one developer. Some features are offered as in-app purchases in order to support development.</string> <string name="plugin_description">Tasks is an open source project maintained by one developer. Some features are offered as in-app purchases in order to support development.</string>
<string name="tesla_unread_description">Display a badge for the number of active tasks in your default list. Requires TeslaUnread for Nova Launcher</string>
<string name="themes_purchase_description">Unlock all themes and add some color to Tasks</string> <string name="themes_purchase_description">Unlock all themes and add some color to Tasks</string>
<string name="tasker_description">Context-aware list notifications. Requires Tasker or Locale</string> <string name="tasker_description">Context-aware list notifications. Requires Tasker or Locale</string>
<string name="donate_summary">Donations are greatly appreciated</string> <string name="donate_summary">Donations are greatly appreciated</string>
@ -788,4 +787,7 @@ File %1$s contained %2$s.\n\n
<string name="battery_optimization_settings">Manage battery optimizations</string> <string name="battery_optimization_settings">Manage battery optimizations</string>
<string name="notification_disable_battery_optimizations_description">Battery optimizations may delay notifications</string> <string name="notification_disable_battery_optimizations_description">Battery optimizations may delay notifications</string>
<string name="bundle_notifications">Bundle notifications</string> <string name="bundle_notifications">Bundle notifications</string>
<string name="badges">Badges</string>
<string name="launcher_support_required">Launcher support required</string>
<string name="list">List</string>
</resources> </resources>

@ -61,6 +61,19 @@
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/badges">
<CheckBoxPreference
android:defaultValue="true"
android:key="@string/p_badges_enabled"
android:title="@string/enabled"
android:summary="@string/launcher_support_required" />
<com.todoroo.astrid.ui.MultilinePreference
android:dependency="@string/p_badges_enabled"
android:key="@string/p_badge_list"
android:title="@string/list" />
</PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/backup_BPr_header"> android:title="@string/backup_BPr_header">

@ -35,11 +35,6 @@
android:summary="@string/tasker_description" android:summary="@string/tasker_description"
android:title="@string/tasker_locale" /> android:title="@string/tasker_locale" />
<CheckBoxPreference
android:key="@string/p_tesla_unread_enabled"
android:summary="@string/tesla_unread_description"
android:title="@string/tesla_unread" />
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>
Loading…
Cancel
Save