diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/ChartView.java b/myTracks/src/main/java/com/google/android/apps/mytracks/ChartView.java index 0127a8934..1cdd105fd 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/ChartView.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/ChartView.java @@ -27,13 +27,14 @@ import android.graphics.Paint.Style; import android.graphics.Path; import android.graphics.Rect; import android.graphics.drawable.Drawable; -import androidx.annotation.VisibleForTesting; import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.widget.Scroller; +import androidx.annotation.VisibleForTesting; + import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.stats.ExtremityMonitor; import com.google.android.apps.mytracks.util.IntentUtils; @@ -90,11 +91,8 @@ public class ChartView extends View { private final Paint axisPaint; private final Paint xAxisMarkerPaint; private final Paint gridPaint; - private final Paint markerPaint; private final Drawable pointer; - private final Drawable statisticsMarker; - private final Drawable waypointMarker; private final int markerWidth; private final int markerHeight; @@ -194,7 +192,7 @@ public class ChartView extends View { gridPaint.setAntiAlias(false); gridPaint.setPathEffect(new DashPathEffect(new float[] { 3, 2 }, 0)); - markerPaint = new Paint(); + Paint markerPaint = new Paint(); markerPaint.setStyle(Style.STROKE); markerPaint.setColor(context.getResources().getColor(android.R.color.darker_gray)); markerPaint.setAntiAlias(false); @@ -202,12 +200,12 @@ public class ChartView extends View { pointer = context.getResources().getDrawable(R.drawable.ic_arrow_180); 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(); markerHeight = statisticsMarker.getIntrinsicHeight(); 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); scroller = new Scroller(context); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerDetailActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerDetailActivity.java index a64deca22..b14082e41 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerDetailActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/MarkerDetailActivity.java @@ -16,20 +16,21 @@ 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.Waypoint; import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller; import com.google.android.apps.mytracks.fragments.MarkerDetailFragment; 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; /** @@ -42,7 +43,6 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark public static final String EXTRA_MARKER_ID = "marker_id"; private static final String TAG = MarkerDetailActivity.class.getSimpleName(); - private Waypoint waypoint; private ArrayList markerIds; @Override @@ -57,7 +57,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark } MyTracksProviderUtils myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this); - waypoint = myTracksProviderUtils.getWaypoint(markerId); + Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId); markerIds = new ArrayList<>(); int markerIndex = -1; diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/SearchListActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/SearchListActivity.java index 52a7ff87d..c440d4ec8 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/SearchListActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/SearchListActivity.java @@ -16,37 +16,12 @@ 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.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -import android.location.Location; -import android.location.LocationListener; import android.os.Bundle; -import android.os.Looper; import android.provider.SearchRecentSuggestions; import android.util.Log; import android.view.ContextMenu; @@ -61,6 +36,27 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; 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.Collection; import java.util.HashMap; @@ -171,9 +167,6 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT; - // UI elements - private ListView listView; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -185,27 +178,7 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM searchEngine = new SearchEngine(myTracksProviderUtils); searchRecentSuggestions = SearchEngineProvider.newHelper(this); - listView = findViewById(R.id.search_list); - 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 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>( - this, R.layout.list_item, R.id.list_item_name) { + arrayAdapter = new ArrayAdapter>(this, R.layout.list_item, R.id.list_item_name) { @Override public View getView(int position, View convertView, android.view.ViewGroup parent) { View view; @@ -234,7 +207,27 @@ public class SearchListActivity extends AbstractTrackActivity implements DeleteM return view; } }; + // UI elements + ListView listView = findViewById(R.id.search_list); 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 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); handleIntent(getIntent()); } diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackDetailActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackDetailActivity.java index 54bd63ffe..7a4b83f1c 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -16,6 +16,31 @@ 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.Track; 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.ConfirmDeleteDialogFragment; 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.io.file.TrackFileFormat; 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.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.text.SimpleDateFormat; import java.util.Date; @@ -102,13 +99,10 @@ public class TrackDetailActivity extends AbstractTrackActivity private TrackRecordingServiceConnection trackRecordingServiceConnection; private TrackDataHub trackDataHub; private TabHost tabHost; - private ViewPager viewPager; - private TabsAdapter tabsAdapter; private TrackController trackController; // From intent private long trackId; - private long markerId; // Preferences private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; @@ -216,9 +210,8 @@ public class TrackDetailActivity extends AbstractTrackActivity tabHost = findViewById(android.R.id.tabhost); tabHost.setup(); - viewPager = findViewById(R.id.pager); - - tabsAdapter = new TabsAdapter(this, tabHost, viewPager); + ViewPager viewPager = findViewById(R.id.pager); + TabsAdapter 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)); tabsAdapter.addTab(statsTabSpec, StatsFragment.class, null); @@ -469,7 +462,7 @@ public class TrackDetailActivity extends AbstractTrackActivity */ private void handleIntent(Intent intent) { 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) { // Use the trackId from the marker Waypoint waypoint = myTracksProviderUtils.getWaypoint(markerId); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackEditActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackEditActivity.java index b348b7e49..a607fd7fb 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackEditActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackEditActivity.java @@ -16,16 +16,6 @@ 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.util.Log; import android.view.KeyEvent; @@ -38,6 +28,16 @@ import android.widget.Button; import android.widget.EditText; 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 * 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 ICON_VALUE_KEY = "icon_value_key"; - private Long trackId; private TrackRecordingServiceConnection trackRecordingServiceConnection; private MyTracksProviderUtils myTracksProviderUtils; private Track track; @@ -68,7 +67,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit super.onCreate(bundle); trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null); - trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); + Long trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L); if (trackId == -1L) { Log.e(TAG, "invalid trackId"); finish(); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java index 552e918cb..1f8efaaab 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/TrackListActivity.java @@ -162,8 +162,7 @@ public class TrackListActivity extends AbstractTrackActivity implements FileType public void run() { TrackListActivity.this.invalidateOptionsMenu(); getSupportLoaderManager().restartLoader(0, null, loaderCallbacks); - boolean isRecording = recordingTrackId - != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; + boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; trackController.update(isRecording, recordingTrackPaused); } }); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java b/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java index 521f32fe1..1a1e75146 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProvider.java @@ -29,16 +29,13 @@ import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; -import android.os.Binder; import android.os.ParcelFileDescriptor; -import android.os.Process; -import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.VisibleForTesting; + 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.FileNotFoundException; diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java b/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java index b7a4c2e12..bd6f99894 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java @@ -604,8 +604,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { String[] projection = new String[] { "count(*) AS count" }; String selection = WaypointsColumns.TRACKID + "=?"; String[] selectionArgs = new String[] { Long.toString(trackId) }; - Cursor cursor = contentResolver.query( - WaypointsColumns.CONTENT_URI, projection, selection, selectionArgs, WaypointsColumns._ID); + Cursor cursor = contentResolver.query(WaypointsColumns.CONTENT_URI, projection, selection, selectionArgs, WaypointsColumns._ID); cursor.moveToFirst(); int count = cursor.getInt(0); @@ -1079,17 +1078,17 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { * A cache of track points indexes. */ private static class CachedTrackPointsIndexes { - public final int idIndex; - public final int longitudeIndex; - public final int latitudeIndex; - public final int timeIndex; - public final int altitudeIndex; - public final int accuracyIndex; - public final int speedIndex; - public final int bearingIndex; - public final int sensorIndex; + final int idIndex; + final int longitudeIndex; + final int latitudeIndex; + final int timeIndex; + final int altitudeIndex; + final int accuracyIndex; + final int speedIndex; + final int bearingIndex; + final int sensorIndex; - public CachedTrackPointsIndexes(Cursor cursor) { + CachedTrackPointsIndexes(Cursor cursor) { idIndex = cursor.getColumnIndex(TrackPointsColumns._ID); longitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LONGITUDE); latitudeIndex = cursor.getColumnIndexOrThrow(TrackPointsColumns.LATITUDE); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/content/TrackPointsColumns.java b/myTracks/src/main/java/com/google/android/apps/mytracks/content/TrackPointsColumns.java index 7f3a273a2..95322e639 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/content/TrackPointsColumns.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/content/TrackPointsColumns.java @@ -16,11 +16,6 @@ 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.provider.BaseColumns; @@ -38,15 +33,15 @@ public interface TrackPointsColumns extends BaseColumns { String DEFAULT_SORT_ORDER = "_id"; // Columns - String TRACKID = "trackid"; // track id - String LONGITUDE = "longitude"; // longitude - String LATITUDE = "latitude"; // latitude - String TIME = "time"; // time - String ALTITUDE = "elevation"; // altitude - String ACCURACY = "accuracy"; // accuracy - String SPEED = "speed"; // speed - String BEARING = "bearing"; // bearing - String SENSOR = "sensor"; // sensor + String TRACKID = "trackid"; + String LONGITUDE = "longitude"; + String LATITUDE = "latitude"; + String TIME = "time"; + String ALTITUDE = "elevation"; + String ACCURACY = "accuracy"; + String SPEED = "speed"; + String BEARING = "bearing"; + String SENSOR = "sensor"; String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " @@ -60,30 +55,4 @@ public interface TrackPointsColumns extends BaseColumns { + BEARING + " FLOAT, " + 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 - }; } diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/exporter/SaveAsyncTask.java b/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/exporter/SaveAsyncTask.java index ca3e43311..ca6b7c95b 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/exporter/SaveAsyncTask.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/exporter/SaveAsyncTask.java @@ -16,6 +16,12 @@ 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.Track; 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.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.FileNotFoundException; import java.io.FileOutputStream; @@ -54,7 +54,6 @@ public class SaveAsyncTask extends AsyncTask { private final MyTracksProviderUtils myTracksProviderUtils; private WakeLock wakeLock; - private TrackExporter trackExporter; // true if the AsyncTask has completed private boolean completed; @@ -78,8 +77,7 @@ public class SaveAsyncTask extends AsyncTask { * @param playTrack true to play track * @param directory the directory to write the file */ - public SaveAsyncTask(SaveActivity saveActivity, long[] trackIds, TrackFileFormat trackFileFormat, - boolean playTrack, File directory) { + public SaveAsyncTask(SaveActivity saveActivity, long[] trackIds, TrackFileFormat trackFileFormat, boolean playTrack, File directory) { this.saveActivity = saveActivity; this.trackIds = trackIds; this.trackFileFormat = trackFileFormat; @@ -203,9 +201,7 @@ public class SaveAsyncTask extends AsyncTask { } }); - trackExporter = useKmz ? new KmzTrackExporter( - myTracksProviderUtils, fileTrackExporter, tracks, context) - : fileTrackExporter; + TrackExporter trackExporter = useKmz ? new KmzTrackExporter(myTracksProviderUtils, fileTrackExporter, tracks, context) : fileTrackExporter; String fileName = FileUtils.buildUniqueFileName(directory, track.getName(), extension); File file = new File(directory, fileName); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/importer/ImportActivity.java b/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/importer/ImportActivity.java index 4e280ead5..edf878200 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/importer/ImportActivity.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/io/file/importer/ImportActivity.java @@ -16,13 +16,6 @@ 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.AlertDialog; import android.app.Dialog; @@ -31,10 +24,18 @@ import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import androidx.core.app.TaskStackBuilder; import android.util.Log; 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; /** @@ -56,7 +57,6 @@ public class ImportActivity extends Activity { private ProgressDialog progressDialog; private boolean importAll; - private TrackFileFormat trackFileFormat; // the path on the external storage to import private String directoryDisplayName; @@ -76,7 +76,7 @@ public class ImportActivity extends Activity { Intent intent = getIntent(); 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) { trackFileFormat = TrackFileFormat.GPX; } @@ -88,8 +88,7 @@ public class ImportActivity extends Activity { } String directoryPath; if (importAll) { - directoryDisplayName = FileUtils.getPathDisplayName( - trackFileFormat.getExtension()); + directoryDisplayName = FileUtils.getPathDisplayName(trackFileFormat.getExtension()); directoryPath = FileUtils.getPath(trackFileFormat.getExtension()); if (!FileUtils.isDirectory(new File(directoryPath))) { Toast.makeText( diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java b/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java index 2d371b324..24bded4e6 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -152,11 +152,8 @@ public class TrackRecordingService extends Service { recordingTrackId = trackId; } } - if (key == null || key.equals( - PreferencesUtils.getKey(context, R.string.recording_track_paused_key))) { - 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.recording_track_paused_key))) { + 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))) { boolean metricUnits = PreferencesUtils.isMetricUnits(context); @@ -164,12 +161,10 @@ public class TrackRecordingService extends Service { splitExecutor.setMetricUnits(metricUnits); } if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.voice_frequency_key))) { - voiceExecutor.setTaskFrequency(PreferencesUtils.getInt( - context, R.string.voice_frequency_key, PreferencesUtils.VOICE_FREQUENCY_DEFAULT)); + voiceExecutor.setTaskFrequency(PreferencesUtils.getInt(context, R.string.voice_frequency_key, PreferencesUtils.VOICE_FREQUENCY_DEFAULT)); } if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.split_frequency_key))) { - splitExecutor.setTaskFrequency(PreferencesUtils.getInt( - context, R.string.split_frequency_key, PreferencesUtils.SPLIT_FREQUENCY_DEFAULT)); + splitExecutor.setTaskFrequency(PreferencesUtils.getInt(context, R.string.split_frequency_key, PreferencesUtils.SPLIT_FREQUENCY_DEFAULT)); } 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); diff --git a/myTracks/src/main/java/com/google/android/apps/mytracks/util/TrackIconUtils.java b/myTracks/src/main/java/com/google/android/apps/mytracks/util/TrackIconUtils.java index 02169fe01..ea39f54f9 100644 --- a/myTracks/src/main/java/com/google/android/apps/mytracks/util/TrackIconUtils.java +++ b/myTracks/src/main/java/com/google/android/apps/mytracks/util/TrackIconUtils.java @@ -16,14 +16,11 @@ package com.google.android.apps.mytracks.util; -import com.google.android.maps.mytracks.R; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.ColorMatrixColorFilter; import android.graphics.drawable.Drawable; -import androidx.annotation.NonNull; import android.util.Pair; import android.view.Menu; import android.view.MenuItem; @@ -32,6 +29,10 @@ import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.Spinner; +import androidx.annotation.NonNull; + +import com.google.android.maps.mytracks.R; + import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -184,7 +185,7 @@ public class TrackIconUtils { @Override public View getView(int position, View convertView, @NonNull android.view.ViewGroup parent) { 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.setPadding(4, 4, -4, -4); return imageView; diff --git a/myTracks/src/main/res/xml/file_paths.xml b/myTracks/src/main/res/xml/file_paths.xml index 65aa363eb..61facbb9e 100644 --- a/myTracks/src/main/res/xml/file_paths.xml +++ b/myTracks/src/main/res/xml/file_paths.xml @@ -1,5 +1,5 @@ - +