add Github star dialog

This commit is contained in:
woheller69 2025-04-08 09:28:59 +02:00
parent b9d57ee28b
commit 4559285417
10 changed files with 79 additions and 2 deletions

View file

@ -6,8 +6,8 @@ android {
applicationId "us.spotco.maps"
minSdkVersion 21
targetSdk 34
versionCode 39
versionName "3.9"
versionCode 40
versionName "4.0"
}
buildTypes {
debug {

View file

@ -0,0 +1,62 @@
package us.spotco.maps;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
public class GithubStar {
public static void setAskForStar(boolean askForStar, Context context) {
SharedPreferences prefManager = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefManager.edit();
editor.putBoolean("askForStar", askForStar);
editor.apply();
}
public static boolean shouldShowStarDialog(Context context) {
SharedPreferences prefManager = PreferenceManager.getDefaultSharedPreferences(context);
int versionCode = prefManager.getInt("versionCode", 0);
boolean askForStar = prefManager.getBoolean("askForStar", true);
if (prefManager.contains("versionCode") && BuildConfig.VERSION_CODE > versionCode && askForStar) { //not at first start, only after upgrade and only if use has not yet given a star or has declined
SharedPreferences.Editor editor = prefManager.edit();
editor.putInt("versionCode", BuildConfig.VERSION_CODE);
editor.apply();
return true;
} else {
SharedPreferences.Editor editor = prefManager.edit();
editor.putInt("versionCode", BuildConfig.VERSION_CODE);
editor.apply();
return false;
}
}
public static void starDialog(Context context, String url) {
SharedPreferences prefManager = PreferenceManager.getDefaultSharedPreferences(context);
if (prefManager.getBoolean("askForStar", true)) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setMessage(R.string.dialog_StarOnGitHub);
alertDialogBuilder.setPositiveButton(context.getString(android.R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
setAskForStar(false, context);
}
});
alertDialogBuilder.setNegativeButton(context.getString(android.R.string.no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setAskForStar(false, context);
}
});
alertDialogBuilder.setNeutralButton(context.getString(R.string.dialog_Later_button), null);
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
}
}

View file

@ -308,6 +308,7 @@ public class MainActivity extends Activity {
//Load Google Maps
mapsWebView.loadUrl(urlToLoad);
if (GithubStar.shouldShowStarDialog(this)) GithubStar.starDialog(this, "https://github.com/woheller69/maps");
}
@Override

View file

@ -6,4 +6,6 @@
<string name="intent_string">افتح في webview مقيد</string>
<string name="no_app_installed">لم يتم تثبيت أي تطبيق</string>
<string name="text_location_permission">يُرجى منح إذن الموقع ثم اضغط على الزر مرة أخرى.</string>
<string name="dialog_Later_button">ربما لاحقًا</string>
<string name="dialog_StarOnGitHub">هل أعجبك هذا التطبيق؟ الرجاء منح نجمة على GitHub أو شراء قهوة للمطور عبر PayPal.</string>
</resources>

View file

@ -8,4 +8,6 @@
<string name="no_app_installed">Keine App installiert</string>
<string name="title_open_link">Link öffnen</string>
<string name="text_open_link">In externem Browser öffnen? %s</string>
<string name="dialog_StarOnGitHub">Mögen Sie diese App? Bitte vergeben Sie einen Stern auf GitHub oder spendieren Sie dem Entwickler einen Kaffee über PayPal.</string>
<string name="dialog_Later_button">Vielleicht später</string>
</resources>

View file

@ -8,4 +8,6 @@
<string name="intent_string">Ouvrir dans la webview restreinte</string>
<string name="title_open_link">Ouvrir le lien</string>
<string name="text_open_link">Ouvrir dans le navigateur externe ? %s</string>
<string name="dialog_StarOnGitHub">Vous appréciez cette application? Donnez une étoile sur GitHub ou offrez un café au développeur via PayPal.</string>
<string name="dialog_Later_button">Plus tard, peut-être</string>
</resources>

View file

@ -6,4 +6,6 @@
<string name="text_location_permission">Conceda a permissão de localização e toque no botão novamente.</string>
<string name="error_no_gps">Ative o GPS</string>
<string name="no_app_installed">Nenhum app instalado</string>
<string name="dialog_StarOnGitHub">Você gosta deste app? Dê-o uma estrela no GitHub ou compre um café para o desenvolvedor no PayPal.</string>
<string name="dialog_Later_button">Talvez depois</string>
</resources>

View file

@ -5,4 +5,6 @@
<string name="text_location_permission">Conceda a permissão de localização e toque no botão novamente.</string>
<string name="error_no_gps">Ative o GPS</string>
<string name="no_app_installed">Nenhum app instalado</string>
<string name="dialog_StarOnGitHub">Você gosta deste app? Dê-o uma estrela no GitHub ou compre um café para o desenvolvedor no PayPal.</string>
<string name="dialog_Later_button">Talvez depois</string>
</resources>

View file

@ -3,4 +3,6 @@
<string name="intent_string">Открыть в ограниченном веб-просмотре</string>
<string name="title_location_permission">Разрешение на местоположение</string>
<string name="error_no_gps">Пожалуйста, активируйте GPS</string>
<string name="dialog_StarOnGitHub">Вам нравится это приложение? Пожалуйста, поставьте звёздочку на GitHub или купите разработчику кофе через PayPal.</string>
<string name="dialog_Later_button">Может быть позже</string>
</resources>

View file

@ -7,4 +7,6 @@
<string name="no_app_installed">No app installed</string>
<string name="title_open_link">Open link</string>
<string name="text_open_link">Open in external browser? %s</string>
<string name="dialog_StarOnGitHub">Do you like this app? Please give a star on GitHub or buy the developer a coffee via PayPal.</string>
<string name="dialog_Later_button">Maybe later</string>
</resources>