forked from upstream-mirrors/OpenTracks
Cleanup.
This commit is contained in:
@@ -27,13 +27,14 @@ import android.graphics.Paint.Style;
|
|||||||
import android.graphics.Path;
|
import android.graphics.Path;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.VelocityTracker;
|
import android.view.VelocityTracker;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewConfiguration;
|
import android.view.ViewConfiguration;
|
||||||
import android.widget.Scroller;
|
import android.widget.Scroller;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.stats.ExtremityMonitor;
|
import com.google.android.apps.mytracks.stats.ExtremityMonitor;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
@@ -90,11 +91,8 @@ public class ChartView extends View {
|
|||||||
private final Paint axisPaint;
|
private final Paint axisPaint;
|
||||||
private final Paint xAxisMarkerPaint;
|
private final Paint xAxisMarkerPaint;
|
||||||
private final Paint gridPaint;
|
private final Paint gridPaint;
|
||||||
private final Paint markerPaint;
|
|
||||||
|
|
||||||
private final Drawable pointer;
|
private final Drawable pointer;
|
||||||
private final Drawable statisticsMarker;
|
|
||||||
private final Drawable waypointMarker;
|
|
||||||
private final int markerWidth;
|
private final int markerWidth;
|
||||||
private final int markerHeight;
|
private final int markerHeight;
|
||||||
|
|
||||||
@@ -194,7 +192,7 @@ public class ChartView extends View {
|
|||||||
gridPaint.setAntiAlias(false);
|
gridPaint.setAntiAlias(false);
|
||||||
gridPaint.setPathEffect(new DashPathEffect(new float[] { 3, 2 }, 0));
|
gridPaint.setPathEffect(new DashPathEffect(new float[] { 3, 2 }, 0));
|
||||||
|
|
||||||
markerPaint = new Paint();
|
Paint markerPaint = new Paint();
|
||||||
markerPaint.setStyle(Style.STROKE);
|
markerPaint.setStyle(Style.STROKE);
|
||||||
markerPaint.setColor(context.getResources().getColor(android.R.color.darker_gray));
|
markerPaint.setColor(context.getResources().getColor(android.R.color.darker_gray));
|
||||||
markerPaint.setAntiAlias(false);
|
markerPaint.setAntiAlias(false);
|
||||||
@@ -202,12 +200,12 @@ public class ChartView extends View {
|
|||||||
pointer = context.getResources().getDrawable(R.drawable.ic_arrow_180);
|
pointer = context.getResources().getDrawable(R.drawable.ic_arrow_180);
|
||||||
pointer.setBounds(0, 0, pointer.getIntrinsicWidth(), pointer.getIntrinsicHeight());
|
pointer.setBounds(0, 0, pointer.getIntrinsicWidth(), pointer.getIntrinsicHeight());
|
||||||
|
|
||||||
statisticsMarker = getResources().getDrawable(R.drawable.ic_marker_yellow_pushpin);
|
Drawable statisticsMarker = getResources().getDrawable(R.drawable.ic_marker_yellow_pushpin);
|
||||||
markerWidth = statisticsMarker.getIntrinsicWidth();
|
markerWidth = statisticsMarker.getIntrinsicWidth();
|
||||||
markerHeight = statisticsMarker.getIntrinsicHeight();
|
markerHeight = statisticsMarker.getIntrinsicHeight();
|
||||||
statisticsMarker.setBounds(0, 0, markerWidth, markerHeight);
|
statisticsMarker.setBounds(0, 0, markerWidth, markerHeight);
|
||||||
|
|
||||||
waypointMarker = getResources().getDrawable(R.drawable.ic_marker_blue_pushpin);
|
Drawable waypointMarker = getResources().getDrawable(R.drawable.ic_marker_blue_pushpin);
|
||||||
waypointMarker.setBounds(0, 0, markerWidth, markerHeight);
|
waypointMarker.setBounds(0, 0, markerWidth, markerHeight);
|
||||||
|
|
||||||
scroller = new Scroller(context);
|
scroller = new Scroller(context);
|
||||||
|
|||||||
@@ -16,20 +16,21 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
||||||
import com.google.android.apps.mytracks.fragments.MarkerDetailFragment;
|
import com.google.android.apps.mytracks.fragments.MarkerDetailFragment;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.database.Cursor;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.fragment.app.FragmentManager;
|
|
||||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -42,7 +43,6 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
|||||||
public static final String EXTRA_MARKER_ID = "marker_id";
|
public static final String EXTRA_MARKER_ID = "marker_id";
|
||||||
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
|
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
|
||||||
|
|
||||||
private Waypoint waypoint;
|
|
||||||
private ArrayList<Long> markerIds;
|
private ArrayList<Long> markerIds;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -57,7 +57,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
|||||||
}
|
}
|
||||||
|
|
||||||
MyTracksProviderUtils myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
MyTracksProviderUtils myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
||||||
waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
||||||
|
|
||||||
markerIds = new ArrayList<>();
|
markerIds = new ArrayList<>();
|
||||||
int markerIndex = -1;
|
int markerIndex = -1;
|
||||||
|
|||||||
@@ -16,37 +16,12 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
|
||||||
import com.google.android.apps.mytracks.content.SearchEngine;
|
|
||||||
import com.google.android.apps.mytracks.content.SearchEngine.ScoredResult;
|
|
||||||
import com.google.android.apps.mytracks.content.SearchEngine.SearchQuery;
|
|
||||||
import com.google.android.apps.mytracks.content.SearchEngineProvider;
|
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
|
||||||
import com.google.android.apps.mytracks.fragments.ConfirmDeleteDialogFragment;
|
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment;
|
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
|
||||||
import com.google.android.apps.mytracks.services.MyTracksLocationManager;
|
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.ListItemUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.StringUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.TrackIconUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import android.app.SearchManager;
|
import android.app.SearchManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||||
import android.location.Location;
|
|
||||||
import android.location.LocationListener;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Looper;
|
|
||||||
import android.provider.SearchRecentSuggestions;
|
import android.provider.SearchRecentSuggestions;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.ContextMenu;
|
import android.view.ContextMenu;
|
||||||
@@ -61,6 +36,27 @@ import android.widget.AdapterView.OnItemClickListener;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
|
import com.google.android.apps.mytracks.content.SearchEngine;
|
||||||
|
import com.google.android.apps.mytracks.content.SearchEngine.ScoredResult;
|
||||||
|
import com.google.android.apps.mytracks.content.SearchEngine.SearchQuery;
|
||||||
|
import com.google.android.apps.mytracks.content.SearchEngineProvider;
|
||||||
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
|
import com.google.android.apps.mytracks.fragments.ConfirmDeleteDialogFragment;
|
||||||
|
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment;
|
||||||
|
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
||||||
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||||
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.ListItemUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.StringUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.TrackIconUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -171,9 +167,6 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
|
|||||||
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
||||||
|
|
||||||
// UI elements
|
|
||||||
private ListView listView;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -185,27 +178,7 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
|
|||||||
searchEngine = new SearchEngine(myTracksProviderUtils);
|
searchEngine = new SearchEngine(myTracksProviderUtils);
|
||||||
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
|
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
|
||||||
|
|
||||||
listView = findViewById(R.id.search_list);
|
arrayAdapter = new ArrayAdapter<Map<String, Object>>(this, R.layout.list_item, R.id.list_item_name) {
|
||||||
listView.setEmptyView(findViewById(R.id.search_list_empty));
|
|
||||||
listView.setOnItemClickListener(new OnItemClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
||||||
Map<String, Object> item = arrayAdapter.getItem(position);
|
|
||||||
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
|
||||||
Long markerId = (Long) item.get(MARKER_ID_FIELD);
|
|
||||||
Intent intent;
|
|
||||||
if (markerId != null) {
|
|
||||||
intent = IntentUtils.newIntent(SearchListActivity.this, TrackDetailActivity.class)
|
|
||||||
.putExtra(TrackDetailActivity.EXTRA_MARKER_ID, markerId);
|
|
||||||
} else {
|
|
||||||
intent = IntentUtils.newIntent(SearchListActivity.this, TrackDetailActivity.class)
|
|
||||||
.putExtra(TrackDetailActivity.EXTRA_TRACK_ID, trackId);
|
|
||||||
}
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
arrayAdapter = new ArrayAdapter<Map<String, Object>>(
|
|
||||||
this, R.layout.list_item, R.id.list_item_name) {
|
|
||||||
@Override
|
@Override
|
||||||
public View getView(int position, View convertView, android.view.ViewGroup parent) {
|
public View getView(int position, View convertView, android.view.ViewGroup parent) {
|
||||||
View view;
|
View view;
|
||||||
@@ -234,7 +207,27 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM
|
|||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// UI elements
|
||||||
|
ListView listView = findViewById(R.id.search_list);
|
||||||
listView.setAdapter(arrayAdapter);
|
listView.setAdapter(arrayAdapter);
|
||||||
|
listView.setEmptyView(findViewById(R.id.search_list_empty));
|
||||||
|
listView.setOnItemClickListener(new OnItemClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
Map<String, Object> item = arrayAdapter.getItem(position);
|
||||||
|
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
||||||
|
Long markerId = (Long) item.get(MARKER_ID_FIELD);
|
||||||
|
Intent intent;
|
||||||
|
if (markerId != null) {
|
||||||
|
intent = IntentUtils.newIntent(SearchListActivity.this, TrackDetailActivity.class)
|
||||||
|
.putExtra(TrackDetailActivity.EXTRA_MARKER_ID, markerId);
|
||||||
|
} else {
|
||||||
|
intent = IntentUtils.newIntent(SearchListActivity.this, TrackDetailActivity.class)
|
||||||
|
.putExtra(TrackDetailActivity.EXTRA_TRACK_ID, trackId);
|
||||||
|
}
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
AbstractTrackActivity.configureListViewContextualMenu(this, listView, contextualActionModeCallback);
|
AbstractTrackActivity.configureListViewContextualMenu(this, listView, contextualActionModeCallback);
|
||||||
handleIntent(getIntent());
|
handleIntent(getIntent());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,31 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.provider.MediaStore;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.View.OnClickListener;
|
||||||
|
import android.widget.ShareActionProvider;
|
||||||
|
import android.widget.TabHost;
|
||||||
|
import android.widget.TabHost.TabSpec;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
|
import androidx.core.app.TaskStackBuilder;
|
||||||
|
import androidx.core.content.FileProvider;
|
||||||
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataHub;
|
import com.google.android.apps.mytracks.content.TrackDataHub;
|
||||||
@@ -27,7 +52,6 @@ import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragme
|
|||||||
import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller;
|
import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller;
|
||||||
import com.google.android.apps.mytracks.fragments.ConfirmDeleteDialogFragment;
|
import com.google.android.apps.mytracks.fragments.ConfirmDeleteDialogFragment;
|
||||||
import com.google.android.apps.mytracks.fragments.FrequencyDialogFragment;
|
import com.google.android.apps.mytracks.fragments.FrequencyDialogFragment;
|
||||||
import com.google.android.apps.mytracks.fragments.MarkerDetailFragment;
|
|
||||||
import com.google.android.apps.mytracks.fragments.StatsFragment;
|
import com.google.android.apps.mytracks.fragments.StatsFragment;
|
||||||
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
|
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||||
@@ -40,33 +64,6 @@ import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtil
|
|||||||
import com.google.android.apps.mytracks.util.TrackUtils;
|
import com.google.android.apps.mytracks.util.TrackUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.Manifest;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.provider.MediaStore;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.core.app.ActivityCompat;
|
|
||||||
import androidx.core.app.TaskStackBuilder;
|
|
||||||
import androidx.core.content.FileProvider;
|
|
||||||
import androidx.viewpager.widget.ViewPager;
|
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.ActionProvider;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.View.OnClickListener;
|
|
||||||
import android.widget.ShareActionProvider;
|
|
||||||
import android.widget.TabHost;
|
|
||||||
import android.widget.TabHost.TabSpec;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -102,13 +99,10 @@ public class TrackDetailActivity extends AbstractTrackActivity
|
|||||||
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
||||||
private TrackDataHub trackDataHub;
|
private TrackDataHub trackDataHub;
|
||||||
private TabHost tabHost;
|
private TabHost tabHost;
|
||||||
private ViewPager viewPager;
|
|
||||||
private TabsAdapter tabsAdapter;
|
|
||||||
private TrackController trackController;
|
private TrackController trackController;
|
||||||
|
|
||||||
// From intent
|
// From intent
|
||||||
private long trackId;
|
private long trackId;
|
||||||
private long markerId;
|
|
||||||
|
|
||||||
// Preferences
|
// Preferences
|
||||||
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
@@ -216,9 +210,8 @@ public class TrackDetailActivity extends AbstractTrackActivity
|
|||||||
tabHost = findViewById(android.R.id.tabhost);
|
tabHost = findViewById(android.R.id.tabhost);
|
||||||
tabHost.setup();
|
tabHost.setup();
|
||||||
|
|
||||||
viewPager = findViewById(R.id.pager);
|
ViewPager viewPager = findViewById(R.id.pager);
|
||||||
|
TabsAdapter tabsAdapter = new TabsAdapter(this, tabHost, viewPager);
|
||||||
tabsAdapter = new TabsAdapter(this, tabHost, viewPager);
|
|
||||||
|
|
||||||
TabSpec statsTabSpec = tabHost.newTabSpec(StatsFragment.STATS_FRAGMENT_TAG).setIndicator(getString(R.string.track_detail_stats_tab), getResources().getDrawable(R.drawable.ic_tab_stats));
|
TabSpec statsTabSpec = tabHost.newTabSpec(StatsFragment.STATS_FRAGMENT_TAG).setIndicator(getString(R.string.track_detail_stats_tab), getResources().getDrawable(R.drawable.ic_tab_stats));
|
||||||
tabsAdapter.addTab(statsTabSpec, StatsFragment.class, null);
|
tabsAdapter.addTab(statsTabSpec, StatsFragment.class, null);
|
||||||
@@ -469,7 +462,7 @@ public class TrackDetailActivity extends AbstractTrackActivity
|
|||||||
*/
|
*/
|
||||||
private void handleIntent(Intent intent) {
|
private void handleIntent(Intent intent) {
|
||||||
trackId = intent.getLongExtra(EXTRA_TRACK_ID, -1L);
|
trackId = intent.getLongExtra(EXTRA_TRACK_ID, -1L);
|
||||||
markerId = intent.getLongExtra(EXTRA_MARKER_ID, -1L);
|
long markerId = intent.getLongExtra(EXTRA_MARKER_ID, -1L);
|
||||||
if (markerId != -1L) {
|
if (markerId != -1L) {
|
||||||
// Use the trackId from the marker
|
// Use the trackId from the marker
|
||||||
Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
||||||
|
|||||||
@@ -16,16 +16,6 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
|
||||||
import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragment;
|
|
||||||
import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller;
|
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
|
||||||
import com.google.android.apps.mytracks.util.TrackIconUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.TrackUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
@@ -38,6 +28,16 @@ import android.widget.Button;
|
|||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
|
import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragment;
|
||||||
|
import com.google.android.apps.mytracks.fragments.ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller;
|
||||||
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||||
|
import com.google.android.apps.mytracks.util.TrackIconUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.TrackUtils;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity that let's the user see and edit the user editable track meta
|
* An activity that let's the user see and edit the user editable track meta
|
||||||
* data such as track name, activity type, and track description.
|
* data such as track name, activity type, and track description.
|
||||||
@@ -52,7 +52,6 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
|
|||||||
private static final String TAG = TrackEditActivity.class.getSimpleName();
|
private static final String TAG = TrackEditActivity.class.getSimpleName();
|
||||||
private static final String ICON_VALUE_KEY = "icon_value_key";
|
private static final String ICON_VALUE_KEY = "icon_value_key";
|
||||||
|
|
||||||
private Long trackId;
|
|
||||||
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
||||||
private MyTracksProviderUtils myTracksProviderUtils;
|
private MyTracksProviderUtils myTracksProviderUtils;
|
||||||
private Track track;
|
private Track track;
|
||||||
@@ -68,7 +67,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
|
|||||||
super.onCreate(bundle);
|
super.onCreate(bundle);
|
||||||
|
|
||||||
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
|
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
|
||||||
trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
|
Long trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
|
||||||
if (trackId == -1L) {
|
if (trackId == -1L) {
|
||||||
Log.e(TAG, "invalid trackId");
|
Log.e(TAG, "invalid trackId");
|
||||||
finish();
|
finish();
|
||||||
|
|||||||
@@ -162,8 +162,7 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType
|
|||||||
public void run() {
|
public void run() {
|
||||||
TrackListActivity.this.invalidateOptionsMenu();
|
TrackListActivity.this.invalidateOptionsMenu();
|
||||||
getSupportLoaderManager().restartLoader(0, null, loaderCallbacks);
|
getSupportLoaderManager().restartLoader(0, null, loaderCallbacks);
|
||||||
boolean isRecording = recordingTrackId
|
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
!= PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
|
||||||
trackController.update(isRecording, recordingTrackPaused);
|
trackController.update(isRecording, recordingTrackPaused);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
+2
-5
@@ -29,16 +29,13 @@ import android.database.sqlite.SQLiteException;
|
|||||||
import android.database.sqlite.SQLiteOpenHelper;
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
import android.database.sqlite.SQLiteQueryBuilder;
|
import android.database.sqlite.SQLiteQueryBuilder;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Binder;
|
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.os.Process;
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.util.FileUtils;
|
import com.google.android.apps.mytracks.util.FileUtils;
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
|
|||||||
+11
-12
@@ -604,8 +604,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils {
|
|||||||
String[] projection = new String[] { "count(*) AS count" };
|
String[] projection = new String[] { "count(*) AS count" };
|
||||||
String selection = WaypointsColumns.TRACKID + "=?";
|
String selection = WaypointsColumns.TRACKID + "=?";
|
||||||
String[] selectionArgs = new String[] { Long.toString(trackId) };
|
String[] selectionArgs = new String[] { Long.toString(trackId) };
|
||||||
Cursor cursor = contentResolver.query(
|
Cursor cursor = contentResolver.query(WaypointsColumns.CONTENT_URI, projection, selection, selectionArgs, WaypointsColumns._ID);
|
||||||
WaypointsColumns.CONTENT_URI, projection, selection, selectionArgs, WaypointsColumns._ID);
|
|
||||||
|
|
||||||
cursor.moveToFirst();
|
cursor.moveToFirst();
|
||||||
int count = cursor.getInt(0);
|
int count = cursor.getInt(0);
|
||||||
@@ -1079,17 +1078,17 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils {
|
|||||||
* A cache of track points indexes.
|
* A cache of track points indexes.
|
||||||
*/
|
*/
|
||||||
private static class CachedTrackPointsIndexes {
|
private static class CachedTrackPointsIndexes {
|
||||||
public final int idIndex;
|
final int idIndex;
|
||||||
public final int longitudeIndex;
|
final int longitudeIndex;
|
||||||
public final int latitudeIndex;
|
final int latitudeIndex;
|
||||||
public final int timeIndex;
|
final int timeIndex;
|
||||||
public final int altitudeIndex;
|
final int altitudeIndex;
|
||||||
public final int accuracyIndex;
|
final int accuracyIndex;
|
||||||
public final int speedIndex;
|
final int speedIndex;
|
||||||
public final int bearingIndex;
|
final int bearingIndex;
|
||||||
public final int sensorIndex;
|
final int sensorIndex;
|
||||||
|
|
||||||
public CachedTrackPointsIndexes(Cursor cursor) {
|
CachedTrackPointsIndexes(Cursor cursor) {
|
||||||
idIndex = cursor.getColumnIndex(TrackPointsColumns._ID);
|
idIndex = cursor.getColumnIndex(TrackPointsColumns._ID);
|
||||||
longitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LONGITUDE);
|
longitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LONGITUDE);
|
||||||
latitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LATITUDE);
|
latitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LATITUDE);
|
||||||
|
|||||||
+9
-40
@@ -16,11 +16,6 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.content;
|
package com.google.android.apps.mytracks.content;
|
||||||
|
|
||||||
import static com.google.android.apps.mytracks.content.ContentTypeIds.BLOB_TYPE_ID;
|
|
||||||
import static com.google.android.apps.mytracks.content.ContentTypeIds.FLOAT_TYPE_ID;
|
|
||||||
import static com.google.android.apps.mytracks.content.ContentTypeIds.INT_TYPE_ID;
|
|
||||||
import static com.google.android.apps.mytracks.content.ContentTypeIds.LONG_TYPE_ID;
|
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.BaseColumns;
|
import android.provider.BaseColumns;
|
||||||
|
|
||||||
@@ -38,15 +33,15 @@ public interface TrackPointsColumns extends BaseColumns {
|
|||||||
String DEFAULT_SORT_ORDER = "_id";
|
String DEFAULT_SORT_ORDER = "_id";
|
||||||
|
|
||||||
// Columns
|
// Columns
|
||||||
String TRACKID = "trackid"; // track id
|
String TRACKID = "trackid";
|
||||||
String LONGITUDE = "longitude"; // longitude
|
String LONGITUDE = "longitude";
|
||||||
String LATITUDE = "latitude"; // latitude
|
String LATITUDE = "latitude";
|
||||||
String TIME = "time"; // time
|
String TIME = "time";
|
||||||
String ALTITUDE = "elevation"; // altitude
|
String ALTITUDE = "elevation";
|
||||||
String ACCURACY = "accuracy"; // accuracy
|
String ACCURACY = "accuracy";
|
||||||
String SPEED = "speed"; // speed
|
String SPEED = "speed";
|
||||||
String BEARING = "bearing"; // bearing
|
String BEARING = "bearing";
|
||||||
String SENSOR = "sensor"; // sensor
|
String SENSOR = "sensor";
|
||||||
|
|
||||||
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ("
|
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ("
|
||||||
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||||
@@ -60,30 +55,4 @@ public interface TrackPointsColumns extends BaseColumns {
|
|||||||
+ BEARING + " FLOAT, "
|
+ BEARING + " FLOAT, "
|
||||||
+ SENSOR + " BLOB"
|
+ SENSOR + " BLOB"
|
||||||
+ ");";
|
+ ");";
|
||||||
|
|
||||||
String[] COLUMNS = {
|
|
||||||
_ID,
|
|
||||||
TRACKID,
|
|
||||||
LONGITUDE,
|
|
||||||
LATITUDE,
|
|
||||||
TIME,
|
|
||||||
ALTITUDE,
|
|
||||||
ACCURACY,
|
|
||||||
SPEED,
|
|
||||||
BEARING,
|
|
||||||
SENSOR
|
|
||||||
};
|
|
||||||
|
|
||||||
byte[] COLUMN_TYPES = {
|
|
||||||
LONG_TYPE_ID, // id
|
|
||||||
LONG_TYPE_ID, // track id
|
|
||||||
INT_TYPE_ID, // longitude
|
|
||||||
INT_TYPE_ID, // latitude
|
|
||||||
LONG_TYPE_ID, // time
|
|
||||||
FLOAT_TYPE_ID, // altitude
|
|
||||||
FLOAT_TYPE_ID, // accuracy
|
|
||||||
FLOAT_TYPE_ID, // speed
|
|
||||||
FLOAT_TYPE_ID, // bearing
|
|
||||||
BLOB_TYPE_ID // sensor
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-12
@@ -16,6 +16,12 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.io.file.exporter;
|
package com.google.android.apps.mytracks.io.file.exporter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.os.AsyncTask;
|
||||||
|
import android.os.PowerManager.WakeLock;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.TracksColumns;
|
import com.google.android.apps.mytracks.content.TracksColumns;
|
||||||
@@ -25,12 +31,6 @@ import com.google.android.apps.mytracks.util.PreferencesUtils;
|
|||||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.database.Cursor;
|
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.os.PowerManager.WakeLock;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@@ -54,7 +54,6 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
|||||||
private final MyTracksProviderUtils myTracksProviderUtils;
|
private final MyTracksProviderUtils myTracksProviderUtils;
|
||||||
|
|
||||||
private WakeLock wakeLock;
|
private WakeLock wakeLock;
|
||||||
private TrackExporter trackExporter;
|
|
||||||
|
|
||||||
// true if the AsyncTask has completed
|
// true if the AsyncTask has completed
|
||||||
private boolean completed;
|
private boolean completed;
|
||||||
@@ -78,8 +77,7 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
|||||||
* @param playTrack true to play track
|
* @param playTrack true to play track
|
||||||
* @param directory the directory to write the file
|
* @param directory the directory to write the file
|
||||||
*/
|
*/
|
||||||
public SaveAsyncTask(SaveActivity saveActivity, long[] trackIds, TrackFileFormat trackFileFormat,
|
public SaveAsyncTask(SaveActivity saveActivity, long[] trackIds, TrackFileFormat trackFileFormat, boolean playTrack, File directory) {
|
||||||
boolean playTrack, File directory) {
|
|
||||||
this.saveActivity = saveActivity;
|
this.saveActivity = saveActivity;
|
||||||
this.trackIds = trackIds;
|
this.trackIds = trackIds;
|
||||||
this.trackFileFormat = trackFileFormat;
|
this.trackFileFormat = trackFileFormat;
|
||||||
@@ -203,9 +201,7 @@ public class SaveAsyncTask extends AsyncTask<Void, Integer, Boolean> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
trackExporter = useKmz ? new KmzTrackExporter(
|
TrackExporter trackExporter = useKmz ? new KmzTrackExporter(myTracksProviderUtils, fileTrackExporter, tracks, context) : fileTrackExporter;
|
||||||
myTracksProviderUtils, fileTrackExporter, tracks, context)
|
|
||||||
: fileTrackExporter;
|
|
||||||
|
|
||||||
String fileName = FileUtils.buildUniqueFileName(directory, track.getName(), extension);
|
String fileName = FileUtils.buildUniqueFileName(directory, track.getName(), extension);
|
||||||
File file = new File(directory, fileName);
|
File file = new File(directory, fileName);
|
||||||
|
|||||||
+11
-12
@@ -16,13 +16,6 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.io.file.importer;
|
package com.google.android.apps.mytracks.io.file.importer;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.TrackDetailActivity;
|
|
||||||
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
|
|
||||||
import com.google.android.apps.mytracks.util.DialogUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.FileUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@@ -31,10 +24,18 @@ import android.content.DialogInterface;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.core.app.TaskStackBuilder;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.core.app.TaskStackBuilder;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.TrackDetailActivity;
|
||||||
|
import com.google.android.apps.mytracks.io.file.TrackFileFormat;
|
||||||
|
import com.google.android.apps.mytracks.util.DialogUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.FileUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -56,7 +57,6 @@ public class ImportActivity extends Activity {
|
|||||||
private ProgressDialog progressDialog;
|
private ProgressDialog progressDialog;
|
||||||
|
|
||||||
private boolean importAll;
|
private boolean importAll;
|
||||||
private TrackFileFormat trackFileFormat;
|
|
||||||
|
|
||||||
// the path on the external storage to import
|
// the path on the external storage to import
|
||||||
private String directoryDisplayName;
|
private String directoryDisplayName;
|
||||||
@@ -76,7 +76,7 @@ public class ImportActivity extends Activity {
|
|||||||
|
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
importAll = intent.getBooleanExtra(EXTRA_IMPORT_ALL, false);
|
importAll = intent.getBooleanExtra(EXTRA_IMPORT_ALL, false);
|
||||||
trackFileFormat = intent.getParcelableExtra(EXTRA_TRACK_FILE_FORMAT);
|
TrackFileFormat trackFileFormat = intent.getParcelableExtra(EXTRA_TRACK_FILE_FORMAT);
|
||||||
if (trackFileFormat == null) {
|
if (trackFileFormat == null) {
|
||||||
trackFileFormat = TrackFileFormat.GPX;
|
trackFileFormat = TrackFileFormat.GPX;
|
||||||
}
|
}
|
||||||
@@ -88,8 +88,7 @@ public class ImportActivity extends Activity {
|
|||||||
}
|
}
|
||||||
String directoryPath;
|
String directoryPath;
|
||||||
if (importAll) {
|
if (importAll) {
|
||||||
directoryDisplayName = FileUtils.getPathDisplayName(
|
directoryDisplayName = FileUtils.getPathDisplayName(trackFileFormat.getExtension());
|
||||||
trackFileFormat.getExtension());
|
|
||||||
directoryPath = FileUtils.getPath(trackFileFormat.getExtension());
|
directoryPath = FileUtils.getPath(trackFileFormat.getExtension());
|
||||||
if (!FileUtils.isDirectory(new File(directoryPath))) {
|
if (!FileUtils.isDirectory(new File(directoryPath))) {
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
|
|||||||
+4
-9
@@ -152,11 +152,8 @@ public class TrackRecordingService extends Service {
|
|||||||
recordingTrackId = trackId;
|
recordingTrackId = trackId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(
|
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.recording_track_paused_key))) {
|
||||||
PreferencesUtils.getKey(context, R.string.recording_track_paused_key))) {
|
recordingTrackPaused = PreferencesUtils.getBoolean(context, R.string.recording_track_paused_key, PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
||||||
recordingTrackPaused = PreferencesUtils.getBoolean(context,
|
|
||||||
R.string.recording_track_paused_key,
|
|
||||||
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.stats_units_key))) {
|
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.stats_units_key))) {
|
||||||
boolean metricUnits = PreferencesUtils.isMetricUnits(context);
|
boolean metricUnits = PreferencesUtils.isMetricUnits(context);
|
||||||
@@ -164,12 +161,10 @@ public class TrackRecordingService extends Service {
|
|||||||
splitExecutor.setMetricUnits(metricUnits);
|
splitExecutor.setMetricUnits(metricUnits);
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.voice_frequency_key))) {
|
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.voice_frequency_key))) {
|
||||||
voiceExecutor.setTaskFrequency(PreferencesUtils.getInt(
|
voiceExecutor.setTaskFrequency(PreferencesUtils.getInt(context, R.string.voice_frequency_key, PreferencesUtils.VOICE_FREQUENCY_DEFAULT));
|
||||||
context, R.string.voice_frequency_key, PreferencesUtils.VOICE_FREQUENCY_DEFAULT));
|
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.split_frequency_key))) {
|
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.split_frequency_key))) {
|
||||||
splitExecutor.setTaskFrequency(PreferencesUtils.getInt(
|
splitExecutor.setTaskFrequency(PreferencesUtils.getInt(context, R.string.split_frequency_key, PreferencesUtils.SPLIT_FREQUENCY_DEFAULT));
|
||||||
context, R.string.split_frequency_key, PreferencesUtils.SPLIT_FREQUENCY_DEFAULT));
|
|
||||||
}
|
}
|
||||||
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.min_recording_interval_key))) {
|
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.min_recording_interval_key))) {
|
||||||
int minRecordingInterval = PreferencesUtils.getInt(context, R.string.min_recording_interval_key, PreferencesUtils.MIN_RECORDING_INTERVAL_DEFAULT);
|
int minRecordingInterval = PreferencesUtils.getInt(context, R.string.min_recording_interval_key, PreferencesUtils.MIN_RECORDING_INTERVAL_DEFAULT);
|
||||||
|
|||||||
@@ -16,14 +16,11 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.util;
|
package com.google.android.apps.mytracks.util;
|
||||||
|
|
||||||
import com.google.android.maps.mytracks.R;
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.graphics.ColorMatrixColorFilter;
|
import android.graphics.ColorMatrixColorFilter;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -32,6 +29,10 @@ import android.widget.ArrayAdapter;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -184,7 +185,7 @@ public class TrackIconUtils {
|
|||||||
@Override
|
@Override
|
||||||
public View getView(int position, View convertView, @NonNull android.view.ViewGroup parent) {
|
public View getView(int position, View convertView, @NonNull android.view.ViewGroup parent) {
|
||||||
ImageView imageView = convertView != null ? (ImageView) convertView : new ImageView(getContext());
|
ImageView imageView = convertView != null ? (ImageView) convertView : new ImageView(getContext());
|
||||||
Bitmap source = BitmapFactory.decodeResource(context.getResources(), TrackIconUtils.getIconDrawable(getItem(position).toString()));
|
Bitmap source = BitmapFactory.decodeResource(context.getResources(), TrackIconUtils.getIconDrawable(getItem(position) + ""));
|
||||||
imageView.setImageBitmap(source);
|
imageView.setImageBitmap(source);
|
||||||
imageView.setPadding(4, 4, -4, -4);
|
imageView.setPadding(4, 4, -4, -4);
|
||||||
return imageView;
|
return imageView;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
<paths>
|
||||||
<external-path
|
<external-path
|
||||||
name="mytracks_pictures"
|
name="mytracks_pictures"
|
||||||
path="/" />
|
path="/" />
|
||||||
|
|||||||
Reference in New Issue
Block a user