Updated audio video notes in my places
This commit is contained in:
parent
976f8a8889
commit
607d496275
9 changed files with 104 additions and 13 deletions
|
@ -48,6 +48,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
|
android:textSize="@dimen/download_descr_text_size"
|
||||||
android:maxLines="25"
|
android:maxLines="25"
|
||||||
tools:text="@string/app_mode_aircraft"/>
|
tools:text="@string/app_mode_aircraft"/>
|
||||||
|
|
||||||
|
|
30
OsmAnd/res/layout/note_edit_dialog.xml
Normal file
30
OsmAnd/res/layout/note_edit_dialog.xml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingBottom="@dimen/dialog_content_bottom_margin"
|
||||||
|
android:paddingLeft="@dimen/dialog_content_margin"
|
||||||
|
android:paddingRight="@dimen/dialog_content_margin"
|
||||||
|
android:paddingTop="@dimen/dialog_content_bottom_margin">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dialog_elements_vertical_margin"
|
||||||
|
android:text="@string/favourites_edit_dialog_name"/>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/name"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:selectAllOnFocus="true"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -23,6 +23,7 @@
|
||||||
android:id="@+id/header"
|
android:id="@+id/header"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="@dimen/list_header_padding"
|
||||||
android:text="@string/download_tab_updates"/>
|
android:text="@string/download_tab_updates"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
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
|
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||||
-->
|
-->
|
||||||
|
<string name="rename_recording">Rename recording</string>
|
||||||
<string name="watch">Watch</string>
|
<string name="watch">Watch</string>
|
||||||
<string name="notes">Notes</string>
|
<string name="notes">Notes</string>
|
||||||
<string name="online_map">Online map</string>
|
<string name="online_map">Online map</string>
|
||||||
|
|
|
@ -20,6 +20,7 @@ import android.view.MenuItem;
|
||||||
import net.osmand.plus.GpxSelectionHelper;
|
import net.osmand.plus.GpxSelectionHelper;
|
||||||
import net.osmand.plus.OsmAndLocationProvider;
|
import net.osmand.plus.OsmAndLocationProvider;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.OsmandPlugin;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -29,6 +30,8 @@ import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TabHost.TabSpec;
|
import android.widget.TabHost.TabSpec;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import net.osmand.plus.audionotes.AudioVideoNotesPlugin;
|
||||||
import net.osmand.plus.audionotes.NotesFragment;
|
import net.osmand.plus.audionotes.NotesFragment;
|
||||||
import net.osmand.plus.views.controls.PagerSlidingTabStrip;
|
import net.osmand.plus.views.controls.PagerSlidingTabStrip;
|
||||||
|
|
||||||
|
@ -79,8 +82,10 @@ public class FavoritesActivity extends TabActivity {
|
||||||
List<TabItem> mTabs = new ArrayList<TabItem>();
|
List<TabItem> mTabs = new ArrayList<TabItem>();
|
||||||
mTabs.add(getTabIndicator(R.string.my_favorites, FavoritesTreeFragment.class));
|
mTabs.add(getTabIndicator(R.string.my_favorites, FavoritesTreeFragment.class));
|
||||||
mTabs.add(getTabIndicator(R.string.my_tracks, AvailableGPXFragment.class));
|
mTabs.add(getTabIndicator(R.string.my_tracks, AvailableGPXFragment.class));
|
||||||
|
AudioVideoNotesPlugin audioVideoNotesPlugin = OsmandPlugin.getEnabledPlugin(AudioVideoNotesPlugin.class);
|
||||||
mTabs.add(getTabIndicator(R.string.notes, NotesFragment.class));
|
if (audioVideoNotesPlugin != null && audioVideoNotesPlugin.getAllRecordings().size() > 0){
|
||||||
|
mTabs.add(getTabIndicator(R.string.notes, NotesFragment.class));
|
||||||
|
}
|
||||||
mTabs.add(getTabIndicator(R.string.selected_track, SelectedGPXFragment.class));
|
mTabs.add(getTabIndicator(R.string.selected_track, SelectedGPXFragment.class));
|
||||||
|
|
||||||
setViewPagerAdapter(mViewPager, mTabs);
|
setViewPagerAdapter(mViewPager, mTabs);
|
||||||
|
|
|
@ -169,10 +169,10 @@ public class AudioNotesLayer extends OsmandMapLayer implements IContextMenuProvi
|
||||||
@Override
|
@Override
|
||||||
public String getObjectName(Object o) {
|
public String getObjectName(Object o) {
|
||||||
if(o instanceof Recording){
|
if(o instanceof Recording){
|
||||||
if(((Recording)o).name == null) {
|
if(((Recording)o).getName() == null) {
|
||||||
return view.getResources().getString(R.string.recording_default_name);
|
return view.getResources().getString(R.string.recording_default_name);
|
||||||
}
|
}
|
||||||
return ((Recording)o).name; //$NON-NLS-1$
|
return ((Recording)o).getName(); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,8 +137,8 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
public File file;
|
public File file;
|
||||||
public String name;
|
|
||||||
|
|
||||||
|
private String name;
|
||||||
private double lat;
|
private double lat;
|
||||||
private double lon;
|
private double lon;
|
||||||
private long duration = -1;
|
private long duration = -1;
|
||||||
|
@ -170,6 +170,14 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isPhoto() {
|
public boolean isPhoto() {
|
||||||
return file.getName().endsWith(IMG_EXTENSION);
|
return file.getName().endsWith(IMG_EXTENSION);
|
||||||
}
|
}
|
||||||
|
@ -301,6 +309,9 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
|
||||||
return additional;
|
return additional;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDescription() {
|
||||||
|
//TODO implement setting description
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void initializeRemoteControlRegistrationMethods() {
|
private static void initializeRemoteControlRegistrationMethods() {
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class DashAudioVideoNotesFragment extends DashBaseFragment {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15, null,
|
getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15, null,
|
||||||
recording.name != null ? recording.name : recording.getDescription(getActivity()),
|
recording.getName() != null ? recording.getName() : recording.getDescription(getActivity()),
|
||||||
recording); //$NON-NLS-1$
|
recording); //$NON-NLS-1$
|
||||||
MapActivity.launchMapActivityMoveToTop(getActivity());
|
MapActivity.launchMapActivityMoveToTop(getActivity());
|
||||||
}
|
}
|
||||||
|
@ -107,8 +107,8 @@ public class DashAudioVideoNotesFragment extends DashBaseFragment {
|
||||||
|
|
||||||
public static void getNoteView(final AudioVideoNotesPlugin.Recording recording, View view,
|
public static void getNoteView(final AudioVideoNotesPlugin.Recording recording, View view,
|
||||||
final Context ctx, final AudioVideoNotesPlugin plugin) {
|
final Context ctx, final AudioVideoNotesPlugin plugin) {
|
||||||
if (recording.name != null){
|
if (recording.getName() != null){
|
||||||
((TextView) view.findViewById(R.id.name)).setText(recording.name);
|
((TextView) view.findViewById(R.id.name)).setText(recording.getName());
|
||||||
((TextView) view.findViewById(R.id.descr)).setText(recording.getDescription(ctx));
|
((TextView) view.findViewById(R.id.descr)).setText(recording.getDescription(ctx));
|
||||||
} else {
|
} else {
|
||||||
((TextView) view.findViewById(R.id.name)).setText(recording.getDescription(ctx));
|
((TextView) view.findViewById(R.id.name)).setText(recording.getDescription(ctx));
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package net.osmand.plus.audionotes;
|
package net.osmand.plus.audionotes;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v7.widget.PopupMenu;
|
import android.support.v7.widget.PopupMenu;
|
||||||
|
@ -8,12 +10,15 @@ import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandPlugin;
|
import net.osmand.plus.OsmandPlugin;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording;
|
import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording;
|
||||||
import net.osmand.plus.dialogs.DirectionsDialogs;
|
import net.osmand.plus.dialogs.DirectionsDialogs;
|
||||||
import android.support.v4.app.ListFragment;
|
import android.support.v4.app.ListFragment;
|
||||||
|
@ -43,11 +48,12 @@ public class NotesFragment extends ListFragment {
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
items = new ArrayList<Recording>(plugin.getAllRecordings());
|
items = new ArrayList<>(plugin.getAllRecordings());
|
||||||
listAdapter = new NotesAdapter(items);
|
listAdapter = new NotesAdapter(items);
|
||||||
getListView().setAdapter(listAdapter);
|
getListView().setAdapter(listAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
@ -60,7 +66,7 @@ public class NotesFragment extends ListFragment {
|
||||||
|
|
||||||
class NotesAdapter extends ArrayAdapter<AudioVideoNotesPlugin.Recording> {
|
class NotesAdapter extends ArrayAdapter<AudioVideoNotesPlugin.Recording> {
|
||||||
NotesAdapter(List<AudioVideoNotesPlugin.Recording> recordingList) {
|
NotesAdapter(List<AudioVideoNotesPlugin.Recording> recordingList) {
|
||||||
super(getActivity(), R.layout.dash_audio_video_notes_item, recordingList);
|
super(getActivity(), R.layout.note, recordingList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -72,9 +78,10 @@ public class NotesFragment extends ListFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
final AudioVideoNotesPlugin.Recording recording = getItem(position);
|
final AudioVideoNotesPlugin.Recording recording = getItem(position);
|
||||||
if (recording.name != null){
|
if (recording.getName() != null){
|
||||||
((TextView) row.findViewById(R.id.name)).setText(recording.name);
|
((TextView) row.findViewById(R.id.name)).setText(recording.getName());
|
||||||
((TextView) row.findViewById(R.id.descr)).setText(recording.getDescription(getActivity()));
|
((TextView) row.findViewById(R.id.descr)).setText(recording.getDescription(getActivity()));
|
||||||
|
row.findViewById(R.id.descr).setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
((TextView) row.findViewById(R.id.name)).setText(recording.getDescription(getActivity()));
|
((TextView) row.findViewById(R.id.name)).setText(recording.getDescription(getActivity()));
|
||||||
row.findViewById(R.id.descr).setVisibility(View.GONE);
|
row.findViewById(R.id.descr).setVisibility(View.GONE);
|
||||||
|
@ -126,6 +133,9 @@ public class NotesFragment extends ListFragment {
|
||||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
|
getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15, null, recording.getName(),
|
||||||
|
recording); //$NON-NLS-1$
|
||||||
|
MapActivity.launchMapActivityMoveToTop(getActivity());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -144,6 +154,7 @@ public class NotesFragment extends ListFragment {
|
||||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
|
editNote(recording);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -153,11 +164,42 @@ public class NotesFragment extends ListFragment {
|
||||||
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
plugin.deleteRecording(recording);
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
|
builder.setMessage(R.string.recording_delete_confirm);
|
||||||
|
builder.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
plugin.deleteRecording(recording);
|
||||||
|
listAdapter.remove(recording);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(R.string.default_buttons_cancel, null);
|
||||||
|
builder.show();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
optionsMenu.show();
|
optionsMenu.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void editNote(final Recording recording) {
|
||||||
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||||
|
builder.setTitle(R.string.rename_recording);
|
||||||
|
final View v = getActivity().getLayoutInflater().inflate(R.layout.note_edit_dialog,
|
||||||
|
getListView(), false);
|
||||||
|
final EditText editText = (EditText) v.findViewById(R.id.name);
|
||||||
|
builder.setView(v);
|
||||||
|
editText.setText(recording.getName());
|
||||||
|
builder.setNegativeButton(R.string.default_buttons_cancel, null);
|
||||||
|
builder.setPositiveButton(R.string.default_buttons_apply, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
recording.setName(editText.getText().toString());
|
||||||
|
recording.setDescription();
|
||||||
|
listAdapter.notifyDataSetInvalidated();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.create().show();
|
||||||
|
editText.requestFocus();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue