[android] Update About page

also update copyright.html to refer to comaps, and fix project name hardcoding in utils.java
Signed-off-by: Harry Bond <me@hbond.xyz>
This commit is contained in:
Harry Bond
2025-04-15 21:11:52 +01:00
committed by Konstantin Pastbin
parent 5b4e6f73a1
commit 906507daa2
10 changed files with 99 additions and 69 deletions

View File

@@ -112,7 +112,7 @@ android {
minSdk propMinSdkVersion.toInteger()
targetSdk propTargetSdkVersion.toInteger()
applicationId project.ext.appId
buildConfigField 'String', 'SUPPORT_MAIL', '"android@organicmaps.app"'
buildConfigField 'String', 'SUPPORT_MAIL', '"android@comaps.app"'
// Should be customized in flavors.
buildConfigField 'String', 'REVIEW_URL', '""'
resourceConfigurations += [project.ext.supportedLocalizations]
@@ -183,7 +183,7 @@ android {
google {
dimension 'default'
versionName = android.defaultConfig.versionName + '-Google'
buildConfigField 'String', 'SUPPORT_MAIL', '"googleplay@organicmaps.app"'
buildConfigField 'String', 'SUPPORT_MAIL', '"gplay@comaps.app"'
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=app.organicmaps"'
}
@@ -191,20 +191,20 @@ android {
dimension 'default'
applicationIdSuffix '.web'
versionName = android.defaultConfig.versionName + '-Web'
buildConfigField 'String', 'SUPPORT_MAIL', '"apk@organicmaps.app"'
buildConfigField 'String', 'SUPPORT_MAIL', '"apk@comaps.app"'
}
fdroid {
dimension 'default'
versionName = android.defaultConfig.versionName + '-FDroid'
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@organicmaps.app"'
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@comaps.app"'
}
huawei {
dimension 'default'
versionName = android.defaultConfig.versionName + '-Huawei'
versionCode = HUAWEI_VERSION_CODE_BASE + android.defaultConfig.versionCode
buildConfigField 'String', 'SUPPORT_MAIL', '"huawei@organicmaps.app"'
buildConfigField 'String', 'SUPPORT_MAIL', '"huawei@comaps.app"'
buildConfigField 'String', 'REVIEW_URL', '"appmarket://details?id=app.organicmaps"'
}
}

View File

@@ -58,16 +58,17 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
setupItem(R.id.news, true, root);
setupItem(R.id.web, true, root);
setupItem(R.id.email, true, root);
setupItem(R.id.github, true, root);
setupItem(R.id.code_repo, false, root);
setupItem(R.id.telegram, false, root);
setupItem(R.id.instagram, false, root);
setupItem(R.id.facebook, false, root);
setupItem(R.id.twitter, true, root);
//setupItem(R.id.twitter, true, root);
setupItem(R.id.matrix, true, root);
setupItem(R.id.mastodon, false, root);
setupItem(R.id.openstreetmap, true, root);
setupItem(R.id.faq, true, root);
setupItem(R.id.report, isLandscape, root);
setupItem(R.id.copyright, false, root);
final TextView supportUsView = root.findViewById(R.id.support_us);
if (BuildConfig.FLAVOR.equals("google") && !TextUtils.isEmpty(mDonateUrl))
@@ -91,11 +92,10 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
else
setupItem(R.id.rate, true, root);
setupItem(R.id.copyright, false, root);
View termOfUseView = root.findViewById(R.id.term_of_use_link);
View privacyPolicyView = root.findViewById(R.id.privacy_policy);
termOfUseView.setOnClickListener(v -> Utils.openUrl(requireActivity(), getResources().getString(R.string.translated_om_site_url) + "terms/"));
privacyPolicyView.setOnClickListener(v -> Utils.openUrl(requireActivity(), getResources().getString(R.string.translated_om_site_url) + "privacy/"));
termOfUseView.setOnClickListener(v -> Utils.openUrl(requireActivity(), getResources().getString(R.string.app_site_url) + "terms/"));
privacyPolicyView.setOnClickListener(v -> Utils.openUrl(requireActivity(), getResources().getString(R.string.app_site_url) + "privacy/"));
shareLauncher = SharingUtils.RegisterLauncher(this);
@@ -109,21 +109,21 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
{
final int id = v.getId();
if (id == R.id.web)
Utils.openUrl(requireActivity(), getResources().getString(R.string.translated_om_site_url));
Utils.openUrl(requireActivity(), getResources().getString(R.string.app_site_url));
else if (id == R.id.news)
Utils.openUrl(requireActivity(), getResources().getString(R.string.translated_om_site_url) + "news/");
Utils.openUrl(requireActivity(), getResources().getString(R.string.app_site_url) + "news/");
else if (id == R.id.email)
Utils.sendTo(requireContext(), BuildConfig.SUPPORT_MAIL, "Organic Maps");
else if (id == R.id.github)
Utils.openUrl(requireActivity(), Constants.Url.GITHUB);
Utils.sendTo(requireContext(), BuildConfig.SUPPORT_MAIL, getString(R.string.project_name));
else if (id == R.id.code_repo)
Utils.openUrl(requireActivity(), Constants.Url.CODE_REPO);
else if (id == R.id.telegram)
Utils.openUrl(requireActivity(), getString(R.string.telegram_url));
else if (id == R.id.instagram)
Utils.openUrl(requireActivity(), getString(R.string.instagram_url));
else if (id == R.id.facebook)
Utils.showFacebookPage(requireActivity());
else if (id == R.id.twitter)
Utils.openUrl(requireActivity(), Constants.Url.TWITTER);
// else if (id == R.id.twitter)
// Utils.openUrl(requireActivity(), Constants.Url.TWITTER);
else if (id == R.id.matrix)
Utils.openUrl(requireActivity(), Constants.Url.MATRIX);
else if (id == R.id.mastodon)
@@ -135,7 +135,7 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
else if (id == R.id.report)
Utils.sendBugReport(shareLauncher, requireActivity(), "", "");
else if (id == R.id.support_us)
Utils.openUrl(requireActivity(), getResources().getString(R.string.translated_om_site_url) + "support-us/");
Utils.openUrl(requireActivity(), getResources().getString(R.string.app_site_url) + "support-us/");
else if (id == R.id.donate)
Utils.openUrl(requireActivity(), mDonateUrl);
else if (id == R.id.rate)

View File

@@ -343,7 +343,7 @@ public final class Config
// Enable donations by default if not Google or Huawei. Replace organicmaps.app/donate/ with localized page.
if ((url.isEmpty() && !BuildConfig.FLAVOR.equals("google") && !BuildConfig.FLAVOR.equals("huawei")) ||
url.endsWith("organicmaps.app/donate/"))
return context.getString(R.string.translated_om_site_url) + "donate/";
return context.getString(R.string.app_site_url) + "donate/";
return url;
}

View File

@@ -19,13 +19,13 @@ public final class Constants
public static final String MAIL_SUBJECT = "?subject=";
public static final String MAIL_BODY = "&body=";
public static final String FB_OM_COMMUNITY_HTTP = "https://www.facebook.com/OrganicMaps";
public static final String FB_OM_COMMUNITY_NATIVE = "fb://profile/102378968471811";
public static final String TWITTER = "https://twitter.com/OrganicMapsApp";
public static final String MATRIX = "https://matrix.to/#/%23organicmaps:matrix.org";
public static final String MASTODON = "https://fosstodon.org/@organicmaps";
public static final String MATRIX = "https://matrix.to/#/%23comaps:matrix.org";
public static final String MASTODON = "https://fosstodon.org/@comaps";
public static final String FB_OM_COMMUNITY_HTTP = "https://www.facebook.com/profile.php?id=61575286559965";
public static final String FB_OM_COMMUNITY_NATIVE = "fb://profile/61575286559965";
//public static final String TWITTER = "https://twitter.com/user";
public static final String GITHUB = "https://github.com/organicmaps/organicmaps";
public static final String CODE_REPO = "https://codeberg.org/comaps/comaps";
public static final String COPYRIGHT = "file:///android_asset/copyright.html";
public static final String FAQ = "file:///android_asset/faq.html";

View File

@@ -177,7 +177,7 @@ public class Utils
{
final android.content.ClipboardManager clipboard =
(android.content.ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
final ClipData clip = ClipData.newPlainText("Organic Maps: " + text, text);
final ClipData clip = ClipData.newPlainText(context.getString(R.string.project_name) + ": " + text, text);
clipboard.setPrimaryClip(clip);
}
@@ -318,14 +318,14 @@ public class Utils
*/
public static void sendBugReport(@NonNull ActivityResultLauncher<SharingUtils.SharingIntent> launcher, @NonNull Activity activity, @NonNull String subject, @NonNull String body)
{
subject = "Organic Maps Bugreport" + (TextUtils.isEmpty(subject) ? "" : ": " + subject);
subject = activity.getString(R.string.project_name) + " Bug Report" + (TextUtils.isEmpty(subject) ? "" : ": " + subject);
LogsManager.INSTANCE.zipLogs(new SupportInfoWithLogsCallback(launcher, activity, subject, body, Constants.Email.SUPPORT));
}
// TODO: Don't send logs with general feedback, send system information only (version, device name, connectivity, etc.)
public static void sendFeedback(@NonNull ActivityResultLauncher<SharingUtils.SharingIntent> launcher, @NonNull Activity activity)
{
LogsManager.INSTANCE.zipLogs(new SupportInfoWithLogsCallback(launcher, activity, "Organic Maps Feedback", "",
LogsManager.INSTANCE.zipLogs(new SupportInfoWithLogsCallback(launcher, activity, activity.getString(R.string.project_name) + " Feedback", "",
Constants.Email.SUPPORT));
}

View File

@@ -0,0 +1,25 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="m12.2,6.09a0.105,0.078 0,0 0,-0.102 0.093l4.62,17.3a12,12 0,0 0,5.42 -4.65l-9.85,-12.7a0.105,0.078 0,0 0,-0.091 -0.038z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="26.622"
android:startY="4.098"
android:endX="34.35"
android:endY="19.554"
android:type="linear">
<item android:offset="0" android:color="#002185D0"/>
<item android:offset="0.495" android:color="#4C2185D0"/>
<item android:offset="1" android:color="#4C2185D0"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="m12,0.488c-6.63,0 -12,5.37 -12,12 0,2.25 0.635,4.46 1.83,6.37l10,-12.9c0.072,-0.093 0.253,-0.093 0.325,0l10,12.9c1.2,-1.91 1.83,-4.12 1.83,-6.37 0,-6.63 -5.37,-12 -12,-12z"
android:fillColor="#2185d0"/>
</vector>

View File

@@ -41,7 +41,7 @@
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
tools:text="2021.10.15-15-Google" />
tools:text="2025.04.16-FDroid" />
<TextView
android:layout_width="match_parent"
@@ -236,11 +236,11 @@
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView
android:id="@+id/github"
android:id="@+id/code_repo"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/github"
app:drawableStartCompat="@drawable/ic_github" />
android:text="@string/codeberg"
app:drawableStartCompat="@drawable/ic_codeberg" />
<TextView
android:id="@+id/web"
@@ -276,14 +276,14 @@
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
app:drawableStartCompat="@drawable/ic_facebook" />
<!--
<TextView
android:id="@+id/twitter"
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
app:drawableStartCompat="@drawable/ic_twitterx" />
-->
<TextView
android:id="@+id/instagram"
android:textAlignment="viewStart"
@@ -322,6 +322,5 @@
android:textAlignment="viewStart"
style="@style/MwmWidget.TextView.Item"
android:text="@string/copyright" />
</LinearLayout>
</ScrollView>

View File

@@ -36,7 +36,7 @@
android:selectAllOnFocus="true"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
tools:text="2021.10.15-15-Google" />
tools:text="2025.04.16-FDroid" />
<TextView
android:layout_width="match_parent"
@@ -169,11 +169,11 @@
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView
android:id="@+id/github"
android:id="@+id/code_repo"
style="@style/MwmWidget.TextView.Item"
android:text="@string/github"
android:text="@string/codeberg"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_github" />
app:drawableStartCompat="@drawable/ic_codeberg" />
<TextView
android:id="@+id/web"
@@ -209,14 +209,14 @@
android:text="@string/facebook"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_facebook" />
<!--
<TextView
android:id="@+id/twitter"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
android:textAlignment="viewStart"
app:drawableStartCompat="@drawable/ic_twitterx" />
-->
<TextView
android:id="@+id/instagram"
style="@style/MwmWidget.TextView.Item"
@@ -255,6 +255,5 @@
style="@style/MwmWidget.TextView.Item"
android:textAlignment="viewStart"
android:text="@string/copyright" />
</LinearLayout>
</ScrollView>

View File

@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Project only name, app_name is added to strings in build.gradle & can contain "Debug" etc. prefixes. -->
<string name="project_name" translatable="false">CoMaps</string>
<string name="app_site_url">https://comaps.app/</string>
<!-- SECTION: Strings -->
<!-- Button text (should be short) -->
<string name="back">Back</string>
@@ -921,4 +924,5 @@
<string name="uri_open_location_failed">No app installed that can open the location</string>
<!-- preference string for using auto theme only in navigation mode -->
<string name="nav_auto">Auto in navigation</string>
<string name="codeberg">Codeberg</string>
</resources>

View File

@@ -3,9 +3,9 @@
<html>
<head>
<meta charset="UTF-8"/>
<meta name='viewport' content='width=device-width; initial-scale=1.0; maximum-scale=1.0;'>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<title>Copyright</title>
<style type="text/css">
<style>
/* Dark mode support. */
:root {
color-scheme: light dark;
@@ -49,7 +49,7 @@
}
</style>
<script type="text/javascript">
<script>
function showAndroidElements()
{
var ua = navigator.userAgent.toLowerCase();
@@ -120,30 +120,30 @@
<p lang="ar">المساهمون في بيانات خريطة &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> و ODbL.</p>
<p lang="uk">Картографічні дані &copy; учасники <a href="https://www.openstreetmap.org/">OpenStreetMap</a>, ODbL.</p>
<p lang="en"><strong>Organic Maps</strong> would not be possible without the generous contributions of the following projects:</p>
<p lang="ru">Приложение <strong>Organic Maps</strong> было бы невозможно без участия следующих проектов:</p>
<p lang="vi"><strong>Organic Maps</strong> sẽ không thành hiện thực nếu không có sự đóng góp hào phóng từ các dự án sau:</p>
<p lang="tr"><strong>Organic Maps</strong>, aşağıdaki projelerin cömert katkıları olmadan mümkün olmazdı:</p>
<p lang="th"><strong>Organic Maps</strong> จะสำเร็จลุล่วงไม่ได้เลยหากปราศจากความเอื้อเฟื้อเพื่อการร่วมมือของโปรเจกต์ดังต่อไปนี้:</p>
<p lang="sv"><strong>Organic Maps</strong> skulle inte vara möjlig utan följande projekts generösa bidrag:</p>
<p lang="es"><strong>Organic Maps</strong> no sería posible sin las generosas aportaciones de los siguientes proyectos:</p>
<p lang="pt">O <strong>Organic Maps</strong> não seria possível sem as contribuições generosas dos seguintes projetos:</p>
<p lang="pl">Aplikacja <strong>Organic Maps</strong> nie powstałaby bez znaczącego wkładu ze strony twórców poniższych projektów:</p>
<p lang="nb"><strong>Organic Maps</strong> ville ikke vært mulig uten de generøse bidragene fra følgende prosjekter:</p>
<p lang="ko"><strong>Organic Maps</strong>는 다음 프로젝트의 아낌없는 기부없이 가능하지 않습니다:</p>
<p lang="ja"><strong>Organic Maps</strong>は次のプロジェクトの手厚い貢献なしには不可能です:</p>
<p lang="it"><strong>Organic Maps</strong> non sarebbe realizzabile senza il generoso contributo dei seguenti progetti:</p>
<p lang="id"><strong>Organic Maps</strong> tidak mungkin tercipta tanpa kontribusi yang tulus dari proyek-proyek berikut ini:</p>
<p lang="hu">A <strong>Organic Maps</strong> nem jöhetett volna létre az alábbi projektek nagylelkű közreműködése nélkül:</p>
<p lang="de"><strong>Organic Maps</strong> wäre ohne die großzügigen Spenden der folgenden Projekte nicht möglich:</p>
<p lang="fr">L'existence de <strong>Organic Maps</strong> serait impossible sans les généreuses contributions des projets suivants :</p>
<p lang="fi"><strong>Organic Maps</strong> ei olisi mahdollinen ilman seuraavien projektien aulista tukea:</p>
<p lang="nl"><strong>Organic Maps</strong> zou niet mogelijk zijn zonder de genereuze bijdragen voor de volgende projecten:</p>
<p lang="cs"><strong>Organic Maps</strong> by nemohlo existovat bez štědrých přispění následujících projektů:</p>
<p lang="zh-Hans">沒有下面項目的慷慨貢獻,<strong>Organic Maps</strong> 不可能出現:</p>
<p lang="zh-Hant">沒有下面項目的慷慨貢獻,<strong>Organic Maps</strong> 不可能出現:</p>
<p lang="ar"> ما كان لـ <strong>Organic Maps</strong> أن تأتي للوجود بدون المساهمات العظيمة للمشاريع التالية:</p>
<p lang="uk"><strong>Organic Maps</strong> був би неможливим без щедрої участі таких проектів:</p>
<p lang="en"><strong>CoMaps</strong> would not be possible without the generous contributions of the following projects:</p>
<p lang="ru">Приложение <strong>CoMaps</strong> было бы невозможно без участия следующих проектов:</p>
<p lang="vi"><strong>CoMaps</strong> sẽ không thành hiện thực nếu không có sự đóng góp hào phóng từ các dự án sau:</p>
<p lang="tr"><strong>CoMaps</strong>, aşağıdaki projelerin cömert katkıları olmadan mümkün olmazdı:</p>
<p lang="th"><strong>CoMaps</strong> จะสำเร็จลุล่วงไม่ได้เลยหากปราศจากความเอื้อเฟื้อเพื่อการร่วมมือของโปรเจกต์ดังต่อไปนี้:</p>
<p lang="sv"><strong>CoMaps</strong> skulle inte vara möjlig utan följande projekts generösa bidrag:</p>
<p lang="es"><strong>CoMaps</strong> no sería posible sin las generosas aportaciones de los siguientes proyectos:</p>
<p lang="pt">O <strong>CoMaps</strong> não seria possível sem as contribuições generosas dos seguintes projetos:</p>
<p lang="pl">Aplikacja <strong>CoMaps</strong> nie powstałaby bez znaczącego wkładu ze strony twórców poniższych projektów:</p>
<p lang="nb"><strong>CoMaps</strong> ville ikke vært mulig uten de generøse bidragene fra følgende prosjekter:</p>
<p lang="ko"><strong>CoMaps</strong>는 다음 프로젝트의 아낌없는 기부없이 가능하지 않습니다:</p>
<p lang="ja"><strong>CoMaps</strong>は次のプロジェクトの手厚い貢献なしには不可能です:</p>
<p lang="it"><strong>CoMaps</strong> non sarebbe realizzabile senza il generoso contributo dei seguenti progetti:</p>
<p lang="id"><strong>CoMaps</strong> tidak mungkin tercipta tanpa kontribusi yang tulus dari proyek-proyek berikut ini:</p>
<p lang="hu">A <strong>CoMaps</strong> nem jöhetett volna létre az alábbi projektek nagylelkű közreműködése nélkül:</p>
<p lang="de"><strong>CoMaps</strong> wäre ohne die großzügigen Spenden der folgenden Projekte nicht möglich:</p>
<p lang="fr">L'existence de <strong>CoMaps</strong> serait impossible sans les généreuses contributions des projets suivants :</p>
<p lang="fi"><strong>CoMaps</strong> ei olisi mahdollinen ilman seuraavien projektien aulista tukea:</p>
<p lang="nl"><strong>CoMaps</strong> zou niet mogelijk zijn zonder de genereuze bijdragen voor de volgende projecten:</p>
<p lang="cs"><strong>CoMaps</strong> by nemohlo existovat bez štědrých přispění následujících projektů:</p>
<p lang="zh-Hans">沒有下面項目的慷慨貢獻,<strong>CoMaps</strong> 不可能出現:</p>
<p lang="zh-Hant">沒有下面項目的慷慨貢獻,<strong>CoMaps</strong> 不可能出現:</p>
<p lang="ar"> ما كان لـ <strong>CoMaps</strong> أن تأتي للوجود بدون المساهمات العظيمة للمشاريع التالية:</p>
<p lang="uk"><strong>CoMaps</strong> був би неможливим без щедрої участі таких проектів:</p>
<ul class="license-list">
<li><a href="http://antigrain.com/">Anti-Grain Geometry</a><br>&copy; 2002&ndash;2005 Maxim Shemanarev; <a href="#agg-license" class="license">License</a></li>
@@ -194,6 +194,9 @@
<li><a href="https://git.omaps.dev/organicmaps/organicmaps">Organic Maps</a><br>
&copy; 2025 Organic Maps Contributors; <a href="#apache2-license" class="license">Apache License</a></li>
<li><a href="https://codeberg.org/comaps/comaps">CoMaps</a><br>
&copy; 2025 CoMaps Contributors; <a href="#apache2-license" class="license">Apache License</a></li>
<li><a href="https://github.com/google/protobuf">Protobuf</a><br>
&copy; 2014 Google Inc.; <a href="#bsd3-license" class="license">BSD License</a></li>