diff --git a/app/src/main/java/net/osmtracker/activity/TrackManager.java b/app/src/main/java/net/osmtracker/activity/TrackManager.java index 10d822e8d..11a3e7e29 100644 --- a/app/src/main/java/net/osmtracker/activity/TrackManager.java +++ b/app/src/main/java/net/osmtracker/activity/TrackManager.java @@ -35,6 +35,7 @@ import android.view.View; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.CursorAdapter; +import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; @@ -69,15 +70,28 @@ public class TrackManager extends ListActivity { /** Track Identifier to export after request for write permission **/ private long trackId = -1; + private ImageButton btnNewTrack; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.trackmanager); + setContentView(R.layout.trackmanager); getListView().setEmptyView(findViewById(R.id.trackmgr_empty)); registerForContextMenu(getListView()); if (savedInstanceState != null) { prevItemVisible = savedInstanceState.getInt(PREV_VISIBLE, -1); } + //initialize the bottom start track + btnNewTrack = (ImageButton) findViewById(R.id.trackmgr_hint_icon); + //set a listener that makes the same functionality of (+) button in the main menu of this screen + btnNewTrack.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startTrackLogger(); + //makes the button invisible when is an active track + btnNewTrack.setVisibility(View.INVISIBLE); + } + }); } @Override @@ -109,6 +123,8 @@ protected void onResume() { } } } else { + //set the button to start a new track visible when there isn't an active track + btnNewTrack.setVisibility(View.VISIBLE); ((TextView) findViewById(R.id.trackmgr_hint)).setText(R.string.trackmgr_newtrack_hint); // Scroll to the previous listview position, @@ -188,19 +204,7 @@ public boolean onPrepareOptionsMenu(Menu menu) { public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.trackmgr_menu_newtrack: - // Start track logger activity - try { - Intent i = new Intent(this, TrackLogger.class); - // New track - currentTrackId = createNewTrack(); - i.putExtra(TrackContentProvider.Schema.COL_TRACK_ID, currentTrackId); - startActivity(i); - } catch (CreateTrackException cte) { - Toast.makeText(this, - getResources().getString(R.string.trackmgr_newtrack_error).replace("{0}", cte.getMessage()), - Toast.LENGTH_LONG) - .show(); - } + startTrackLogger(); break; case R.id.trackmgr_menu_continuetrack: Intent i = new Intent(this, TrackLogger.class); @@ -265,6 +269,25 @@ public void onClick(DialogInterface dialog, int which) { return super.onOptionsItemSelected(item); } + /** + * This method prepare the new track and set an id, then start a new TrackLogger with the new track id + */ + private void startTrackLogger(){ + // Start track logger activity + try { + Intent i = new Intent(this, TrackLogger.class); + // New track + currentTrackId = createNewTrack(); + i.putExtra(TrackContentProvider.Schema.COL_TRACK_ID, currentTrackId); + startActivity(i); + } catch (CreateTrackException cte) { + Toast.makeText(this, + getResources().getString(R.string.trackmgr_newtrack_error).replace("{0}", cte.getMessage()), + Toast.LENGTH_LONG) + .show(); + } + } + private void requestPermissionAndExport(int typeCode){ if (ContextCompat.checkSelfPermission(this, diff --git a/app/src/main/res/layout/trackmanager.xml b/app/src/main/res/layout/trackmanager.xml index fb14da310..35ee2a88b 100644 --- a/app/src/main/res/layout/trackmanager.xml +++ b/app/src/main/res/layout/trackmanager.xml @@ -1,5 +1,6 @@ - - + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7abd2f813..a6e1d910c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -31,8 +31,8 @@ Puntos de ref.: P. de traza: Usted no tiene ninguna traza. - Para grabar una traza,\npresione el símbolo (+) No se puede crear una nueva traza: {0} + Para iniciar una traza, presione En este momento está grabando la traza #{0}\nElíjalo en la lista para continuar Detener el trazado Reanudar el trazado diff --git a/app/src/main/res/values-v11/strings.xml b/app/src/main/res/values-v11/strings.xml index e27844d4c..a21951043 100644 --- a/app/src/main/res/values-v11/strings.xml +++ b/app/src/main/res/values-v11/strings.xml @@ -1,4 +1,4 @@ - To record a track,\npress New track + To record a track, press \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 74cb3aaaa..3f528daab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,7 +34,7 @@ Waypoints: Trackpoints: You don\'t have any tracks. - To record a track,\npress Menu then New track + To record a track, press Unable to create a new track: {0} You are currently recording track #{0}\nChoose it in the list to continue Stop tracking