Dmitry Donskoy 2019-04-02 16:37:54 +03:00 committed by Aleksandr Zatsepin
parent 8352823331
commit 34481b2831
9 changed files with 71 additions and 45 deletions

View file

@ -39,6 +39,7 @@ set(
# JNI sources
com/mapswithme/core/jni_helper.cpp
com/mapswithme/core/logging.cpp
com/mapswithme/maps/analytics/ExternalLibrariesMediator.cpp
com/mapswithme/maps/bookmarks/data/Bookmark.cpp
com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp
com/mapswithme/maps/discovery/DiscoveryManager.cpp
@ -48,8 +49,6 @@ set(
com/mapswithme/maps/editor/OpeningHours.cpp
com/mapswithme/maps/editor/Editor.cpp
com/mapswithme/maps/editor/OsmOAuth.cpp
com/mapswithme/maps/metrics/UserActionsLogger.cpp
com/mapswithme/maps/routing/RoutingOptions.cpp
com/mapswithme/maps/Framework.cpp
com/mapswithme/maps/LightFramework.cpp
com/mapswithme/maps/LocationState.cpp
@ -57,8 +56,9 @@ set(
com/mapswithme/maps/MapFragment.cpp
com/mapswithme/maps/MapManager.cpp
com/mapswithme/maps/MwmApplication.cpp
com/mapswithme/maps/analytics/ExternalLibrariesMediator.cpp
com/mapswithme/maps/metrics/UserActionsLogger.cpp
com/mapswithme/maps/PrivateVariables.cpp
com/mapswithme/maps/routing/RoutingOptions.cpp
com/mapswithme/maps/SearchEngine.cpp
com/mapswithme/maps/SearchRecents.cpp
com/mapswithme/maps/settings/UnitLocale.cpp

View file

@ -1,41 +1,45 @@
#include <jni.h>
#include <android/jni/com/mapswithme/core/jni_helper.hpp>
#include <android/jni/com/mapswithme/maps/Framework.hpp>
#include <android/jni/com/mapswithme/core/jni_helper.hpp>
#include "routing/routing_options.hpp"
unsigned int makeValue(jint option) { return 1u << static_cast<int>(option); }
routing::RoutingOptions::Road makeValue(jint option)
{
uint8_t const road = static_cast<const uint8_t>(1u << static_cast<int>(option));
CHECK_LESS(road, static_cast<uint8_t>(routing::RoutingOptions::Road::Max), ());
return static_cast<routing::RoutingOptions::Road>(road);
}
extern "C"
{
JNIEXPORT jboolean JNICALL Java_com_mapswithme_maps_routing_RoutingOptions_nativeHasOption(
JNIEnv * env, jclass clazz, jint option)
{
CHECK(g_framework, ("Framework isn't created yet!"));
routing::RoutingOptions routingOptions = routing::RoutingOptions::LoadCarOptionsFromSettings();
routing::RoutingOptions::Road road =
static_cast<routing::RoutingOptions::Road>(makeValue(option));
return static_cast<jboolean>(routingOptions.Has(road));
}
JNIEXPORT void JNICALL Java_com_mapswithme_maps_routing_RoutingOptions_nativeAddOption(
JNIEnv * env, jclass clazz, jint option)
{
JNIEXPORT jboolean JNICALL
Java_com_mapswithme_maps_routing_RoutingOptions_nativeHasOption(JNIEnv * env, jclass clazz, jint option)
{
CHECK(g_framework, ("Framework isn't created yet!"));
routing::RoutingOptions routingOptions = routing::RoutingOptions::LoadCarOptionsFromSettings();
routing::RoutingOptions::Road road =
static_cast<routing::RoutingOptions::Road>(makeValue(option));
routing::RoutingOptions::Road road = makeValue(option);
return static_cast<jboolean>(routingOptions.Has(road));
}
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_routing_RoutingOptions_nativeAddOption(JNIEnv * env, jclass clazz, jint option)
{
CHECK(g_framework, ("Framework isn't created yet!"));
routing::RoutingOptions routingOptions = routing::RoutingOptions::LoadCarOptionsFromSettings();
routing::RoutingOptions::Road road = makeValue(option);
routingOptions.Add(road);
routing::RoutingOptions::SaveCarOptionsToSettings(routingOptions);
}
}
JNIEXPORT void JNICALL Java_com_mapswithme_maps_routing_RoutingOptions_nativeRemoveOption(
JNIEnv * env, jclass clazz, jint option)
{
JNIEXPORT void JNICALL
Java_com_mapswithme_maps_routing_RoutingOptions_nativeRemoveOption(JNIEnv * env, jclass clazz, jint option)
{
CHECK(g_framework, ("Framework isn't created yet!"));
routing::RoutingOptions routingOptions = routing::RoutingOptions::LoadCarOptionsFromSettings();
routing::RoutingOptions::Road road =
static_cast<routing::RoutingOptions::Road>(makeValue(option));
routing::RoutingOptions::Road road = makeValue(option);
routingOptions.Remove(road);
routing::RoutingOptions::SaveCarOptionsToSettings(routingOptions);
}
}
}

View file

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
app:showAsAction="always"
android:id="@+id/done"
android:visible="false"
android:title="@string/done"
android:icon="@drawable/ic_done"/>
</menu>

View file

@ -178,8 +178,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
private static final int REQ_CODE_SHOW_SIMILAR_HOTELS = 3;
private static final int REQ_CODE_ERROR_CALCULATE_ROUTE = 4;
private static final int REQ_CODE_ERROR_CALCULATE_ROUTE_FIRST_TIME = 5;
private static final String ERROR_CALCULATE_ROUTE = "error_calculate_route";
private static final String ERROR_CALCULATE_ROUTE_FIRST_TIME = "`error_calculate_route_first_time";
private static final String ERROR_CALCULATE_ROUTE_TAG = "error_calculate_route";
private static final String ERROR_CALCULATE_ROUTE_FIRST_TIME_TAG = "`error_calculate_route_first_time";
// Map tasks that we run AFTER rendering initialized
private final Stack<MapTask> mTasks = new Stack<>();
@ -2708,7 +2708,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
.setReqCode(REQ_CODE_ERROR_CALCULATE_ROUTE)
.setFragManagerStrategyType(com.mapswithme.maps.dialog.AlertDialog.FragManagerStrategyType.ACTIVITY_FRAGMENT_MANAGER)
.build();
dialog.show(getSupportFragmentManager(), ERROR_CALCULATE_ROUTE);
dialog.show(this, ERROR_CALCULATE_ROUTE_TAG);
}
public void showUnableCalculateRouteFirstTimeDialog()
@ -2721,6 +2721,6 @@ public class MwmActivity extends BaseMwmFragmentActivity
.setReqCode(REQ_CODE_ERROR_CALCULATE_ROUTE_FIRST_TIME)
.setFragManagerStrategyType(com.mapswithme.maps.dialog.AlertDialog.FragManagerStrategyType.ACTIVITY_FRAGMENT_MANAGER)
.build();
dialog.show(getSupportFragmentManager(), ERROR_CALCULATE_ROUTE_FIRST_TIME);
dialog.show(this, ERROR_CALCULATE_ROUTE_FIRST_TIME_TAG);
}
}

View file

@ -10,6 +10,7 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatDialog;
@ -53,6 +54,20 @@ public class AlertDialog extends BaseMwmDialogFragment
if (fm.findFragmentByTag(tag) != null)
return;
showInternal(tag, fm);
}
public void show(@NonNull FragmentActivity activity, @NonNull String tag)
{
FragmentManager fm = mFragmentManagerStrategy.resolve(activity);
if (fm.findFragmentByTag(tag) != null)
return;
showInternal(tag, fm);
}
private void showInternal(@NonNull String tag, @NonNull FragmentManager fm)
{
FragmentTransaction transaction = fm.beginTransaction();
transaction.add(this, tag);
transaction.commitAllowingStateLoss();
@ -321,6 +336,13 @@ public class AlertDialog extends BaseMwmDialogFragment
{
return baseFragment.getChildFragmentManager();
}
@NonNull
@Override
public FragmentManager resolve(@NonNull FragmentActivity activity)
{
throw new UnsupportedOperationException("Not supported here!");
}
}
private static class ActivityFragmentManagerStrategy implements ResolveFragmentManagerStrategy
@ -329,7 +351,14 @@ public class AlertDialog extends BaseMwmDialogFragment
@Override
public FragmentManager resolve(@NonNull Fragment baseFragment)
{
return baseFragment.getActivity().getSupportFragmentManager();
return baseFragment.requireActivity().getSupportFragmentManager();
}
@NonNull
@Override
public FragmentManager resolve(@NonNull FragmentActivity activity)
{
return activity.getSupportFragmentManager();
}
}

View file

@ -2,10 +2,14 @@ package com.mapswithme.maps.dialog;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
interface ResolveFragmentManagerStrategy
{
@NonNull
FragmentManager resolve(@NonNull Fragment baseFragment);
@NonNull
FragmentManager resolve(@NonNull FragmentActivity activity);
}

View file

@ -17,7 +17,7 @@ public class DrivingOptionsActivity extends BaseMwmFragmentActivity
return DrivingOptionsFragment.class;
}
public static void startOptionMenuActivity(@NonNull FragmentActivity activity)
public static void start(@NonNull FragmentActivity activity)
{
Intent intent = new Intent(activity, DrivingOptionsActivity.class)
.putExtra(BUNDLE_REQUIRE_OPTIONS_MENU, true);

View file

@ -41,7 +41,7 @@ public class DrivingOptionsFragment extends BaseMwmToolbarFragment
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
inflater.inflate(R.menu.menu_tags_done, menu);
inflater.inflate(R.menu.menu_done, menu);
}
@Override

View file

@ -123,7 +123,7 @@ public class UgcRouteTagsFragment extends BaseMwmFragment implements BookmarkMan
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
inflater.inflate(R.menu.menu_tags_done, menu);
inflater.inflate(R.menu.menu_done, menu);
}
@Override