track selection is now fully functional (#10)
This commit is contained in:
parent
4cc5c7e5fa
commit
22df3abb24
16 changed files with 242 additions and 108 deletions
|
@ -5,7 +5,9 @@ AUTHORS
|
|||
Trackbook is designed, developed and maintained by: [y20k](https://github.com/y20k)
|
||||
|
||||
### Translations
|
||||
German version: [y20k](https://github.com/y20k)
|
||||
Dutch version: [Vistaus](Vistaus)
|
||||
|
||||
German version: [y20k](https://github.com/Vistaus)
|
||||
|
||||
Japanese version: [naofum](https://github.com/y20k)
|
||||
|
||||
|
|
|
@ -25,6 +25,6 @@ dependencies {
|
|||
compile 'com.android.support:appcompat-v7:25.1.1'
|
||||
compile 'com.android.support:design:25.1.1'
|
||||
compile 'com.android.support:cardview-v7:25.1.1'
|
||||
compile 'org.osmdroid:osmdroid-android:5.6.3'
|
||||
compile 'org.osmdroid:osmdroid-android:5.6.4'
|
||||
compile 'com.google.code.gson:gson:2.8.0'
|
||||
}
|
||||
|
|
|
@ -621,7 +621,7 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
|
|||
case FRAGMENT_ID_MAP:
|
||||
return getString(R.string.tab_map);
|
||||
case FRAGMENT_ID_TRACK:
|
||||
return getString(R.string.tab_last_track);
|
||||
return getString(R.string.tab_last_tracks);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -604,7 +604,7 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
|
|||
protected Void doInBackground(Void... voids) {
|
||||
LogHelper.v(LOG_TAG, "Saving track object in background.");
|
||||
// save track object
|
||||
mStorageHelper.saveTrack(mTrack, FILE_TYPE_TRACK);
|
||||
mStorageHelper.saveTrack(mTrack, FILE_MOST_CURRENT_TRACK);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -636,7 +636,7 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys {
|
|||
protected Void doInBackground(Void... voids) {
|
||||
LogHelper.v(LOG_TAG, "Loading temporary track object in background.");
|
||||
// load track object
|
||||
mTrack = mStorageHelper.loadTrack(FILE_TYPE_TEMP);
|
||||
mTrack = mStorageHelper.loadTrack(FILE_TEMP_TRACK);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ import android.support.v4.content.LocalBroadcastManager;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Spinner;
|
||||
import android.widget.TextView;
|
||||
|
@ -50,6 +51,7 @@ import org.y20k.trackbook.helpers.MapHelper;
|
|||
import org.y20k.trackbook.helpers.StorageHelper;
|
||||
import org.y20k.trackbook.helpers.TrackbookKeys;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.DateFormat;
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -57,7 +59,7 @@ import java.util.Locale;
|
|||
/**
|
||||
* MainActivityTrackFragment class
|
||||
*/
|
||||
public class MainActivityTrackFragment extends Fragment implements TrackbookKeys {
|
||||
public class MainActivityTrackFragment extends Fragment implements AdapterView.OnItemSelectedListener, TrackbookKeys {
|
||||
|
||||
/* Define log tag */
|
||||
private static final String LOG_TAG = MainActivityTrackFragment.class.getSimpleName();
|
||||
|
@ -79,6 +81,7 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
private TextView mRecordingStartView;
|
||||
private TextView mRecordingStopView;
|
||||
private BottomSheetBehavior mStatisticsSheetBehavior;
|
||||
private int mCurrentTrack;
|
||||
private Track mTrack;
|
||||
private BroadcastReceiver mTrackSavedReceiver;
|
||||
|
||||
|
@ -93,6 +96,13 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
// store activity
|
||||
mActivity = getActivity();
|
||||
|
||||
// get current track
|
||||
if (savedInstanceState != null) {
|
||||
mCurrentTrack = savedInstanceState.getInt(INSTANCE_CURRENT_TRACK, 0);
|
||||
} else {
|
||||
mCurrentTrack = 0;
|
||||
}
|
||||
|
||||
// create drop-down adapter
|
||||
mDropdownAdapter = new DropdownAdapter(mActivity);
|
||||
|
||||
|
@ -102,9 +112,14 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.hasExtra(EXTRA_SAVE_FINISHED) && intent.getBooleanExtra(EXTRA_SAVE_FINISHED, false)) {
|
||||
LogHelper.v(LOG_TAG, "Save operation detected. Start loading the new track.");
|
||||
|
||||
// load track and display map and statistics
|
||||
LoadTrackAsyncHelper loadTrackAsyncHelper = new LoadTrackAsyncHelper();
|
||||
loadTrackAsyncHelper.execute();
|
||||
|
||||
mDropdownAdapter.refresh();
|
||||
mDropdownAdapter.notifyDataSetChanged();
|
||||
mDropdown.setSelection(0);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -137,6 +152,8 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
// add compass to map
|
||||
CompassOverlay compassOverlay = new CompassOverlay(mActivity, new InternalCompassOrientationProvider(mActivity), mMapView);
|
||||
compassOverlay.enableCompass();
|
||||
// move the compass overlay down a bit
|
||||
compassOverlay.setCompassCenter(35.0f, 80.0f);
|
||||
mMapView.getOverlays().add(compassOverlay);
|
||||
|
||||
// initiate map state
|
||||
|
@ -167,7 +184,7 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
mTrack = savedInstanceState.getParcelable(INSTANCE_TRACK_TRACK_MAP);
|
||||
displayTrack();
|
||||
} else if (mTrack == null) {
|
||||
// load track and display map and statistics
|
||||
// load track and display map and statistics // todo get via mCurrentTrack
|
||||
LoadTrackAsyncHelper loadTrackAsyncHelper = new LoadTrackAsyncHelper();
|
||||
loadTrackAsyncHelper.execute();
|
||||
} else {
|
||||
|
@ -221,14 +238,18 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
mDropdown.setAdapter(mDropdownAdapter);
|
||||
mDropdown.setOnItemSelectedListener(this);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
StorageHelper storageHelper = new StorageHelper(mActivity);
|
||||
|
||||
// mTrackSelectorAdapter = new ArrayAdapter<String>(mActivity, android.R.layout.simple_spinner_dropdown_item, storageHelper.getListOfTracks());
|
||||
// mDropdown.setAdapter(mTrackSelectorAdapter);
|
||||
mDropdown.setAdapter(mDropdownAdapter);
|
||||
}
|
||||
|
||||
|
||||
|
@ -258,12 +279,32 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
|
||||
// update current track
|
||||
mCurrentTrack = i;
|
||||
|
||||
// get track file
|
||||
File trackFile = mDropdownAdapter.getItem(i).getTrackFile();
|
||||
|
||||
// load track and display map and statistics
|
||||
LoadTrackAsyncHelper loadTrackAsyncHelper = new LoadTrackAsyncHelper();
|
||||
loadTrackAsyncHelper.execute(trackFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> adapterView) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
outState.putDouble(INSTANCE_LATITUDE_TRACK_MAP, mMapView.getMapCenter().getLatitude());
|
||||
outState.putDouble(INSTANCE_LONGITUDE_TRACK_MAP, mMapView.getMapCenter().getLongitude());
|
||||
outState.putInt(INSTANCE_ZOOM_LEVEL_TRACK_MAP, mMapView.getZoomLevel());
|
||||
outState.putParcelable(INSTANCE_TRACK_TRACK_MAP, mTrack);
|
||||
outState.putInt(INSTANCE_CURRENT_TRACK, mCurrentTrack);
|
||||
super.onSaveInstanceState(outState);
|
||||
}
|
||||
|
||||
|
@ -313,14 +354,23 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
/**
|
||||
* Inner class: Loads track from external storage using AsyncTask
|
||||
*/
|
||||
private class LoadTrackAsyncHelper extends AsyncTask<Void, Void, Void> {
|
||||
private class LoadTrackAsyncHelper extends AsyncTask<File, Void, Void> {
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
protected Void doInBackground(File... files) {
|
||||
LogHelper.v(LOG_TAG, "Loading track object in background.");
|
||||
// load track object
|
||||
|
||||
StorageHelper storageHelper = new StorageHelper(mActivity);
|
||||
mTrack = storageHelper.loadTrack(FILE_TYPE_TRACK);
|
||||
|
||||
if (files.length > 0) {
|
||||
// load track object from given file
|
||||
mTrack = storageHelper.loadTrack(files[0]);
|
||||
} else {
|
||||
// load track object from most current file
|
||||
mTrack = storageHelper.loadTrack(FILE_MOST_CURRENT_TRACK);
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -328,6 +378,8 @@ public class MainActivityTrackFragment extends Fragment implements TrackbookKeys
|
|||
protected void onPostExecute(Void aVoid) {
|
||||
super.onPostExecute(aVoid);
|
||||
LogHelper.v(LOG_TAG, "Loading finished. Displaying map and statistics of track.");
|
||||
|
||||
// display track on map
|
||||
displayTrack();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -424,7 +424,7 @@ public class TrackerService extends Service implements TrackbookKeys, SensorEven
|
|||
LogHelper.v(LOG_TAG, "Saving temporary track object in background.");
|
||||
// save track object
|
||||
StorageHelper storageHelper = new StorageHelper(TrackerService.this);
|
||||
storageHelper.saveTrack(mTrack, FILE_TYPE_TEMP);
|
||||
storageHelper.saveTrack(mTrack, FILE_TEMP_TRACK);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
85
app/src/main/java/org/y20k/trackbook/core/TrackBundle.java
Normal file
85
app/src/main/java/org/y20k/trackbook/core/TrackBundle.java
Normal file
|
@ -0,0 +1,85 @@
|
|||
/**
|
||||
* TrackBundle.java
|
||||
* Implements a TrackBundle
|
||||
* TrackBundle is a container for file and corresponding name of a track
|
||||
*
|
||||
* This file is part of
|
||||
* TRACKBOOK - Movement Recorder for Android
|
||||
*
|
||||
* Copyright (c) 2016-17 - Y20K.org
|
||||
* Licensed under the MIT-License
|
||||
* http://opensource.org/licenses/MIT
|
||||
*
|
||||
* Trackbook uses osmdroid - OpenStreetMap-Tools for Android
|
||||
* https://github.com/osmdroid/osmdroid
|
||||
*/
|
||||
|
||||
|
||||
package org.y20k.trackbook.core;
|
||||
|
||||
import org.y20k.trackbook.helpers.LogHelper;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
|
||||
|
||||
/**
|
||||
* TrackBundle class
|
||||
*/
|
||||
public class TrackBundle {
|
||||
|
||||
/* Define log tag */
|
||||
private static final String LOG_TAG = TrackBundle.class.getSimpleName();
|
||||
|
||||
/* Main class variables */
|
||||
private File mTrackFile;
|
||||
private String mTrackName;
|
||||
|
||||
|
||||
/* Constructor */
|
||||
public TrackBundle(File file) {
|
||||
mTrackFile = file;
|
||||
mTrackName = buildTrackName(file);
|
||||
}
|
||||
|
||||
|
||||
/* Getter for track file */
|
||||
public File getTrackFile() {
|
||||
return mTrackFile;
|
||||
}
|
||||
|
||||
|
||||
/* Getter for track name */
|
||||
public String getTrackName() {
|
||||
return mTrackName;
|
||||
}
|
||||
|
||||
|
||||
/* Builds a readable track name from the track's file name */
|
||||
private String buildTrackName(File file) {
|
||||
|
||||
// get file name without extension
|
||||
String readableTrackName = file.getName();
|
||||
readableTrackName = readableTrackName.substring(0, readableTrackName.indexOf(".trackbook"));
|
||||
|
||||
try {
|
||||
// convert file name to date
|
||||
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.US);
|
||||
Date trackDate = dateFormat.parse(readableTrackName);
|
||||
|
||||
// convert date to track name string according to current locale
|
||||
readableTrackName = DateFormat.getDateInstance(DateFormat.LONG, Locale.getDefault()).format(trackDate) + " - " +
|
||||
DateFormat.getTimeInstance(DateFormat.SHORT, Locale.getDefault()).format(trackDate);
|
||||
|
||||
} catch (ParseException e) {
|
||||
LogHelper.w(LOG_TAG, "Unable to parse file name into date object (yyyy-MM-dd-HH-mm-ss): " + e);
|
||||
}
|
||||
|
||||
return readableTrackName;
|
||||
}
|
||||
|
||||
}
|
|
@ -25,20 +25,21 @@ import android.support.v7.widget.ThemedSpinnerAdapter;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.y20k.trackbook.R;
|
||||
import org.y20k.trackbook.core.TrackBundle;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* DropdownHelper class
|
||||
*/
|
||||
public class DropdownAdapter implements ThemedSpinnerAdapter, TrackbookKeys {
|
||||
public class DropdownAdapter extends BaseAdapter implements ThemedSpinnerAdapter, TrackbookKeys {
|
||||
|
||||
/* Define log tag */
|
||||
private static final String LOG_TAG = DropdownAdapter.class.getSimpleName();
|
||||
|
@ -157,6 +158,13 @@ public class DropdownAdapter implements ThemedSpinnerAdapter, TrackbookKeys {
|
|||
}
|
||||
|
||||
|
||||
/* Refreshes the adapter data */
|
||||
public void refresh() {
|
||||
// re-initialize the adapter's array list
|
||||
initializeTrackBundleList();
|
||||
}
|
||||
|
||||
|
||||
/* Initializes list of track bundles */
|
||||
private void initializeTrackBundleList() {
|
||||
|
||||
|
@ -172,45 +180,4 @@ public class DropdownAdapter implements ThemedSpinnerAdapter, TrackbookKeys {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inner class: Container for file and corresponding name of a track
|
||||
*/
|
||||
private class TrackBundle {
|
||||
File trackFile;
|
||||
String trackName;
|
||||
|
||||
/* Constructor */
|
||||
TrackBundle(File file) {
|
||||
trackFile = file;
|
||||
trackName = buildTrackName(file);
|
||||
}
|
||||
|
||||
/* Getter for track fike */
|
||||
File getTrackFile() {
|
||||
return trackFile;
|
||||
}
|
||||
|
||||
/* Getter for track name */
|
||||
String getTrackName() {
|
||||
return trackName;
|
||||
}
|
||||
|
||||
/* Builds a readable track name from the track's file name */
|
||||
String buildTrackName(File file) {
|
||||
// todo get date back from track name
|
||||
Date date = null;
|
||||
|
||||
// todo get name according to current locale
|
||||
String readableTrackName = null;
|
||||
|
||||
return file.getName();
|
||||
// return readableTrackName;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* End of inner class
|
||||
*/
|
||||
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ public class StorageHelper implements TrackbookKeys {
|
|||
if (mFolder != null && mFolder.exists() && mFolder.isDirectory() && mFolder.canWrite() && recordingStart != null && track != null) {
|
||||
// create file object
|
||||
String fileName;
|
||||
if (fileType == FILE_TYPE_TEMP) {
|
||||
if (fileType == FILE_TEMP_TRACK) {
|
||||
// case: temp file
|
||||
fileName = FILE_NAME_TEMP + FILE_TYPE_EXTENSION;
|
||||
} else {
|
||||
|
@ -130,7 +130,7 @@ public class StorageHelper implements TrackbookKeys {
|
|||
}
|
||||
|
||||
// if write was successful delete old track files - only if not a temp file
|
||||
if (fileType != FILE_TYPE_TEMP) {
|
||||
if (fileType != FILE_TEMP_TRACK) {
|
||||
// include temp file if it exists
|
||||
deleteOldTracks(true);
|
||||
}
|
||||
|
@ -146,19 +146,76 @@ public class StorageHelper implements TrackbookKeys {
|
|||
|
||||
|
||||
/* Loads given file into memory */
|
||||
public Track loadTrack (int fileType) {
|
||||
public Track loadTrack(int fileType) {
|
||||
|
||||
// get file reference
|
||||
File file;
|
||||
if (fileType == FILE_TYPE_TEMP) {
|
||||
file = getTempFile();
|
||||
} else {
|
||||
file = getMostCurrentTrack();
|
||||
File trackFile;
|
||||
switch (fileType) {
|
||||
case FILE_TEMP_TRACK:
|
||||
trackFile = getTempFile();
|
||||
break;
|
||||
case FILE_MOST_CURRENT_TRACK:
|
||||
trackFile = getMostCurrentTrack();
|
||||
break;
|
||||
default:
|
||||
trackFile = null;
|
||||
break;
|
||||
}
|
||||
|
||||
// read & parse file and return track
|
||||
return readTrackFromFile(trackFile);
|
||||
}
|
||||
|
||||
|
||||
/* Loads given file into memory */
|
||||
public Track loadTrack(File file) {
|
||||
|
||||
// get file reference
|
||||
File trackFile;
|
||||
if (file != null) {
|
||||
trackFile = file;
|
||||
} else {
|
||||
// fallback
|
||||
trackFile = getMostCurrentTrack();
|
||||
}
|
||||
|
||||
// read & parse file and return track
|
||||
return readTrackFromFile(trackFile);
|
||||
}
|
||||
|
||||
|
||||
/* Gets a list of .trackbook files - excluding the temp file */
|
||||
public File[] getListOfTrackbookFiles() {
|
||||
// TODO HANDLE CASE: EMPTY FILE LIST
|
||||
|
||||
// get files and sort them
|
||||
return sortFiles(mFolder.listFiles());
|
||||
}
|
||||
|
||||
|
||||
/* Gets a list of tracks based on their file names */
|
||||
public List<String> getListOfTracks() {
|
||||
List<String> listOfTracks = new ArrayList<String>();
|
||||
|
||||
// get files and sort them
|
||||
File[] files = mFolder.listFiles();
|
||||
files = sortFiles(files);
|
||||
|
||||
for (File file : files) {
|
||||
listOfTracks.add(file.getName());
|
||||
}
|
||||
|
||||
// TODO HANDLE CASE: EMPTY FILE LIST
|
||||
return listOfTracks;
|
||||
}
|
||||
|
||||
|
||||
// loads file and parses it into a track
|
||||
private Track readTrackFromFile(File file) {
|
||||
|
||||
// check if given file was null
|
||||
if (file == null) {
|
||||
LogHelper.e(LOG_TAG, "Did not receive file object.");
|
||||
LogHelper.e(LOG_TAG, "Did not receive a file object.");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -186,33 +243,6 @@ public class StorageHelper implements TrackbookKeys {
|
|||
LogHelper.e(LOG_TAG, "Unable to read file from external storage: " + file.toString());
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Gets a list of .trackbook files - excluding the temp file */
|
||||
public File[] getListOfTrackbookFiles() {
|
||||
// TODO HANDLE CASE: EMPTY FILE LIST
|
||||
|
||||
// get files and sort them
|
||||
return sortFiles(mFolder.listFiles());
|
||||
}
|
||||
|
||||
|
||||
/* Gets a list of tracks based on their file names */
|
||||
public List<String> getListOfTracks() {
|
||||
List<String> listOfTracks = new ArrayList<String>();
|
||||
|
||||
// get files and sort them
|
||||
File[] files = mFolder.listFiles();
|
||||
files = sortFiles(files);
|
||||
|
||||
for (File file : files) {
|
||||
listOfTracks.add(file.getName());
|
||||
}
|
||||
|
||||
// TODO HANDLE CASE: EMPTY FILE LIST
|
||||
return listOfTracks;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -64,6 +64,7 @@ public interface TrackbookKeys {
|
|||
String INSTANCE_LONGITUDE_TRACK_MAP = "longitudeTrackMap";
|
||||
String INSTANCE_ZOOM_LEVEL_TRACK_MAP = "zoomLevelTrackMap";
|
||||
String INSTANCE_CURRENT_LOCATION = "currentLocation";
|
||||
String INSTANCE_CURRENT_TRACK = "currentTrack";
|
||||
|
||||
/* FRAGMENT IDS */
|
||||
int FRAGMENT_ID_MAP = 0;
|
||||
|
@ -89,13 +90,14 @@ public interface TrackbookKeys {
|
|||
int FAB_STATE_DEFAULT = 0;
|
||||
int FAB_STATE_RECORDING = 1;
|
||||
int FAB_STATE_SAVE = 2;
|
||||
int FILE_TYPE_TEMP = 0;
|
||||
int FILE_TYPE_TRACK = 1;
|
||||
int FILE_TEMP_TRACK = 0;
|
||||
int FILE_MOST_CURRENT_TRACK = 1;
|
||||
|
||||
String DIRECTORY_NAME = "tracks";
|
||||
String FILE_TYPE_EXTENSION = ".trackbook";
|
||||
String FILE_NAME_TEMP = "temp";
|
||||
|
||||
|
||||
double DEFAULT_LATITUDE = 49.41667; // latitude Nordkapp, Norway
|
||||
double DEFAULT_LONGITUDE = 8.67201; // longitude Nordkapp, Norway
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:contentDescription="@string/descr_map_last_track" />
|
||||
|
||||
<!-- TRACK SELECTION -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -35,6 +36,7 @@
|
|||
android:theme="@style/TrackbookAppTheme.PopupOverlay"
|
||||
android:contentDescription="@string/descr_track_selector" />
|
||||
<ImageButton
|
||||
android:visibility="gone"
|
||||
android:id="@+id/delete_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -45,13 +47,6 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<!-- MAP VIEW --> <!-- TODO remove -->
|
||||
<!-- <org.osmdroid.views.MapView
|
||||
android:id="@+id/track_map"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:contentDescription="@string/descr_map_last_track" /> -->
|
||||
|
||||
<!-- BOTTOM SHEET -->
|
||||
<android.support.v4.widget.NestedScrollView
|
||||
android:id="@+id/statistics_sheet"
|
||||
|
@ -232,8 +227,6 @@
|
|||
|
||||
</ScrollView>
|
||||
|
||||
|
||||
|
||||
</android.support.v4.widget.NestedScrollView>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
|
@ -14,6 +14,7 @@
|
|||
<!-- tabs -->
|
||||
<string name="tab_map">KARTE</string>
|
||||
<string name="tab_last_track">LETZTE AUFZEICHNUNG</string>
|
||||
<string name="tab_last_tracks">LETZTE AUFZEICHNUNGEN</string>
|
||||
|
||||
<!-- notification -->
|
||||
<string name="notification_title_trackbook_not_running">Trackbook ist inaktiv</string>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
<string name="tab_map">地図</string>
|
||||
<string name="tab_last_track">最後のトラック</string>
|
||||
<string name="tab_last_tracks">LAST TRACKS</string>
|
||||
|
||||
<string name="notification_title_trackbook_running">Trackbook 実行中</string>
|
||||
<string name="notification_title_trackbook_not_running">Trackbook は実行していません</string>
|
||||
|
@ -25,7 +26,6 @@
|
|||
<string name="fab_sub_menu_clear">クリア</string>
|
||||
<string name="fab_sub_menu_save_and_clear">保存してクリア</string>
|
||||
|
||||
|
||||
<string name="toast_message_permissions_granted">アクセス許可を付与しました。</string>
|
||||
<string name="toast_message_unable_to_start_app">Trackbook を起動できません。</string>
|
||||
<string name="toast_message_no_external_storage">外部ストレージにアクセスできません。</string>
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
<string name="tab_map">KAART</string>
|
||||
<string name="tab_last_track">LAATSTE BAAN</string>
|
||||
<string name="tab_last_tracks">LAST TRACKS</string>
|
||||
|
||||
<string name="notification_title_trackbook_running">Trackbook is actief</string>
|
||||
<string name="notification_title_trackbook_not_running">Trackbook is niet actief</string>
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
<!-- tabs -->
|
||||
<string name="tab_map">MAP</string>
|
||||
<string name="tab_last_track">LAST TRACK</string>
|
||||
<string name="tab_last_tracks">LAST TRACKS</string>
|
||||
|
||||
<!-- notification -->
|
||||
<string name="notification_title_trackbook_running">Trackbook running</string>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<style name="TrackbookAppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
|
||||
|
||||
<style name="TrackbookAppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
|
||||
<!-- <item name="colorBackground">@color/trackbook_red</item> -->
|
||||
<item name="android:colorControlNormal">@color/trackbook_white</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
Loading…
Reference in a new issue