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">
-