mirror of
https://gitlab.com/oeffi/oeffi.git
synced 2025-07-06 17:38:48 +00:00
ErrorReporter, AboutFragment: Use correct market URI for Huawei AppGallery installs.
This commit is contained in:
parent
fbaa8f3bb8
commit
4590b4f29c
4 changed files with 30 additions and 7 deletions
|
@ -30,7 +30,6 @@ public class Constants {
|
|||
public static final String PLAN_INDEX_FILENAME = "plans-index.txt";
|
||||
public static final String PLAN_STATIONS_FILENAME = "plans-stations.txt";
|
||||
|
||||
public static final String MARKET_APP_URL = "market://details?id=%s";
|
||||
public static final String BITCOIN_ADDRESS = "bc1q8ruc8hanp7hrzfs48dvtuzz4ukmpe7cgsvvzrt";
|
||||
|
||||
public static final String REPORT_EMAIL = "oeffi.app@gmail.com";
|
||||
|
|
|
@ -20,12 +20,14 @@ package de.schildbach.oeffi.preference;
|
|||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import androidx.annotation.Nullable;
|
||||
import de.schildbach.oeffi.Application;
|
||||
import de.schildbach.oeffi.Constants;
|
||||
import de.schildbach.oeffi.R;
|
||||
import de.schildbach.oeffi.util.Installer;
|
||||
|
||||
public class AboutFragment extends PreferenceFragment {
|
||||
private static final String KEY_ABOUT_VERSION = "about_version";
|
||||
|
@ -48,11 +50,23 @@ public class AboutFragment extends PreferenceFragment {
|
|||
|
||||
addPreferencesFromResource(R.xml.preference_about);
|
||||
findPreference(KEY_ABOUT_VERSION).setSummary(application.packageInfo().versionName);
|
||||
final Uri marketUri = Uri.parse(String.format(Constants.MARKET_APP_URL, application.getPackageName()));
|
||||
findPreference(KEY_ABOUT_MARKET_APP).setSummary(marketUri.toString());
|
||||
findPreference(KEY_ABOUT_MARKET_APP).setIntent(new Intent(Intent.ACTION_VIEW, marketUri));
|
||||
final Installer installer = Installer.from(application);
|
||||
if (installer != null) {
|
||||
final Uri marketUri = installer.appMarketUriFor(application);
|
||||
findPreference(KEY_ABOUT_MARKET_APP).setSummary(marketUri.toString());
|
||||
findPreference(KEY_ABOUT_MARKET_APP).setIntent(new Intent(Intent.ACTION_VIEW, marketUri));
|
||||
} else {
|
||||
removeOrDisablePreference(findPreference(KEY_ABOUT_MARKET_APP));
|
||||
}
|
||||
final Uri changelogUri = Uri.parse(activity.getString(R.string.about_changelog_summary));
|
||||
findPreference(KEY_ABOUT_CHANGELOG).setSummary(changelogUri.toString());
|
||||
findPreference(KEY_ABOUT_CHANGELOG).setIntent(new Intent(Intent.ACTION_VIEW, changelogUri));
|
||||
}
|
||||
|
||||
private void removeOrDisablePreference(final Preference preference) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
|
||||
preference.getParent().removePreference(preference);
|
||||
else
|
||||
preference.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -366,8 +366,7 @@ public class ErrorReporter implements Thread.UncaughtExceptionHandler {
|
|||
if (installer != null) {
|
||||
builder.setNeutralButton(installer.displayName, (dialog, which) -> {
|
||||
stackTraceFile.delete();
|
||||
context.startActivity(new Intent(Intent.ACTION_VIEW,
|
||||
Uri.parse("market://details?id=" + context.getPackageName())));
|
||||
context.startActivity(new Intent(Intent.ACTION_VIEW, installer.appMarketUriFor(context)));
|
||||
});
|
||||
}
|
||||
builder.setPositiveButton(R.string.alert_crash_report_download, (dialog, which) -> {
|
||||
|
|
|
@ -20,6 +20,7 @@ package de.schildbach.oeffi.util;
|
|||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import okhttp3.HttpUrl;
|
||||
|
||||
public enum Installer {
|
||||
|
@ -74,4 +75,14 @@ public enum Installer {
|
|||
}
|
||||
return url.build();
|
||||
}
|
||||
|
||||
public Uri appMarketUriFor(final Context context) {
|
||||
final Uri.Builder uri;
|
||||
if (this == HUAWEI_APP_GALLERY)
|
||||
uri = Uri.parse("appmarket://details").buildUpon();
|
||||
else
|
||||
uri = Uri.parse("market://details").buildUpon();
|
||||
uri.appendQueryParameter("id", context.getPackageName());
|
||||
return uri.build();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue