Help menu finalized.
This commit is contained in:
parent
d90577b8bb
commit
89a8357cfc
1 changed files with 91 additions and 93 deletions
|
@ -30,6 +30,7 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
|
||||||
// public static final String DIALOG = "dialog";
|
// public static final String DIALOG = "dialog";
|
||||||
@IdRes
|
@IdRes
|
||||||
public static final String OSMAND_POLL_HTML = "http://osmand.net/android-poll.html";
|
public static final String OSMAND_POLL_HTML = "http://osmand.net/android-poll.html";
|
||||||
|
public static final int NULL_ID = -1;
|
||||||
private ArrayAdapter<ContextMenuItem> mAdapter;
|
private ArrayAdapter<ContextMenuItem> mAdapter;
|
||||||
|
|
||||||
//public static final String OSMAND_MAP_LEGEND = "http://osmand.net/help/map-legend_default.png";
|
//public static final String OSMAND_MAP_LEGEND = "http://osmand.net/help/map-legend_default.png";
|
||||||
|
@ -43,27 +44,22 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
|
||||||
ContextMenuAdapter contextMenuAdapter = new ContextMenuAdapter();
|
ContextMenuAdapter contextMenuAdapter = new ContextMenuAdapter();
|
||||||
contextMenuAdapter.setDefaultLayoutId(R.layout.two_line_with_images_list_item);
|
contextMenuAdapter.setDefaultLayoutId(R.layout.two_line_with_images_list_item);
|
||||||
|
|
||||||
contextMenuAdapter.addItem(createCategory(R.string.begin_with_osmand_menu_group));
|
|
||||||
createBeginWithOsmandItems(contextMenuAdapter);
|
createBeginWithOsmandItems(contextMenuAdapter);
|
||||||
contextMenuAdapter.addItem(createCategory(R.string.features_menu_group));
|
|
||||||
createFeaturesItems(contextMenuAdapter);
|
createFeaturesItems(contextMenuAdapter);
|
||||||
contextMenuAdapter.addItem(createCategory(R.string.plugins_menu_group));
|
|
||||||
createPluginsItems(contextMenuAdapter);
|
createPluginsItems(contextMenuAdapter);
|
||||||
contextMenuAdapter.addItem(createCategory(R.string.help_us_to_improve_menu_group));
|
|
||||||
createHelpUsToImproveItems(contextMenuAdapter);
|
createHelpUsToImproveItems(contextMenuAdapter);
|
||||||
contextMenuAdapter.addItem(createCategory(R.string.other_menu_group));
|
|
||||||
createOtherItems(contextMenuAdapter);
|
createOtherItems(contextMenuAdapter);
|
||||||
contextMenuAdapter.addItem(createCategory(R.string.follow_us));
|
|
||||||
createSocialNetworksItems(contextMenuAdapter);
|
createSocialNetworksItems(contextMenuAdapter);
|
||||||
|
|
||||||
mAdapter = contextMenuAdapter.createListAdapter(this, getMyApplication().getSettings().isLightContent());
|
boolean lightContent = getMyApplication().getSettings().isLightContent();
|
||||||
|
|
||||||
|
mAdapter = contextMenuAdapter.createListAdapter(this, lightContent);
|
||||||
|
|
||||||
ListView listView = (ListView) findViewById(android.R.id.list);
|
ListView listView = (ListView) findViewById(android.R.id.list);
|
||||||
listView.setAdapter(mAdapter);
|
listView.setAdapter(mAdapter);
|
||||||
listView.setOnItemClickListener(this);
|
listView.setOnItemClickListener(this);
|
||||||
Drawable dividerDrawable = new ColorDrawable(ContextCompat.getColor(this,
|
int dividerColor = lightContent ? R.color.icon_color_light : R.color.dialog_inactive_text_color_dark;
|
||||||
getMyApplication().getSettings().isLightContent() ?
|
Drawable dividerDrawable = new ColorDrawable(ContextCompat.getColor(this, dividerColor));
|
||||||
R.color.icon_color_light : R.color.dialog_inactive_text_color_dark));
|
|
||||||
listView.setDivider(dividerDrawable);
|
listView.setDivider(dividerDrawable);
|
||||||
listView.setDividerHeight(AndroidUtils.dpToPx(this, 1f));
|
listView.setDividerHeight(AndroidUtils.dpToPx(this, 1f));
|
||||||
|
|
||||||
|
@ -71,6 +67,37 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
|
||||||
setupHomeButton();
|
setupHomeButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
ContextMenuAdapter.ItemClickListener listener =
|
||||||
|
mAdapter.getItem(position).getItemClickListener();
|
||||||
|
if (listener != null) {
|
||||||
|
listener.onContextMenuClick(mAdapter, position, position, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case android.R.id.home:
|
||||||
|
this.finish();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createBeginWithOsmandItems(ContextMenuAdapter contextMenuAdapter) {
|
||||||
|
contextMenuAdapter.addItem(createCategory(R.string.begin_with_osmand_menu_group));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.first_usage_item,
|
||||||
|
R.string.first_usage_item_description, "feature_articles/start.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.shared_string_navigation,
|
||||||
|
R.string.navigation_item_description, "feature_articles/navigation.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.faq_item,
|
||||||
|
R.string.faq_item_description, "feature_articles/faq.html"));
|
||||||
|
}
|
||||||
|
|
||||||
private void createSocialNetworksItems(ContextMenuAdapter contextMenuAdapter) {
|
private void createSocialNetworksItems(ContextMenuAdapter contextMenuAdapter) {
|
||||||
contextMenuAdapter.addItem(createSocialItem(R.string.twitter, R.string.twitter_address,
|
contextMenuAdapter.addItem(createSocialItem(R.string.twitter, R.string.twitter_address,
|
||||||
R.drawable.ic_action_social_twitter));
|
R.drawable.ic_action_social_twitter));
|
||||||
|
@ -81,10 +108,56 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createHelpUsToImproveItems(ContextMenuAdapter contextMenuAdapter) {
|
private void createHelpUsToImproveItems(ContextMenuAdapter contextMenuAdapter) {
|
||||||
|
contextMenuAdapter.addItem(createCategory(R.string.help_us_to_improve_menu_group));
|
||||||
contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder()
|
contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder()
|
||||||
.setLayout(R.layout.help_to_improve_item).createItem());
|
.setLayout(R.layout.help_to_improve_item).createItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createFeaturesItems(ContextMenuAdapter contextMenuAdapter) {
|
||||||
|
contextMenuAdapter.addItem(createCategory(R.string.features_menu_group));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.map_viewing_item, NULL_ID,
|
||||||
|
"feature_articles/map-viewing.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.search_on_the_map_item, NULL_ID,
|
||||||
|
"feature_articles/find-something-on-map.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.planning_trip_item, NULL_ID,
|
||||||
|
"feature_articles/trip-planning.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.map_legend, NULL_ID,
|
||||||
|
"feature_articles/map-legend.html"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createPluginsItems(ContextMenuAdapter contextMenuAdapter) {
|
||||||
|
contextMenuAdapter.addItem(createCategory(R.string.plugins_menu_group));
|
||||||
|
for (final OsmandPlugin osmandPlugin : OsmandPlugin.getAvailablePlugins()) {
|
||||||
|
final String helpFileName = osmandPlugin.getHelpFileName();
|
||||||
|
if (helpFileName != null) {
|
||||||
|
contextMenuAdapter.addItem(createPluginItem(osmandPlugin.getName(), osmandPlugin.getLogoResourceId(),
|
||||||
|
helpFileName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createOtherItems(ContextMenuAdapter contextMenuAdapter) {
|
||||||
|
contextMenuAdapter.addItem(createCategory(R.string.other_menu_group));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.instalation_troubleshooting_item, NULL_ID,
|
||||||
|
"feature_articles/installation-and-troubleshooting.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.techical_articles_item, NULL_ID,
|
||||||
|
"feature_articles/technical-articles.html"));
|
||||||
|
contextMenuAdapter.addItem(createItem(R.string.versions_item, NULL_ID,
|
||||||
|
"feature_articles/changes.html"));
|
||||||
|
|
||||||
|
String releasedate = "";
|
||||||
|
if (!this.getString(R.string.app_edition).equals("")) {
|
||||||
|
releasedate = ", " + this.getString(R.string.shared_string_release).toLowerCase() + ": " + this.getString(R.string.app_edition);
|
||||||
|
}
|
||||||
|
String version = Version.getFullVersion(getMyApplication()) + releasedate;
|
||||||
|
ShowArticleOnTouchListener listener = new ShowArticleOnTouchListener(
|
||||||
|
"feature_articles/about.html", this, version);
|
||||||
|
contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder()
|
||||||
|
.setTitle(getString(R.string.shared_string_about))
|
||||||
|
.setDescription(version).setListener(listener).createItem());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper metods
|
||||||
private ContextMenuItem createCategory(@StringRes int titleRes) {
|
private ContextMenuItem createCategory(@StringRes int titleRes) {
|
||||||
return new ContextMenuItem.ItemBuilder().setTitle(
|
return new ContextMenuItem.ItemBuilder().setTitle(
|
||||||
getString(titleRes)).setCategory(true)
|
getString(titleRes)).setCategory(true)
|
||||||
|
@ -92,11 +165,15 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContextMenuItem createItem(@StringRes int titleRes,
|
private ContextMenuItem createItem(@StringRes int titleRes,
|
||||||
@StringRes String path) {
|
@StringRes int descriptionRes,
|
||||||
return new ContextMenuItem.ItemBuilder()
|
String path) {
|
||||||
|
ContextMenuItem.ItemBuilder builder = new ContextMenuItem.ItemBuilder()
|
||||||
.setTitle(getString(titleRes))
|
.setTitle(getString(titleRes))
|
||||||
.setListener(new ShowArticleOnTouchListener(path, this))
|
.setListener(new ShowArticleOnTouchListener(path, this));
|
||||||
.createItem();
|
if (descriptionRes != -1) {
|
||||||
|
builder.setDescription(getString(descriptionRes));
|
||||||
|
}
|
||||||
|
return builder.createItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContextMenuItem createPluginItem(String title,
|
private ContextMenuItem createPluginItem(String title,
|
||||||
|
@ -131,85 +208,6 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
|
||||||
.createItem();
|
.createItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContextMenuItem createItem(@StringRes int titleRes,
|
|
||||||
@StringRes int descriptionRes,
|
|
||||||
String path) {
|
|
||||||
return new ContextMenuItem.ItemBuilder()
|
|
||||||
.setTitle(getString(titleRes))
|
|
||||||
.setDescription(getString(descriptionRes))
|
|
||||||
.setListener(new ShowArticleOnTouchListener(path, this))
|
|
||||||
.createItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case android.R.id.home:
|
|
||||||
this.finish();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createBeginWithOsmandItems(ContextMenuAdapter contextMenuAdapter) {
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.first_usage_item, R.string.first_usage_item_description,
|
|
||||||
"feature_articles/start.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.shared_string_navigation, R.string.navigation_item_description,
|
|
||||||
"feature_articles/navigation.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.faq_item, R.string.faq_item_description,
|
|
||||||
"feature_articles/faq.html"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
||||||
ContextMenuAdapter.ItemClickListener listener =
|
|
||||||
mAdapter.getItem(position).getItemClickListener();
|
|
||||||
if (listener != null) {
|
|
||||||
listener.onContextMenuClick(mAdapter, position, position, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createFeaturesItems(ContextMenuAdapter contextMenuAdapter) {
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.map_viewing_item,
|
|
||||||
"feature_articles/map-viewing.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.search_on_the_map_item,
|
|
||||||
"feature_articles/find-something-on-map.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.planning_trip_item,
|
|
||||||
"feature_articles/trip-planning.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.map_legend,
|
|
||||||
"feature_articles/map-legend.html"));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createPluginsItems(ContextMenuAdapter contextMenuAdapter) {
|
|
||||||
for (final OsmandPlugin osmandPlugin : OsmandPlugin.getAvailablePlugins()) {
|
|
||||||
final String helpFileName = osmandPlugin.getHelpFileName();
|
|
||||||
if (helpFileName != null) {
|
|
||||||
contextMenuAdapter.addItem(createPluginItem(osmandPlugin.getName(), osmandPlugin.getLogoResourceId(),
|
|
||||||
helpFileName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createOtherItems(ContextMenuAdapter contextMenuAdapter) {
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.instalation_troubleshooting_item,
|
|
||||||
"feature_articles/installation-and-troubleshooting.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.techical_articles_item,
|
|
||||||
"feature_articles/technical-articles.html"));
|
|
||||||
contextMenuAdapter.addItem(createItem(R.string.versions_item,
|
|
||||||
"feature_articles/changes.html"));
|
|
||||||
|
|
||||||
String releasedate = "";
|
|
||||||
if (!this.getString(R.string.app_edition).equals("")) {
|
|
||||||
releasedate = ", " + this.getString(R.string.shared_string_release).toLowerCase() + ": " + this.getString(R.string.app_edition);
|
|
||||||
}
|
|
||||||
String version = Version.getFullVersion(getMyApplication()) + releasedate;
|
|
||||||
ShowArticleOnTouchListener listener = new ShowArticleOnTouchListener(
|
|
||||||
"feature_articles/about.html", this, version);
|
|
||||||
contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder()
|
|
||||||
.setTitle(getString(R.string.shared_string_about))
|
|
||||||
.setDescription(version).setListener(listener).createItem());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class ShowArticleOnTouchListener implements ContextMenuAdapter.ItemClickListener {
|
private static class ShowArticleOnTouchListener implements ContextMenuAdapter.ItemClickListener {
|
||||||
private final String filename;
|
private final String filename;
|
||||||
private final FragmentActivity ctx;
|
private final FragmentActivity ctx;
|
||||||
|
|
Loading…
Reference in a new issue