From c3a0bce079f729bc885de2e0aa459ad8c5d3078d Mon Sep 17 00:00:00 2001 From: GaidamakUA Date: Wed, 28 Oct 2015 20:57:06 +0200 Subject: [PATCH 1/2] New help in progress. --- OsmAnd/res/layout/fragment_help_screen.xml | 20 ++ OsmAnd/res/values/strings.xml | 11 + .../osmand/plus/activities/HelpActivity.java | 84 +++--- .../dialogs/HelpScreenDialogFragment.java | 275 ++++++++++++++++++ .../ui/DownloadResourceGroupFragment.java | 3 - 5 files changed, 352 insertions(+), 41 deletions(-) create mode 100644 OsmAnd/res/layout/fragment_help_screen.xml create mode 100644 OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java diff --git a/OsmAnd/res/layout/fragment_help_screen.xml b/OsmAnd/res/layout/fragment_help_screen.xml new file mode 100644 index 0000000000..6e8f15b4df --- /dev/null +++ b/OsmAnd/res/layout/fragment_help_screen.xml @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index a64fcf0949..8282806b50 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -2032,4 +2032,15 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A Choose where you want to save map files. \'Off\' directly launches map screen Enter country name + New version + Begin with OsmAnd + Features + Help us to improve OsmAnd + Other + Plugins + First usage + How to download map, basic settings + Setup navigation + FAQ + How to use plugins diff --git a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java index ed1cea4efb..25bb3123e1 100644 --- a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java @@ -16,6 +16,7 @@ import android.webkit.WebViewClient; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; +import net.osmand.plus.dialogs.HelpScreenDialogFragment; import net.osmand.plus.helpers.AndroidUiHelper; import java.io.BufferedReader; @@ -25,7 +26,7 @@ import java.io.InputStreamReader; public class HelpActivity extends OsmandActionBarActivity { - + private static final String FILE_ANDROID_ASSET_HELP = "file:///android_asset/help/"; public static final String URL = "url"; public static final String TITLE = "title"; @@ -33,8 +34,9 @@ public class HelpActivity extends OsmandActionBarActivity { private static final int BACK = 2; private static final int FORWARD = 3; private static final int CLOSE = 4; + private static final int NEW_VERSION = 5; private WebView mWebView; - + @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { @@ -47,13 +49,13 @@ public class HelpActivity extends OsmandActionBarActivity { String title = getString(R.string.shared_string_help); String url = "index.html"; - if(getIntent() != null) { + if (getIntent() != null) { String tl = getIntent().getStringExtra(TITLE); - if(tl != null) { + if (tl != null) { title = tl; } String ul = getIntent().getStringExtra(URL); - if(ul != null) { + if (ul != null) { url = ul; } } @@ -61,7 +63,7 @@ public class HelpActivity extends OsmandActionBarActivity { setContentView(R.layout.help_activity); mWebView = (WebView) findViewById(R.id.webView); mWebView.setFocusable(true); - mWebView.setFocusableInTouchMode(true); + mWebView.setFocusableInTouchMode(true); mWebView.requestFocus(View.FOCUS_DOWN); mWebView.setOnTouchListener(new View.OnTouchListener() { @Override @@ -104,40 +106,43 @@ public class HelpActivity extends OsmandActionBarActivity { } public String readContent(String url) throws IOException { - InputStream index = HelpActivity.class.getClassLoader().getResourceAsStream("help/" +url); + InputStream index = HelpActivity.class.getClassLoader().getResourceAsStream("help/" + url); BufferedReader read = new BufferedReader(new InputStreamReader(index)); StringBuilder bld = new StringBuilder(); String s; - while((s = read.readLine()) != null) { + while ((s = read.readLine()) != null) { bld.append(s); } read.close(); return bld.toString(); } - + private OsmandApplication getMyApplication() { return (OsmandApplication) getApplication(); } - + @Override public boolean onCreateOptionsMenu(Menu menu) { - if (AndroidUiHelper.isOrientationPortrait(this)){ + if (AndroidUiHelper.isOrientationPortrait(this)) { menu = getClearToolbar(true).getMenu(); } else { getClearToolbar(false); } - createMenuItem(menu, HOME, R.string.home, + createMenuItem(menu, HOME, R.string.home, R.drawable.ic_action_home_dark, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); createMenuItem(menu, BACK, R.string.shared_string_previous, R.drawable.ic_action_undo_dark, - MenuItemCompat.SHOW_AS_ACTION_ALWAYS ); + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); createMenuItem(menu, FORWARD, R.string.shared_string_next, R.drawable.ic_action_redo_dark, - MenuItemCompat.SHOW_AS_ACTION_ALWAYS ); - createMenuItem(menu, CLOSE, R.string.shared_string_close, + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + createMenuItem(menu, CLOSE, R.string.shared_string_close, R.drawable.ic_action_remove_dark, - MenuItemCompat.SHOW_AS_ACTION_ALWAYS ); + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + createMenuItem(menu, NEW_VERSION, R.string.new_version, + R.drawable.ic_action_help, + MenuItemCompat.SHOW_AS_ACTION_ALWAYS); return super.onCreateOptionsMenu(menu); } @@ -145,29 +150,32 @@ public class HelpActivity extends OsmandActionBarActivity { public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); switch (itemId) { - case android.R.id.home: - finish(); - return true; - case HOME: - mWebView.loadUrl(FILE_ANDROID_ASSET_HELP + "index.html"); - return true; - case BACK: - if(mWebView.canGoBack()) { - mWebView.goBack(); - } - return true; - case FORWARD: - if(mWebView.canGoForward()) { - mWebView.goForward(); - } - return true; - case CLOSE: - finish(); - return true; + case android.R.id.home: + finish(); + return true; + case HOME: + mWebView.loadUrl(FILE_ANDROID_ASSET_HELP + "index.html"); + return true; + case BACK: + if (mWebView.canGoBack()) { + mWebView.goBack(); + } + return true; + case FORWARD: + if (mWebView.canGoForward()) { + mWebView.goForward(); + } + return true; + case CLOSE: + finish(); + return true; + case NEW_VERSION: + new HelpScreenDialogFragment().show(getSupportFragmentManager(), null); + return true; } return false; } - + public MenuItem createMenuItem(Menu m, int id, int titleRes, int iconDark, int menuItemType) { MenuItem menuItem = m.add(0, id, 0, titleRes); if (iconDark != 0) { @@ -182,12 +190,12 @@ public class HelpActivity extends OsmandActionBarActivity { }); return menuItem; } - + public Toolbar getClearToolbar(boolean visible) { final Toolbar tb = (Toolbar) findViewById(R.id.bottomControls); tb.setTitle(null); tb.getMenu().clear(); - tb.setVisibility(visible? View.VISIBLE : View.GONE); + tb.setVisibility(visible ? View.VISIBLE : View.GONE); return tb; } } diff --git a/OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java b/OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java new file mode 100644 index 0000000000..287767db60 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java @@ -0,0 +1,275 @@ +package net.osmand.plus.dialogs; + +import android.content.res.Resources; +import android.os.Bundle; +import android.support.annotation.DrawableRes; +import android.support.annotation.NonNull; +import android.support.annotation.StringRes; +import android.support.v4.app.DialogFragment; +import android.util.TypedValue; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.TextView; + +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandSettings; +import net.osmand.plus.R; +import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; + +import java.util.ArrayList; +import java.util.List; + +public class HelpScreenDialogFragment extends DialogFragment { + + private static final List menu = new ArrayList<>(); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + boolean isLightTheme = ((OsmandApplication) getActivity().getApplication()) + .getSettings().OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME; + int themeId = isLightTheme ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme; + setStyle(STYLE_NO_FRAME, themeId); + + + final MenuCategory beginWithOsmand = new MenuCategory(R.string.begin_with_osmand_menu_group); + MyMenuItem.Builder builder = new MyMenuItem.Builder(); + builder.setTitle(R.string.first_usage_menu_item) + .setDesription(R.string.first_usage_menu_item_description); + beginWithOsmand.addItem(builder.create()); + builder = new MyMenuItem.Builder(); + builder.setTitle(R.string.shared_string_navigation) + .setDesription(R.string.navigation_menu_item_description); + beginWithOsmand.addItem(builder.create()); + builder = new MyMenuItem.Builder(); + builder.setTitle(R.string.faq_menu_item) + .setDesription(R.string.faq_menu_item_description); + beginWithOsmand.addItem(builder.create()); + + menu.add(beginWithOsmand); + menu.add(new MenuCategory(R.string.features_menu_group)); + menu.add(new MenuCategory(R.string.plugins_menu_group)); + menu.add(new MenuCategory(R.string.help_us_to_improve_menu_group)); + menu.add(new MenuCategory(R.string.other_menu_group)); + } + + @NonNull + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final View view = inflater.inflate(R.layout.fragment_help_screen, container, false); + ExpandableListView listView = (ExpandableListView) view.findViewById(android.R.id.list); + final OsmandApplication application = (OsmandApplication) getActivity().getApplication(); + final MenuAdapter listAdapter = new MenuAdapter(application, menu); + listView.setAdapter(listAdapter); + for (int i = 0; i < listAdapter.getGroupCount(); i++) { + listView.expandGroup(i); + } + return view; + } + + public static class MenuAdapter extends OsmandBaseExpandableListAdapter { + private OsmandApplication ctx; + private final List menu; + + public MenuAdapter(OsmandApplication ctx, List menu) { + this.ctx = ctx; + this.menu = menu; + } + + @Override + public MyMenuItem getChild(int groupPosition, int childPosition) { + return menu.get(groupPosition).getItem(childPosition); + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return groupPosition * 10000 + childPosition; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, + View convertView, ViewGroup parent) { + final MyMenuItem child = getChild(groupPosition, childPosition); + MenuItemViewHolder viewHolder; + if (convertView == null) { + convertView = LayoutInflater.from(parent.getContext()).inflate( + R.layout.two_line_with_images_list_item, parent, false); + viewHolder = new MenuItemViewHolder(convertView, ctx); + convertView.setTag(viewHolder); + } else { + viewHolder = (MenuItemViewHolder) convertView.getTag(); + } + viewHolder.bindMenuItem(child); + + return convertView; + } + + + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, final View convertView, final ViewGroup parent) { + View v = convertView; + int titleId = getGroup(groupPosition); + if (v == null) { + LayoutInflater inflater = LayoutInflater.from(ctx); + v = inflater.inflate(R.layout.download_item_list_section, parent, false); + } + TextView nameView = ((TextView) v.findViewById(R.id.section_name)); + nameView.setText(titleId); + v.setOnClickListener(null); + TypedValue typedValue = new TypedValue(); + // TODO optimize + Resources.Theme theme = ctx.getTheme(); + theme.resolveAttribute(R.attr.ctx_menu_info_view_bg, typedValue, true); + v.setBackgroundColor(typedValue.data); + + return v; + } + + @Override + public int getChildrenCount(int groupPosition) { + return menu.get(groupPosition).getChildrenCount(); + } + + @Override + public Integer getGroup(int groupPosition) { + return menu.get(groupPosition).getTitle(); + } + + @Override + public int getGroupCount() { + return menu.size(); + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + } + + private static class MenuItemViewHolder { + private final TextView nameTextView; + private final TextView descrTextView; + private final ImageView leftImageView; + private final OsmandApplication context; + + public MenuItemViewHolder(View view, OsmandApplication context) { + this.context = context; + leftImageView = (ImageView) view.findViewById(R.id.leftImageView); + descrTextView = (TextView) view.findViewById(R.id.description); + nameTextView = (TextView) view.findViewById(R.id.name); + } + + public void bindMenuItem(MyMenuItem menuItem) { + nameTextView.setText(menuItem.title); + if (menuItem.desription != -1) { + descrTextView.setVisibility(View.VISIBLE); + descrTextView.setText(menuItem.desription); + } else { + descrTextView.setVisibility(View.GONE); + } + if (menuItem.icon != -1) { + leftImageView.setVisibility(View.VISIBLE); + leftImageView.setImageDrawable(context.getIconsCache().getContentIcon(menuItem.icon)); + } else { + leftImageView.setVisibility(View.GONE); + } + } + } + + private static class MenuCategory { + private final List items = new ArrayList<>(); + @StringRes + private final int title; + + private MenuCategory(@StringRes int title) { + this.title = title; + } + + public int getTitle() { + return title; + } + + public int getChildrenCount() { + return items.size(); + } + + public MenuCategory addItem(MyMenuItem item) { + items.add(item); + return this; + } + + public MyMenuItem getItem(int position) { + return items.get(position); + } + } + + + public static class MyMenuItem { + private final int title; + private final int desription; + @DrawableRes + private final int icon; + private final boolean isSquare; + +// MyMenuItem(int title) { +// this.title = title; +// desription = null; +// icon = -1; +// isSquare = false; +// } + + private MyMenuItem(int title, int desription, int icon, boolean isSquare) { + this.title = title; + this.desription = desription; + this.icon = icon; + this.isSquare = isSquare; + } + + public static class Builder { + @StringRes + private int title = -1; + private int desription = -1; + private int icon = -1; + private boolean isSquare = false; + + public Builder setTitle(@StringRes int title) { + this.title = title; + return this; + } + + public Builder setDesription(int desription) { + this.desription = desription; + return this; + } + + public Builder setIcon(int icon) { + this.icon = icon; + return this; + } + + public Builder setIsSquare(boolean isSquare) { + this.isSquare = isSquare; + return this; + } + + public HelpScreenDialogFragment.MyMenuItem create() { + return new HelpScreenDialogFragment.MyMenuItem(title, desription, icon, isSquare); + } + } + } +} diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java index ee2e593b37..9be7192424 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java @@ -1,7 +1,6 @@ package net.osmand.plus.download.ui; import android.content.res.Resources; -import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.DialogFragment; @@ -317,8 +316,6 @@ public class DownloadResourceGroupFragment extends DialogFragment implements Dow public DownloadResourceGroupAdapter(DownloadActivity ctx) { this.ctx = ctx; - TypedArray ta = ctx.getTheme().obtainStyledAttributes(new int[] { android.R.attr.textColorPrimary }); - ta.recycle(); } public void update(DownloadResourceGroup mainGroup) { From 43837acedcf6f7a6baab868653079914b5c91ed2 Mon Sep 17 00:00:00 2001 From: GaidamakUA Date: Fri, 30 Oct 2015 09:55:18 +0200 Subject: [PATCH 2/2] New help listView ready. --- .../bg_download_bar_light_grey.9.png | Bin .../bg_download_bar_light_orange.9.png | Bin OsmAnd/res/drawable-hdpi/ic_action_circle.png | Bin OsmAnd/res/drawable-hdpi/ic_action_label.png | Bin .../res/drawable-hdpi/ic_action_wikipedia.png | Bin .../drawable-hdpi/map_intermediate_point.png | Bin OsmAnd/res/drawable-hdpi/map_target_point.png | Bin OsmAnd/res/drawable-hdpi/warnings_limit.png | Bin .../widget_monitoring_rec_inactive_day.png | Bin .../widget_monitoring_rec_inactive_night.png | Bin OsmAnd/res/layout/fragment_help_screen.xml | 8 +- OsmAnd/res/layout/help_to_improve_item.xml | 33 ++ OsmAnd/res/values-af/strings.xml | 4 +- OsmAnd/res/values-ar/strings.xml | 4 +- OsmAnd/res/values-be-rBY/strings.xml | 4 +- OsmAnd/res/values-be/strings.xml | 4 +- OsmAnd/res/values-bg/strings.xml | 4 +- OsmAnd/res/values-bs/strings.xml | 2 +- OsmAnd/res/values-ca/strings.xml | 4 +- OsmAnd/res/values-cs/strings.xml | 4 +- OsmAnd/res/values-cy/strings.xml | 2 +- OsmAnd/res/values-da/strings.xml | 4 +- OsmAnd/res/values-de/strings.xml | 4 +- OsmAnd/res/values-el/strings.xml | 4 +- OsmAnd/res/values-es-rAR/strings.xml | 4 +- OsmAnd/res/values-es/strings.xml | 4 +- OsmAnd/res/values-et/strings.xml | 2 +- OsmAnd/res/values-eu/strings.xml | 4 +- OsmAnd/res/values-fa/strings.xml | 4 +- OsmAnd/res/values-fi/strings.xml | 4 +- OsmAnd/res/values-fr/strings.xml | 4 +- OsmAnd/res/values-gl/strings.xml | 4 +- OsmAnd/res/values-he/strings.xml | 2 +- OsmAnd/res/values-hr/strings.xml | 2 +- OsmAnd/res/values-hu/strings.xml | 4 +- OsmAnd/res/values-id/strings.xml | 2 +- OsmAnd/res/values-it/strings.xml | 4 +- OsmAnd/res/values-ja/strings.xml | 4 +- OsmAnd/res/values-ka/strings.xml | 4 +- OsmAnd/res/values-kn/strings.xml | 2 +- OsmAnd/res/values-ko/strings.xml | 4 +- OsmAnd/res/values-lt/strings.xml | 4 +- OsmAnd/res/values-lv/strings.xml | 4 +- OsmAnd/res/values-mr/strings.xml | 2 +- OsmAnd/res/values-nb/strings.xml | 4 +- OsmAnd/res/values-nl/strings.xml | 4 +- OsmAnd/res/values-nn/strings.xml | 2 +- OsmAnd/res/values-pl/strings.xml | 4 +- OsmAnd/res/values-pt-rBR/strings.xml | 4 +- OsmAnd/res/values-pt/strings.xml | 4 +- OsmAnd/res/values-ro/strings.xml | 4 +- OsmAnd/res/values-ru/strings.xml | 4 +- OsmAnd/res/values-sc/strings.xml | 4 +- OsmAnd/res/values-sk/strings.xml | 4 +- OsmAnd/res/values-sl/strings.xml | 4 +- OsmAnd/res/values-sq/strings.xml | 2 +- OsmAnd/res/values-sr/strings.xml | 2 +- OsmAnd/res/values-sv/strings.xml | 4 +- OsmAnd/res/values-tr/strings.xml | 4 +- OsmAnd/res/values-uk/strings.xml | 4 +- OsmAnd/res/values-zh-rCN/strings.xml | 4 +- OsmAnd/res/values-zh-rTW/strings.xml | 4 +- OsmAnd/res/values/strings.xml | 28 +- .../osmand/plus/activities/HelpActivity.java | 2 +- .../dialogs/HelpScreenDialogFragment.java | 275 -------------- .../helpscreen/HelpScreenDialogFragment.java | 337 ++++++++++++++++++ .../plus/dialogs/helpscreen/MyMenuItem.java | 104 ++++++ .../rastermaps/OsmandRasterMapsPlugin.java | 2 +- .../SettingsRasterMapsActivity.java | 19 +- 69 files changed, 603 insertions(+), 383 deletions(-) mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/bg_download_bar_light_grey.9.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/bg_download_bar_light_orange.9.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/ic_action_circle.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/ic_action_label.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/ic_action_wikipedia.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/map_intermediate_point.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/map_target_point.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/warnings_limit.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/widget_monitoring_rec_inactive_day.png mode change 100755 => 100644 OsmAnd/res/drawable-hdpi/widget_monitoring_rec_inactive_night.png create mode 100644 OsmAnd/res/layout/help_to_improve_item.xml delete mode 100644 OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java create mode 100644 OsmAnd/src/net/osmand/plus/dialogs/helpscreen/HelpScreenDialogFragment.java create mode 100644 OsmAnd/src/net/osmand/plus/dialogs/helpscreen/MyMenuItem.java diff --git a/OsmAnd/res/drawable-hdpi/bg_download_bar_light_grey.9.png b/OsmAnd/res/drawable-hdpi/bg_download_bar_light_grey.9.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/bg_download_bar_light_orange.9.png b/OsmAnd/res/drawable-hdpi/bg_download_bar_light_orange.9.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_circle.png b/OsmAnd/res/drawable-hdpi/ic_action_circle.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_label.png b/OsmAnd/res/drawable-hdpi/ic_action_label.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/ic_action_wikipedia.png b/OsmAnd/res/drawable-hdpi/ic_action_wikipedia.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/map_intermediate_point.png b/OsmAnd/res/drawable-hdpi/map_intermediate_point.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/map_target_point.png b/OsmAnd/res/drawable-hdpi/map_target_point.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/warnings_limit.png b/OsmAnd/res/drawable-hdpi/warnings_limit.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/widget_monitoring_rec_inactive_day.png b/OsmAnd/res/drawable-hdpi/widget_monitoring_rec_inactive_day.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/drawable-hdpi/widget_monitoring_rec_inactive_night.png b/OsmAnd/res/drawable-hdpi/widget_monitoring_rec_inactive_night.png old mode 100755 new mode 100644 diff --git a/OsmAnd/res/layout/fragment_help_screen.xml b/OsmAnd/res/layout/fragment_help_screen.xml index 6e8f15b4df..56035e2e17 100644 --- a/OsmAnd/res/layout/fragment_help_screen.xml +++ b/OsmAnd/res/layout/fragment_help_screen.xml @@ -15,6 +15,12 @@ + android:layout_height="0dp" + style="@style/OsmandListView" + android:layout_marginLeft="0dp" + android:layout_marginRight="0dp" + android:layout_marginTop="0dp" + android:layout_weight="1" + android:groupIndicator="@android:color/transparent"/> \ No newline at end of file diff --git a/OsmAnd/res/layout/help_to_improve_item.xml b/OsmAnd/res/layout/help_to_improve_item.xml new file mode 100644 index 0000000000..53e2aa5359 --- /dev/null +++ b/OsmAnd/res/layout/help_to_improve_item.xml @@ -0,0 +1,33 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/values-af/strings.xml b/OsmAnd/res/values-af/strings.xml index 287b557145..ea77e7c68e 100644 --- a/OsmAnd/res/values-af/strings.xml +++ b/OsmAnd/res/values-af/strings.xml @@ -77,7 +77,7 @@ Skakel die internet kaarte inlasmodule aan om ander kaartbronne te kies Internet kaarte (teëls) Gebruik internet kaarte (Laai teëls af en berg dit in kasgeheue op die SD kaart) - Internet kaarte + Internet kaarte Stel die bronne op vir internet of kasgeheue-teël kaarte @@ -1189,7 +1189,7 @@ OsmAnd (OSM Automated Navigation Directions) is \\\'n kaart en navigasie toepass VK, Indië, Australië & Ander FPS ontfout inligting Weergawe: - Omtrent + Omtrent Weergawe inligting, lisensie, projeklede diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index bee5c2ac14..dd6a628419 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -196,7 +196,7 @@ أمام الإصدار : - عنْ التطبيق + عنْ التطبيق معلومات النسخة، والتراخيص، أعضاء المشروع التّقريب الأقصى @@ -516,7 +516,7 @@ تمكين ملحق الخرائط على الإنترنت من تحديد مصادر مختلفة للخرائط خرائط من الانترنت وتجانبية استخدام الخرائط من الإنترنت (تنزيل وحفظ التجانبيات منها على بطاقة SD) - خرائط المتصلة بالانترنت + خرائط المتصلة بالانترنت ضبط مصادر الخرائط التجانبية على الإنترنت أو المخزنة مؤقتا إلى مدى الطويل استخدم الحساس المغناطيسي لتحديد قيمة البوصلة بدلا من حساس الاتجاهات diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml index 31cc68271a..6fed687751 100644 --- a/OsmAnd/res/values-be-rBY/strings.xml +++ b/OsmAnd/res/values-be-rBY/strings.xml @@ -442,7 +442,7 @@ Viersіja: - Ab prahramie + Ab prahramie Viersіja, lіcenzіі, udzieĺnіkі prajekta @@ -847,7 +847,7 @@ Aktyvujcie moduĺ onlajn mapaŭ, kab vybіrać roznyja krynіcy dlia mapaŭ Siecіŭnyja і rastravyja mapy Karystacca siecіŭnymі mapamі (zladavać і zachoŭvać na kartcy SD) - Siecіŭnyja mapy + Siecіŭnyja mapy Nastrojka krynіc anlajn abo kešavanych rastravych mapaŭ diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 5c4a5431bb..ffbad3cfe3 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -5,7 +5,7 @@ Лупа мапы Асноўная мапа сьвету Вэрсія: - Аб праграме + Аб праграме Вэрсія, ліцэнзіі, удзельнікі праекту @@ -402,7 +402,7 @@ Актывуйце модуль анлайн мапаў, каб выбіраць розныя крыніцы для мапаў Сеціўныя і растравыя мапы Карыстацца сеціўнымі мапамі (cьцягнуць і захоўваць фрагмэнты на картцы SD) - Сеціўныя мапы + Сеціўныя мапы Наладзьце крыніцы сеціўных або кэшаваных растравых мапаў diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml index 1a646fa2d8..52f83672f8 100644 --- a/OsmAnd/res/values-bg/strings.xml +++ b/OsmAnd/res/values-bg/strings.xml @@ -571,7 +571,7 @@ OsmAnd е с отворен код и активно да се развива. Включете добавката за онлайн карти и ще можете да избирате различни източници на карти Онлайн карти Използване на онлайн карти (сваляне на карти в SD картата) - Онлайн карти + Онлайн карти Настройване на източниците за онлайн карти @@ -1377,7 +1377,7 @@ OsmAnd е с отворен код и активно да се развива. За сега е възможно добро изчисляване на маршрут между точки, отдалечени на не повече от 200 км. Добавете междинни точки при по-дълги дистанции. Базова карта на света Версия: - За програмата + За програмата Версия, лицензи и разработчици diff --git a/OsmAnd/res/values-bs/strings.xml b/OsmAnd/res/values-bs/strings.xml index ddad787a2f..43a576b0de 100644 --- a/OsmAnd/res/values-bs/strings.xml +++ b/OsmAnd/res/values-bs/strings.xml @@ -36,7 +36,7 @@ Omogući nadogradnju za izbor drugačijih izvora javnih mapa Javne mape (u sličicama) Koristi javne mape (preuzmi i keširaj sličice na memorijsku karticu) - Javne mape + Javne mape Podesi izvor sličica javnih ili keširanih mapa diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 9cb9dca761..55240d1f51 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -94,7 +94,7 @@ Activeu el connector Mapes en línia per poder seleccionar diferents fonts de mapes Mapes en línia (tessel·les) Utilitzeu mapes en línia (les tessel·les es baixen i es desen a la memòria cau de la targeta SD) -Mapes en línia +Mapes en línia Configureu les fonts de mapes de tessel·les en línia o desades a la memòria cau @@ -1167,7 +1167,7 @@ Mapa mundial Versió: - Quant a + Quant a Informació de la versió, llicències, membres del projecte Escalats baixats: %1$s diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml index 9de25d1c88..5fd347f3e3 100644 --- a/OsmAnd/res/values-cs/strings.xml +++ b/OsmAnd/res/values-cs/strings.xml @@ -770,7 +770,7 @@ Povolit modul \'Online mapy\' pro výběr různých mapových zdrojů Online mapy (rastrové) Používat online mapy (stáhnout je a uložit na SD kartě) - Online mapy + Online mapy Nastavení rastrových překryvných nebo podkresových map @@ -1187,7 +1187,7 @@ Evropa a Asie Británie, Indie, Austrálie a ostatní Verze: - O aplikaci + O aplikaci Informace o verzi, licenci, členech projektu Maximální zvětšení: %1$s Minimální zvětšení: %1$s diff --git a/OsmAnd/res/values-cy/strings.xml b/OsmAnd/res/values-cy/strings.xml index 1a45f17af3..837b42960a 100644 --- a/OsmAnd/res/values-cy/strings.xml +++ b/OsmAnd/res/values-cy/strings.xml @@ -148,7 +148,7 @@ Cyfrannol cof %4$s MB (terfyn Android %5$s MB, Dalvik %6$s MB). Galluogi mapiau plugin ar-lein i ddewis ffynonellau map gwahanol Mapiau Ar-lein (teils) Defnyddio mapiau ar-lein (teils lawrlwytho a cache ar SD cerdyn) -Mapiau Ar-lein +Mapiau Ar-lein Ffurfweddu ffynonellau teils ar-lein neu cached map diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 0e7d9cbef3..f1ab7cecdf 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -293,7 +293,7 @@ Aktiver onlinekort udvidelsen for at vælge andre kortkilder Onlinekort og kortfliser Brug onlinekort (hent og gem midlertidig kortfliser på SD-kort) - Onlinekort + Onlinekort Konfigurer online- eller cachelagrede kilder til kortfliser @@ -1155,7 +1155,7 @@ Kortflisekilden %1$s er gemt Version: - Om + Om Versioninformation, licenser, projektmedlemmer diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index b233cbe3cc..ae94505713 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -160,7 +160,7 @@ Aktivieren Sie das Online-Karten-Plugin, um andere Kartenquellen nutzen zu können Online- und Kachel-Karten Online-Karten verwenden (Kacheln auf die SD-Karte herunterladen und zwischenspeichern) - Online-Karten + Online-Karten Online- oder zwischengespeicherte Kachelkartenquellen konfigurieren @@ -1254,7 +1254,7 @@ GPX-Wegpunkte ansagen Fahrgebiet Version : - Über + Über Versionsinfo, Lizenz, Projekt-Mitglieder Zooms heruntergeladen: %1$s Gültigkeit endet in (Minuten): %1$s diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index 95bb16e8d2..bbe40ac884 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -166,7 +166,7 @@ Ενεργοποιήστε το πρόσθετο για τους online χάρτες για να επιλέξετε διαφορετικές πηγές χάρτη Online και χάρτες πλακίδια Χρήση online χαρτών (λήψη και φύλαξη πλακιδίων στην κάρτα SD) - Online χάρτες + Online χάρτες Διαμορφώστε τις πηγές των online ή προσωρινά αποθηκευμένων πλακιδίων χάρτη @@ -1129,7 +1129,7 @@ Ευρώπη & Ασία ΗΒ, Ινδία, Αυστραλία, Κύπρος κλπ Εκδοχή : - Περί + Περί Πληροφορίες έκδοσης, άδειες, μέλη έργου Λήξη (λεπτά): %1$s diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index b6a9cd153f..3f49a4d206 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -125,7 +125,7 @@ Puntos de la ruta Segmentos de la traza Puntos de la traza - Mapas en línea + Mapas en línea Grabación de viaje OsMo (Rastreo OSM) Vista turística @@ -623,7 +623,7 @@ Versión: - Acerca de + Acerca de Información de la versión, licencias, miembros del proyecto diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index 92ec91b921..6e3416bd8b 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -725,7 +725,7 @@ Habilita el complemento mapas en línea para seleccionar diferentes fuentes de mapas Mapas en línea y teselas Usa mapas en línea (teselas descargadas y almacenadas localmente en la tarjeta SD) - Mapas en línea + Mapas en línea Configura las fuentes de teselas de mapas en línea o almacenadas localmente @@ -1279,7 +1279,7 @@ Fuente de teselas %1$s ha sido guardada correctamente Datos de teselas: %1$s Expirar (minutos): %1$s - Acerca de + Acerca de Información de la versión, licencias, miembros del proyecto Elegir existente… diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml index 22d4d5156a..d96cfc7c23 100644 --- a/OsmAnd/res/values-et/strings.xml +++ b/OsmAnd/res/values-et/strings.xml @@ -66,7 +66,7 @@ Audio Video Foto - Online kaardid + Online kaardid Reisi salvestus OsMo (OSM Monitoorimine) Merendus kaardi vaade diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml index 68465f7058..399fc80d87 100644 --- a/OsmAnd/res/values-eu/strings.xml +++ b/OsmAnd/res/values-eu/strings.xml @@ -404,7 +404,7 @@ Gaitu sareko mapen plugina mapen iturburu ezberdinak aukeratzeko Sare eta tesela mapak Erabili sareko mapak (deskargatu eta katxeatu teselak SD txartelan) - Sareko mapak + Sareko mapak Konfiguratu sareko edo katxeaturiko mapen iturburuak @@ -1266,7 +1266,7 @@ Bertsioa: - Buruz + Buruz Bertsioaren informazioa ,lizantziak ,proiektu kideak edo diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 54b0a4b2cd..2e3364334c 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -711,7 +711,7 @@ نقشه های آنلاین نقشه های آنلاین استفاده از نقشه های آنلاین (دانلود کاشه های نقشه روی حافظه جانبی) - نقشه های آنلاین + نقشه های آنلاین تنظیمات آنلاین و منابع کاشه های نقشه نقشه های بُرداری سریعتر نمایش داده میشوند. ممکن است روی یرخی دستگاهها خوب کار نکند. @@ -1348,7 +1348,7 @@ OsmAnd منبع باز است و فعالانه در حال توسعه است. اروپا و آسیا انگلستان، هند، استرالیا و سایر کشورها ویرایش: - درباره + درباره درباره نسخه، گواهی ها، اعضای پروژه diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml index 8d84b38cf8..e4927a9781 100644 --- a/OsmAnd/res/values-fi/strings.xml +++ b/OsmAnd/res/values-fi/strings.xml @@ -600,7 +600,7 @@ Offline kartat (vektori) Lataa, katso lisätietoja ja hallinnoi offline karttoja - Online kartat + Online kartat OsmAnd navigointipalvelu Verkko Suorita OsmAnd sovellusta taustalla seurataksesi sijaintia silloin kun näyttö on pois päältä @@ -675,7 +675,7 @@ Aloita muokkaus Versio: - Tietoja + Tietoja Versio tietoja, lisenssit, projektin jäsenet Ladattavissa: %1$s diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 929b22984b..e220268833 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -702,7 +702,7 @@ Activez le greffon \"Cartes en ligne\" pour sélectionner différentes sources de cartes Carte en ligne (tuiles) Utiliser une carte en ligne (télécharger et conserver en cache les tuiles de carte sur la carte SD) - Cartes en ligne + Cartes en ligne Configurer la source de la carte en ligne ou en cache @@ -1224,7 +1224,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et Canada Limitation de vitesse - À propos + À propos Note de version, licences, membres du projet Zooms téléchargés : %1$s diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 1c22d39c98..0657f08bb2 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -368,7 +368,7 @@ Versión : - Sobre + Sobre Información sobre a versión, licenzas, participantes no proxecto @@ -775,7 +775,7 @@ Activar o engadido de mapas con conexión para seleccionar fontes de mapas diferentes Mapas con conexión e en teselas Empregar mapas con conexión (descargar e gardar temporalmente as teselas no cartón SD) - Mapas con conexión + Mapas con conexión Configurar as fontes de mapas en teselas con conexión ou gardados temporalmente diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 84df52faba..460169095a 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -192,7 +192,7 @@ ניתן להפעיל את תוסף המפות המקוונות כדי לבחור במקורות שונים למפה מפות מקוונות ואריחים שימוש במפות מקוונות (הורדה ואחסון המפות בכרטיס ה־SD) - מפות מקוונות + מפות מקוונות הגדרת מקורות אריחי מפה מקוונים או שמורים diff --git a/OsmAnd/res/values-hr/strings.xml b/OsmAnd/res/values-hr/strings.xml index 298b3d3657..fc09a65abb 100644 --- a/OsmAnd/res/values-hr/strings.xml +++ b/OsmAnd/res/values-hr/strings.xml @@ -186,7 +186,7 @@ Vožnja lijevom stranom Označi za države s vožnjom na lijevoj strani Offline karte (vektorske) - Online karte + Online karte Dodaci diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 726c21185b..0dc060fe59 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -778,7 +778,7 @@ További térképforrások kiválasztásához engedélyezd az online térképek bővítményt Online térképcsempék Internetes térképek használata (letöltés és tárolás az SD kártyán) - Online térképek + Online térképek Internetes és tárolt raszteres térképek beállításai @@ -1188,7 +1188,7 @@ FPS debug infó Verzió: - Névjegy + Névjegy Verzióinfó, licencek, csapattagok diff --git a/OsmAnd/res/values-id/strings.xml b/OsmAnd/res/values-id/strings.xml index e9129dccb2..535cf956a7 100644 --- a/OsmAnd/res/values-id/strings.xml +++ b/OsmAnd/res/values-id/strings.xml @@ -45,7 +45,7 @@ Data Audio/Video Versi : - Tentang + Tentang Info versi, lisensi, anggota Dapat di download: %1$s diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index aa4f8b1688..e195cefc44 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -664,7 +664,7 @@ Abilita il plugin Mappe Online per scegliere altre sorgenti di mappe Mappe online e a tasselli Usa le mappe online (scarica e archivia i tasselli nella scheda SD) - Mappe online + Mappe online Configura le sorgenti delle mappe online o dei tasselli in cache @@ -1195,7 +1195,7 @@ Imposta/Modifica… Versione: - Informazioni + Informazioni Informazioni versione, licenze e membri del progetto diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index fbaaafbee5..df4e35a667 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -625,7 +625,7 @@ POIの更新は利用できません マップ拡大鏡倍率 バージョン: - OsmAnd Maps & Navigationについて + OsmAnd Maps & Navigationについて バージョン情報、ライセンス、プロジェクトメンバー @@ -984,7 +984,7 @@ POIの更新は利用できません オフラインマップ(ベクター形式) 別のマップソースを選択するためにオンラインマッププラグインを有効にする オンラインタイルマップ - オンラインマップ + オンラインマップ オンラインまたはキャッシュされたタイルマップソースを設定します diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml index acb3d6a5f5..e80eaf020d 100644 --- a/OsmAnd/res/values-ka/strings.xml +++ b/OsmAnd/res/values-ka/strings.xml @@ -16,7 +16,7 @@ "ჩართეთ მიმდინარე რუკების დამატება სხვადასხვა წყაროების სანახავად" მიმდინარე რუკები მიმდინარე რუკების გამოყენება (ჩამოტვირთვა და sdcard-ზე ქეშირება) - მიმდინარე რუკები + მიმდინარე რუკები მიმდინარე და დაქეშირებული ნაწილოვანი რუკების წყაროების გამართვა @@ -1083,7 +1083,7 @@ დედამიწის ბაზისური რუკა ვერსია: - შესახებ + შესახებ ინფორმაცია ვერსიის, ლიცენზიების და პროექტის წევრების შესახებ ჩამოტვირთულია გადიდებები: %1$s diff --git a/OsmAnd/res/values-kn/strings.xml b/OsmAnd/res/values-kn/strings.xml index 1ef2f384f7..ff7406a98b 100644 --- a/OsmAnd/res/values-kn/strings.xml +++ b/OsmAnd/res/values-kn/strings.xml @@ -105,7 +105,7 @@ ಶ್ರಾವ್ಯ ದೃಶ್ಯ ಛಾಯಾಚಿತ್ರ - ಮಿಂಬಲೆ ನಕ್ಷೆಗಳು + ಮಿಂಬಲೆ ನಕ್ಷೆಗಳು ಪ್ರಯಾಣ ದಾಖಲಿಸಿಕೊಳ್ಳುವುದು ಒಸ್ಮೊ (ಒಎಸ್ಎಂ ಪರಿವೀಕ್ಷಿಸುವಿಕೆ) ಹಡಗಿನ ನಕ್ಷೆ ವೀಕ್ಷಣೆ diff --git a/OsmAnd/res/values-ko/strings.xml b/OsmAnd/res/values-ko/strings.xml index 9f347e857e..cc0c2390b3 100644 --- a/OsmAnd/res/values-ko/strings.xml +++ b/OsmAnd/res/values-ko/strings.xml @@ -869,7 +869,7 @@ 버전: 버전 정보, 라이센스, 프로젝트 멤버 - 소개 + 소개 다운로드된 줌 : %1$s 만료(분) : %1$s 다운로드 가능 : %1$s @@ -1355,7 +1355,7 @@ 다른 지도 소스를 선택하려면 온라인지도 플러그인을 활성화하세요 온라인 및 타일 지도 온라인지도를 사용합니다 (SD 카드에 타일을 다운로드 하고 캐시합니다) - 온라인지도 + 온라인지도 온라인 또는 캐시된 타일 지도 소스를 구성합니다 diff --git a/OsmAnd/res/values-lt/strings.xml b/OsmAnd/res/values-lt/strings.xml index 226e8d8969..eaae07d530 100644 --- a/OsmAnd/res/values-lt/strings.xml +++ b/OsmAnd/res/values-lt/strings.xml @@ -64,7 +64,7 @@ Įjunkite interneto žemėlapių įskiepį norėdami pasirinkti kitus žemėlapių šaltinius Interneto žemėlapiai Naudoti interneto žemėlapius (parsisiųsti dalis laikinam saugojimui SD kortelėje) - Interneto žemėlapiai + Interneto žemėlapiai Nustatykite interneto ar laikinai išsaugotų žemėlapių šaltinius @@ -1191,7 +1191,7 @@ Groti garsą darant nuotrauką Pasirinkite ar groti garsą, kai fotografuojama Versija : - Apie + Apie Versijos informacija, licencijos, projekto nariai diff --git a/OsmAnd/res/values-lv/strings.xml b/OsmAnd/res/values-lv/strings.xml index 3e1c63d574..bd4c607da1 100644 --- a/OsmAnd/res/values-lv/strings.xml +++ b/OsmAnd/res/values-lv/strings.xml @@ -791,7 +791,7 @@ Aktivizēt tiešsaistes karšu spraudni, lai atlasītu citus karšu avotus Bezsaistes kartes (bildes) Lietot tiešaistes kartes (lejuplādējot un kešojot bildes SD kartē) - Tiešsaistes kartes + Tiešsaistes kartes Konfigurēt tiešaistes vai kešotās kartes bildes @@ -1009,7 +1009,7 @@ Pasaules karte Versija: - Par + Par Versijas informācija, licenzes, projektā piedalījušies cilvēki Mērogošanas dati ielādēti: %1$s Lejupielādējams: %1$s diff --git a/OsmAnd/res/values-mr/strings.xml b/OsmAnd/res/values-mr/strings.xml index 05853643ae..d6e4c2bac0 100644 --- a/OsmAnd/res/values-mr/strings.xml +++ b/OsmAnd/res/values-mr/strings.xml @@ -6,7 +6,7 @@ ऑफलाइन नकाशे (वेक्टर) ऑनलाइन नकाशे (टाइल्स) ऑनलाइन नकाशे वापरा (डाउनलोड करून एसडी कार्ड वार साठवा) - ऑनलाइन नकाशे + ऑनलाइन नकाशे Configure online or cached tile map sources प्लगिन्स diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 6dbb6f167d..f29d272e66 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -116,7 +116,7 @@ Aktiver programtillegget for nettbaserte kart for å velge ulike kartkilder Nettbaserte- og flis-kart Bruk nettbaserte kart (last ned og bufre fliser på SD-kort) - Nettbaserte kart + Nettbaserte kart Still inn nettbaserte eller hurtigbufrede flis-kartkilder @@ -630,7 +630,7 @@ Søk etter gaten i nabobyer Versjon: - Om + Om Versjonsinformasjon, lisenser, prosjektmedlemmer Nedlastbar: %1$s diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 03086f1e91..3d2c2148b3 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -764,7 +764,7 @@ Activeer de online kaarten-plugin om andere kaartbronnen te kunnen selecteren Online (raster-) kaarten Gebruik online kaarten (download en bewaar deze op SD-kaart) - Online kaarten + Online kaarten Configureer online of bewaarde kaartbronnen @@ -1340,7 +1340,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A Definieer/bewerk… Versie: - Over + Over Versieinformatie, licenties, projectdeelnemers diff --git a/OsmAnd/res/values-nn/strings.xml b/OsmAnd/res/values-nn/strings.xml index bd718a6819..21e848c691 100644 --- a/OsmAnd/res/values-nn/strings.xml +++ b/OsmAnd/res/values-nn/strings.xml @@ -164,7 +164,7 @@ Globalt grunnkart Versjon: - Om + Om Maksforstørring Minste forstørring diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 015b6f6e0a..c80c741cbc 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -650,7 +650,7 @@ Aktywuj wtyczkę map online, aby wybrać inne źródła mapy Mapy online i kafelki Używa map online (pobiera i przechowuje kafelki na karcie SD) - Mapy online + Mapy online Skonfiguruj źródła kafelków online i offline @@ -1195,7 +1195,7 @@ Minimalne przybliżenie: %1$s Dane kafelkowe: %1$s Wersja: - Informacje + Informacje Wyświetla informacje o wersji, licencji, współtwórcach diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index a234d6462a..33d3a6343a 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -138,7 +138,7 @@ Foto Pontos da rota Segmentos do trajeto - Mapas on-line + Mapas on-line "Com este complemento você pode acessar muitos tipos de mapas online (chamados de quadrícula ou ladrilho), tais como quadrículas predefinidas do OpenStreetMap (como Mapnik) para imagens de satélite e camadas especiais como mapas aquáticos, climáticos, geológicos, camadas de sombra de relevo, etc.\n\nQuaisquer desses mapas podem ser usados como mapa principal (base) para ser mostrado no OsmAnd ou como uma sobreposição ou subcamada para outro mapa base (como o mapa offline normal de OsmAnd). A fim de fazer qualquer subcamada do mapa mais visível, certos elementos do mapa vetorial do OsmAnd podem facilmente ser ocultados através do menu \'Configurar mapa\' conforme desejado.\n\nQuadrículas de mapas podem ser obtidas diretamente através de fontes on-line ou podem ser preparados para uso off-line (e copiadas manualmente para o diretório de dados do OsmAnd) como um banco de dados sqlite, que pode ser produzido por uma variedade de ferramentas de terceiros para preparação de mapas. " Gravação de viagem "Este complemento ativa a funcionalidade para gravar e salvar seus trajetos manualmente tocando o widget de registro de GPX na tela do mapa ou também fazendo automaticamente o registro de todas as suas rotas de navegação para um arquivo GPX. @@ -622,7 +622,7 @@ Versão: - Sobre + Sobre Versão, licenças, membros do projeto diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 9942af3b81..6e449c6329 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -459,7 +459,7 @@ Activar plugin de mapas on-line para seleccionar diferentes fontes de mapas Mapas Online e Mosaicos Usar mapas on-line (obter e armazenar mosaicos no cartão SD) - Mapas Online + Mapas Online Configurar fontes de mosaicos ou de mapas on-line @@ -1263,7 +1263,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A Canadá Versão: - Sobre + Sobre Versão, licenças, membros do projeto Zoom transferidas: %1$s diff --git a/OsmAnd/res/values-ro/strings.xml b/OsmAnd/res/values-ro/strings.xml index e3461d18cc..9edcdea0b1 100644 --- a/OsmAnd/res/values-ro/strings.xml +++ b/OsmAnd/res/values-ro/strings.xml @@ -197,7 +197,7 @@ Activează plugin-ul pentru hărți online ca să beneficiezi și de alte surse de date Hărți online și în format raster Folosește hărți online (descarcă și salvează porțiuni de hartă pe cardul SD) - Hărți online + Hărți online Configurați sursele pentru hărțile online și raster @@ -1089,7 +1089,7 @@ Harta de bază a lumii Versiune : - Despre + Despre Informații versiune, licențe, membrii proiect Expiră (minute): %1$s diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index af8e9e5a47..872d6e71c0 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -84,7 +84,7 @@ Активируйте плагин онлайн карт, чтобы выбирать различные источники карт Онлайн карты Использовать онлайн карты (загрузка и кэширование на SD-карте) - Онлайн карты + Онлайн карты Настройки источников онлайн карт и слоёв @@ -1180,7 +1180,7 @@ URL Имя Отладочная информация FPS - О программе + О программе Информация о версии, участниках проекта Загружено данных по масштабам: %1$s diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 4f8217c3b8..ddd70bc0db 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -126,7 +126,7 @@ Eja Versione: - Informatziones + Informatziones Informatziones de sa versione, litzèntzias, membros de su progetu @@ -726,7 +726,7 @@ Mapas regulares (vetoriales) Mapas in lìnia e a tasseddos Imprea sas mapas in lìnia (iscàrriga e archìvia sos tasseddos in s’ischeda SD) - Mapas in lìnia + Mapas in lìnia Cunfigura sas mitzas de sas mapas in lìnia o de sos tasseddos in cache diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index 0f7daa5c89..88584d8355 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -82,7 +82,7 @@ Povoľte zásuvný modul Online mapy, aby bolo možné vybrať rozličné mapové zdroje Online mapy (dlaždice) Použitie online máp (ich stiahnutie a uloženie na SD kartu) - Online mapy + Online mapy Konfigurácia online mapových zdrojov @@ -1121,7 +1121,7 @@ Dopravné varovania Verzia: - O programe + O programe Informácie o verzii, licencie, členovia projektu diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml index 46f950b505..1cf441e521 100644 --- a/OsmAnd/res/values-sl/strings.xml +++ b/OsmAnd/res/values-sl/strings.xml @@ -568,7 +568,7 @@ Prejemanje in upravljanje datotek zemljevidov, shranjenih na napravi Omogočite vstavek spletnih zemljevidov za izbiro različnih virov zemljevidov Uporabi spletne zemljevide (prejem in shranjevanje na kartici SD) - Spletni zemljevidi + Spletni zemljevidi Nastavitev virov spletnih in shranjenih zemljevidov "Vstavek omogoča dostop do različnih vrst zemljevidov od vektorskih OpenStreetMap do satelitskih slik ter posebnih prekrivnih zemljevidov, kot so vremenski, klimatski, geološki in drugi zemljevidi. Vstavek omogoča tudi podporo za izrisovanje izohips, senčenje hribovitih predelov in podobno.\n\nVsi ti zemljevidi so lahko uporabljeni kot osnovni zemljevidi, ali pa so podloga oziroma prekrivni zemljevid drugim zemljevidom. V ta namen je treba vektorske zemljevide OsmAnd skriti oziroma narediti prosojne med \'Nastavitvami zemljevida\' v vsebinskem meniju.\n\nVektorske zemljevide je mogoče pridobiti preko spletnih virov, ali pa jih shraniti za delo brez povezave. Zemljevidi morajo biti shranjeni v osnovni mapi OsmAnd kot podatkovna zbirka SQLite. " Vstavek omogoča upravljanje nastavitev, ki so namenjene pošiljanju poročil, hroščev in odzivov na delovanje programa OsmAnd (posodabljanje podatkov točk POI, objavljanje sledi GPX (zahteva ustrezna poverila OSM) in drugo). OSM je javni odprtokodni projekt, katerega kakovost je odvisna tudi od vaše dejavnosti. @@ -1174,7 +1174,7 @@ Velika Britanija, Indija, Avstralija in drugo Različica: - O programu + O programu Podrobnosti o različici, dovoljenju, članih projekta in drugo diff --git a/OsmAnd/res/values-sq/strings.xml b/OsmAnd/res/values-sq/strings.xml index c3950eaa12..aff36abaa6 100644 --- a/OsmAnd/res/values-sq/strings.xml +++ b/OsmAnd/res/values-sq/strings.xml @@ -18,7 +18,7 @@ Po Versioni : - Rreth + Rreth Informacion versioni, liçensat, anëtarët e projektit Skadon (minuta): %1$s E shkarkueshme: %1$s diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 57c1e1fd7d..1eb4c88a99 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -1,6 +1,6 @@ Верзија: - Oko + Oko Верзија инфо, лиценце, чланови пројекта Изаберите да ли да се чује звук приликом снимања фотографија diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml index 60c7c27b13..8c62b9f4a0 100644 --- a/OsmAnd/res/values-sv/strings.xml +++ b/OsmAnd/res/values-sv/strings.xml @@ -140,7 +140,7 @@ Standardkartor (vektor) Ladda ner och hantera offline-kartor lagrade på din enhet -Online-kartor +Online-kartor Denna modul gör så att inställningarna för att aktivera speciella tillgänglighetsfunktioner blir direkt åtkomliga i OsmAnd och underlättar t.ex. justering av talhastigheten för TTS-röster, konfigurering av skärmnavigering med hjälp av en styrkula för zoomkontroll eller användande av återkoppling med text-till-tal, t.ex. för att meddela din position automatiskt. @@ -1108,7 +1108,7 @@ UK, Indien, Australien & andra Ändrad OSM-fil skapad utan problem %1$s Version: - Om + Om Versionsinformation, licenser, projektmedlemmar diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index ecf78de738..7997906595 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -262,7 +262,7 @@ Dosya indirmesini durdurmak istiyor musunuz? Hiçbir şey bulunamadı. Eğer bölgenizi bulamıyorsanız, kendiniz yapabilirsiniz (bakınız: http://osmand.net). Çevrimdışı haritalar(vektör) - Çevrimiçi haritalar + Çevrimiçi haritalar Destek @@ -824,7 +824,7 @@ Çevreleme çizgileri verisi GPX yol işaretlerini söyle Sürüm : - Hakkında + Hakkında Sürüm bilgisi, lisanslar, proje üyeleri Sona erecek (dakika): %1$s diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 80783619d7..5e83257de5 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -38,7 +38,7 @@ Активуйте втулок онлайн мап, щоб мати можливість вибирати різні джерела для мап Онлайн мапи (растрові) Використовувати онлайн мапи (кешуються на SD картці) - Онлайн мапи + Онлайн мапи Налаштування онлнай або кешованих джерел (тайлів) мап @@ -1333,7 +1333,7 @@ OsmAnd має відкриті сирці і активно розвиваєть FPS-інфо Версія: - Про + Про Версія, ліцензії, учасники проекту diff --git a/OsmAnd/res/values-zh-rCN/strings.xml b/OsmAnd/res/values-zh-rCN/strings.xml index 964e8412fa..de2c445a95 100644 --- a/OsmAnd/res/values-zh-rCN/strings.xml +++ b/OsmAnd/res/values-zh-rCN/strings.xml @@ -414,7 +414,7 @@ 版本: - 关于 + 关于 版本信息,许可证,项目成员 @@ -591,7 +591,7 @@ 启用在线地图插件以选择不同的地图来源 在线瓦片地图 使用在线地图(在SD卡上下载并缓存瓦片) - 在线地图 + 在线地图 配置在线或缓存瓦片地图来源 diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 0ebac2b264..d289faa480 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -186,7 +186,7 @@ 啟用線上地圖外掛元件,來選擇不同的地圖來源 線上地圖圖磚 使用線上地圖(下載暫存地圖圖磚到 SD 卡) - 線上地圖 + 線上地圖 組態線上或暫存的地圖圖磚來源 @@ -1153,7 +1153,7 @@ 名稱 定義/編輯… 版本: - 關於 + 關於 版本訊息、授權、專案成員 diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 8282806b50..5a37ca5233 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -263,7 +263,7 @@ Route points Track segments Track points - Online maps + Online maps With this plugin you can access many types of online (so called tile or raster) maps, from predefined Openstreetmap tiles (like Mapnik) to satellite images and special purpose layers like weather maps, climate maps, geological maps, hillshade layers, etc. \n\nAny of these maps can either be used as the main (base) map to be displayed on the OsmAnd map screen, or as an overlay or underlay to another base map (like OsmAnd\'s standard offline maps). In order to make any underlay map more visible, certain elements of the OsmAnd vector maps can easily be hidden via the \'Configure map\' menu as desired. \n\nTile maps can be obtained directly via online sources, or can be prepared for offline use (and manually copied to OsmAnd\'s data folder) as an sqlite database which can be produced by a variety of 3rd party map preparation tools. @@ -761,7 +761,7 @@ Map magnifier World basemap Version : - About + About Version info, licenses, project members Zooms downloaded: %1$s Expire (minutes): %1$s @@ -2038,9 +2038,23 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A Help us to improve OsmAnd Other Plugins - First usage - How to download map, basic settings - Setup navigation - FAQ - How to use plugins + First usage + How to download map, basic settings + Setup navigation + FAQ + How to use plugins + Map viewing + Search on the map + Planning trip + Contour lines and hillshade maps + Trip recording tool + OsmAnd Ski maps + Nautical charts + Audio/video notes + OSM editing + Installation and troubleshooting + Technical articles + Versions + poll + Contact us diff --git a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java index 25bb3123e1..890cd2bb00 100644 --- a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java @@ -16,7 +16,7 @@ import android.webkit.WebViewClient; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; -import net.osmand.plus.dialogs.HelpScreenDialogFragment; +import net.osmand.plus.dialogs.helpscreen.HelpScreenDialogFragment; import net.osmand.plus.helpers.AndroidUiHelper; import java.io.BufferedReader; diff --git a/OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java b/OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java deleted file mode 100644 index 287767db60..0000000000 --- a/OsmAnd/src/net/osmand/plus/dialogs/HelpScreenDialogFragment.java +++ /dev/null @@ -1,275 +0,0 @@ -package net.osmand.plus.dialogs; - -import android.content.res.Resources; -import android.os.Bundle; -import android.support.annotation.DrawableRes; -import android.support.annotation.NonNull; -import android.support.annotation.StringRes; -import android.support.v4.app.DialogFragment; -import android.util.TypedValue; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ExpandableListView; -import android.widget.ImageView; -import android.widget.TextView; - -import net.osmand.plus.OsmandApplication; -import net.osmand.plus.OsmandSettings; -import net.osmand.plus.R; -import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; - -import java.util.ArrayList; -import java.util.List; - -public class HelpScreenDialogFragment extends DialogFragment { - - private static final List menu = new ArrayList<>(); - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - boolean isLightTheme = ((OsmandApplication) getActivity().getApplication()) - .getSettings().OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME; - int themeId = isLightTheme ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme; - setStyle(STYLE_NO_FRAME, themeId); - - - final MenuCategory beginWithOsmand = new MenuCategory(R.string.begin_with_osmand_menu_group); - MyMenuItem.Builder builder = new MyMenuItem.Builder(); - builder.setTitle(R.string.first_usage_menu_item) - .setDesription(R.string.first_usage_menu_item_description); - beginWithOsmand.addItem(builder.create()); - builder = new MyMenuItem.Builder(); - builder.setTitle(R.string.shared_string_navigation) - .setDesription(R.string.navigation_menu_item_description); - beginWithOsmand.addItem(builder.create()); - builder = new MyMenuItem.Builder(); - builder.setTitle(R.string.faq_menu_item) - .setDesription(R.string.faq_menu_item_description); - beginWithOsmand.addItem(builder.create()); - - menu.add(beginWithOsmand); - menu.add(new MenuCategory(R.string.features_menu_group)); - menu.add(new MenuCategory(R.string.plugins_menu_group)); - menu.add(new MenuCategory(R.string.help_us_to_improve_menu_group)); - menu.add(new MenuCategory(R.string.other_menu_group)); - } - - @NonNull - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - final View view = inflater.inflate(R.layout.fragment_help_screen, container, false); - ExpandableListView listView = (ExpandableListView) view.findViewById(android.R.id.list); - final OsmandApplication application = (OsmandApplication) getActivity().getApplication(); - final MenuAdapter listAdapter = new MenuAdapter(application, menu); - listView.setAdapter(listAdapter); - for (int i = 0; i < listAdapter.getGroupCount(); i++) { - listView.expandGroup(i); - } - return view; - } - - public static class MenuAdapter extends OsmandBaseExpandableListAdapter { - private OsmandApplication ctx; - private final List menu; - - public MenuAdapter(OsmandApplication ctx, List menu) { - this.ctx = ctx; - this.menu = menu; - } - - @Override - public MyMenuItem getChild(int groupPosition, int childPosition) { - return menu.get(groupPosition).getItem(childPosition); - } - - @Override - public long getChildId(int groupPosition, int childPosition) { - return groupPosition * 10000 + childPosition; - } - - @Override - public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, - View convertView, ViewGroup parent) { - final MyMenuItem child = getChild(groupPosition, childPosition); - MenuItemViewHolder viewHolder; - if (convertView == null) { - convertView = LayoutInflater.from(parent.getContext()).inflate( - R.layout.two_line_with_images_list_item, parent, false); - viewHolder = new MenuItemViewHolder(convertView, ctx); - convertView.setTag(viewHolder); - } else { - viewHolder = (MenuItemViewHolder) convertView.getTag(); - } - viewHolder.bindMenuItem(child); - - return convertView; - } - - - - @Override - public View getGroupView(int groupPosition, boolean isExpanded, final View convertView, final ViewGroup parent) { - View v = convertView; - int titleId = getGroup(groupPosition); - if (v == null) { - LayoutInflater inflater = LayoutInflater.from(ctx); - v = inflater.inflate(R.layout.download_item_list_section, parent, false); - } - TextView nameView = ((TextView) v.findViewById(R.id.section_name)); - nameView.setText(titleId); - v.setOnClickListener(null); - TypedValue typedValue = new TypedValue(); - // TODO optimize - Resources.Theme theme = ctx.getTheme(); - theme.resolveAttribute(R.attr.ctx_menu_info_view_bg, typedValue, true); - v.setBackgroundColor(typedValue.data); - - return v; - } - - @Override - public int getChildrenCount(int groupPosition) { - return menu.get(groupPosition).getChildrenCount(); - } - - @Override - public Integer getGroup(int groupPosition) { - return menu.get(groupPosition).getTitle(); - } - - @Override - public int getGroupCount() { - return menu.size(); - } - - @Override - public long getGroupId(int groupPosition) { - return groupPosition; - } - - @Override - public boolean hasStableIds() { - return false; - } - - @Override - public boolean isChildSelectable(int groupPosition, int childPosition) { - return true; - } - - } - - private static class MenuItemViewHolder { - private final TextView nameTextView; - private final TextView descrTextView; - private final ImageView leftImageView; - private final OsmandApplication context; - - public MenuItemViewHolder(View view, OsmandApplication context) { - this.context = context; - leftImageView = (ImageView) view.findViewById(R.id.leftImageView); - descrTextView = (TextView) view.findViewById(R.id.description); - nameTextView = (TextView) view.findViewById(R.id.name); - } - - public void bindMenuItem(MyMenuItem menuItem) { - nameTextView.setText(menuItem.title); - if (menuItem.desription != -1) { - descrTextView.setVisibility(View.VISIBLE); - descrTextView.setText(menuItem.desription); - } else { - descrTextView.setVisibility(View.GONE); - } - if (menuItem.icon != -1) { - leftImageView.setVisibility(View.VISIBLE); - leftImageView.setImageDrawable(context.getIconsCache().getContentIcon(menuItem.icon)); - } else { - leftImageView.setVisibility(View.GONE); - } - } - } - - private static class MenuCategory { - private final List items = new ArrayList<>(); - @StringRes - private final int title; - - private MenuCategory(@StringRes int title) { - this.title = title; - } - - public int getTitle() { - return title; - } - - public int getChildrenCount() { - return items.size(); - } - - public MenuCategory addItem(MyMenuItem item) { - items.add(item); - return this; - } - - public MyMenuItem getItem(int position) { - return items.get(position); - } - } - - - public static class MyMenuItem { - private final int title; - private final int desription; - @DrawableRes - private final int icon; - private final boolean isSquare; - -// MyMenuItem(int title) { -// this.title = title; -// desription = null; -// icon = -1; -// isSquare = false; -// } - - private MyMenuItem(int title, int desription, int icon, boolean isSquare) { - this.title = title; - this.desription = desription; - this.icon = icon; - this.isSquare = isSquare; - } - - public static class Builder { - @StringRes - private int title = -1; - private int desription = -1; - private int icon = -1; - private boolean isSquare = false; - - public Builder setTitle(@StringRes int title) { - this.title = title; - return this; - } - - public Builder setDesription(int desription) { - this.desription = desription; - return this; - } - - public Builder setIcon(int icon) { - this.icon = icon; - return this; - } - - public Builder setIsSquare(boolean isSquare) { - this.isSquare = isSquare; - return this; - } - - public HelpScreenDialogFragment.MyMenuItem create() { - return new HelpScreenDialogFragment.MyMenuItem(title, desription, icon, isSquare); - } - } - } -} diff --git a/OsmAnd/src/net/osmand/plus/dialogs/helpscreen/HelpScreenDialogFragment.java b/OsmAnd/src/net/osmand/plus/dialogs/helpscreen/HelpScreenDialogFragment.java new file mode 100644 index 0000000000..9b9f562278 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/dialogs/helpscreen/HelpScreenDialogFragment.java @@ -0,0 +1,337 @@ +package net.osmand.plus.dialogs.helpscreen; + +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.StringRes; +import android.support.v4.app.DialogFragment; +import android.text.TextUtils; +import android.util.TypedValue; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ExpandableListView; +import android.widget.ImageView; +import android.widget.TextView; + +import net.osmand.PlatformUtil; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.OsmandSettings; +import net.osmand.plus.R; +import net.osmand.plus.Version; +import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; + +import org.apache.commons.logging.Log; + +import java.util.ArrayList; +import java.util.List; + +public class HelpScreenDialogFragment extends DialogFragment implements ExpandableListView.OnChildClickListener { + private static final Log LOG = PlatformUtil.getLog(HelpScreenDialogFragment.class); + final static MenuCategory[] categories = MenuCategory.values(); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + boolean isLightTheme = (getOsmandApplication()) + .getSettings().OSMAND_THEME.get() == OsmandSettings.OSMAND_LIGHT_THEME; + int themeId = isLightTheme ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme; + setStyle(STYLE_NO_FRAME, themeId); + } + + @NonNull + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final View view = inflater.inflate(R.layout.fragment_help_screen, container, false); + + MenuCategory.BEGIN_WITH_OSMAND.initItems(createBeginWithOsmandItems()); + MenuCategory.FEATURES.initItems(createFeaturesItems()); + MenuCategory.PLUGINS.initItems(createPluginsItems()); + MenuCategory.OTHER.initItems(createOtherItems()); + + ExpandableListView listView = (ExpandableListView) view.findViewById(android.R.id.list); + final HelpAdapter listAdapter = new HelpAdapter(getOsmandApplication()); + listView.setAdapter(listAdapter); + for (int i = 0; i < listAdapter.getGroupCount(); i++) { + listView.expandGroup(i); + } + listView.setOnChildClickListener(this); + return view; + } + + private OsmandApplication getOsmandApplication() { + return (OsmandApplication) getActivity().getApplication(); + } + + @Override + public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, + int childPosition, long id) { + if (categories[groupPosition] != MenuCategory.HELP_US_TO_IMPROVE && + categories[groupPosition].getItem(childPosition).getOnClickListener() != null) { + categories[groupPosition].getItem(childPosition).getOnClickListener().onClick(v); + } + return false; + } + + public static class HelpAdapter extends OsmandBaseExpandableListAdapter { + private OsmandApplication ctx; + + public HelpAdapter(OsmandApplication ctx) { + this.ctx = ctx; + } + + @Override + public MyMenuItem getChild(int groupPosition, int childPosition) { + if (categories[groupPosition] != MenuCategory.HELP_US_TO_IMPROVE) { + return categories[groupPosition].getItem(childPosition); + } else { + return null; + } + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return groupPosition * 10000 + childPosition; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, + View convertView, ViewGroup parent) { + LOG.debug("categories[groupPosition]=" + categories[groupPosition]); + if(categories[groupPosition] == MenuCategory.HELP_US_TO_IMPROVE) { + convertView = LayoutInflater.from(parent.getContext()).inflate( + R.layout.help_to_improve_item, parent, false); + TextView pollButton = (TextView) convertView.findViewById(R.id.pollButton); + Drawable pollIcon = ctx.getIconsCache().getContentIcon(R.drawable.ic_action_message); + pollButton.setCompoundDrawablesWithIntrinsicBounds(null, pollIcon, null, null); + TextView contactUsButton = (TextView) convertView.findViewById(R.id.contactUsButton); + Drawable contactUsIcon = + ctx.getIconsCache().getContentIcon(R.drawable.ic_action_message); + contactUsButton.setCompoundDrawablesWithIntrinsicBounds(null, contactUsIcon, null, + null); + return convertView; + } else { + final MyMenuItem child = getChild(groupPosition, childPosition); + MenuItemViewHolder viewHolder; + if (convertView == null || convertView.getTag() == null) { + convertView = LayoutInflater.from(parent.getContext()).inflate( + R.layout.two_line_with_images_list_item, parent, false); + viewHolder = new MenuItemViewHolder(convertView, ctx); + convertView.setTag(viewHolder); + } else { + viewHolder = (MenuItemViewHolder) convertView.getTag(); + } + viewHolder.bindMenuItem(child); + + return convertView; + } + } + + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, final View convertView, final ViewGroup parent) { + View v = convertView; + int titleId = getGroup(groupPosition); + if (v == null) { + LayoutInflater inflater = LayoutInflater.from(ctx); + v = inflater.inflate(R.layout.download_item_list_section, parent, false); + } + TextView nameView = ((TextView) v.findViewById(R.id.section_name)); + nameView.setText(titleId); + v.setOnClickListener(null); + TypedValue typedValue = new TypedValue(); + // TODO optimize + Resources.Theme theme = ctx.getTheme(); + theme.resolveAttribute(R.attr.ctx_menu_info_view_bg, typedValue, true); + v.setBackgroundColor(typedValue.data); + + return v; + } + + @Override + public int getChildrenCount(int groupPosition) { + if (categories[groupPosition] != MenuCategory.HELP_US_TO_IMPROVE) { + return categories[groupPosition].getChildrenCount(); + } else { + return 1; + } + } + + @Override + public Integer getGroup(int groupPosition) { + return categories[groupPosition].getTitle(); + } + + @Override + public int getGroupCount() { + return MenuCategory.values().length; + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } + + } + + private static class MenuItemViewHolder { + private final TextView nameTextView; + private final TextView descrTextView; + private final ImageView leftImageView; + private final OsmandApplication context; + + public MenuItemViewHolder(View view, OsmandApplication context) { + this.context = context; + leftImageView = (ImageView) view.findViewById(R.id.leftImageView); + descrTextView = (TextView) view.findViewById(R.id.description); + nameTextView = (TextView) view.findViewById(R.id.name); + } + + public void bindMenuItem(MyMenuItem menuItem) { + nameTextView.setText(menuItem.getTitle()); + if (menuItem.getDesription() != null) { + descrTextView.setVisibility(View.VISIBLE); + descrTextView.setText(menuItem.getDesription()); + } else { + descrTextView.setVisibility(View.GONE); + } + if (menuItem.getIcon() != -1) { + leftImageView.setVisibility(View.VISIBLE); + leftImageView.setImageDrawable(context.getIconsCache() + .getContentIcon(menuItem.getIcon())); + } else { + leftImageView.setVisibility(View.GONE); + } + } + } + + private enum MenuCategory { + BEGIN_WITH_OSMAND(R.string.begin_with_osmand_menu_group), + FEATURES(R.string.features_menu_group), + PLUGINS(R.string.plugins_menu_group), + HELP_US_TO_IMPROVE(R.string.help_us_to_improve_menu_group), + OTHER(R.string.other_menu_group); + + private List items; + @StringRes + private final int title; + + MenuCategory(int title) { + this.title = title; + } + + public int getTitle() { + return title; + } + + public int getChildrenCount() { + return items.size(); + } + + public MyMenuItem getItem(int position) { + return items.get(position); + } + + public void initItems(List items) { + this.items = items; + } + } + + + private List createBeginWithOsmandItems(){ + ArrayList arrayList = new ArrayList<>(); + MyMenuItem.Builder builder = new MyMenuItem.Builder() + .setTitle(R.string.first_usage_item) + .setDescription(R.string.first_usage_item_description, getActivity()); + arrayList.add(builder.create()); + builder = new MyMenuItem.Builder() + .setTitle(R.string.shared_string_navigation) + .setDescription(R.string.navigation_item_description, getActivity()); + arrayList.add(builder.create()); + builder = new MyMenuItem.Builder() + .setTitle(R.string.faq_item) + .setDescription(R.string.faq_item_description, getActivity()); + arrayList.add(builder.create()); + return arrayList; + } + + private static List createFeaturesItems() { + ArrayList arrayList = new ArrayList<>(); + arrayList.add(new MyMenuItem(R.string.map_viewing_item)); + arrayList.add(new MyMenuItem(R.string.search_on_the_map_item)); + arrayList.add(new MyMenuItem(R.string.planning_trip_item)); + return arrayList; + } + + private static List createPluginsItems() { + ArrayList arrayList = new ArrayList<>(); + MyMenuItem.Builder builder = new MyMenuItem.Builder() + .setTitle(R.string.shared_string_online_maps) + .setIcon(R.drawable.ic_world_globe_dark); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.contour_lines_and_hillshade_maps_item) + .setIcon(R.drawable.ic_plugin_srtm); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.trip_recording_tool_item) + .setIcon(R.drawable.ic_action_polygom_dark); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.osmand_ski_maps_item) + .setIcon(R.drawable.ic_plugin_skimaps); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.nautical_charts_item) + .setIcon(R.drawable.ic_action_sail_boat_dark); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.audio_video_note_item) + .setIcon(R.drawable.ic_action_micro_dark); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.osm_editing_item) + .setIcon(R.drawable.ic_action_bug_dark); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.osmand_distance_planning_plugin_name) + .setIcon(R.drawable.ic_action_ruler); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.poi_filter_parking) + .setIcon(R.drawable.ic_action_parking_dark); + arrayList.add(builder.create()); + builder.reset() + .setTitle(R.string.debugging_and_development) + .setIcon(R.drawable.ic_plugin_developer); + arrayList.add(builder.create()); + return arrayList; + } + + private List createOtherItems() { + ArrayList arrayList = new ArrayList<>(); + arrayList.add(new MyMenuItem(R.string.instalation_troubleshooting_item)); + arrayList.add(new MyMenuItem(R.string.techical_articles_item)); + arrayList.add(new MyMenuItem(R.string.versions_item)); + String version = Version.getBuildAppEdition(getOsmandApplication()); + if (TextUtils.isEmpty(version)) { + version = Version.getAppVersion(getOsmandApplication()); + } + MyMenuItem.Builder builder = new MyMenuItem.Builder() + .setTitle(R.string.shared_string_about) + .setDescription(version); + arrayList.add(builder.create()); + return arrayList; + } +} diff --git a/OsmAnd/src/net/osmand/plus/dialogs/helpscreen/MyMenuItem.java b/OsmAnd/src/net/osmand/plus/dialogs/helpscreen/MyMenuItem.java new file mode 100644 index 0000000000..01e770934c --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/dialogs/helpscreen/MyMenuItem.java @@ -0,0 +1,104 @@ +package net.osmand.plus.dialogs.helpscreen; + +import android.content.Context; +import android.support.annotation.DrawableRes; +import android.support.annotation.StringRes; +import android.view.View.OnClickListener; + +public class MyMenuItem { + private final int title; + private final String desription; + @DrawableRes + private final int icon; + private final OnClickListener onClickListener; + + public MyMenuItem(@StringRes int title) { + this.title = title; + this.onClickListener = null; + desription = null; + icon = -1; + } + + public MyMenuItem(@StringRes int title, OnClickListener onClickListener) { + this.title = title; + this.onClickListener = onClickListener; + desription = null; + icon = -1; + } + + private MyMenuItem(@StringRes int title, @StringRes int desription, @DrawableRes int icon, + Context context, OnClickListener onClickListener) { + this.title = title; + this.onClickListener = onClickListener; + this.desription = context.getString(desription); + this.icon = icon; + } + + private MyMenuItem(@StringRes int title, String desription, @DrawableRes int icon, + OnClickListener onClickListener) { + this.title = title; + this.desription = desription; + this.icon = icon; + this.onClickListener = onClickListener; + } + + public int getTitle() { + return title; + } + + public String getDesription() { + return desription; + } + + public int getIcon() { + return icon; + } + + public OnClickListener getOnClickListener() { + return onClickListener; + } + + public static class Builder { + @StringRes + private int title = -1; + private String description = null; + private int icon = -1; + private OnClickListener listener; + + public Builder setTitle(@StringRes int title) { + this.title = title; + return this; + } + + public Builder setDescription(@StringRes int desriptionId, Context context) { + this.description = context.getString(desriptionId); + return this; + } + + public Builder setDescription(String description) { + this.description = description; + return this; + } + + public Builder setIcon(@DrawableRes int icon) { + this.icon = icon; + return this; + } + + public void setListener(OnClickListener listener) { + this.listener = listener; + } + + public Builder reset() { + title = -1; + description = null; + icon = -1; + listener = null; + return this; + } + + public MyMenuItem create() { + return new MyMenuItem(title, description, icon, listener); + } + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java index 91290f987c..01943d45f7 100644 --- a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java +++ b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java @@ -75,7 +75,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { } @Override public String getName() { - return app.getString(R.string.online_map_settings); + return app.getString(R.string.shared_string_online_maps); } @Override public void registerLayers(MapActivity activity) { diff --git a/OsmAnd/src/net/osmand/plus/rastermaps/SettingsRasterMapsActivity.java b/OsmAnd/src/net/osmand/plus/rastermaps/SettingsRasterMapsActivity.java index 2e6e4067ae..27a2dce0d5 100644 --- a/OsmAnd/src/net/osmand/plus/rastermaps/SettingsRasterMapsActivity.java +++ b/OsmAnd/src/net/osmand/plus/rastermaps/SettingsRasterMapsActivity.java @@ -1,14 +1,6 @@ package net.osmand.plus.rastermaps; -import java.util.Map; - -import net.osmand.ResultMatcher; -import net.osmand.map.TileSourceManager.TileSourceTemplate; -import net.osmand.plus.OsmandApplication; -import net.osmand.plus.R; -import net.osmand.plus.activities.SettingsBaseActivity; -import net.osmand.plus.views.SeekBarPreference; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; @@ -17,6 +9,15 @@ import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceCategory; import android.preference.PreferenceScreen; +import net.osmand.ResultMatcher; +import net.osmand.map.TileSourceManager.TileSourceTemplate; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.activities.SettingsBaseActivity; +import net.osmand.plus.views.SeekBarPreference; + +import java.util.Map; + public class SettingsRasterMapsActivity extends SettingsBaseActivity { private ListPreference tileSourcePreference; @@ -30,7 +31,7 @@ public class SettingsRasterMapsActivity extends SettingsBaseActivity { public void onCreate(Bundle savedInstanceState) { ((OsmandApplication) getApplication()).applyTheme(this); super.onCreate(savedInstanceState); - getToolbar().setTitle(R.string.online_map_settings); + getToolbar().setTitle(R.string.shared_string_online_maps); PreferenceScreen grp = getPreferenceScreen(); OnPreferenceChangeListener listener = createPreferenceListener();