[android] New About screen

Signed-off-by: Roman Tsisyk <roman@tsisyk.com>
This commit is contained in:
Roman Tsisyk 2023-02-19 09:59:10 +02:00
parent b1dd6e955e
commit 3f26516aa9
22 changed files with 764 additions and 319 deletions

View file

@ -664,8 +664,7 @@
<activity
android:name="app.organicmaps.help.HelpActivity"
android:configChanges="orientation|screenLayout|screenSize"
android:label="@string/help"
android:label="@string/about_menu_title"
android:parentActivityName="app.organicmaps.MwmActivity"
android:exported="false">
<intent-filter>

View file

@ -1,16 +0,0 @@
<vector android:height="24dp" android:viewportHeight="128"
android:viewportWidth="128" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFE501" android:pathData="M63.13,0.87c0.46,-0.96 1.23,-0.95 1.68,0.01l2.51,5.17c0.46,0.99 1.71,1.91 2.79,2.04l5.85,0.8c1.06,0.14 1.29,0.88 0.47,1.61l-4.24,3.93c-0.78,0.69 -1.28,2.19 -1.08,3.25l1.13,5.89c0.21,1.06 -0.39,1.51 -1.33,0.98l-5.2,-2.93c-0.92,-0.53 -2.47,-0.54 -3.39,0.01l-5.17,2.95c-0.94,0.53 -1.54,0.12 -1.35,-0.96l1.1,-5.91c0.21,-1.05 -0.29,-2.53 -1.08,-3.23l-4.27,-3.91c-0.8,-0.73 -0.58,-1.47 0.48,-1.61l5.87,-0.83c1.07,-0.14 2.32,-1.06 2.79,-2.06L63.13,0.87z"/>
<path android:fillColor="#337736" android:pathData="M114.31,104.15c-1.61,0.38 -3.31,0.58 -4.96,0.57c-3.05,-0.02 -6.09,-0.74 -8.66,-2.42c-1.12,-0.73 -2.61,-1.66 -3.3,-2.85c-0.49,-0.85 -0.25,-2.22 0.82,-2.6c2.04,-0.73 4.12,-1.25 5.92,-2.49c1.58,-1.08 2.85,-2.53 4.06,-4c1.42,-1.71 3.2,-5.62 0.71,-7.25c-1.56,-1.02 -3.82,-0.12 -5.5,0.03c-1.46,0.12 -2.92,0.04 -4.34,-0.28c-1.98,-0.44 -3.87,-1.29 -5.48,-2.51c-1.21,-0.92 -3.48,-2.64 -3.15,-4.4c0.05,-0.27 0.2,-0.63 0.4,-0.81c0.38,-0.33 1.05,-0.54 1.55,-0.69c1.63,-0.48 3.35,-1.1 4.65,-2.23c1.67,-1.45 4.32,-4.98 2.8,-7.26c-0.71,-1.05 -2.35,-0.93 -3.44,-0.93c-1.62,0 -3.33,-0.22 -4.91,-0.58c-5.12,-1.17 -11.83,-4.8 -11.1,-11.01c0.16,-1.41 0.82,-0.94 1.95,-1.05c1.61,-0.16 3.57,-0.54 4.93,-1.52c1.39,-1 3.04,-4.12 1.15,-5.57c-1.54,-1.19 -4.51,-1.05 -6.31,-1.79c-2.15,-0.88 -4.17,-2.16 -5.99,-3.66c-3.66,-2.99 -6.21,-6.89 -9.11,-10.85c-0.8,-1.09 -1.75,-2.21 -2.99,-2.26c-1.24,0.05 -2.19,1.16 -2.99,2.26c-2.9,3.96 -5.45,7.86 -9.1,10.85c-1.83,1.5 -3.84,2.78 -6,3.66c-1.8,0.73 -4.77,0.6 -6.31,1.79c-1.89,1.45 -0.23,4.56 1.16,5.57c1.36,0.98 3.32,1.36 4.93,1.52c1.12,0.11 1.78,-0.36 1.95,1.05c0.73,6.21 -5.97,9.85 -11.1,11.01c-1.58,0.36 -3.28,0.58 -4.9,0.58c-1.09,0 -2.74,-0.12 -3.44,0.93c-1.53,2.28 1.13,5.81 2.8,7.26c1.3,1.13 3.01,1.75 4.65,2.23c0.5,0.15 1.17,0.36 1.54,0.69c0.21,0.18 0.35,0.54 0.41,0.81c0.33,1.76 -1.94,3.48 -3.15,4.4c-1.61,1.22 -3.51,2.07 -5.48,2.51c-1.43,0.32 -2.89,0.4 -4.35,0.28c-1.68,-0.15 -3.95,-1.04 -5.5,-0.03c-2.49,1.63 -0.7,5.54 0.71,7.25c1.21,1.47 2.48,2.92 4.07,4c1.81,1.24 3.89,1.75 5.92,2.49c1.06,0.38 1.31,1.75 0.82,2.6c-0.7,1.19 -2.17,2.11 -3.3,2.85c-2.57,1.68 -5.61,2.39 -8.66,2.42c-1.65,0.01 -3.35,-0.19 -4.95,-0.57c-2.5,-0.59 -5.25,0.98 -4.91,3.72c0.45,3.65 4.81,6.8 7.87,8.29c8.74,4.24 18.24,5.66 27.86,4.18c3.3,-0.51 6.69,-1.04 9.86,-2.18c0.28,0 0.72,-0.22 0.94,-0.28c1.06,-0.3 2.16,-0.39 3.23,-0.7c0.88,-0.25 1.73,-0.55 2.61,-0.75c1.42,-0.35 2.41,-0.69 3.89,-0.32c1.22,0.3 2.38,0.87 3.53,1.2c1.73,0.51 3.54,0.32 5.22,0.91c3.11,1.09 6.43,1.61 9.67,2.12c9.62,1.48 19.12,0.07 27.86,-4.18c3.07,-1.49 7.43,-4.64 7.88,-8.29C119.55,105.13 116.81,103.56 114.31,104.15z"/>
<path android:fillColor="#FFFFFF" android:pathData="M56.88,45.32m-4.42,0a4.42,4.42 0,1 1,8.84 0a4.42,4.42 0,1 1,-8.84 0"/>
<path android:fillColor="#FFFFFF" android:pathData="M76.47,52.58c0,2.44 -1.98,4.42 -4.42,4.42c-2.44,0 -4.42,-1.98 -4.42,-4.42c0,-2.45 1.98,-4.42 4.42,-4.42C74.49,48.16 76.47,50.13 76.47,52.58z"/>
<path android:fillColor="#FFFFFF" android:pathData="M69.11,93.29m-4.42,0a4.42,4.42 0,1 1,8.84 0a4.42,4.42 0,1 1,-8.84 0"/>
<path android:fillColor="#FFFFFF" android:pathData="M39.01,109.55m-4.42,0a4.42,4.42 0,1 1,8.84 0a4.42,4.42 0,1 1,-8.84 0"/>
<path android:fillColor="#FFFFFF" android:pathData="M96.69,113.08c0,2.44 -1.98,4.42 -4.42,4.42c-2.44,0 -4.42,-1.98 -4.42,-4.42c0,-2.45 1.98,-4.42 4.42,-4.42C94.71,108.66 96.69,110.64 96.69,113.08z"/>
<path android:fillColor="#ED6C30" android:pathData="M58.78,74.64c-1.54,-0.52 -4.01,0.22 -5.12,0.89c-1.29,0.78 -0.52,1.78 -0.56,2.95c-0.04,1.21 0.47,2.38 0.41,3.59c-0.09,2.11 -2.85,3.52 -3.86,5.1c-1.49,2.36 0.96,4.51 3.3,4.54c1.67,0.03 3.09,-0.96 4.45,-1.79c1.19,-0.71 2.44,-1.43 3.17,-2.65c0.77,-1.31 0.67,-2.98 0.57,-4.45c-0.09,-1.36 -0.34,-2.71 -0.62,-4.05C60.25,77.37 60.46,75.21 58.78,74.64z"/>
<path android:fillColor="#54574D" android:pathData="M72.63,117.98c-0.03,0.03 -0.74,-0.27 -0.85,-0.3c-1.09,-0.27 -2.13,-0.56 -3.18,-0.95c-1.47,-0.55 -3.02,-1.2 -4.38,-1.94c-1.26,-0.68 -2.57,0.33 -3.67,0.86c-1.34,0.64 -2.63,1.41 -4.06,1.82c-0.12,0.03 -0.21,0.09 -0.33,0.13c-0.08,0.03 -0.17,0.04 -0.24,0.08c0.04,0.07 0.16,0.1 0.23,0.14c0.11,0.07 0.21,0.14 0.31,0.21c0.21,0.14 0.4,0.3 0.48,0.55c0.15,0.44 -0.02,1.14 -0.02,1.59c0,1.57 0.02,3.13 -0.02,4.7c-0.04,1.89 0.29,2.76 2.34,2.83c2.41,0.08 4.82,0.13 7.23,0.13c0.76,0 1.53,-0.02 2.28,-0.01c0.83,0.01 1.43,-0.15 1.81,-0.54c0.34,-0.34 0.5,-0.87 0.5,-1.62c0,-0.68 0,-1.37 0,-2.06c0,-0.77 -0.09,-1.54 -0.12,-2.31c-0.03,-0.84 0,-1.55 0.46,-2.28c0.14,-0.22 0.3,-0.41 0.5,-0.57C72.14,118.26 72.41,118.14 72.63,117.98z"/>
<path android:fillColor="#FCC21B" android:pathData="M49.82,57.84c0.19,0.86 1.23,1.79 1.79,2.43c3.49,4.08 10.26,5.08 15.21,5.96c2.48,0.44 4.98,0.74 7.5,0.81c2.3,0.07 6.53,1.26 6.62,-2.42c0.03,-1.29 -0.82,-2.47 -2.12,-2.62c-8.26,-0.94 -15.82,-1.23 -23.09,-5.71c-0.62,-0.38 -1.12,-0.91 -1.73,-1.3c-1.05,-0.68 -2.43,-0.56 -3.33,0.32C50.05,55.9 49.65,56.95 49.82,57.84z"/>
<path android:fillColor="#FCC21B" android:pathData="M89.64,102.16c-7.25,-0.27 -14.52,-0.05 -21.75,-0.75c-3.49,-0.34 -6.93,-0.97 -10.39,-1.54c-3.58,-0.6 -7.15,-1.36 -10.52,-2.72c-1.99,-0.81 -3.89,-1.81 -5.67,-3.02c-0.6,-0.41 -1.08,-0.96 -1.67,-1.38c-1.03,-0.73 -2.4,-0.67 -3.35,0.17c-0.63,0.56 -1.08,1.6 -0.95,2.48c0.15,0.87 1.15,1.85 1.67,2.52c3.3,4.24 10.01,5.55 14.92,6.66c4.88,1.1 9.92,1.85 14.88,2.49c4.34,0.56 8.7,0.59 13.07,0.63c2.62,0.03 5.26,0.25 7.88,0.08c1.67,-0.11 3.69,-0.53 4.18,-2.43C92.39,103.53 91.47,102.23 89.64,102.16z"/>
<path android:fillColor="#FCC21B" android:pathData="M68.18,79.19c-1.21,-0.28 -1.85,0.23 -2.01,1.36c-0.14,0.98 -0.22,2.08 0.29,2.97c0.59,1.02 1.95,1.56 3.04,1.8c1.73,0.38 3.44,0.78 5.2,1.06c1.93,0.31 3.87,0.51 5.82,0.59c2.3,0.09 6.52,1.32 6.65,-2.36c0.05,-1.29 -0.8,-2.48 -2.1,-2.64c-3.49,-0.44 -7,-0.75 -10.47,-1.37c-1.04,-0.19 -2.07,-0.4 -3.09,-0.65c-0.93,-0.23 -1.73,-0.54 -2.69,-0.65C68.64,79.3 68.42,79.25 68.18,79.19z"/>
<path android:fillColor="#FCC21B" android:pathData="M43.02,70.32c-0.37,0.26 -0.68,0.66 -0.87,1.19c-0.65,1.78 0.28,3.36 1.69,4.42c1.04,0.79 2.46,1.58 3.75,1.79c2.49,0.41 1.47,-1.45 1.8,-3.11c0.09,-0.47 0.32,-0.81 0.24,-1.33c-0.16,-1.03 -1.95,-1.71 -2.73,-2.14C45.7,70.49 44.38,69.36 43.02,70.32z"/>
</vector>

View file

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="135.47"
android:viewportHeight="135.47">
<path
android:pathData="M128.27,22.42C131.43,31.02 114.54,51.94 98.44,57.31 69.31,46.97 68.36,64.34 44.52,80.84 72.7,100.81 102.23,85.26 101.67,65.6c-22.18,13.03 -36.07,14.45 -44.05,14.05 26.84,-5.45 55.81,-22.34 61.88,-29.45 0.01,0.32 0.01,0.63 0.01,0.95 0,33.95 -51.15,84.31 -51.15,84.31 0,0 -26.78,-26.28 -41.58,-53.73 -2.07,-0.03 -14.53,4.61 -19.12,-1.61C2.53,73.18 21.55,49.89 38.05,42.94 67.57,56.68 83.75,21.08 92.99,19.1 65.44,2.37 38.21,9.24 35.13,34.1 50.44,25.18 69.23,20.13 77.91,20.53 53.52,25.63 25.58,44.13 17.21,51.16c0,-28.25 22.9,-51.16 51.15,-51.16 16.71,0 31.54,8.01 40.88,20.4 0,-0 16.67,-5.56 19.04,2.02zM122.43,24.95c-2.19,-3.06 -9.83,0.51 -9.83,0.51 1.07,1.84 2.03,3.75 2.87,5.72 0.85,2 1.57,4.07 2.17,6.19 0,0 7.8,-8.24 4.8,-12.42zM13.33,77.24c2.37,3.31 10.63,-0.56 10.63,-0.56 -1.16,-1.99 -2.19,-4.05 -3.1,-6.18 -0.92,-2.16 -1.7,-4.4 -2.34,-6.69 0,0 -8.43,8.91 -5.19,13.43z"
android:strokeWidth="0.43"
android:fillColor="#006c35"/>
</vector>

View file

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_base"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
android:selectAllOnFocus="true"
tools:text="2021.10.15-15-Google" />
<TextView
android:id="@+id/data_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
android:selectAllOnFocus="true"
tools:text="OpenStreetMap Data: 3 January 2022" />
</LinearLayout>
</LinearLayout>
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginBottom="@dimen/margin_base"
android:layout_marginStart="@dimen/margin_base"
android:layout_marginEnd="@dimen/margin_base"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:text="@string/about_description"/>
<TextView
android:id="@+id/donate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/donate"
app:drawableStartCompat="@drawable/ic_donate" />
<TextView android:id="@+id/report"
style="@style/MwmWidget.TextView.Item"
android:text="@string/report_a_bug"
app:drawableStartCompat="@drawable/ic_report_a_bug"/>
<TextView
android:id="@+id/support_us"
style="@style/MwmWidget.TextView.Item"
android:text="@string/how_to_support_us"
app:drawableStartCompat="@drawable/ic_contribute" />
<TextView android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:text="@string/faq"
app:drawableStartCompat="@drawable/ic_question_mark"/>
<TextView android:id="@+id/news"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
app:drawableStartCompat="@drawable/ic_news"/>
<TextView
android:id="@+id/rate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
app:drawableStartCompat="@drawable/ic_rate" />
<View android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"
android:background="?dividerHorizontal"/>
<TextView android:id="@+id/telegram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView android:id="@+id/github"
style="@style/MwmWidget.TextView.Item"
android:text="@string/github"
app:drawableStartCompat="@drawable/ic_github"/>
<TextView android:id="@+id/web"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
app:drawableStartCompat="@drawable/ic_website"/>
<TextView android:id="@+id/email"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
app:drawableStartCompat="@drawable/ic_email"/>
<TextView android:id="@+id/matrix"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
app:drawableStartCompat="@drawable/ic_matrix"/>
<TextView android:id="@+id/mastodon"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
app:drawableStartCompat="@drawable/ic_mastodon"/>
<TextView android:id="@+id/facebook"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
app:drawableStartCompat="@drawable/ic_facebook"/>
<TextView android:id="@+id/twitter"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
app:drawableStartCompat="@drawable/ic_twitter"/>
<TextView android:id="@+id/instagram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
app:drawableStartCompat="@drawable/ic_instagram"/>
<TextView android:id="@+id/openstreetmap"
style="@style/MwmWidget.TextView.Item"
android:text="@string/openstreetmap"
app:drawableStartCompat="@drawable/ic_openstreetmap"/>
<View android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"
android:background="?dividerHorizontal"/>
<TextView android:id="@+id/privacy_policy"
style="@style/MwmWidget.TextView.Item"
android:text="@string/privacy_policy"/>
<TextView android:id="@+id/term_of_use_link"
style="@style/MwmWidget.TextView.Item"
android:text="@string/terms_of_use"/>
<TextView android:id="@+id/copyright"
style="@style/MwmWidget.TextView.Item"
android:text="@string/copyright"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<include layout="@layout/shadow_top"/>
</FrameLayout>

View file

@ -29,8 +29,8 @@
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imageView"
android:layout_width="@dimen/login_osm_logo"
android:layout_height="@dimen/login_osm_logo"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
android:layout_gravity="center"
android:src="@drawable/ic_openstreetmap_color"
app:layout_constraintBottom_toBottomOf="parent"

View file

@ -1,170 +1,242 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
android:id="@+id/content_frame"
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?cardBackground"
android:fadeScrollbars="false"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical"
android:padding="@dimen/margin_base">
<LinearLayout
android:layout_width="match_parent"
<ImageView
android:layout_width="@dimen/about_logo"
android:layout_height="@dimen/about_logo"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/margin_base"
android:layout_marginBottom="@dimen/margin_half"
android:contentDescription="@string/app_name"
android:src="@drawable/logo"
app:tint="?attr/colorLogo" />
<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginBottom="@dimen/margin_half"
android:selectAllOnFocus="true"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
tools:text="2021.10.15-15-Google" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_base"
android:text="@string/about_headline"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Headline"
android:textColor="?android:textColorPrimary" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="@dimen/margin_half"
android:text="@string/about_proposition_1"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half"
android:text="@string/about_proposition_2"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half"
android:text="@string/about_proposition_3"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textColor="?android:textColorPrimary" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half"
android:fontFamily="@string/robotoRegular"
android:text="@string/about_developed_by_enthusiasts"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textColor="?android:textColorPrimary"
android:textStyle="bold" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/osm_logo"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
android:layout_gravity="center"
android:contentDescription="@string/openstreetmap"
android:src="@drawable/ic_openstreetmap_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/osm_presentation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_base"
android:orientation="horizontal">
android:layout_marginStart="@dimen/margin_half"
android:fontFamily="@string/robotoRegular"
android:includeFontPadding="false"
android:text="@string/osm_presentation"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textColor="?android:textColorPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/osm_logo"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/ic_launcher" />
<Button
android:id="@+id/donate"
style="@style/MwmWidget.Button.Accent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:fontFamily="@string/robotoMedium"
android:padding="@dimen/margin_quarter"
android:text="@string/donate" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
android:selectAllOnFocus="true"
tools:text="2021.10.15-15-Google" />
<Button
android:id="@+id/report"
style="@style/MwmWidget.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:background="@color/light_gray"
android:fontFamily="@string/robotoMedium"
android:text="@string/report_a_bug"
android:textColor="@color/text_dark" />
<TextView
android:id="@+id/data_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textIsSelectable="true"
android:selectAllOnFocus="true"
tools:text="OpenStreetMap Data: 3 January 2022" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/support_us"
style="@style/MwmWidget.TextView.Item"
android:text="@string/how_to_support_us"
app:drawableStartCompat="@drawable/ic_donate" />
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginBottom="@dimen/margin_base"
android:layout_marginStart="@dimen/margin_base"
android:layout_marginEnd="@dimen/margin_base"
android:textAppearance="@style/MwmTextAppearance.Body3"
android:text="@string/about_description"/>
<TextView
android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:text="@string/faq"
app:drawableStartCompat="@drawable/ic_question_mark" />
<TextView android:id="@+id/news"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
app:drawableStartCompat="@drawable/ic_news"/>
<TextView
android:id="@+id/news"
style="@style/MwmWidget.TextView.Item"
android:text="@string/news"
app:drawableStartCompat="@drawable/ic_news" />
<TextView android:id="@+id/faq"
style="@style/MwmWidget.TextView.Item"
android:text="@string/faq"
app:drawableStartCompat="@drawable/ic_question_mark"/>
<TextView
android:id="@+id/rate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
app:drawableStartCompat="@drawable/ic_rate" />
<TextView android:id="@+id/report"
style="@style/MwmWidget.TextView.Item"
android:text="@string/report_a_bug"
app:drawableStartCompat="@drawable/ic_report_a_bug"/>
<TextView
android:id="@+id/telegram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView
android:id="@+id/donate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/donate"
app:drawableStartCompat="@drawable/ic_donate" />
<TextView
android:id="@+id/github"
style="@style/MwmWidget.TextView.Item"
android:text="@string/github"
app:drawableStartCompat="@drawable/ic_github" />
<TextView
android:id="@+id/support_us"
style="@style/MwmWidget.TextView.Item"
android:text="@string/how_to_support_us"
app:drawableStartCompat="@drawable/ic_contribute" />
<TextView
android:id="@+id/web"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
app:drawableStartCompat="@drawable/ic_website" />
<TextView
android:id="@+id/rate"
style="@style/MwmWidget.TextView.Item"
android:text="@string/rate_the_app"
app:drawableStartCompat="@drawable/ic_rate" />
<TextView
android:id="@+id/email"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
app:drawableStartCompat="@drawable/ic_email" />
<View android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"
android:background="?dividerHorizontal"/>
<TextView
android:id="@+id/matrix"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
app:drawableStartCompat="@drawable/ic_matrix" />
<TextView android:id="@+id/telegram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/telegram"
app:drawableStartCompat="@drawable/ic_telegram" />
<TextView
android:id="@+id/mastodon"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
app:drawableStartCompat="@drawable/ic_mastodon" />
<TextView android:id="@+id/github"
style="@style/MwmWidget.TextView.Item"
android:text="@string/github"
app:drawableStartCompat="@drawable/ic_github"/>
<TextView
android:id="@+id/facebook"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
app:drawableStartCompat="@drawable/ic_facebook" />
<TextView android:id="@+id/web"
style="@style/MwmWidget.TextView.Item"
android:text="@string/website"
app:drawableStartCompat="@drawable/ic_website"/>
<TextView
android:id="@+id/twitter"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
app:drawableStartCompat="@drawable/ic_twitter" />
<TextView android:id="@+id/email"
style="@style/MwmWidget.TextView.Item"
android:text="@string/email"
app:drawableStartCompat="@drawable/ic_email"/>
<TextView
android:id="@+id/instagram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
app:drawableStartCompat="@drawable/ic_instagram" />
<TextView android:id="@+id/matrix"
style="@style/MwmWidget.TextView.Item"
android:text="@string/matrix"
app:drawableStartCompat="@drawable/ic_matrix"/>
<TextView
android:id="@+id/openstreetmap"
style="@style/MwmWidget.TextView.Item"
android:text="@string/openstreetmap"
app:drawableStartCompat="@drawable/ic_openstreetmap" />
<TextView android:id="@+id/mastodon"
style="@style/MwmWidget.TextView.Item"
android:text="@string/mastodon"
app:drawableStartCompat="@drawable/ic_mastodon"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="@dimen/margin_quarter"
android:layout_marginTop="@dimen/margin_quarter"
android:background="?dividerHorizontal" />
<TextView android:id="@+id/facebook"
style="@style/MwmWidget.TextView.Item"
android:text="@string/facebook"
app:drawableStartCompat="@drawable/ic_facebook"/>
<TextView
android:id="@+id/privacy_policy"
style="@style/MwmWidget.TextView.Item"
android:text="@string/privacy_policy" />
<TextView android:id="@+id/twitter"
style="@style/MwmWidget.TextView.Item"
android:text="@string/twitter"
app:drawableStartCompat="@drawable/ic_twitter"/>
<TextView
android:id="@+id/term_of_use_link"
style="@style/MwmWidget.TextView.Item"
android:text="@string/terms_of_use" />
<TextView android:id="@+id/instagram"
style="@style/MwmWidget.TextView.Item"
android:text="@string/instagram"
app:drawableStartCompat="@drawable/ic_instagram"/>
<TextView
android:id="@+id/copyright"
style="@style/MwmWidget.TextView.Item"
android:text="@string/copyright" />
<TextView android:id="@+id/openstreetmap"
style="@style/MwmWidget.TextView.Item"
android:text="@string/openstreetmap"
app:drawableStartCompat="@drawable/ic_openstreetmap"/>
<View android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"
android:background="?dividerHorizontal"/>
<TextView android:id="@+id/privacy_policy"
style="@style/MwmWidget.TextView.Item"
android:text="@string/privacy_policy"/>
<TextView android:id="@+id/term_of_use_link"
style="@style/MwmWidget.TextView.Item"
android:text="@string/terms_of_use"/>
<TextView android:id="@+id/copyright"
style="@style/MwmWidget.TextView.Item"
android:text="@string/copyright"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<include layout="@layout/shadow_top"/>
</FrameLayout>
</LinearLayout>
</ScrollView>

View file

@ -28,16 +28,16 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imageView"
android:layout_width="@dimen/login_osm_logo"
android:layout_height="@dimen/login_osm_logo"
android:id="@+id/osm_logo"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
android:layout_gravity="center"
android:src="@drawable/ic_openstreetmap_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:id="@+id/osm_presentation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_base"
@ -47,7 +47,7 @@
android:textColor="?android:textColorPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintStart_toEndOf="@+id/osm_logo"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView

View file

@ -135,7 +135,7 @@
<dimen name="editor_margin_timetable_left">50dp</dimen>
<!-- Login -->
<dimen name="login_osm_logo">64dp</dimen>
<dimen name="osm_logo">64dp</dimen>
<!-- Altitude chart -->
<dimen name="altitude_chart_container_padding_left">16dp</dimen>
@ -173,4 +173,5 @@
<dimen name="sharing_options_img_size">18dp</dimen>
<dimen name="bookmark_purchase_img_width">280dp</dimen>
<dimen name="square_block_size">168dp</dimen>
<dimen name="about_logo">96dp</dimen>
</resources>

View file

@ -7,7 +7,7 @@
<dimen name="text_size_display_2">40sp</dimen>
<dimen name="text_size_display_1">36sp</dimen>
<dimen name="text_size_display_0">34sp</dimen>
<dimen name="text_size_headline">28sp</dimen>
<dimen name="text_size_headline">20sp</dimen>
<dimen name="text_size_title">24sp</dimen>
<dimen name="text_size_toolbar">20sp</dimen>
<dimen name="text_size_body_0">18sp</dimen>

View file

@ -38,6 +38,17 @@
<string name="country_status_download_failed">Download has failed</string>
<!-- Button text for the button under the country_status_download_failed message -->
<string name="try_again">Try Again</string>
<string name="about_menu_title">About Organic Maps</string>
<!-- Text in About screen -->
<string name="about_headline">Free for everyone, made with love</string>
<!-- Text in About screen -->
<string name="about_proposition_1">• No ads, no tracking, no data collection</string>
<!-- Text in About screen -->
<string name="about_proposition_2">• No battery drain, no background data</string>
<!-- Text in About screen -->
<string name="about_proposition_3">• Fast, minimalist, no software bloat</string>
<!-- Text in About screen -->
<string name="about_developed_by_enthusiasts">Open-source application created by enthusiasts and volunteers.</string>
<string name="connection_settings">Connection Settings</string>
<string name="close">Close</string>
<string name="unsupported_phone">The app requires hardware accelerated OpenGL. Unfortunately, your device is not supported.</string>
@ -261,7 +272,7 @@
<!-- Button in the main menu -->
<string name="donate">Donate</string>
<!-- Button in the main Help dialog -->
<string name="how_to_support_us">How to support us?</string>
<string name="how_to_support_us">Support the project</string>
<!-- Button in the main Help dialog -->
<string name="copyright">Copyright</string>
<!-- Text in menu + Button in the main Help dialog -->
@ -472,7 +483,8 @@
<string name="editor_report_problem_other_title">Different problem</string>
<string name="placepage_add_business_button">Add business</string>
<string name="message_invalid_feature_position">No object can be located here</string>
<string name="osm_presentation">All map data comes from the OpenStreetMap project. It is like Wikipedia for maps where you can add or edit places, and they become available to millions of users all over the World.</string>
<!-- Text in About and OSM Login screens. %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">Cartographic data from OpenStreetMap as of %s. OSM is like Wikipedia for maps, where you can add or edit places for all users around the world.</string>
<string name="login_to_make_edits_visible">Log in to OpenStreetMap.org so other users can see the changes you have made.</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d of %2$d</string>
@ -1320,7 +1332,7 @@
<string name="type.landuse.grass">Lawn</string>
<string name="type.landuse.greenfield">Greenfield</string>
<string name="type.landuse.greenhouse_horticulture">Greenhouse</string>
<string name="type.landuse.industrial">Industrial Land</string>
<string name="type.landuse.industrial">Industrial Area</string>
<string name="type.landuse.landfill">Landfill</string>
<string name="type.landuse.meadow">Meadow</string>
<string name="type.landuse.military">Military Area</string>
@ -1329,14 +1341,14 @@
<string name="type.landuse.railway">Railway Premises</string>
<string name="type.landuse.recreation_ground">Recreation Ground</string>
<string name="type.landuse.reservoir">Water</string>
<string name="type.landuse.residential">Residential Land</string>
<string name="type.landuse.retail">Retail Land</string>
<string name="type.landuse.residential">Residential Area</string>
<string name="type.landuse.retail">Retail Area</string>
<string name="type.landuse.salt_pond">Pond</string>
<string name="type.landuse.village_green">Land</string>
<string name="type.landuse.vineyard">Vineyard</string>
<string name="type.leisure">Leisure</string>
<string name="type.leisure.common">Public Land</string>
<string name="type.leisure.dog_park">Dog Area</string>
<string name="type.leisure.dog_park">Dog Park</string>
<string name="type.leisure.fitness_centre">Fitness Centre</string>
<string name="type.leisure.fitness_station">Fitness Station</string>
<string name="type.leisure.dance">Dance Hall</string>
@ -1806,7 +1818,7 @@
<string name="type.shop.furniture">Furniture Store</string>
<string name="type.shop.garden_centre">Garden Store</string>
<string name="type.shop.gift">Gift Shop</string>
<string name="type.shop.greengrocer">Greengrocer\'s</string>
<string name="type.shop.greengrocer">Greengrocer</string>
<string name="type.shop.grocery">Grocery</string>
<string name="type.shop.hairdresser">Hairdresser</string>
<string name="type.shop.hardware">Hardware Store</string>

View file

@ -28,6 +28,7 @@
<style name="MwmTextAppearance.Headline">
<item name="android:textSize">@dimen/text_size_headline</item>
<item name="android:textColor">?android:textColorPrimary</item>
<item name="android:fontFamily">@string/robotoMedium</item>
</style>
<style name="MwmTextAppearance.Body1" parent="TextAppearance.AppCompat.Large">

View file

@ -53,6 +53,7 @@
<style name="MwmWidget.Button.Accent">
<item name="android:background">?accentButtonBackground</item>
<item name="android:textColor">?accentButtonTextColor</item>
</style>
<style name="MwmWidget.Button.StackedButtonsDialog">

View file

@ -8,6 +8,7 @@
<attr name="statusBar" format="color" />
<attr name="secondary" format="color" />
<attr name="panel" format="color" />
<attr name="colorLogo" format="color" />
<attr name="iconTint" format="color" />
<attr name="iconTintDisabled" format="color" />
<attr name="iconTintActive" format="color" />

View file

@ -29,6 +29,7 @@
<item name="colorAccent">@color/base_accent</item>
<item name="colorBtnHighlight">@color/white_38</item>
<item name="panel">@color/bg_panel</item>
<item name="colorLogo">@color/bg_primary</item>
<item name="iconTint">@color/black_54</item>
<item name="iconTintDisabled">@color/black_12</item>
<item name="iconTintActive">@color/yellow</item>
@ -160,6 +161,7 @@
<item name="colorAccent">@color/base_accent_night</item>
<item name="colorBtnHighlight">@color/white_24</item>
<item name="panel">@color/bg_panel_night</item>
<item name="colorLogo">@color/white_primary</item>
<item name="iconTint">@color/white_secondary</item>
<item name="iconTintDisabled">@color/white_12</item>
<item name="iconTintActive">@color/yellow</item>

View file

@ -23,6 +23,10 @@ import app.organicmaps.util.Constants;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* This class wraps android::Framework.cpp class
@ -194,7 +198,21 @@ public class Framework
//
// public static native void nativeUpdateSavedDataVersion();
public static native long nativeGetDataVersion();
private static native long nativeGetDataVersion();
public static Date getDataVersion()
{
long dataVersion = nativeGetDataVersion();
final SimpleDateFormat format = new SimpleDateFormat("yyMMdd", Locale.ENGLISH);
try
{
return format.parse(String.valueOf(dataVersion));
}
catch (ParseException e)
{
throw new AssertionError("Invalid data version code: " + dataVersion);
}
}
public static native void nativeClearApiPoints();

View file

@ -9,15 +9,18 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Size;
import androidx.appcompat.app.AlertDialog;
import app.organicmaps.Framework;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmToolbarFragment;
import app.organicmaps.util.Constants;
import app.organicmaps.util.DateUtils;
import app.organicmaps.util.InputUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.concurrency.ThreadPool;
@ -52,6 +55,9 @@ public class OsmLoginFragment extends BaseMwmToolbarFragment
Button registerButton = view.findViewById(R.id.register);
registerButton.setOnClickListener((v) -> register());
mProgress = view.findViewById(R.id.osm_login_progress);
final String dataVersion = DateUtils.getShortDateFormatter().format(Framework.getDataVersion());
((TextView) view.findViewById(R.id.osm_presentation))
.setText(getString(R.string.osm_presentation, dataVersion));
}
private void login()

View file

@ -1,5 +1,6 @@
package app.organicmaps.help;
import android.content.res.Configuration;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
@ -38,13 +39,23 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
{
mDonateUrl = Config.getDonateUrl();
if (TextUtils.isEmpty(mDonateUrl) && !BuildConfig.FLAVOR.equals("google") && !BuildConfig.FLAVOR.equals("huawei"))
mDonateUrl = getResources().getString(R.string.translated_om_site_url) + "donate/";
View root = inflater.inflate(R.layout.about, container, false);
((TextView) root.findViewById(R.id.version))
.setText(BuildConfig.VERSION_NAME);
((TextView) root.findViewById(R.id.data_version))
.setText(getString(R.string.data_version, DateUtils.getLocalDate(Framework.nativeGetDataVersion())));
final boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
final String dataVersion = DateUtils.getShortDateFormatter().format(Framework.getDataVersion());
final TextView dataVersionView = (TextView) root.findViewById(R.id.data_version);
if (dataVersionView != null)
dataVersionView.setText(getString(R.string.data_version, dataVersion));
final TextView osmPresentationView = (TextView) root.findViewById(R.id.osm_presentation);
if (osmPresentationView != null)
osmPresentationView.setText(getString(R.string.osm_presentation, dataVersion));
setupItem(R.id.news, true, root);
setupItem(R.id.web, true, root);
@ -58,34 +69,25 @@ public class HelpFragment extends BaseMwmFragment implements View.OnClickListene
setupItem(R.id.mastodon, false, root);
setupItem(R.id.openstreetmap, true, root);
setupItem(R.id.faq, true, root);
setupItem(R.id.report, true, root);
if (TextUtils.isEmpty(mDonateUrl))
{
final TextView donateView = root.findViewById(R.id.donate);
donateView.setVisibility(View.GONE);
if (BuildConfig.FLAVOR.equals("google"))
{
final TextView supportUsView = root.findViewById(R.id.support_us);
supportUsView.setVisibility(View.GONE);
}
else
setupItem(R.id.support_us, true, root);
}
setupItem(R.id.report, isLandscape, root);
final TextView supportUsView = root.findViewById(R.id.support_us);
if (BuildConfig.FLAVOR.equals("google") && !TextUtils.isEmpty(mDonateUrl))
supportUsView.setVisibility(View.GONE);
else
{
if (Config.isNY())
{
final TextView textView = setupItem(R.id.donate, false, root);
textView.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_christmas_tree, 0, R.drawable.ic_christmas_tree, 0);
}
else
setupItem(R.id.donate, true, root);
setupItem(R.id.support_us, true, root);
}
final TextView donateView = root.findViewById(R.id.donate);
if (TextUtils.isEmpty(mDonateUrl))
donateView.setVisibility(View.GONE);
else
setupItem(R.id.donate, isLandscape, root);
if (BuildConfig.REVIEW_URL.isEmpty())
root.findViewById(R.id.rate).setVisibility(View.GONE);
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);

View file

@ -21,6 +21,7 @@ import app.organicmaps.R;
import app.organicmaps.downloader.MapManager;
import app.organicmaps.downloader.UpdateInfo;
import app.organicmaps.routing.RoutingController;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.widget.menu.MyPositionButton;
import app.organicmaps.widget.placepage.PlacePageController;
import app.organicmaps.util.Config;
@ -71,10 +72,12 @@ public class MapButtonsController extends Fragment
mBottomButtonsFrame = mFrame.findViewById(R.id.map_buttons_bottom);
final FloatingActionButton helpButton = mFrame.findViewById(R.id.help_button);
if (Config.isNY() && helpButton != null)
if (helpButton != null)
{
helpButton.setImageResource(R.drawable.ic_christmas_tree);
helpButton.getDrawable().setTintList(null);
helpButton.setImageResource(R.drawable.logo);
// Keep this button colorful in normal theme.
if (!ThemeUtils.isNightTheme(getContext()))
helpButton.getDrawable().setTintList(null);
}
final View zoomFrame = mFrame.findViewById(R.id.zoom_buttons_container);

View file

@ -343,10 +343,6 @@ public final class Config
{
return getString(KEY_DONATE_URL);
}
public static boolean isNY()
{
return getBool("NY");
}
private static native boolean nativeGetBoolean(String name, boolean defaultValue);
private static native void nativeSetBoolean(String name, boolean value);

View file

@ -31,23 +31,4 @@ public final class DateUtils
{
return android.text.format.DateFormat.is24HourFormat(context);
}
// Converts 220131 to locale-dependent date (e.g. 31 January 2022),
@NonNull
public static String getLocalDate(long v)
{
final SimpleDateFormat format = new SimpleDateFormat("yyMMdd", Locale.getDefault());
final String strVersion = String.valueOf(v);
try
{
final Date date = format.parse(strVersion);
if (date == null)
return strVersion;
return java.text.DateFormat.getDateInstance().format(date);
} catch (java.text.ParseException e)
{
e.printStackTrace();
return strVersion;
}
}
}

View file

@ -48,15 +48,9 @@ public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>
public void onBindViewHolder(ViewHolder viewHolder, final int position)
{
final MenuBottomSheetItem item = dataSet.get(position);
viewHolder.getContainer().setOnClickListener((v) -> onMenuItemClick(item));
final ImageView iv = viewHolder.getIconImageView();
if (item.iconRes == R.drawable.ic_donate && Config.isNY())
{
iv.setImageResource(R.drawable.ic_christmas_tree);
iv.setImageTintMode(null);
}
else
iv.setImageResource(item.iconRes);
iv.setImageResource(item.iconRes);
viewHolder.getContainer().setOnClickListener((v) -> onMenuItemClick(item));
viewHolder.getTitleTextView().setText(item.titleRes);
TextView badge = viewHolder.getBadgeTextView();
if (item.badgeCount > 0)

View file

@ -847,7 +847,7 @@
zh-Hant = 再試一次
[about_menu_title]
tags = ios
tags = android,ios
en = About Organic Maps
ar = حول Organic Maps
be = Аб дадатку Organic Maps
@ -868,7 +868,7 @@
id = Tentang Organic Maps
it = Informazioni su Organic Maps
ja = Organic Mapsについて
ko = 소개
ko = Organic Maps 정보
mr = Organic Maps बद्दल
nb = Om Organic Maps
nl = Over Organic Maps
@ -876,16 +876,209 @@
pt = Sobre o Organic Maps
pt-BR = Sobre o Organic Maps
ro = Despre Organic Maps
ru = О программе
ru = Про Organic Maps
sk = O aplikácii Organic Maps
sv = Om Organic Maps
th = เกี่ยวกับ Organic Maps
tr = Organic Maps Hakkında
uk = Про програму
uk = Про Organic Maps
vi = Giới thiệu về Organic Maps
zh-Hans = 关于 Organic Maps
zh-Hant = 關於 Organic Maps
[about_headline]
tags = android
comment = Text in About screen
en = Free for everyone, made with love
ar = مجاني للجميع ، مصنوع من الحب
be = Бескаштоўна для ўсіх, зроблена з любоўю
bg = Безплатно за всички, направени с любов
cs = Zdarma pro všechny, vyrobené s láskou
da = Gratis for alle, lavet med kærlighed
de = Kostenlos für alle, mit Liebe gemacht
el = Δωρεάν για όλους, φτιαγμένα με αγάπη
es = Gratis para todos, hecho con amor
fa = رایگان برای همه ، ساخته شده با عشق
fi = Ilmainen kaikille, tehty rakkaudella
fr = Gratuit pour tout le monde, fait avec amour
he = חינם לכולם, מיוצרים באהבה
hu = Ingyenes mindenkinek, szeretettel készítve
id = Gratis untuk semua orang, dibuat dengan cinta
it = Gratis per tutti, fatto con amore
ja = すべての人のために無料で、愛を込めて作られています
ko = 사랑으로 만든 모든 사람에게 무료
nb = Gratis for alle, laget med kjærlighet
nl = Gratis voor iedereen, met liefde gemaakt
pl = Darmowa dla wszystkich, wykonana z miłością
pt = Grátis para todos, feito com amor
pt-BR = Grátis para todos, feito com amor
ro = Gratuit pentru toată lumea, făcut cu dragoste
ru = Бесплатно для всех, сделано с любовью
sk = Zadarmo pre každého, vyrobený s láskou
sv = Gratis för alla, gjorda med kärlek
sw = Bure kwa kila mtu, iliyotengenezwa na upendo
th = ฟรีสำหรับทุกคนทำด้วยความรัก
tr = Sevgiyle yapılmış, herkes için ücretsiz harita
uk = Безкоштовно для всіх, зроблене з любов'ю
vi = Miễn phí cho mọi người, được làm bằng tình yêu
zh-Hans = 对每个人都免费,用爱制成
zh-Hant = 對每個人都免費,用愛製成
[about_proposition_1]
tags = android
comment = Text in About screen
en = • No ads, no tracking, no data collection
ar = • لا إعلانات ، لا تتبع ، لا جمع البيانات
be = • Ніякай рэкламы, без сачэння і збору вашых дадзеных
bg = • Без реклами, без проследяване, без събиране на данни
cs = • Žádné reklamy, žádné sledování, žádné sběr dat
da = • Ingen annoncer, ingen sporing, ingen dataindsamling
de = • Keine Werbung, kein Tracking, keine Datenerfassung
el = • Δεν υπάρχουν διαφημίσεις, χωρίς παρακολούθηση, χωρίς συλλογή δεδομένων
es = • Sin anuncios, sin seguimiento, sin recopilación de datos
fa = • بدون تبلیغات ، ردیابی ، جمع آوری داده ها
fi = • Ei mainoksia, ei seurantaa, ei tiedonkeruua
fr = • Pas d'annonces, pas de suivi, pas de collecte de données
he = • אין מודעות, ללא מעקב, ללא איסוף נתונים
hu = • Nincs hirdetés, nincs nyomon követés, nincs adatgyűjtés
id = • Tidak ada iklan, tidak ada pelacakan, tidak ada pengumpulan data
it = • Nessun annuncio, nessun tracciamento, nessuna raccolta di dati
ja = •広告、追跡なし、データ収集なし
ko = • 광고 없음, 추적 없음, 데이터 수집 없음
nb = • Ingen annonser, ingen sporing, ingen datainnsamling
nl = • Geen advertenties, geen tracking, geen gegevensverzameling
pl = • Bez reklam, bez śledzenia, bez gromadzenia danych
pt = • Sem anúncios, rastreamento ou coleta de dados
pt-BR = • Sem anúncios, rastreamento ou coleta de dados
ro = • Fără reclame, fără urmărire, fără colectare de date
ru = • Без рекламы, без трекинга, без слежки
sk = • Žiadne reklamy, žiadne sledovanie, žiadny zber údajov
sv = • Inga annonser, ingen spårning, ingen datainsamling
sw = • Hakuna matangazo, hakuna ufuatiliaji, hakuna mkusanyiko wa data
th = • ไม่มีโฆษณาไม่มีการติดตามไม่มีการรวบรวมข้อมูล
tr = • Reklam yok, takip yok, veri toplama yok
uk = • Без реклами, без трекінгу, без стеження
vi = • Không có quảng cáo, không theo dõi, không thu thập dữ liệu
zh-Hans = •没有广告,没有跟踪,没有数据收集
zh-Hant = •沒有廣告,沒有跟踪,沒有數據收集
[about_proposition_2]
tags = android
comment = Text in About screen
en = • No battery drain, no background data
ar = • يحفظ البطارية ، لا يستخدم بيانات الخلفية
be = • Эканоміць батарэю, не выкарыстоўвае фонавыя дадзеныя
bg = • Пести батерията, не използва фонови данни
ca = • Estalvia la bateria, no utilitza dades de fons
cs = • Šetří baterii, nevyužívá data na pozadí
da = • Sparer batteriet, bruger ikke baggrundsdata
de = • Schont den Akku, keine Hintergrunddaten
el = • Εξοικονομεί μπαταρία, δεν χρησιμοποιεί δεδομένα παρασκηνίου
es = • Sin drenaje de la batería, sin datos de fondo
et = • Säästab akut, ei kasuta taustaandmeid
eu = • Bateria aurrezten du, ez du atzeko planoko daturik erabiltzen
fa = • باتری را ذخیره می کند، از داده های پس زمینه استفاده نمی کند
fi = • Säästää akkua, ei käytä taustatietoja
fr = • Ne draine pas la batterie, ni les données mobile
he = • חוסך בסוללה, אינו משתמש בנתוני רקע
hu = • Kíméli az akkumulátort, nem használ háttéradatokat
id = • Menghemat baterai, tidak menggunakan data latar belakang
it = • Risparmia la batteria, non utilizza i dati in background
ja = • バッテリーを節約し、バックグラウンド データを使用しません
ko = • 배터리를 절약하고 백그라운드 데이터를 사용하지 않습니다.
mr = • बॅटरी वाचवते, पार्श्वभूमी डेटा वापरत नाही
nb = • Sparer batteriet, bruker ikke bakgrunnsdata
nl = • Spaart de batterij, gebruikt geen achtergrondgegevens
pl = • Bez drenażu baterii, brak danych w tle
pt = • Baixo consumo de bateria, sem atualização em segundo plano
pt-BR = • Baixo consumo de bateria, sem atualização em segundo plano
ro = • Economisește bateria, nu utilizează date de fundal
ru = • Экономит батарею, без фоновых данных
sk = • Šetrí batériu, nepoužíva dáta na pozadí
sv = • Sparar batteriet, använder inte bakgrundsdata
sw = • Huokoa betri, haitumii data ya usuli
th = • ประหยัดแบตเตอรี่ ไม่ใช้ข้อมูลพื้นหลัง
tr = • Pilinizi tüketmez, arka planda veri alıp göndermez
uk = • Економить акумулятор, не використовує фонові дані
vi = • Tiết kiệm pin, không sử dụng dữ liệu nền
zh-Hans = • 节省电池电量,不使用后台数据
zh-Hant = • 節省電池電量,不使用後台數據
[about_proposition_3]
tags = android
comment = Text in About screen
en = • Fast, minimalist, no software bloat
ar = • سريع ، الحد الأدنى ، لا خردة
be = • Хуткія, мінімалістычныя, без смецця
bg = • Бързи, минималистични, без боклуци
cs = • Rychlý, minimalistický, žádný haraburdí
da = • Hurtig, minimalistisk, intet skrammel
de = • Schnell, minimalistisch, keine Bloatware
el = • Γρήγορη, μινιμαλιστική, χωρίς σκουπίδια
es = • Rápido, minimalista, sin basura
fa = • سریع ، مینیمالیستی ، بدون آشغال
fi = • Nopea, minimalistinen, ei roskaa
fr = • Rapide, minimaliste, pas de superflu
he = • מהיר, מינימליסטי, ללא זבל
hu = • Gyors, minimalista, nincs szemét
id = • Cepat, minimalis, tidak ada sampah
it = • Veloce, minimalista, nessuna spazzatura
ja = •速く、ミニマルな、ジャンクなし
ko = • 빠르고 최소한의 정크가 없습니다
nb = • Rask, minimalistisk, ingen søppel
nl = • Snel, minimalistisch, geen junk
pl = • Szybka, minimalistyczna, bez śmieci
pt = • Rápido, minimalista e sem recursos desnecessários
pt-BR = • Rápido, minimalista e sem recursos desnecessários
ro = • Rapid, minimalist, fără gunoi
ru = • Быстрые, минималистичные, без мусора
sk = • Rýchle, minimalistické, žiadne nevyžiadané
sv = • Snabb, minimalistisk, inget skräp
sw = • Haraka, minimalistic, hakuna taka
th = •เร็วเรียบง่ายไม่มีขยะ
tr = • Hızlı, minimalist ve hafif
uk = • Швидкий, мінімалістичний, без зайвого сміття
vi = • Nhanh chóng, tối giản, không có rác
zh-Hans = •快速,简约,没有垃圾
zh-Hant = •快速,簡約,沒有垃圾
[about_developed_by_enthusiasts]
tags = android
comment = Text in About screen
en = Open-source application created by enthusiasts and volunteers.
ar = تطبيق مفتوح المصدر الذي أنشأه المتحمسون والمتطوعون.
be = Прыкладанне з адкрытым зыходным кодам, створанае энтузіястамі і валанцёрамі.
bg = Приложение с отворен код, създадено от ентусиасти и доброволци.
cs = Otevřená aplikace vytvořená nadšenci a dobrovolníky.
da = Open source-applikation oprettet af entusiaster og frivillige.
de = Open-Source-Anwendung von Enthusiasten und Freiwilligen.
el = Εφαρμογή ανοιχτού κώδικα που δημιουργήθηκε από ενθουσιώδες και εθελοντές.
es = Aplicación de código abierto creada por entusiastas y voluntarios.
fa = برنامه منبع باز ایجاد شده توسط علاقه مندان و داوطلبان.
fi = Harrastajien ja vapaaehtoisten luoma avoimen lähdekoodin sovellus.
fr = Application open source créée par des amateurs et des bénévoles.
he = יישום קוד פתוח שנוצר על ידי חובבים ומתנדבים.
hu = A rajongók és az önkéntesek által létrehozott nyílt forráskódú alkalmazás.
id = Aplikasi open-source yang dibuat oleh penggemar dan sukarelawan.
it = Applicazione open source creata da appassionati e volontari.
ja = 愛好家とボランティアによって作成されたオープンソースアプリケーション。
ko = 애호가와 자원 봉사자가 만든 오픈 소스 응용 프로그램.
nb = Open source-applikasjon opprettet av entusiaster og frivillige.
nl = Open-source applicatie gemaakt door enthousiastelingen en vrijwilligers.
pl = Aplikacja typu open source stworzona przez entuzjastów i wolontariuszy.
pt = Aplicativo de código aberto criado por entusiastas e voluntários.
ro = Aplicație open-source creată de entuziaști și voluntari.
ru = Приложение с открытым исходным кодом, созданное энтузиастами и волонтерами.
sk = Aplikácia s otvoreným zdrojovým kódom vytvorené nadšencami a dobrovoľníkmi.
sv = Open-källansökan skapad av entusiaster och frivilliga.
sw = Maombi ya chanzo-wazi iliyoundwa na wanaovutia na wanaojitolea.
th = แอปพลิเคชันโอเพนซอร์ซที่สร้างขึ้นโดยผู้ที่ชื่นชอบและอาสาสมัคร
tr = Teknoloji tutkunları ve gönüllüler tarafından oluşturulan açık kaynaklı bir uygulama.
uk = Програма з відкритим кодом, створена ентузіастами та волонтерами.
vi = Ứng dụng nguồn mở được tạo bởi những người đam mê và tình nguyện viên.
zh-Hans = 由爱好者和志愿者创建的开源应用程序。
zh-Hant = 由愛好者和志願者創建的開源應用程序。
[connection_settings]
tags = android
en = Connection Settings
@ -5488,7 +5681,7 @@
comment = Button in the main menu
tags = android,ios
en = Donate
ar = ﻉﺮﺒﺘﻳ
ar = تبرع
be = Падтрымаць грашыма
bg = Дарете
ca = Donatiu
@ -5528,43 +5721,44 @@
[how_to_support_us]
comment = Button in the main Help dialog
tags = android,ios
en = How to support us?
ar = كيف يمكنك دعمنا؟
be = Як нас падтрымаць?
bg = Как да ни подкрепите?
ca = Com ajudar-nos?
cs = Jak nás podpořit?
da = Sådan støtter vi os?
de = Wie unterstützen Sie uns?
el = Πώς να μας υποστηρίξετε;
es = ¿Cómo apoyarnos?
et = Kuidas meid toetada?
eu = Nola lagundu diguzu?
fa = چگونه از ما حمایت کنیم؟
fi = Kuinka tukea meitä?
fr = Comment nous soutenir?
he = כיצד לתמוך בנו?
hu = Hogyan támogathatsz minket?
id = Bagaimana cara mendukung kami?
it = Come sostenerci?
ja = どのように私たちを支持する方法?
ko = 우리를 지원하는 방법?
mr = आम्हाला आधार कसा द्यायचा?
nb = Hvordan støtte oss?
nl = Hoe ons te steunen?
pl = Jak nas wspierać?
pt = Como nos apoiar?
ro = Cum să ne sprijiniți?
ru = Как наc поддержать?
sk = Ako nás podporiť?
sv = Hur stöder vi oss?
sw = Jinsi ya kutuunga mkono?
th = วิธีการสนับสนุนเรา
tr = Sizi nasıl destekleyebilirim?
uk = Як нас підтримати?
vi = Làm thế nào để hỗ trợ chúng tôi?
zh-Hans = 如何支持我们?
zh-Hant = 如何支持我們?
en = Support the project
ar = ﻉﻭﺮﺸﻤﻟﺍ ﻢﻋﺩ
be = Падтрымаць праект
bg = Подкрепете проекта
ca = Donar suport al projecte
cs = Podpořte projekt
da = Støt projektet
de = Unterstütze das Projekt
el = Υποστηρίξτε το έργο
es = Apoya el proyecto
et = Toetage projekti
eu = Proiektuari laguntza ematea
fa = ﺪﯿﻨﮐ ﺖﯾﺎﻤﺣ ﻩﮊﻭﺮﭘ ﺯﺍ
fi = Tue projektia
fr = Soutenir le projet
he = טקיורפב וכמת
hu = Támogassa a projektet
id = Mendukung proyek
it = Sostieni il progetto
ja = プロジェクトを支援する
ko = 프로젝트 지원
mr = प्रकल्पाला पाठठिंबा द्या
nb = Støtt prosjektet
nl = Steun het project
pl = Wesprzyj projekt
pt = Apoie o projeto
pt-BR = Apoie o projeto
ro = Susține proiectul
ru = Помочь проекту
sk = Podporte projekt
sv = Stöd projektet
sw = Saidia mradi
th = สนับสนุนโครงการ
tr = Bu projeyi destekle
uk = Підтримайте проект
vi = Hỗ trợ dự án
zh-Hans = 支持项目
zh-Hant = 支持項目
[copyright]
comment = Button in the main Help dialog
@ -13048,44 +13242,42 @@
zh-Hant = 物件無法設置在這裡
[osm_presentation]
comment = Text in About and OSM Login screens. %@ is replaced by a local, human readable date.
tags = android
en = All map data comes from the OpenStreetMap project. It is like Wikipedia for maps where you can add or edit places, and they become available to millions of users all over the World.
ar = .ﻢﻟﺎﻌﻟﺍ ءﺎﺤﻧﺃ ﻊﻴﻤﺟ ﻲﻓ ﻦﻴﻣﺪﺨﺘﺴﻤﻟﺍ ﻦﻴﻳﻼﻤﻟ ﺔﺣﺎﺘﻣ ﺢﺒﺼﺗﻭ ، ﺎﻬﻠﻳﺪﻌﺗ ﻭﺃ ﻦﻛﺎﻣﻷﺍ ﺔﻓﺎﺿﺇ
be = Усе дадзеныя карты паходзяць з праекта OpenStreetMap. Гэта як Wikipedia для карт, дзе вы можаце дадаваць або рэдагаваць месцы, і яны становяцца даступнымі для мільёнаў карыстальнікаў па ўсім свеце.
bg = Всички картографски данни идват от проекта OpenStreetMap. Това е като Wikipedia за карти, където можете да добавяте или редактирате места и те стават достъпни за милиони потребители по целия свят.
ca = Totes les dades cartogràfiques provenen del projecte OpenStreetMap. És com la Viquipèdia per als mapes on podeu afegir o editar llocs, i estan disponibles per a milions d'usuaris de tot el món.
cs = Všechna mapová data pocházejí z projektu OpenStreetMap. Je to jako Wikipedie s mapami, kde můžete přidávat nebo upravovat místa a jsou dostupné milionům uživatelů po celém světě.
da = Alle kortdata kommer fra OpenStreetMap-projektet. Det er ligesom Wikipedia for kort, hvor du kan tilføje eller redigere steder, og de bliver tilgængelige for millioner af brugere over hele verden.
de = Alle Kartendaten stammen aus dem OpenStreetMap-Projekt. Es ist wie Wikipedia für Karten, wo Sie Orte hinzufügen oder bearbeiten können, und sie werden Millionen von Benutzern auf der ganzen Welt zur Verfügung gestellt.
el = Όλα τα δεδομένα χάρτη προέρχονται από το έργο OpenStreetMap. Μοιάζει με τη Wikipedia για χάρτες όπου μπορείτε να προσθέσετε ή να επεξεργαστείτε μέρη και γίνονται διαθέσιμα σε εκατομμύρια χρήστες σε όλο τον κόσμο.
es = Todos los datos del mapa provienen del proyecto OpenStreetMap. Es como Wikipedia para mapas donde puedes agregar o editar lugares, y están disponibles para millones de usuarios en todo el mundo.
et = Kõik kaardiandmed pärinevad OpenStreetMapi projektist. See on nagu Vikipeedia kaartide jaoks, kus saate kohti lisada või muuta ja need muutuvad kättesaadavaks miljonitele kasutajatele üle kogu maailma.
eu = Maparen datu guztiak OpenStreetMap proiektutik datoz. Tokiak gehitu edo edita ditzakezun mapetarako Wikipedia bezalakoa da, eta mundu osoko milioika erabiltzaileren eskura jartzen dira.
fa = تمام داده‌های نقشه از پروژه OpenStreetMap می‌آید. این مثل ویکی‌پدیا برای نقشه‌هاست که شما می‌توانید مکان را اضافه یا ویرایش کنید ﻭ ﺁنها ﺑﺮﺍﯼ ﻣﯿﻠﯿﻮن‌ها ﮐﺎﺭﺑﺮ ﺩﺭ ﺳﺮﺍﺳﺮ ﺟﻬﺎﻥ ﺩﺭ ﺩﺳﺘﺮﺱ ﻗﺮﺍﺭ ﻣﯽﮔﯿﺮﻧﺪ.
fi = Kaikki karttatiedot tulevat OpenStreetMap-projektista. Se on kuin karttojen Wikipedia, jossa voit lisätä tai muokata paikkoja, ja ne ovat miljoonien käyttäjien saatavilla kaikkialla maailmassa.
fr = Toutes les données géographiques proviennent du projet OpenStreetMap. Le principe est similaire à Wikipedia: vous pouvez ajouter et modifier des lieux et ils deviendront accessibles à des millions d'utilisateurs partout dans le monde.
he = כל נתוני המפה מגיעים מפרויקט OpenStreetMap. זה כמו ויקיפדיה למפות, שבה אתה יכול להוסיף או לערוך מקומות, והם הופכים לזמינים למיליוני משתמשים בכל רחבי העולם.
hu = Minden térképadat az OpenStreetMap projektből származik. Olyan ez, mint a Wikipédia a térképekhez, ahol helyeket adhat hozzá vagy szerkeszthet, és a felhasználók milliói számára válnak elérhetővé szerte a világon.
id = Semua data peta berasal dari proyek OpenStreetMap. Ini seperti Wikipedia untuk peta tempat Anda dapat menambahkan atau mengedit tempat, dan peta tersebut tersedia bagi jutaan pengguna di seluruh Dunia.
it = Tutti i dati della mappa provengono dal progetto OpenStreetMap. È come Wikipedia per le mappe in cui puoi aggiungere o modificare luoghi e diventano disponibili per milioni di utenti in tutto il mondo.
ja = すべての地図データは、OpenStreetMap プロジェクトから取得されます。場所を追加または編集できる地図のウィキペディアのようなもので、世界中の何百万人ものユーザーが利用できるようになります。
ko = 모든 지도 데이터는 OpenStreetMap 프로젝트에서 가져옵니다. ""장소를 추가하거나 편집할 수 있는 지도용 Wikipedia와 같으며 전 세계 수백만 사용자가 사용할 수 있습니다.
nb = Alle kartdata kommer fra OpenStreetMap-prosjektet. Det er som Wikipedia for kart hvor du kan legge til eller redigere steder, og de blir tilgjengelige for millioner av brukere over hele verden.
nl = Alle kaartgegevens komen uit het OpenStreetMap-project. Het is als Wikipedia voor kaarten waar je plaatsen kunt toevoegen of bewerken, en ze worden beschikbaar voor miljoenen gebruikers over de hele wereld.
pl = Wszystkie dane mapy pochodzą z projektu OpenStreetMap. Jest jak Wikipedia, tylko dla map. Możesz dodawać lub edytować miejsca i staną się dostępne dla milionów użytkowników na całym świecie.
pt = Todos os dados cartográficos provêm do projecto OpenStreetMap. É como a Wikipedia para mapas onde se podem adicionar ou editar locais, e estes ficam disponíveis para milhões de utilizadores em todo o mundo.
pt-BR = Todos os dados do mapa são provenientes do projeto OpenStreetMap. É como a Wikipedia para mapas onde você pode adicionar ou editar lugares, e eles ficam disponíveis para milhões de usuários em todo o mundo.
ro = Toate datele hărții provin din proiectul OpenStreetMap. Este ca Wikipedia pentru hărți în care puteți adăuga sau edita locuri și acestea devin disponibile pentru milioane de utilizatori din întreaga lume.
ru = Все данные карты поступают из проекта OpenStreetMap. Это как Википедия для карт, где вы можете добавлять или редактировать места, и они становятся доступными для миллионов пользователей по всему миру.
sk = Všetky mapové podklady pochádzajú z projektu OpenStreetMap. Je to ako Wikipedia pre mapy, kde môžete pridávať alebo upravovať miesta a sú dostupné pre milióny používateľov na celom svete.
sv = All kartdata kommer från OpenStreetMap-projektet. Det är som Wikipedia för kartor där du kan lägga till eller redigera platser, och de blir tillgängliga för miljontals användare över hela världen.
sw = Data yote ya ramani inatoka kwa mradi wa OpenStreetMap. Ni kama Wikipedia ya ramani ambapo unaweza kuongeza au kuhariri maeneo, na yanapatikana kwa mamilioni ya watumiaji duniani kote.
th = ข้อมูลแผนที่ทั้งหมดมาจากโครงการ OpenStreetMap เหมือนกับวิกิพีเดียสำหรับแผนที่ที่คุณสามารถเพิ่มหรือแก้ไขสถานที่ได้ และพวกเขาพร้อมให้ผู้ใช้หลายล้านคนทั่วโลกใช้งานได้
tr = Tüm harita verileri OpenStreetMap projesinden geliyor. Bu proje Vikipedi'nin harita sürümü gibidir, yer ekleyerek veya düzenleyerek tüm dünyadaki milyonlarca kullanıcı gibi bu harita verilerinin gelişmesine katkıda bulunabilirsiniz.
uk = Усі картографічні дані надходять із проекту OpenStreetMap. Це як Wikipedia для карт, де ви можете додавати або редагувати місця, і вони стають доступними для мільйонів користувачів у всьому світі.
vi = Tất cả dữ liệu bản đồ đến từ dự án OpenStreetMap. Nó giống như Wikipedia dành cho bản đồ nơi bạn có thể thêm hoặc chỉnh sửa các địa điểm và chúng có sẵn cho hàng triệu người dùng trên khắp Thế giới.
zh-Hans = 所有地图数据均来自 OpenStreetMap 项目。它就像 Wikipedia 中的地图,您可以在其中添加或编辑地点,并且它们可供全球数百万用户使用。
zh-Hant = 所有地圖數據均來自 OpenStreetMap 項目。它就像 Wikipedia 中的地圖,您可以在其中添加或編輯地點,並且它們可供全球數百萬用戶使用。
en = Cartographic data from OpenStreetMap as of %@. OSM is like Wikipedia for maps, where you can add or edit places for all users around the world.
ar = بيانات رسم الخرائط من OpenStreetMap اعتبارًا من %@. إنه مثل ويكيبيديا حيث يمكنك إضافة أو تحرير أماكن لجميع المستخدمين في جميع أنحاء العالم.
be = Картаграфічныя дадзеныя OpenStreetMap па стане на %@. Гэта як Вікіпедыя, дзе вы можаце дадаць або рэдагаваць месцы для ўсіх карыстальнікаў па ўсім свеце.
bg = Картографски данни от OpenStreetMap към %@. Това е като Wikipedia, където можете да добавяте или редактирате места за всички потребители по света.
cs = Kartografické údaje z OpenStreetMap od roku %@. Je to jako Wikipedia, kde můžete přidat nebo upravovat místa pro všechny uživatele po celém světě.
da = Kartografiske data fra OpenStreetMap fra %@. Det er som Wikipedia, hvor du kan tilføje eller redigere steder for alle brugere over hele verden.
de = Kartografische Daten von OpenStreetMap vom %@. OSM ist wie Wikipedia für Karten, wo Sie Orte hinzufügen oder bearbeiten können.
el = Χαρτογραφικά δεδομένα από το OpenStreetMap από το %@. Είναι σαν τη Wikipedia όπου μπορείτε να προσθέσετε ή να επεξεργαστείτε θέσεις για όλους τους χρήστες του κόσμου.
es = Datos cartográficos del OpenStreetMap a partir de %@. Es como Wikipedia donde puede agregar o editar lugares para todos los usuarios del mundo.
fa = داده های نقشه برداری از OpenStreetMap از %@. این مانند ویکی پدیا است که می توانید مکانهایی را برای همه کاربران در سراسر جهان اضافه یا ویرایش کنید.
fi = Kartografiset tiedot OpenStreetMapista vuodesta %@. Se on kuin Wikipedia, johon voit lisätä tai muokata paikkoja kaikille käyttäjille ympäri maailmaa.
fr = Données cartographiques provenant d'OpenStreetMap en date du %@. OSM est comme Wikipedia pour les cartes, où vous pouvez ajouter ou modifier des lieux.
he = נתונים קרטוגרפיים מ- OpenStreetMap נכון לשנת %@. זה כמו Wikipedia בו תוכלו להוסיף או לערוך מקומות לכל המשתמשים ברחבי העולם.
hu = Kartográfiai adatok az OpenStreetMap-ból a %@-től. Olyan, mint a Wikipedia, ahol a világ minden felhasználójának helyét hozzáadhatja vagy szerkesztheti.
id = Data kartografi dari OpenStreetMap pada %@. Ini seperti Wikipedia di mana Anda dapat menambahkan atau mengedit tempat untuk semua pengguna di seluruh dunia.
it = Dati cartografici da OpenStreetMap a partire dal %@. È come Wikipedia dove è possibile aggiungere o modificare luoghi per tutti gli utenti del mondo.
ja = %@の時点でのOpenStreetMapからの地図作成データ。これは、世界中のすべてのユーザーの場所を追加または編集できるウィキペディアのようなものです。
ko = %@ 기준 OpenStreetMap의지도 제작 데이터. 전 세계 모든 사용자의 장소를 추가하거나 편집 할 수있는 Wikipedia와 같습니다.
nb = Kartografiske data fra OpenStreetMap fra %@. Det er som Wikipedia hvor du kan legge til eller redigere steder for alle brukere over hele verden.
nl = Cartografische gegevens van OpenStreetMap per %@. OSM is als Wikipedia voor kaarten, waar je plaatsen kunt toevoegen of bewerken voor alle gebruikers over de hele wereld.
pl = Dane kartograficzne z OpenStreetMap na dzień %@. To jest jak Wikipedia, gdzie możesz dodawać lub edytować miejsca dla wszystkich użytkowników na całym świecie.
pt = Os dados do mapa são provenientes do OpenStreetMap do dia %@. O OSM é como a Wikipédia dos mapas, onde você pode adicionar ou editar lugares para todos os usuários do mundo.
pt-BR = Os dados do mapa são provenientes do OpenStreetMap do dia %@. O OSM é como a Wikipédia dos mapas, onde você pode adicionar ou editar lugares para todos os usuários do mundo.
ro = Date cartografice de la OpenStreetMap din %@. Este ca Wikipedia unde puteți adăuga sau edita locuri pentru toți utilizatorii din lume.
ru = Картографические данные из OpenStreetMap по состоянию на %@. Это как Википедия, где вы можете добавить или редактировать места для всех пользователей по всему миру.
sk = Kartografické údaje z OpenStreetMap od %@. Je to ako Wikipedia, kde môžete pridať alebo upravovať miesta pre všetkých používateľov po celom svete.
sv = Kartografiska data från OpenStreetMap från och med %@. Det är som Wikipedia där du kan lägga till eller redigera platser för alla användare över hela världen.
sw = Takwimu za katuni kutoka kwa OpenStreetMap kama ya %@. Ni kama Wikipedia ambapo unaweza kuongeza au kuhariri maeneo kwa watumiaji wote ulimwenguni.
th = ข้อมูลการทำแผนที่จาก OpenStreetMap ณ ปี %@มันเป็นเหมือนวิกิพีเดียที่คุณสามารถเพิ่มหรือแก้ไขสถานที่สำหรับผู้ใช้ทุกคนทั่วโลก
tr = Harita verileri, %@ tarihine ait OpenStreetMap verilerinden alınmıştır. OpenStreetMap, Vikipedi'nin harita sürümü gibidir: dünyadaki herkes yer ekleyebilir veya düzenleyebilir.
uk = Картографічні дані з OpenStreetMap станом на %@. Це як Вікіпедія, де ви можете додавати або редагувати місця для всіх користувачів у всьому світі.
vi = Dữ liệu bản đồ từ OpenStreetMap kể từ %@. Nó giống như Wikipedia nơi bạn có thể thêm hoặc chỉnh sửa địa điểm cho tất cả người dùng trên toàn thế giới.
zh-Hans = 截至%@的OpenStreetMap的制图数据。就像Wikipedia一样您可以为世界上所有用户添加或编辑位置。
zh-Hant = 截至%@的OpenStreetMap的製圖數據。就像Wikipedia一樣您可以為世界上所有用戶添加或編輯位置。
[login_to_make_edits_visible]
tags = android,ios
@ -13444,6 +13636,7 @@
[editor_zip_code]
tags = android,ios
en = ZIP Code
en-GB = Postcode
ar = الرمز البريدي
be = Паштовы індэкс
bg = Пощенски код
@ -13452,7 +13645,6 @@
da = Postnummer
de = Postleitzahl
el = Ταχυδρομικός κώδικας
en-GB = Postcode
es = Código postal
et = Postiindeks
eu = Posta kodea
@ -13484,6 +13676,7 @@
[error_enter_correct_zip_code]
tags = android,ios
en = Enter a valid ZIP code
en-GB = Enter a valid postcode
ar = أدخل الرمز البريدي صالح
be = Увядзіце паштовы індэкс правільна
bg = Въведете валиден пощенски код
@ -13492,7 +13685,6 @@
da = Indtast det korrekte postnummer
de = Geben Sie die korrekte Postleitzahl ein
el = Πληκτρολογήστε έναν έγκυρο ταχυδρομικό κώδικα
en-GB = Enter a valid postcode
es = Introduzca el código postal correcto
et = Sisesta korrektne postiindeks
eu = Mesedez, idatzi posta-kode zuzena