diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java index b912134f..661d2f12 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java @@ -144,6 +144,7 @@ public class TraditionalT9 extends MainViewHandler { onStop(); } else { backgroundTasks.removeCallbacksAndMessages(null); + settings.setDonationsVisible(true); initUi(mInputMode); } diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemDonate.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemDonate.java index 91f0171b..5a897c19 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemDonate.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/ItemDonate.java @@ -1,45 +1,76 @@ package io.github.sspanak.tt9.preferences.screens.main; +import android.content.Context; import android.content.Intent; import android.net.Uri; +import android.util.AttributeSet; +import android.view.View; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.preference.Preference; +import androidx.preference.PreferenceViewHolder; import io.github.sspanak.tt9.R; -import io.github.sspanak.tt9.preferences.PreferencesActivity; -import io.github.sspanak.tt9.preferences.items.ItemClickable; +import io.github.sspanak.tt9.preferences.settings.SettingsStore; +import io.github.sspanak.tt9.ui.UI; import io.github.sspanak.tt9.util.Logger; -class ItemDonate extends ItemClickable { - static final String NAME = "donate_link"; - private final PreferencesActivity activity; - private final boolean isVisible; +class DonatePreference extends Preference { + public static final String NAME = "donate_link"; - ItemDonate(Preference preference, PreferencesActivity activity, boolean isTT9On) { - super(preference); - this.activity = activity; - this.isVisible = false; + + public DonatePreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); } - public ItemDonate populate() { - if (item == null) { - return this; - } + public DonatePreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public DonatePreference(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public DonatePreference(@NonNull Context context) { + super(context); + } + + + @Override + public void onBindViewHolder(@NonNull PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + holder.itemView.setOnLongClickListener(this::onLongClick); + } + + + public DonatePreference populate(SettingsStore settings, boolean isTT9On) { + boolean isVisible = isTT9On && !settings.getDemoMode() && settings.getDonationsVisible(); + Context context = getContext(); if (isVisible) { - String appName = activity.getString(R.string.app_name_short); - String url = activity.getString(R.string.donate_url_short); - item.setSummary(activity.getString(R.string.donate_summary, appName, url)); + String appName = context.getString(R.string.app_name_short); + setSummary( + context.getString(R.string.donate_summary, appName) + " " + context.getString(R.string.donate_hold_to_open) + ); } - item.setVisible(isVisible); + setVisible(isVisible); + setIconSpaceReserved(false); return this; } + @Override - protected boolean onClick(Preference p) { + protected void onClick() { + super.onClick(); + UI.toastShortSingle(getContext(), R.string.donate_hold_to_open); + } + + + private boolean onLongClick(View v) { try { - activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(activity.getString(R.string.donate_url)))); + getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getContext().getString(R.string.donate_url)))); return true; } catch (Exception e) { Logger.w(getClass().getSimpleName(), "Cannot navigate to the donation page. " + e.getMessage() + " (do you have a browser?)"); diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java index c7ab33be..b9e15ce4 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/screens/main/MainSettingsScreen.java @@ -45,8 +45,12 @@ public class MainSettingsScreen extends BaseScreenFragment { private void createAboutSection(boolean isTT9On) { - (new ItemDonate(findPreference(ItemDonate.NAME), activity, isTT9On)).populate().enableClickHandler(); (new ItemVersionInfo(findPreference(ItemVersionInfo.NAME), activity)).populate().enableClickHandler(); + + DonatePreference donate = findPreference("donate_link"); + if (donate != null) { + donate.populate(activity.getSettings(), isTT9On); + } } diff --git a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java index 1413ed1d..b2aae9bc 100644 --- a/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java +++ b/app/src/main/java/io/github/sspanak/tt9/preferences/settings/SettingsHacks.java @@ -62,4 +62,12 @@ class SettingsHacks extends BaseSettings { public boolean getSystemLogs() { return prefs.getBoolean("pref_enable_system_logs", false); } + + public boolean getDonationsVisible() { + return prefs.getBoolean("pref_show_donations", false); + } + + public void setDonationsVisible(boolean yes) { + prefsEditor.putBoolean("pref_show_donations", yes).apply(); + } } diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index a0d9e8fb..9816fb70 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -73,7 +73,7 @@ Налично е обновление на речника за „%1$s“. Зареди Дарете - Ако харесвате %1$s, черпете една бира на: %2$s. + Ако харесвате %1$s, черпете една бира. Редактиране на текст Добавянето на думи не е възможно на този език. Триене на текст @@ -197,4 +197,5 @@ Квадрат V-образна Клавиши стрелки + Натиснете и задръжте, за да отворите в браузъра. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 6d00747d..cfa26548 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -117,7 +117,7 @@ " Wörterbuchupdate verfügbar für „%1$s“." Laden Spenden - Wenn Ihnen %1$s gefällt, könnten Sie mir ein Bier spendieren auf: %2$s. + Wenn Ihnen %1$s gefällt, könnten Sie mir ein Bier spendieren. Zeichen bei doppeltem Drücken der Taste „0“ Immer im Vordergrund Andere Anwendungen nicht erlauben, %1$s zu überdecken oder vom Bildschirm zu schieben. @@ -185,4 +185,5 @@ Quadrat V-Form Pfeiltasten + Drücken und halten, um in einem Browser zu öffnen. diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 94f953b1..aa1fbe10 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -132,7 +132,7 @@ Actualización del diccionario disponible para «%1$s». Cargar Donar - Si te gusta %1$s, puedes invitarme a una cerveza en: %2$s. + Si te gusta %1$s, puedes invitarme a una cerveza. Siempre encima No permitir que otras aplicaciones cubran %1$s o lo empujen fuera de la pantalla. Protección contra la repetición accidental de teclas @@ -195,4 +195,5 @@ Cuadrado Forma de V Teclas de flecha + Mantén presionado para abrir en un navegador. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 76373303..807a730d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -132,7 +132,7 @@ Mise à jour du dictionnaire «%1$s» disponible. Charger Donner - Si vous aimez %1$s, vous pouvez m\'offrir une bière à : %2$s. + Si vous aimez %1$s, vous pouvez m\'offrir une bière. Protection contre la répétition accidentelle des touches Désactivée Exportation terminée @@ -193,4 +193,5 @@ Carré Forme en V Touches fléchées + Appuyez et maintenez pour ouvrir dans un navigateur. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 908a7dc1..b22e6b10 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -118,7 +118,7 @@ Aggiornamento del dizionario disponibile per \"%1$s\". Carica Donare - Se ti piace %1$s, puoi offrirmi una birra a: %2$s. + Se ti piace %1$s, puoi offrirmi una birra. Simbolo quando si preme due volte il tasto \"0\" Sempre in primo piano Non consentire ad altre applicazioni di coprire %1$s o di spingerlo fuori dallo schermo. @@ -185,5 +185,6 @@ Quadrato Forma a V Tasti freccia + Tieni premuto per aprire nel browser. diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index e1b5aa3f..08778a92 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -131,7 +131,6 @@ עדכון למילון זמין עבור \"%1$s\" טען תרומה - אם אתה אוהב את %1$s, אתה יכול לפנק אותי בבירה בכתובת: %2$s. נראה תמיד אל תאפשר ליישומים אחרים לכסות %1$s או לדחות אותו מהמסך. הגנה מפני חזרת מפתח בשוגג @@ -198,4 +197,6 @@ ריבוע צורת V מקשי חצים + אם אתה אוהב %1$s, אתה יכול לקנות לי בירה. + לחצו והחזיקו כדי לפתוח בדפדפן. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 0d57b823..e3438ec4 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -149,7 +149,7 @@ Atnaujinta žodyno versija skirta \"%1$s\". Įkelti Paaukoti - Jei jums patinka %1$s, galite pavaišinti mane alumi čia: %2$s. + Jei jums patinka %1$s, galite pavaišinti mane alumi. Klaviatūros išdėstymas ekrane Klavišų šrifto dydis Aukštis @@ -204,4 +204,5 @@ Kvadratas V formos Rodyklių klavišai + Paspauskite ir laikykite, kad atidarytumėte naršyklėje. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 319c2f1f..96354895 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -117,7 +117,7 @@ Woordenboekupdate beschikbaar voor \"%1$s\". Laden Doneer - Als je %1$s leuk vindt, kun je me trakteren op een biertje op: %2$s. + Als je %1$s leuk vindt, kun je me trakteren op een biertje. Teken bij dubbelklikken op toets \"0\" Altijd bovenaan Andere applicaties niet toestaan om %1$s te bedekken of van het scherm te duwen. @@ -184,4 +184,5 @@ Vorm Vierkant V-vorm + Druk lang in om in een browser te openen. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index aea3f3cc..3398dd9f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -131,7 +131,7 @@ Atualização do dicionário disponível para \"%1$s\". Carregar Doar - Se você gosta de %1$s, pode me pagar uma cerveja em: %2$s. + Se você gosta de %1$s, pode me pagar uma cerveja. Sempre na frente Não permitir que outras aplicações cubram %1$s ou o empurrem para fora do ecrã. Proteção contra repetição acidental de teclas @@ -198,4 +198,5 @@ Quadrado Forma em V Teclas de seta + Pressione e segure para abrir no navegador. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2cc14e37..e70aedaa 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -132,7 +132,7 @@ Доступно обновление словаря для «%1$s». Загрузить Поддержать - Если вам нравится %1$s, вы можете угостить меня пивом здесь: %2$s. + Если вам нравится %1$s, вы можете угостить меня пивом. Поверх других приложений Не разрешать другим приложениям перекрывать %1$s или выталкивать его с экрана. Защита от случайного повторения нажатий @@ -195,4 +195,5 @@ Квадрат V-образная форма Клавиши со стрелками + Нажмите и удерживайте, чтобы открыть в браузере. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 6d4ee962..2d525e29 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -116,7 +116,6 @@ " „%1$s“ sözlüğü için bir güncelleme mevcut." Yükle Destekte bulun - Eğer %1$s hoşuna gittiyse, bana şu adresten bir bira ısmarlayabilirsin: %2$s. "0" tuşuna iki kere basıldığında yazılacak karakter Her zaman en üstte tut Diğer uygulamaların %1$s ekranını kaplamasına veya ekranın dışına itmesine izin vermeyin. @@ -198,4 +197,6 @@ Kare V-şekli Ok tuşları + Eğer %1$s\'ı beğendiyseniz bana bir bira ısmarlayabilirsiniz + Tarayıcıda açmak için basılı tutun. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 2df04ed4..341418d7 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -110,7 +110,7 @@ Завантажити Підтримати - Якщо вам подобається %1$s, ви можете пригостити мене пивом за адресою: %2$s. + Якщо вам подобається %1$s, ви можете пригостити мене пивом. Додавання слів неможливе цією мовою. Стерти @@ -206,4 +206,5 @@ Квадрат V-подібна Клавіші зі стрілками + Натисніть і утримуйте, щоб відкрити в браузері. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b875e6c1..ed22ed06 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -148,7 +148,8 @@ Load Donate - If you like %1$s, you could buy me a beer at: %2$s. + If you like %1$s, you could buy me a beer. + Press and hold to open in the browser. https://www.buymeacoffee.com/sspanak www.buymeacoffee.com diff --git a/app/src/main/res/xml/prefs.xml b/app/src/main/res/xml/prefs.xml index d0d7647c..6ba4e9f2 100644 --- a/app/src/main/res/xml/prefs.xml +++ b/app/src/main/res/xml/prefs.xml @@ -36,7 +36,7 @@ android:title="@string/pref_category_about" app:singleLineTitle="true"> -