mirror of
https://gitlab.com/oeffi/oeffi.git
synced 2025-07-07 06:08:51 +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_INDEX_FILENAME = "plans-index.txt";
|
||||||
public static final String PLAN_STATIONS_FILENAME = "plans-stations.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 BITCOIN_ADDRESS = "bc1q8ruc8hanp7hrzfs48dvtuzz4ukmpe7cgsvvzrt";
|
||||||
|
|
||||||
public static final String REPORT_EMAIL = "oeffi.app@gmail.com";
|
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.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceFragment;
|
import android.preference.PreferenceFragment;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import de.schildbach.oeffi.Application;
|
import de.schildbach.oeffi.Application;
|
||||||
import de.schildbach.oeffi.Constants;
|
|
||||||
import de.schildbach.oeffi.R;
|
import de.schildbach.oeffi.R;
|
||||||
|
import de.schildbach.oeffi.util.Installer;
|
||||||
|
|
||||||
public class AboutFragment extends PreferenceFragment {
|
public class AboutFragment extends PreferenceFragment {
|
||||||
private static final String KEY_ABOUT_VERSION = "about_version";
|
private static final String KEY_ABOUT_VERSION = "about_version";
|
||||||
|
@ -48,11 +50,23 @@ public class AboutFragment extends PreferenceFragment {
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.preference_about);
|
addPreferencesFromResource(R.xml.preference_about);
|
||||||
findPreference(KEY_ABOUT_VERSION).setSummary(application.packageInfo().versionName);
|
findPreference(KEY_ABOUT_VERSION).setSummary(application.packageInfo().versionName);
|
||||||
final Uri marketUri = Uri.parse(String.format(Constants.MARKET_APP_URL, application.getPackageName()));
|
final Installer installer = Installer.from(application);
|
||||||
findPreference(KEY_ABOUT_MARKET_APP).setSummary(marketUri.toString());
|
if (installer != null) {
|
||||||
findPreference(KEY_ABOUT_MARKET_APP).setIntent(new Intent(Intent.ACTION_VIEW, marketUri));
|
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));
|
final Uri changelogUri = Uri.parse(activity.getString(R.string.about_changelog_summary));
|
||||||
findPreference(KEY_ABOUT_CHANGELOG).setSummary(changelogUri.toString());
|
findPreference(KEY_ABOUT_CHANGELOG).setSummary(changelogUri.toString());
|
||||||
findPreference(KEY_ABOUT_CHANGELOG).setIntent(new Intent(Intent.ACTION_VIEW, changelogUri));
|
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) {
|
if (installer != null) {
|
||||||
builder.setNeutralButton(installer.displayName, (dialog, which) -> {
|
builder.setNeutralButton(installer.displayName, (dialog, which) -> {
|
||||||
stackTraceFile.delete();
|
stackTraceFile.delete();
|
||||||
context.startActivity(new Intent(Intent.ACTION_VIEW,
|
context.startActivity(new Intent(Intent.ACTION_VIEW, installer.appMarketUriFor(context)));
|
||||||
Uri.parse("market://details?id=" + context.getPackageName())));
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
builder.setPositiveButton(R.string.alert_crash_report_download, (dialog, which) -> {
|
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.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.net.Uri;
|
||||||
import okhttp3.HttpUrl;
|
import okhttp3.HttpUrl;
|
||||||
|
|
||||||
public enum Installer {
|
public enum Installer {
|
||||||
|
@ -74,4 +75,14 @@ public enum Installer {
|
||||||
}
|
}
|
||||||
return url.build();
|
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