diff --git a/OsmAnd/res/drawable/expandable_list_item_background_dark.xml b/OsmAnd/res/drawable/expandable_list_item_background_dark.xml new file mode 100644 index 0000000000..82da2aa69a --- /dev/null +++ b/OsmAnd/res/drawable/expandable_list_item_background_dark.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/drawable/expandable_list_item_background_light.xml b/OsmAnd/res/drawable/expandable_list_item_background_light.xml new file mode 100644 index 0000000000..ed5e00a7e1 --- /dev/null +++ b/OsmAnd/res/drawable/expandable_list_item_background_light.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/dash_favorites_item.xml b/OsmAnd/res/layout/dash_favorites_item.xml index 79b1d01a01..20eacc6ec6 100644 --- a/OsmAnd/res/layout/dash_favorites_item.xml +++ b/OsmAnd/res/layout/dash_favorites_item.xml @@ -19,8 +19,8 @@ diff --git a/OsmAnd/res/layout/dashboard.xml b/OsmAnd/res/layout/dashboard.xml index 08d3127632..26d8a01a30 100644 --- a/OsmAnd/res/layout/dashboard.xml +++ b/OsmAnd/res/layout/dashboard.xml @@ -3,7 +3,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/main_scroll" - android:background="@color/dashboard_background"> + android:background="?attr/expandable_list_background"> diff --git a/OsmAnd/res/layout/expandable_list_item_category_btn.xml b/OsmAnd/res/layout/expandable_list_item_category_btn.xml index 5cdce8360a..adb3d6811e 100644 --- a/OsmAnd/res/layout/expandable_list_item_category_btn.xml +++ b/OsmAnd/res/layout/expandable_list_item_category_btn.xml @@ -3,7 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" android:orientation="horizontal" android:layout_width="fill_parent" - android:layout_height="@dimen/list_header_height" + android:layout_height="wrap_content" + android:minHeight="@dimen/list_header_height" android:paddingLeft="@dimen/list_header_padding"> \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 8e7472a972..7f3db87367 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -9,6 +9,9 @@ 3. All your modified/created strings are in the top of the file (to make easier find what\'s translated). PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy --> + Audio + Video + Photo Share note Rename recording Watch diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml index b01e84490f..7601728488 100644 --- a/OsmAnd/res/values/styles.xml +++ b/OsmAnd/res/values/styles.xml @@ -162,7 +162,7 @@ @color/plugin_details_install_header_bg_light @drawable/ic_world_globe_light #727272 - @color/expandable_list_item_light + @drawable/expandable_list_item_background_light @color/color_white @drawable/ic_overflow_menu_light @drawable/size_progressbar_light @@ -205,7 +205,7 @@ @color/plugin_details_install_header_bg_dark @drawable/ic_world_globe_dark #70818c - @color/list_item_background_dark + @drawable/expandable_list_item_background_dark @color/list_background_dark @drawable/ic_overflow_menu_dark @drawable/size_progressbar_dark diff --git a/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java b/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java index 301bc9e5f1..05a7fa7dca 100644 --- a/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/AvailableGPXFragment.java @@ -34,6 +34,7 @@ import net.osmand.plus.R; import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.helpers.GpxUiHelper; import net.osmand.plus.helpers.ScreenOrientationHelper; +import net.osmand.plus.osmedit.OsmEditingPlugin; import net.osmand.util.Algorithms; import android.app.Activity; import android.app.AlertDialog; @@ -99,12 +100,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { return selectedItems; } - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View vs = super.onCreateView(inflater, container, savedInstanceState); - return vs; - } - @Override public void onResume() { super.onResume(); @@ -731,6 +726,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { viewName.setTextColor(defaultColor); viewName.setTypeface(Typeface.DEFAULT, Typeface.NORMAL); } + TextView sizeText = (TextView) v.findViewById(R.id.local_index_size); if (child.getSize() >= 0) { String size; if (child.getSize() > 100) { @@ -738,16 +734,18 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { } else { size = child.getSize() + " kB"; } - ((TextView) v.findViewById(R.id.local_index_size)).setText(size); + sizeText.setText(size); } else { - ((TextView) v.findViewById(R.id.local_index_size)).setText(""); + sizeText.setText(""); } TextView descr = ((TextView) v.findViewById(R.id.local_index_descr)); if (child.isExpanded()) { descr.setVisibility(View.VISIBLE); descr.setText(child.getHtmlDescription()); + sizeText.setVisibility(View.GONE); } else { descr.setVisibility(View.GONE); + sizeText.setVisibility(View.VISIBLE); } ImageButton options = (ImageButton) v.findViewById(R.id.options); options.setOnClickListener(new View.OnClickListener() { @@ -902,15 +900,19 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment { } }); - item = optionsMenu.getMenu().add(R.string.export) - .setIcon(light ? R.drawable.ic_action_gup_light : R.drawable.ic_action_gup_dark); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { + final OsmEditingPlugin osmEditingPlugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); + if (osmEditingPlugin != null && osmEditingPlugin.isActive()){ + item = optionsMenu.getMenu().add(R.string.export) + .setIcon(light ? R.drawable.ic_action_gup_light : R.drawable.ic_action_gup_dark); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + osmEditingPlugin.sendGPXFiles(getActivity(), AvailableGPXFragment.this, gpxInfo); + return true; + } + }); - return true; - } - }); + } item = optionsMenu.getMenu().add(R.string.edit_filter_delete_menu_item) .setIcon(light ? R.drawable.ic_action_delete_light : R.drawable.ic_action_delete_dark); diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesActivity.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesActivity.java index ff3943338d..77100ac825 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavoritesActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesActivity.java @@ -28,7 +28,6 @@ import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.view.View; import android.widget.ImageView; -import android.widget.TabHost.TabSpec; import android.widget.TextView; import net.osmand.plus.audionotes.AudioVideoNotesPlugin; @@ -40,14 +39,13 @@ import net.osmand.plus.views.controls.PagerSlidingTabStrip; */ public class FavoritesActivity extends TabActivity { - private static final String FAVOURITES_INFO = "FAVOURITES_INFO"; +// private static final String FAVOURITES_INFO = "FAVOURITES_INFO"; private static final String TRACKS = "TRACKS"; - private static final String SELECTED_TRACK = "SELECTED_TRACK"; - public static int FAVORITES_TAB = 0; - public static int GPX_TAB = 1; - public static int SELECTED_GPX_TAB = 2; +// private static final String SELECTED_TRACK = "SELECTED_TRACK"; +// public static int FAVORITES_TAB = 0; +// public static int GPX_TAB = 1; +// public static int SELECTED_GPX_TAB = 2; public static String TAB_PARAM = "TAB_PARAM"; - private TabSpec selectedTrack; protected List> fragList = new ArrayList>(); @Override @@ -81,12 +79,12 @@ public class FavoritesActivity extends TabActivity { List mTabs = new ArrayList(); mTabs.add(getTabIndicator(R.string.my_favorites, FavoritesTreeFragment.class)); - mTabs.add(getTabIndicator(R.string.my_tracks, AvailableGPXFragment.class)); AudioVideoNotesPlugin audioVideoNotesPlugin = OsmandPlugin.getEnabledPlugin(AudioVideoNotesPlugin.class); if (audioVideoNotesPlugin != null && audioVideoNotesPlugin.isActive() && audioVideoNotesPlugin.getAllRecordings().size() > 0){ mTabs.add(getTabIndicator(R.string.notes, NotesFragment.class)); } + mTabs.add(getTabIndicator(R.string.my_tracks, AvailableGPXFragment.class)); mTabs.add(getTabIndicator(R.string.selected_track, SelectedGPXFragment.class)); setViewPagerAdapter(mViewPager, mTabs); @@ -205,7 +203,7 @@ public class FavoritesActivity extends TabActivity { stopHint.setSpan(new ImageSpan(searchIcon), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); searchEdit.setHint(stopHint); } catch (Exception e) { - + e.printStackTrace(); } } } diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java index 19d7f4f745..d4d798068e 100644 --- a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java @@ -173,10 +173,6 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment { DirectionsDialogs.createDirectionActionsPopUpMenu(optionsMenu, location, point, name, settings.getLastKnownMapZoom(), getActivity(), true, false); - - -// DirectionsDialogs.createDirectionsActions(qa, location, point, name, settings.getLastKnownMapZoom(), -// getActivity(), true, false); boolean light = getMyApplication().getSettings().isLightContent(); MenuItem item = optionsMenu.getMenu().add(R.string.favourites_context_menu_edit) .setIcon(light ? R.drawable.ic_action_edit_light : R.drawable.ic_action_edit_dark); diff --git a/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java b/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java index 8a2deae381..80995fd720 100644 --- a/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java +++ b/OsmAnd/src/net/osmand/plus/activities/SelectedGPXFragment.java @@ -246,25 +246,6 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); ((FavoritesActivity) getActivity()).getClearToolbar(false); -// MenuItem mi = createMenuItem(menu, SEARCH_ID, R.string.search_poi_filter, R.drawable.ic_action_search_light, -// R.drawable.ic_action_search_dark, MenuItem.SHOW_AS_ACTION_ALWAYS -// | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); -// searchView = new com.actionbarsherlock.widget.SearchView(getDownloadActivity()); -// mi.setActionView(searchView); -// searchView.setOnQueryTextListener(new OnQueryTextListener() { -// -// @Override -// public boolean onQueryTextSubmit(String query) { -// return true; -// } -// -// @Override -// public boolean onQueryTextChange(String newText) { -// return true; -// } -// }); -// createMenuItem(menu, ACTION_ID, R.string.export_fav, R.drawable.ic_action_gsave_light, -// R.drawable.ic_action_gsave_dark, MenuItem.SHOW_AS_ACTION_IF_ROOM); } public void showProgressBar() { @@ -534,8 +515,8 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment { } else if(model.getType() == GpxDisplayItemType.TRACK_SEGMENT) { ch.setVisibility(View.VISIBLE); ch.setImageDrawable(getMyActivity().getResources().getDrawable( - app.getSettings().isLightContent() ? R.drawable.ic_action_settings_enabled_light - : R.drawable.ic_action_settings_enabled_dark)); + app.getSettings().isLightContent() ? R.drawable.ic_overflow_menu_light + : R.drawable.ic_overflow_menu_dark)); ch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -547,8 +528,8 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment { model.getType() == GpxDisplayItemType.TRACK_ROUTE_POINTS) { ch.setVisibility(View.VISIBLE); ch.setImageDrawable(getMyActivity().getResources().getDrawable( - app.getSettings().isLightContent() ? R.drawable.ic_action_fav_light - : R.drawable.ic_action_fav_dark)); + app.getSettings().isLightContent() ? R.drawable.ic_overflow_menu_light + : R.drawable.ic_overflow_menu_dark)); ch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java index 25e81e6984..631a695575 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java @@ -277,13 +277,12 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { } public String getDescription(Context ctx) { - String nm = name == null ? "" : name; String time = AndroidUtils.formatDateTime(ctx, file.lastModified()); if (isPhoto()) { - return ctx.getString(R.string.recording_photo_description, nm, time).trim(); + return ctx.getString(R.string.recording_photo_description, "", time).trim(); } updateInternalDescription(); - return ctx.getString(R.string.recording_description, nm, getDuration(ctx), time) + return ctx.getString(R.string.recording_description, "", getDuration(ctx), time) .trim(); } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java index e7b665ba16..2678c5f484 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java @@ -15,6 +15,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.EditText; +import android.widget.ExpandableListView; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; @@ -26,6 +27,7 @@ import net.osmand.plus.activities.FavoritesActivity; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; import net.osmand.plus.dialogs.DirectionsDialogs; + import android.support.v4.app.ListFragment; import java.util.ArrayList; @@ -42,8 +44,8 @@ public class NotesFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + setHasOptionsMenu(true); plugin = OsmandPlugin.getEnabledPlugin(AudioVideoNotesPlugin.class); - View view = getActivity().getLayoutInflater().inflate(R.layout.update_index, container, false); view.findViewById(R.id.select_all).setVisibility(View.GONE); ((TextView) view.findViewById(R.id.header)).setText(R.string.notes); @@ -60,6 +62,7 @@ public class NotesFragment extends ListFragment { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); ((FavoritesActivity) getActivity()).getClearToolbar(false); } @@ -70,7 +73,7 @@ public class NotesFragment extends ListFragment { public OsmandApplication getMyApplication() { - return (OsmandApplication)getActivity().getApplication(); + return (OsmandApplication) getActivity().getApplication(); } class NotesAdapter extends ArrayAdapter { @@ -82,24 +85,28 @@ public class NotesFragment extends ListFragment { public View getView(final int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getActivity().getLayoutInflater(); View row = convertView; - if (row == null){ + if (row == null) { row = inflater.inflate(R.layout.note, parent, false); } final AudioVideoNotesPlugin.Recording recording = getItem(position); - if (recording.getName() != null){ - ((TextView) row.findViewById(R.id.name)).setText(recording.getName()); - ((TextView) row.findViewById(R.id.descr)).setText(recording.getDescription(getActivity())); - row.findViewById(R.id.descr).setVisibility(View.VISIBLE); - } else { - ((TextView) row.findViewById(R.id.name)).setText(recording.getDescription(getActivity())); - row.findViewById(R.id.descr).setVisibility(View.GONE); + String name = recording.getName(); + TextView nameText = ((TextView) row.findViewById(R.id.name)); + if (name != null) { + nameText.setText(name); + } else if (recording.isAudio()) { + nameText.setText(R.string.audio); + } else if (recording.isVideo()) { + nameText.setText(R.string.video); + } else if (recording.isPhoto()) { + nameText.setText(R.string.photo); } + ((TextView) row.findViewById(R.id.descr)).setText(recording.getDescription(getActivity())); ImageView icon = (ImageView) row.findViewById(R.id.icon); - if (recording.isAudio()){ + if (recording.isAudio()) { icon.setImageResource(R.drawable.ic_type_audio); - } else if (recording.isVideo()){ + } else if (recording.isVideo()) { icon.setImageResource(R.drawable.ic_type_video); } else { icon.setImageResource(R.drawable.ic_type_img); @@ -111,23 +118,35 @@ public class NotesFragment extends ListFragment { openPopUpMenu(v, recording); } }); + row.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showOnMap(recording); + } + }); return row; } } - private void openPopUpMenu(View v,final AudioVideoNotesPlugin.Recording recording) { + private void showOnMap(Recording recording) { + getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15, null, recording.getName(), + recording); //$NON-NLS-1$ + MapActivity.launchMapActivityMoveToTop(getActivity()); + } + + private void openPopUpMenu(View v, final AudioVideoNotesPlugin.Recording recording) { boolean light = getMyApplication().getSettings().isLightContent(); final PopupMenu optionsMenu = new PopupMenu(getActivity(), v); DirectionsDialogs.setupPopUpMenuIcon(optionsMenu); MenuItem item; boolean isPhoto = recording.isPhoto(); final int playIcon; - if(isPhoto){ + if (isPhoto) { playIcon = light ? R.drawable.ic_action_eye_light : R.drawable.ic_action_eye_dark; } else { playIcon = light ? R.drawable.ic_play_light : R.drawable.ic_play_dark; } - item = optionsMenu.getMenu().add(isPhoto ? R.string.watch : R.string.recording_context_menu_play) + item = optionsMenu.getMenu().add(isPhoto ? R.string.watch : R.string.recording_context_menu_play) .setIcon(playIcon); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override @@ -142,9 +161,7 @@ public class NotesFragment extends ListFragment { item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { - getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15, null, recording.getName(), - recording); //$NON-NLS-1$ - MapActivity.launchMapActivityMoveToTop(getActivity()); + showOnMap(recording); return true; } }); @@ -226,4 +243,5 @@ public class NotesFragment extends ListFragment { editText.requestFocus(); } + }