forked from organicmaps/organicmaps
[android] Add donation option to Place Page
This implementation follows iOS version as much as possible and uses the same core logic. Resolves #10081 Signed-off-by: Alexey Krasilnikov <alexey@krasilnikov.me>
This commit is contained in:
parent
b092262c74
commit
1c9d16a141
52 changed files with 515 additions and 5 deletions
|
@ -1993,4 +1993,74 @@ Java_app_organicmaps_Framework_nativeGetKayakHotelLink(JNIEnv * env, jclass, jst
|
|||
return url.empty() ? nullptr : jni::ToJavaString(env, url);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeShouldShowProducts(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->ShouldShowProducts();
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetProductsConfiguration(JNIEnv * env, jclass)
|
||||
{
|
||||
auto config = frm()->GetProductsConfiguration();
|
||||
if (!config) return nullptr;
|
||||
|
||||
static jclass const productClass = jni::GetGlobalClassRef(
|
||||
env,
|
||||
"app/organicmaps/products/Product"
|
||||
);
|
||||
static jmethodID const productConstructor = jni::GetConstructorID(
|
||||
env,
|
||||
productClass,
|
||||
"(Ljava/lang/String;Ljava/lang/String;)V"
|
||||
);
|
||||
|
||||
jobjectArray products = jni::ToJavaArray(
|
||||
env,
|
||||
productClass,
|
||||
config->GetProducts(),
|
||||
[](JNIEnv * env, products::ProductsConfig::Product const & product)
|
||||
{
|
||||
jni::TScopedLocalRef const title(env, jni::ToJavaString(env, product.GetTitle()));
|
||||
jni::TScopedLocalRef const link(env, jni::ToJavaString(env, product.GetLink()));
|
||||
|
||||
return env->NewObject(
|
||||
productClass,
|
||||
productConstructor,
|
||||
title.get(),
|
||||
link.get()
|
||||
);
|
||||
});
|
||||
|
||||
static jclass const productsConfigClass = jni::GetGlobalClassRef(
|
||||
env,
|
||||
"app/organicmaps/products/ProductsConfig"
|
||||
);
|
||||
static jmethodID const productsConfigConstructor = jni::GetConstructorID(
|
||||
env,
|
||||
productsConfigClass,
|
||||
"(Ljava/lang/String;[Lapp/organicmaps/products/Product;)V"
|
||||
);
|
||||
|
||||
jni::TScopedLocalRef const placePagePrompt(env, jni::ToJavaString(env, config->GetPlacePagePrompt()));
|
||||
return env->NewObject(productsConfigClass, productsConfigConstructor, placePagePrompt.get(), products);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDidCloseProductsPopup(JNIEnv * env, jclass, jstring reason)
|
||||
{
|
||||
frm()->DidCloseProductsPopup(frm()->FromString(jni::ToNativeString(env, reason)));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDidSelectProduct(JNIEnv * env, jclass, jstring title, jstring link)
|
||||
{
|
||||
products::ProductsConfig::Product product(
|
||||
jni::ToNativeString(env, title),
|
||||
jni::ToNativeString(env, link)
|
||||
);
|
||||
|
||||
frm()->DidSelectProduct(product);
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
|
|
@ -15,6 +15,8 @@ import app.organicmaps.api.RequestType;
|
|||
import app.organicmaps.bookmarks.data.DistanceAndAzimut;
|
||||
import app.organicmaps.bookmarks.data.FeatureId;
|
||||
import app.organicmaps.bookmarks.data.MapObject;
|
||||
import app.organicmaps.products.Product;
|
||||
import app.organicmaps.products.ProductsConfig;
|
||||
import app.organicmaps.routing.JunctionInfo;
|
||||
import app.organicmaps.routing.RouteMarkData;
|
||||
import app.organicmaps.routing.RoutePointInfo;
|
||||
|
@ -461,4 +463,13 @@ public class Framework
|
|||
@Nullable
|
||||
public static native String nativeGetKayakHotelLink(@NonNull String countryIsoCode, @NonNull String uri,
|
||||
long firstDaySec, long lastDaySec);
|
||||
|
||||
public static native boolean nativeShouldShowProducts();
|
||||
|
||||
@Nullable
|
||||
public static native ProductsConfig nativeGetProductsConfiguration();
|
||||
|
||||
public static native void nativeDidCloseProductsPopup(String reason);
|
||||
|
||||
public static native void nativeDidSelectProduct(String title, String link);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package app.organicmaps.products;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
// Called from JNI.
|
||||
@Keep
|
||||
@SuppressWarnings("unused")
|
||||
public class Product {
|
||||
@Nullable
|
||||
public String title;
|
||||
|
||||
@Nullable
|
||||
public String link;
|
||||
|
||||
public Product(@Nullable String title, @Nullable String link) {
|
||||
this.title = title;
|
||||
this.link = link;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package app.organicmaps.products;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
// Called from JNI.
|
||||
@Keep
|
||||
@SuppressWarnings("unused")
|
||||
public class ProductsConfig {
|
||||
public ProductsConfig(@Nullable String placePagePrompt, @Nullable Product[] products) {
|
||||
this.placePagePrompt = placePagePrompt;
|
||||
this.products = products;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String placePagePrompt;
|
||||
|
||||
@Nullable
|
||||
public Product[] products;
|
||||
}
|
|
@ -57,5 +57,13 @@ public final class Constants
|
|||
public static final String XIAOMI = "XIAOMI";
|
||||
}
|
||||
|
||||
public static class ProductsPopupCloseReason
|
||||
{
|
||||
public static final String CLOSE = "close";
|
||||
public static final String REMIND_LATER = "remind_later";
|
||||
public static final String ALREADY_DONATED = "already_donated";
|
||||
public static final String SELECT_PRODUCT = "select_product";
|
||||
}
|
||||
|
||||
private Constants() {}
|
||||
}
|
||||
|
|
|
@ -50,6 +50,7 @@ import app.organicmaps.widget.placepage.sections.PlacePageBookmarkFragment;
|
|||
import app.organicmaps.widget.placepage.sections.PlacePageLinksFragment;
|
||||
import app.organicmaps.widget.placepage.sections.PlacePageOpeningHoursFragment;
|
||||
import app.organicmaps.widget.placepage.sections.PlacePagePhoneFragment;
|
||||
import app.organicmaps.widget.placepage.sections.PlacePageProductsFragment;
|
||||
import app.organicmaps.widget.placepage.sections.PlacePageWikipediaFragment;
|
||||
import com.google.android.material.button.MaterialButton;
|
||||
|
||||
|
@ -69,6 +70,7 @@ public class PlacePageView extends Fragment implements View.OnClickListener,
|
|||
{
|
||||
private static final String PREF_COORDINATES_FORMAT = "coordinates_format";
|
||||
private static final String BOOKMARK_FRAGMENT_TAG = "BOOKMARK_FRAGMENT_TAG";
|
||||
private static final String PRODUCTS_FRAGMENT_TAG = "PRODUCTS_FRAGMENT_TAG";
|
||||
private static final String WIKIPEDIA_FRAGMENT_TAG = "WIKIPEDIA_FRAGMENT_TAG";
|
||||
private static final String PHONE_FRAGMENT_TAG = "PHONE_FRAGMENT_TAG";
|
||||
private static final String OPENING_HOURS_FRAGMENT_TAG = "OPENING_HOURS_FRAGMENT_TAG";
|
||||
|
@ -202,9 +204,11 @@ public class PlacePageView extends Fragment implements View.OnClickListener,
|
|||
mFrame.setOnClickListener((v) -> mPlacePageViewListener.onPlacePageRequestToggleState());
|
||||
|
||||
mPreview = mFrame.findViewById(R.id.pp__preview);
|
||||
|
||||
mFrame.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
|
||||
final int oldHeight = oldBottom - oldTop;
|
||||
final int newHeight = bottom - top;
|
||||
|
||||
if (oldHeight != newHeight)
|
||||
mPlacePageViewListener.onPlacePageContentChanged(mPreview.getHeight(), newHeight);
|
||||
});
|
||||
|
@ -387,6 +391,18 @@ public class PlacePageView extends Fragment implements View.OnClickListener,
|
|||
updateViewFragment(PlacePageWikipediaFragment.class, WIKIPEDIA_FRAGMENT_TAG, R.id.place_page_wikipedia_fragment, hasWikipediaEntry());
|
||||
}
|
||||
|
||||
private boolean hasProductsEntry()
|
||||
{
|
||||
return Framework.nativeShouldShowProducts();
|
||||
}
|
||||
|
||||
private void updateProductsView()
|
||||
{
|
||||
var hasProductsEntry = hasProductsEntry();
|
||||
|
||||
updateViewFragment(PlacePageProductsFragment.class, PRODUCTS_FRAGMENT_TAG, R.id.place_page_products_fragment, hasProductsEntry);
|
||||
}
|
||||
|
||||
private void setTextAndColorizeSubtitle()
|
||||
{
|
||||
String text = mMapObject.getSubtitle();
|
||||
|
@ -480,6 +496,7 @@ public class PlacePageView extends Fragment implements View.OnClickListener,
|
|||
}
|
||||
updateLinksView();
|
||||
updateOpeningHoursView();
|
||||
updateProductsView();
|
||||
updateWikipediaView();
|
||||
updateBookmarkView();
|
||||
updatePhoneView();
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
package app.organicmaps.widget.placepage.sections;
|
||||
|
||||
import static androidx.core.util.ObjectsCompat.requireNonNull;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import app.organicmaps.Framework;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.products.Product;
|
||||
import app.organicmaps.products.ProductsConfig;
|
||||
import app.organicmaps.util.Constants;
|
||||
import app.organicmaps.util.UiUtils;
|
||||
import app.organicmaps.util.Utils;
|
||||
|
||||
public class PlacePageProductsFragment extends Fragment
|
||||
{
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
return inflater.inflate(R.layout.place_page_products_fragment, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
|
||||
{
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
var config = Framework.nativeGetProductsConfiguration();
|
||||
if (config != null && isValidConfig(config))
|
||||
{
|
||||
UiUtils.show(view);
|
||||
|
||||
updateView(view, config);
|
||||
} else
|
||||
{
|
||||
UiUtils.hide(view);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateView(@NonNull View view, @NonNull ProductsConfig config)
|
||||
{
|
||||
var layoutInflater = LayoutInflater.from(view.getContext());
|
||||
|
||||
TextView productsPrompt = requireNonNull(view.findViewById(R.id.products_prompt));
|
||||
LinearLayout productsButtons = requireNonNull(view.findViewById(R.id.products_buttons));
|
||||
View closeButton = requireNonNull(view.findViewById(R.id.products_close));
|
||||
View productsRemindLater = requireNonNull(view.findViewById(R.id.products_remind_later));
|
||||
View alreadyDonated = requireNonNull(view.findViewById(R.id.products_already_donated));
|
||||
|
||||
productsPrompt.setText(config.placePagePrompt);
|
||||
|
||||
productsButtons.removeAllViews();
|
||||
|
||||
for (var product : Objects.requireNonNull(config.products))
|
||||
{
|
||||
var button = (Button) layoutInflater.inflate(R.layout.item_product, productsButtons, false);
|
||||
button.setText(product.title);
|
||||
button.setOnClickListener((v) -> {
|
||||
onProductSelected(product);
|
||||
});
|
||||
|
||||
productsButtons.addView(button);
|
||||
}
|
||||
|
||||
closeButton.setOnClickListener((v) -> {
|
||||
closeWithReason(view, Constants.ProductsPopupCloseReason.CLOSE);
|
||||
});
|
||||
|
||||
productsRemindLater.setOnClickListener((v) -> {
|
||||
closeWithReason(view, Constants.ProductsPopupCloseReason.REMIND_LATER);
|
||||
});
|
||||
|
||||
alreadyDonated.setOnClickListener((v) -> {
|
||||
closeWithReason(view, Constants.ProductsPopupCloseReason.ALREADY_DONATED);
|
||||
});
|
||||
}
|
||||
|
||||
private void closeWithReason(View view, String reason)
|
||||
{
|
||||
Framework.nativeDidCloseProductsPopup(reason);
|
||||
UiUtils.hide(view);
|
||||
}
|
||||
|
||||
private void onProductSelected(Product product)
|
||||
{
|
||||
Utils.openUrl(requireActivity(), product.link);
|
||||
Framework.nativeDidSelectProduct(product.title, product.link);
|
||||
}
|
||||
|
||||
private boolean isValidConfig(@NonNull ProductsConfig config)
|
||||
{
|
||||
return config.products != null && config.products.length > 0;
|
||||
}
|
||||
}
|
11
android/app/src/main/res/layout/item_product.xml
Normal file
11
android/app/src/main/res/layout/item_product.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Button xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
style="@style/MwmWidget.Button.Accent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/margin_base"
|
||||
android:layout_marginStart="@dimen/margin_base"
|
||||
android:layout_weight="1"
|
||||
tools:text="5 Eur/Month"
|
||||
android:gravity="center" />
|
|
@ -7,6 +7,7 @@
|
|||
android:background="?panel"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<include layout="@layout/place_page_fat_shadow"/>
|
||||
|
||||
<LinearLayout
|
||||
|
@ -77,6 +78,12 @@
|
|||
<include layout="@layout/place_page_open_in"/>
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/place_page_products_fragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:layout="@layout/place_page_products_fragment" />
|
||||
|
||||
<include
|
||||
layout="@layout/place_page_fat_shadow"
|
||||
android:id="@+id/edit_top_space"
|
||||
|
|
119
android/app/src/main/res/layout/place_page_products_fragment.xml
Normal file
119
android/app/src/main/res/layout/place_page_products_fragment.xml
Normal file
|
@ -0,0 +1,119 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content">
|
||||
|
||||
<include
|
||||
android:id="@+id/products_space_top"
|
||||
layout="@layout/place_page_fat_shadow"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:background="?ppBackground"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_space_top" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/products_close"
|
||||
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
|
||||
android:layout_width="@dimen/place_page_top_button"
|
||||
android:layout_height="@dimen/place_page_top_button"
|
||||
android:layout_marginTop="@dimen/margin_base"
|
||||
android:layout_marginEnd="@dimen/margin_half"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:contentDescription="@string/close"
|
||||
android:insetLeft="0dp"
|
||||
android:insetTop="0dp"
|
||||
android:insetRight="0dp"
|
||||
android:insetBottom="0dp"
|
||||
android:padding="0dp"
|
||||
app:icon="@drawable/ic_close"
|
||||
app:iconGravity="textStart"
|
||||
app:iconPadding="0dp"
|
||||
app:iconSize="24dp"
|
||||
app:iconTint="?iconTint"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_space_top"
|
||||
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Button.Round" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/products_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_marginStart="@dimen/margin_base"
|
||||
android:layout_marginTop="@dimen/margin_base"
|
||||
android:layout_marginEnd="@dimen/margin_base"
|
||||
android:text="@string/support_organic_maps"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
app:layout_constraintEnd_toStartOf="@id/products_close"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_space_top" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/products_prompt"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/margin_base"
|
||||
android:layout_marginTop="@dimen/margin_base"
|
||||
android:layout_marginEnd="@dimen/margin_base"
|
||||
android:fontFamily="@string/robotoRegular"
|
||||
android:lineSpacingExtra="@dimen/line_spacing_extra_2"
|
||||
android:textAppearance="?android:attr/textAppearance"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textStyle="normal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_title"
|
||||
tools:ignore="UnusedAttribute"
|
||||
tools:text="asdasdadadasdasdasdasdasdasdasdadas" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/products_buttons"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/margin_base"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_prompt" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/products_already_donated"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/margin_base"
|
||||
android:layout_marginTop="@dimen/margin_base"
|
||||
android:layout_marginEnd="@dimen/margin_base"
|
||||
android:layout_marginBottom="@dimen/margin_base"
|
||||
android:text="@string/already_donated"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/products_remind_later"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_buttons" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/products_remind_later"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/margin_base"
|
||||
android:layout_marginTop="@dimen/margin_base"
|
||||
android:layout_marginEnd="@dimen/margin_base"
|
||||
android:layout_marginBottom="@dimen/margin_base"
|
||||
android:text="@string/remind_me_later"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/products_already_donated"
|
||||
app:layout_constraintTop_toBottomOf="@id/products_buttons" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -286,6 +286,9 @@
|
|||
<string name="faq">اسئلة مكررة</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">تبرع</string>
|
||||
<string name="already_donated">تم التبرع</string>
|
||||
<string name="remind_me_later">ذكر لاحقاً</string>
|
||||
<string name="support_organic_maps">دعم Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">دعم المشروع</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -272,6 +272,9 @@
|
|||
<string name="faq">Tez-tez soruşulan suallar</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Bağışlamaq</string>
|
||||
<string name="already_donated">Artıq ianə edildi</string>
|
||||
<string name="remind_me_later">Daha sonra xatırlat</string>
|
||||
<string name="support_organic_maps">Organic Maps-i dəstəkləmək</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Bu layihəni dəstəkləyin</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -272,6 +272,9 @@
|
|||
<string name="faq">Пытанні і адказы</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Падтрымаць грашыма</string>
|
||||
<string name="already_donated">Ужо ахвяравана</string>
|
||||
<string name="remind_me_later">Нагадаць пазней</string>
|
||||
<string name="support_organic_maps">Падтрымаць Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Падтрымаць праект</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -255,6 +255,9 @@
|
|||
<string name="faq">Въпроси и отговори</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Дарете</string>
|
||||
<string name="already_donated">Вече дарено</string>
|
||||
<string name="remind_me_later">Напомни по-късно</string>
|
||||
<string name="support_organic_maps">Подкрепи Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Подкрепете проекта</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -273,6 +273,9 @@
|
|||
<string name="faq">Preguntes més freqüents</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donatiu</string>
|
||||
<string name="already_donated">Ja donat</string>
|
||||
<string name="remind_me_later">Recorda més tard</string>
|
||||
<string name="support_organic_maps">Donar suport a Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Donar suport al projecte</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -254,6 +254,9 @@
|
|||
<string name="faq">Otázky a odpovědi</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Darovat</string>
|
||||
<string name="already_donated">Již darováno</string>
|
||||
<string name="remind_me_later">Připomeň později</string>
|
||||
<string name="support_organic_maps">Podpořit Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Podpořte projekt</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -246,6 +246,9 @@
|
|||
<string name="faq">Spørgsmål og svar</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Doner</string>
|
||||
<string name="already_donated">Allerede doneret</string>
|
||||
<string name="remind_me_later">Mind mig senere</string>
|
||||
<string name="support_organic_maps">Støtte Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Støt projektet</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -271,6 +271,9 @@
|
|||
<string name="faq">Häufige Fragen und Antworten</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Spenden</string>
|
||||
<string name="already_donated">Bereits gespendet</string>
|
||||
<string name="remind_me_later">Später erinnern</string>
|
||||
<string name="support_organic_maps">Organic Maps unterstützen</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Unterstütze das Projekt</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -274,6 +274,9 @@
|
|||
<string name="faq">Συχνές ερωτήσεις</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Δωρεά</string>
|
||||
<string name="already_donated">Ήδη δωρεά</string>
|
||||
<string name="remind_me_later">Υπενθύμισε αργότερα</string>
|
||||
<string name="support_organic_maps">Υποστήριξε το Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Στηρίξτε αυτό το πρότζεκτ</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -271,6 +271,9 @@
|
|||
<string name="faq">Preguntas frecuentes</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donar</string>
|
||||
<string name="already_donated">Ya donado</string>
|
||||
<string name="remind_me_later">Recordar más tarde</string>
|
||||
<string name="support_organic_maps">Apoyar Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Apoye el proyecto</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -264,6 +264,9 @@
|
|||
<string name="faq">Korduma kippuvad küsimused</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Anneta</string>
|
||||
<string name="already_donated">Juba annetatud</string>
|
||||
<string name="remind_me_later">Meenuta hiljem</string>
|
||||
<string name="support_organic_maps">Toetada Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Toetage projekti</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -272,6 +272,9 @@
|
|||
<string name="faq">Ohiko galderak</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Dohaintza eman</string>
|
||||
<string name="already_donated">Dohaintza jada emana</string>
|
||||
<string name="remind_me_later">Gogoratu geroago</string>
|
||||
<string name="support_organic_maps">Sustatu Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Proiektuari laguntza eman</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -239,6 +239,9 @@
|
|||
<string name="faq">پرسشهای زیاد پرسیده شده</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">حمایت مالی</string>
|
||||
<string name="already_donated">قبلاً اهدا شده</string>
|
||||
<string name="remind_me_later">بعداً یادآوری کن</string>
|
||||
<string name="support_organic_maps">پشتیبانی از Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">ﺪﯿﻨﮐ ﺖﯾﺎﻤﺣ ﻩﮊﻭﺮﭘ ﺯﺍ</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -270,6 +270,9 @@
|
|||
<string name="faq">Usein kysytyt kysymykset</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Lahjoita</string>
|
||||
<string name="already_donated">Jo lahjoitettu</string>
|
||||
<string name="remind_me_later">Muistuta myöhemmin</string>
|
||||
<string name="support_organic_maps">Tukea Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Tue projektia</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -276,6 +276,9 @@
|
|||
<string name="faq">Foire aux questions</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Faire un don</string>
|
||||
<string name="already_donated">Déjà donné</string>
|
||||
<string name="remind_me_later">Rappeler plus tard</string>
|
||||
<string name="support_organic_maps">Soutenir Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Soutenir le projet</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -284,6 +284,9 @@
|
|||
<string name="faq">अक्सर पूछे जाने वाले प्रश्नों</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">दान देना</string>
|
||||
<string name="already_donated">पहले से दान</string>
|
||||
<string name="remind_me_later">बाद में याद दिलाना</string>
|
||||
<string name="support_organic_maps">Organic Maps का समर्थन करें</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">परियोजना का समर्थन करें</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -264,6 +264,9 @@
|
|||
<string name="faq">Gyakran Ismételt Kérdések</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Adományozás</string>
|
||||
<string name="already_donated">Már adományozva</string>
|
||||
<string name="remind_me_later">Emlékeztessen később</string>
|
||||
<string name="support_organic_maps">Organic Maps támogatása</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">A projekt támogatása</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -251,6 +251,9 @@
|
|||
<string name="faq">Pertanyaan dan jawaban</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Menyumbangkan</string>
|
||||
<string name="already_donated">Sudah disumbang</string>
|
||||
<string name="remind_me_later">Ingatkan nanti</string>
|
||||
<string name="support_organic_maps">Mendukung Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Mendukung proyek</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -259,6 +259,9 @@
|
|||
<string name="faq">Domande frequenti</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donare</string>
|
||||
<string name="already_donated">Già donato</string>
|
||||
<string name="remind_me_later">Ricorda più tardi</string>
|
||||
<string name="support_organic_maps">Supportare Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Sostieni il progetto</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -273,6 +273,9 @@
|
|||
<string name="faq">שאלות ותשובות</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">לתרום</string>
|
||||
<string name="already_donated">כבר נתרם</string>
|
||||
<string name="remind_me_later">הזכר מאוחר יותר</string>
|
||||
<string name="support_organic_maps">לתמוך ב-Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">תמכו בפרויקט</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -274,6 +274,9 @@
|
|||
<string name="faq">よくある質問</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">寄付</string>
|
||||
<string name="already_donated">寄付済み</string>
|
||||
<string name="remind_me_later">後でリマインド</string>
|
||||
<string name="support_organic_maps">Organic Maps を支援</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">プロジェクトを支援する</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -249,6 +249,9 @@
|
|||
<string name="faq">질문과 답변</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">기부</string>
|
||||
<string name="already_donated">기부완료</string>
|
||||
<string name="remind_me_later">나중에 알림</string>
|
||||
<string name="support_organic_maps">Organic Maps 지원하기</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">프로젝트 지원</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -273,6 +273,8 @@
|
|||
<string name="faq">Biežāk uzdotie jautājumi</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Ziedot</string>
|
||||
<string name="remind_me_later">Atgādināt vēlāk</string>
|
||||
<string name="support_organic_maps">Atbalstīt Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Atbalstiet projektu</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -243,6 +243,9 @@
|
|||
<string name="help">मदत</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="faq">वारंवार विचारलेले प्रश्न</string>
|
||||
<string name="already_donated">आधीच दान केले</string>
|
||||
<string name="remind_me_later">नंतर आठवण करून द्या</string>
|
||||
<string name="support_organic_maps">Organic Maps ला समर्थन द्या</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">प्रकल्पाला पाठठिंबा द्या</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -271,6 +271,9 @@
|
|||
<string name="faq">Spørsmål og svar</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donere</string>
|
||||
<string name="already_donated">Allerede donert</string>
|
||||
<string name="remind_me_later">Påminn senere</string>
|
||||
<string name="support_organic_maps">Støtte Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Støtt prosjektet</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -271,6 +271,9 @@
|
|||
<string name="faq">Vragen en antwoorden</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Doneer</string>
|
||||
<string name="already_donated">Reeds gedoneerd</string>
|
||||
<string name="remind_me_later">Herinner later</string>
|
||||
<string name="support_organic_maps">Ondersteun Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Steun het project</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -273,6 +273,9 @@
|
|||
<string name="faq">Pytania i odpowiedzi</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Wspomóż</string>
|
||||
<string name="already_donated">Już przekazano</string>
|
||||
<string name="remind_me_later">Przypomnij później</string>
|
||||
<string name="support_organic_maps">Wspierać Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Wesprzyj projekt</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -259,6 +259,9 @@
|
|||
<string name="faq">Perguntas frequentes</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Doar</string>
|
||||
<string name="already_donated">Já doei</string>
|
||||
<string name="remind_me_later">Lembre-me mais tarde</string>
|
||||
<string name="support_organic_maps">Apoie o Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Apoie o projeto</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -257,6 +257,9 @@
|
|||
<string name="faq">Întrebări frecvente</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donează</string>
|
||||
<string name="already_donated">Deja donat</string>
|
||||
<string name="remind_me_later">Amintește mai târziu</string>
|
||||
<string name="support_organic_maps">Susține Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Susține proiectul</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -276,6 +276,9 @@
|
|||
<string name="faq">Вопросы и ответы</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Поддержать деньгами</string>
|
||||
<string name="already_donated">Уже пожертвовано</string>
|
||||
<string name="remind_me_later">Напомнить позже</string>
|
||||
<string name="support_organic_maps">Поддержать Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Помочь проекту</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -271,6 +271,9 @@
|
|||
<string name="faq">Otázky a odpovede</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Darovať</string>
|
||||
<string name="already_donated">Už darované</string>
|
||||
<string name="remind_me_later">Pripomeň neskôr</string>
|
||||
<string name="support_organic_maps">Podporiť Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Podporte projekt</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -248,6 +248,9 @@
|
|||
<string name="faq">Frågor och svar</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donera</string>
|
||||
<string name="already_donated">Redan donerat</string>
|
||||
<string name="remind_me_later">Påminn senare</string>
|
||||
<string name="support_organic_maps">Stödja Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Stöd projektet</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -70,6 +70,9 @@
|
|||
<string name="faq">Maswali na majibu</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Changia</string>
|
||||
<string name="already_donated">Tayari kutoa</string>
|
||||
<string name="remind_me_later">Kumbusha baadaye</string>
|
||||
<string name="support_organic_maps">Kuunga mkono Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Saidia mradi</string>
|
||||
<!-- Toast text when user hides UI with a long tap anywhere on the map -->
|
||||
|
|
|
@ -252,6 +252,9 @@
|
|||
<string name="faq">คำถามและคำตอบ</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">บริจาค</string>
|
||||
<string name="already_donated">บริจาคแล้ว</string>
|
||||
<string name="remind_me_later">เตือนภายหลัง</string>
|
||||
<string name="support_organic_maps">สนับสนุน Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">สนับสนุนโครงการ</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -273,6 +273,9 @@
|
|||
<string name="faq">Sıkça Sorulan Sorular</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Bağış yapın</string>
|
||||
<string name="already_donated">Zaten bağış yaptım</string>
|
||||
<string name="remind_me_later">Sonra hatırlat</string>
|
||||
<string name="support_organic_maps">Organic Maps’i Destekleyin</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Bu projeyi destekleyin</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -276,6 +276,9 @@
|
|||
<string name="faq">Питання та відповіді</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Підтримати грошима</string>
|
||||
<string name="already_donated">Вже пожертвувано</string>
|
||||
<string name="remind_me_later">Нагадати пізніше</string>
|
||||
<string name="support_organic_maps">Підтримати Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Підтримайте проект</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -250,6 +250,9 @@
|
|||
<string name="faq">Câu hỏi và trả lời</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Quyên tặng</string>
|
||||
<string name="already_donated">Đã quyên góp</string>
|
||||
<string name="remind_me_later">Nhắc sau</string>
|
||||
<string name="support_organic_maps">Hỗ trợ Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Hỗ trợ dự án</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -280,6 +280,9 @@
|
|||
<string name="faq">問題和解答</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">捐助我們</string>
|
||||
<string name="already_donated">已捐贈</string>
|
||||
<string name="remind_me_later">稍後提醒</string>
|
||||
<string name="support_organic_maps">支持 Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">支持本項目</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -280,6 +280,9 @@
|
|||
<string name="faq">问题和解答</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">捐助我们</string>
|
||||
<string name="already_donated">已捐赠</string>
|
||||
<string name="remind_me_later">稍后提醒</string>
|
||||
<string name="support_organic_maps">支持 Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">支持本项目</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -296,6 +296,9 @@
|
|||
<string name="faq">Frequently Asked Questions</string>
|
||||
<!-- Button in the main menu -->
|
||||
<string name="donate">Donate</string>
|
||||
<string name="already_donated">Already donated</string>
|
||||
<string name="remind_me_later">Remind later</string>
|
||||
<string name="support_organic_maps">Support Organic Maps</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
<string name="how_to_support_us">Support the project</string>
|
||||
<!-- Button in the main Help dialog -->
|
||||
|
|
|
@ -7017,7 +7017,7 @@
|
|||
zh-Hant = 捐助,以共同打造最好的地圖!
|
||||
|
||||
[already_donated]
|
||||
tags = ios
|
||||
tags = ios,android
|
||||
en = Already donated
|
||||
af = Reeds geskenk
|
||||
ar = تم التبرع
|
||||
|
@ -7061,7 +7061,7 @@
|
|||
zh-Hant = 已捐贈
|
||||
|
||||
[remind_me_later]
|
||||
tags = ios
|
||||
tags = ios,android
|
||||
en = Remind later
|
||||
af = Herinner later
|
||||
ar = ذكر لاحقاً
|
||||
|
@ -7106,7 +7106,7 @@
|
|||
zh-Hant = 稍後提醒
|
||||
|
||||
[support_organic_maps]
|
||||
tags = ios
|
||||
tags = ios,android
|
||||
en = Support Organic Maps
|
||||
af = Ondersteun Organic Maps
|
||||
ar = دعم Organic Maps
|
||||
|
|
|
@ -767,6 +767,7 @@ public:
|
|||
void OnPowerSchemeChanged(power_management::Scheme const actualScheme) override;
|
||||
|
||||
public:
|
||||
bool ShouldShowProducts() const;
|
||||
std::optional<products::ProductsConfig> GetProductsConfiguration() const;
|
||||
|
||||
enum class ProductsPopupCloseReason
|
||||
|
@ -777,12 +778,12 @@ public:
|
|||
RemindLater
|
||||
};
|
||||
|
||||
ProductsPopupCloseReason FromString(std::string const & str) const;
|
||||
|
||||
void DidCloseProductsPopup(ProductsPopupCloseReason reason) const;
|
||||
void DidSelectProduct(products::ProductsConfig::Product const & product) const;
|
||||
|
||||
private:
|
||||
bool ShouldShowProducts() const;
|
||||
uint32_t GetTimeoutForReason(ProductsPopupCloseReason reason) const;
|
||||
std::string_view ToString(ProductsPopupCloseReason reason) const;
|
||||
ProductsPopupCloseReason FromString(std::string const & str) const;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue