Updated audio video notes in my places

This commit is contained in:
Bars107 2015-02-19 15:04:19 +02:00
parent 976f8a8889
commit 607d496275
9 changed files with 104 additions and 13 deletions

View file

@ -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"/>

View 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>

View file

@ -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>

View file

@ -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>

View file

@ -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);

View file

@ -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;
} }

View file

@ -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() {

View file

@ -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));

View file

@ -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();
}
} }