From 9f572dbaeca7ce04d15ce11d082c60c1fc2a6071 Mon Sep 17 00:00:00 2001 From: Dmitry Yunitsky Date: Thu, 16 Jul 2015 13:25:26 +0300 Subject: [PATCH] [android] Used correct string in routing dialogs. --- .../res/layout/item_country_group_dialog.xml | 2 +- .../item_country_group_dialog_expanded.xml | 3 +- .../src/com/mapswithme/maps/MWMActivity.java | 14 ++- .../maps/data/RoutingResultCodes.java | 71 -------------- .../data/RoutingResultCodesProcessor.java | 94 +++++++++++++++++++ .../dialog/RoutingErrorDialogFragment.java | 10 +- 6 files changed, 111 insertions(+), 83 deletions(-) delete mode 100644 android/src/com/mapswithme/maps/data/RoutingResultCodes.java create mode 100644 android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java diff --git a/android/res/layout/item_country_group_dialog.xml b/android/res/layout/item_country_group_dialog.xml index 1e13f6012a..9562b1a717 100644 --- a/android/res/layout/item_country_group_dialog.xml +++ b/android/res/layout/item_country_group_dialog.xml @@ -21,7 +21,7 @@ android:id="@+id/tv__size" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="@dimen/margin_double" + android:layout_weight="0" android:maxLines="1" android:textAppearance="@style/MwmTextAppearance.Body1"/> diff --git a/android/res/layout/item_country_group_dialog_expanded.xml b/android/res/layout/item_country_group_dialog_expanded.xml index 5fd1860e17..45f934e48c 100644 --- a/android/res/layout/item_country_group_dialog_expanded.xml +++ b/android/res/layout/item_country_group_dialog_expanded.xml @@ -4,6 +4,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@color/base_green" android:gravity="center_vertical" android:minHeight="60dp" android:orientation="horizontal" @@ -22,7 +23,7 @@ android:id="@+id/tv__size" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="@dimen/margin_double" + android:layout_weight="0" android:maxLines="1" android:textAppearance="@style/MwmTextAppearance.Body1" android:textColor="@color/text_green"/> diff --git a/android/src/com/mapswithme/maps/MWMActivity.java b/android/src/com/mapswithme/maps/MWMActivity.java index a2c10caeb1..0108342a12 100644 --- a/android/src/com/mapswithme/maps/MWMActivity.java +++ b/android/src/com/mapswithme/maps/MWMActivity.java @@ -54,7 +54,7 @@ import com.mapswithme.maps.bookmarks.data.MapObject; import com.mapswithme.maps.bookmarks.data.MapObject.ApiPoint; import com.mapswithme.maps.bookmarks.data.ParcelablePoint; import com.mapswithme.maps.data.RouterTypes; -import com.mapswithme.maps.data.RoutingResultCodes; +import com.mapswithme.maps.data.RoutingResultCodesProcessor; import com.mapswithme.maps.dialog.RoutingErrorDialogFragment; import com.mapswithme.maps.location.LocationHelper; import com.mapswithme.maps.location.LocationPredictor; @@ -1433,8 +1433,14 @@ public class MWMActivity extends BaseMwmFragmentActivity private void showRoutingDisclaimer() { + StringBuilder builder = new StringBuilder(); + for (int resId : new int[] {R.string.dialog_routing_disclaimer_priority, R.string.dialog_routing_disclaimer_precision, + R.string.dialog_routing_disclaimer_recommendations, R.string.dialog_routing_disclaimer_beware}) + builder.append(getString(resId)).append("\n\n"); + new AlertDialog.Builder(this) - .setMessage(getString(R.string.routing_disclaimer)) + .setTitle(R.string.dialog_routing_disclaimer_title) + .setMessage(builder.toString()) .setCancelable(false) .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { @@ -1534,7 +1540,7 @@ public class MWMActivity extends BaseMwmFragmentActivity @Override public void run() { - if (resultCode == RoutingResultCodes.NO_ERROR) + if (resultCode == RoutingResultCodesProcessor.NO_ERROR) { mRlTurnByTurnBox.setVisibility(View.GONE); ViewCompat.setAlpha(mLayoutRoutingGo, 1); @@ -1578,7 +1584,7 @@ public class MWMActivity extends BaseMwmFragmentActivity public void onOk() { closeRouting(); - if (RoutingResultCodes.isDownloadable(resultCode)) + if (RoutingResultCodesProcessor.isDownloadable(resultCode)) showDownloader(false); } }); diff --git a/android/src/com/mapswithme/maps/data/RoutingResultCodes.java b/android/src/com/mapswithme/maps/data/RoutingResultCodes.java deleted file mode 100644 index 811d140d79..0000000000 --- a/android/src/com/mapswithme/maps/data/RoutingResultCodes.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.mapswithme.maps.data; - -import android.util.Pair; - -import com.mapswithme.maps.MWMApplication; -import com.mapswithme.maps.R; - -// Codes correspond to native routing::IRouter::ResultCode -public class RoutingResultCodes -{ - public static final int NO_ERROR = 0; - public static final int CANCELLED = 1; - public static final int NO_POSITION = 2; - public static final int INCONSISTENT_MWM_ROUTE = 3; - public static final int ROUTING_FILE_NOT_EXIST = 4; - public static final int START_POINT_NOT_FOUND = 5; - public static final int END_POINT_NOT_FOUND = 6; - public static final int DIFFERENT_MWM = 7; - public static final int ROUTE_NOT_FOUND = 8; - public static final int INTERNAL_ERROR = 9; - - public static Pair getDialogTitleSubtitle(int errorCode) - { - int titleRes = 0, messageRes = 0; - switch (errorCode) - { - case NO_POSITION: - // TODO add title translations -// titleRes = - messageRes = R.string.routing_failed_unknown_my_position; - break; - case INCONSISTENT_MWM_ROUTE: - case ROUTING_FILE_NOT_EXIST: - titleRes = R.string.routing_download_maps_along; - messageRes = R.string.routing_requires_all_map; - break; - case START_POINT_NOT_FOUND: - // TODO add title translations - // titleRes = - messageRes = R.string.routing_failed_start_point_not_found; - break; - case END_POINT_NOT_FOUND: - // TODO add title translations - // titleRes = - messageRes = R.string.routing_failed_dst_point_not_found; - break; - case DIFFERENT_MWM: - // TODO add title translations - // titleRes = - messageRes = R.string.routing_failed_cross_mwm_building; - break; - case ROUTE_NOT_FOUND: - // TODO add title translations - // titleRes = - messageRes = R.string.routing_failed_route_not_found; - break; - case INTERNAL_ERROR: - // TODO add title translations - // titleRes = - messageRes = R.string.routing_failed_internal_error; - break; - } - - return new Pair<>(titleRes == 0 ? "" : MWMApplication.get().getString(titleRes), MWMApplication.get().getString(messageRes)); - } - - public static boolean isDownloadable(int resultCode) - { - return resultCode == INCONSISTENT_MWM_ROUTE || resultCode == ROUTING_FILE_NOT_EXIST; - } -} diff --git a/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java b/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java new file mode 100644 index 0000000000..c5818b8334 --- /dev/null +++ b/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java @@ -0,0 +1,94 @@ +package com.mapswithme.maps.data; + +import android.content.res.Resources; +import android.util.Pair; + +import com.mapswithme.maps.LocationState; +import com.mapswithme.maps.MWMApplication; +import com.mapswithme.maps.R; + +import java.util.ArrayList; +import java.util.List; + +// Codes correspond to native routing::IRouter::ResultCode +public class RoutingResultCodesProcessor +{ + public static final int NO_ERROR = 0; + public static final int CANCELLED = 1; + public static final int NO_POSITION = 2; + public static final int INCONSISTENT_MWM_ROUTE = 3; + public static final int ROUTING_FILE_NOT_EXIST = 4; + public static final int START_POINT_NOT_FOUND = 5; + public static final int END_POINT_NOT_FOUND = 6; + public static final int DIFFERENT_MWM = 7; + public static final int ROUTE_NOT_FOUND = 8; + public static final int NEED_MORE_MAPS = 9; + public static final int INTERNAL_ERROR = 10; + + public static Pair getDialogTitleSubtitle(int errorCode) + { + Resources resources = MWMApplication.get().getResources(); + int titleRes = 0; + List messages = new ArrayList<>(); + switch (errorCode) + { + case NO_POSITION: + if (LocationState.INSTANCE.getLocationStateMode() == LocationState.UNKNOWN_POSITION) + { + titleRes = R.string.dialog_routing_location_turn_on; + messages.add(resources.getString(R.string.dialog_routing_location_unknown_turn_on)); + } + else + { + titleRes = R.string.dialog_routing_check_gps; + messages.add(resources.getString(R.string.dialog_routing_error_location_not_found)); + messages.add(resources.getString(R.string.dialog_routing_location_turn_wifi)); + } + break; + case INCONSISTENT_MWM_ROUTE: + case ROUTING_FILE_NOT_EXIST: + titleRes = R.string.routing_download_maps_along; + messages.add(resources.getString(R.string.routing_requires_all_map)); + break; + case START_POINT_NOT_FOUND: + titleRes = R.string.dialog_routing_change_start; + messages.add(resources.getString(R.string.dialog_routing_start_not_determined)); + messages.add(resources.getString(R.string.dialog_routing_select_closer_start)); + break; + case END_POINT_NOT_FOUND: + titleRes = R.string.dialog_routing_change_end; + messages.add(resources.getString(R.string.dialog_routing_end_not_determined)); + messages.add(resources.getString(R.string.dialog_routing_select_closer_end)); + break; + case DIFFERENT_MWM: + messages.add(resources.getString(R.string.routing_failed_cross_mwm_building)); + break; + case ROUTE_NOT_FOUND: + titleRes = R.string.dialog_routing_unable_locate_route; + messages.add(resources.getString(R.string.dialog_routing_cant_build_route)); + messages.add(resources.getString(R.string.dialog_routing_change_start_or_end)); + break; + case INTERNAL_ERROR: + titleRes = R.string.dialog_routing_system_error; + messages.add(resources.getString(R.string.dialog_routing_application_error)); + messages.add(resources.getString(R.string.dialog_routing_try_again)); + break; + case NEED_MORE_MAPS: + titleRes = R.string.dialog_routing_download_and_build_cross_route; + messages.add(resources.getString(R.string.dialog_routing_application_error)); + messages.add(resources.getString(R.string.dialog_routing_try_again)); + break; + } + + StringBuilder builder = new StringBuilder(); + for (String messagePart : messages) + builder.append(messagePart).append("\n\n"); + + return new Pair<>(titleRes == 0 ? "" : resources.getString(titleRes), builder.toString()); + } + + public static boolean isDownloadable(int resultCode) + { + return resultCode == INCONSISTENT_MWM_ROUTE || resultCode == ROUTING_FILE_NOT_EXIST; + } +} diff --git a/android/src/com/mapswithme/maps/dialog/RoutingErrorDialogFragment.java b/android/src/com/mapswithme/maps/dialog/RoutingErrorDialogFragment.java index 18848b832c..c5e3be26ca 100644 --- a/android/src/com/mapswithme/maps/dialog/RoutingErrorDialogFragment.java +++ b/android/src/com/mapswithme/maps/dialog/RoutingErrorDialogFragment.java @@ -20,7 +20,7 @@ import com.mapswithme.maps.MapStorage; import com.mapswithme.maps.R; import com.mapswithme.maps.adapter.DisabledChildSimpleExpandableListAdapter; import com.mapswithme.maps.base.BaseMwmDialogFragment; -import com.mapswithme.maps.data.RoutingResultCodes; +import com.mapswithme.maps.data.RoutingResultCodesProcessor; import com.mapswithme.util.StringUtils; import com.mapswithme.util.UiUtils; @@ -64,7 +64,7 @@ public class RoutingErrorDialogFragment extends BaseMwmDialogFragment public Dialog onCreateDialog(Bundle savedInstanceState) { parseArguments(); - final Pair titleMessage = RoutingResultCodes.getDialogTitleSubtitle(mResultCode); + final Pair titleMessage = RoutingResultCodesProcessor.getDialogTitleSubtitle(mResultCode); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) .setTitle(titleMessage.first) .setCancelable(true); @@ -178,14 +178,12 @@ public class RoutingErrorDialogFragment extends BaseMwmDialogFragment final List> groupData = new ArrayList<>(); final Map countriesGroup = new HashMap<>(); - // TODO translations - countriesGroup.put(GROUP_NAME, "Countries (" + mMissingCountries.length + ")"); + countriesGroup.put(GROUP_NAME, getString(R.string.maps) + " (" + mMissingCountries.length + ") "); countriesGroup.put(GROUP_SIZE, StringUtils.getFileSizeString(getCountriesSizeInBytes(StorageOptions.MAP_OPTION_MAP_ONLY))); groupData.add(countriesGroup); final Map routesGroup = new HashMap<>(); - // TODO translations - routesGroup.put(GROUP_NAME, "Routes (" + mMissingCountries.length + ")"); + routesGroup.put(GROUP_NAME, getString(R.string.dialog_routing_routes_size) + " (" + mMissingCountries.length + ") "); routesGroup.put(GROUP_SIZE, StringUtils.getFileSizeString(getCountriesSizeInBytes(StorageOptions.MAP_OPTION_CAR_ROUTING))); groupData.add(routesGroup);