forked from upstream-mirrors/OpenTracks
StatisticsRecordedFragment doesn't need TrackDataHub.
TrackRecordedActivity saves Track object instead of track's id.
This commit is contained in:
@@ -65,8 +65,7 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
private TrackDataHub trackDataHub;
|
private TrackDataHub trackDataHub;
|
||||||
private ViewPager pager;
|
private ViewPager pager;
|
||||||
|
|
||||||
// From intent.
|
private Track track;
|
||||||
private Track.Id trackId;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -88,7 +87,7 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
switch (position) {
|
switch (position) {
|
||||||
case 0:
|
case 0:
|
||||||
return new StatisticsRecordedFragment();
|
return StatisticsRecordedFragment.newInstance(track.getId());
|
||||||
case 1:
|
case 1:
|
||||||
return ChartFragment.newInstance(false);
|
return ChartFragment.newInstance(false);
|
||||||
case 2:
|
case 2:
|
||||||
@@ -133,8 +132,8 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
// Update UI
|
// Update UI
|
||||||
this.invalidateOptionsMenu();
|
this.invalidateOptionsMenu();
|
||||||
|
|
||||||
if (trackId.isValid()) {
|
if (track != null) {
|
||||||
trackDataHub.loadTrack(trackId);
|
trackDataHub.loadTrack(track.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +171,6 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||||
menu.findItem(R.id.track_detail_markers).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
menu.findItem(R.id.track_detail_markers).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
|
||||||
menu.findItem(R.id.track_detail_resume_track).setVisible(!PreferencesUtils.isRecording(this));
|
menu.findItem(R.id.track_detail_resume_track).setVisible(!PreferencesUtils.isRecording(this));
|
||||||
Track track = contentProviderUtils.getTrack(trackId);
|
|
||||||
setTitle(track != null ? track.getName() : "");
|
setTitle(track != null ? track.getName() : "");
|
||||||
return super.onPrepareOptionsMenu(menu);
|
return super.onPrepareOptionsMenu(menu);
|
||||||
}
|
}
|
||||||
@@ -182,29 +180,29 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
Intent intent;
|
Intent intent;
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.track_detail_share:
|
case R.id.track_detail_share:
|
||||||
intent = IntentUtils.newShareFileIntent(this, trackId);
|
intent = IntentUtils.newShareFileIntent(this, track.getId());
|
||||||
intent = Intent.createChooser(intent, null);
|
intent = Intent.createChooser(intent, null);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_menu_show_on_map:
|
case R.id.track_detail_menu_show_on_map:
|
||||||
IntentDashboardUtils.startDashboard(this, false, trackId);
|
IntentDashboardUtils.startDashboard(this, false, track.getId());
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_markers:
|
case R.id.track_detail_markers:
|
||||||
intent = IntentUtils.newIntent(this, MarkerListActivity.class)
|
intent = IntentUtils.newIntent(this, MarkerListActivity.class)
|
||||||
.putExtra(MarkerListActivity.EXTRA_TRACK_ID, trackId);
|
.putExtra(MarkerListActivity.EXTRA_TRACK_ID, track.getId());
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_edit:
|
case R.id.track_detail_edit:
|
||||||
intent = IntentUtils.newIntent(this, TrackEditActivity.class)
|
intent = IntentUtils.newIntent(this, TrackEditActivity.class)
|
||||||
.putExtra(TrackEditActivity.EXTRA_TRACK_ID, trackId);
|
.putExtra(TrackEditActivity.EXTRA_TRACK_ID, track.getId());
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_delete:
|
case R.id.track_detail_delete:
|
||||||
deleteTracks(trackId);
|
deleteTracks(track.getId());
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_resume_track:
|
case R.id.track_detail_resume_track:
|
||||||
Intent newIntent = IntentUtils.newIntent(TrackRecordedActivity.this, TrackRecordingActivity.class)
|
Intent newIntent = IntentUtils.newIntent(TrackRecordedActivity.this, TrackRecordingActivity.class)
|
||||||
.putExtra(TrackRecordingActivity.EXTRA_TRACK_ID, trackId);
|
.putExtra(TrackRecordingActivity.EXTRA_TRACK_ID, track.getId());
|
||||||
startActivity(newIntent);
|
startActivity(newIntent);
|
||||||
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
|
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
|
||||||
finish();
|
finish();
|
||||||
@@ -238,7 +236,7 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handleIntent(Intent intent) {
|
private void handleIntent(Intent intent) {
|
||||||
trackId = intent.getParcelableExtra(EXTRA_TRACK_ID);
|
Track.Id trackId = intent.getParcelableExtra(EXTRA_TRACK_ID);
|
||||||
|
|
||||||
Waypoint.Id waypointId = intent.getParcelableExtra(EXTRA_MARKER_ID);
|
Waypoint.Id waypointId = intent.getParcelableExtra(EXTRA_MARKER_ID);
|
||||||
if (waypointId != null) {
|
if (waypointId != null) {
|
||||||
@@ -255,6 +253,8 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
Log.e(TAG, "TrackDetailActivity needs EXTRA_TRACK_ID.");
|
Log.e(TAG, "TrackDetailActivity needs EXTRA_TRACK_ID.");
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
track = contentProviderUtils.getTrack(trackId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void chooseActivityType(String category) {
|
public void chooseActivityType(String category) {
|
||||||
@@ -263,7 +263,6 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChooseActivityTypeDone(String iconValue) {
|
public void onChooseActivityTypeDone(String iconValue) {
|
||||||
Track track = contentProviderUtils.getTrack(trackId);
|
|
||||||
String category = getString(TrackIconUtils.getIconActivityType(iconValue));
|
String category = getString(TrackIconUtils.getIconActivityType(iconValue));
|
||||||
TrackUtils.updateTrack(this, track, null, category, null, contentProviderUtils);
|
TrackUtils.updateTrack(this, track, null, category, null, contentProviderUtils);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,11 +33,8 @@ import androidx.fragment.app.Fragment;
|
|||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.TrackRecordedActivity;
|
import de.dennisguse.opentracks.TrackRecordedActivity;
|
||||||
import de.dennisguse.opentracks.content.TrackDataHub;
|
|
||||||
import de.dennisguse.opentracks.content.TrackDataListener;
|
|
||||||
import de.dennisguse.opentracks.content.data.Track;
|
import de.dennisguse.opentracks.content.data.Track;
|
||||||
import de.dennisguse.opentracks.content.data.TrackPoint;
|
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
|
||||||
import de.dennisguse.opentracks.content.data.Waypoint;
|
|
||||||
import de.dennisguse.opentracks.stats.TrackStatistics;
|
import de.dennisguse.opentracks.stats.TrackStatistics;
|
||||||
import de.dennisguse.opentracks.util.PreferencesUtils;
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.util.StringUtils;
|
import de.dennisguse.opentracks.util.StringUtils;
|
||||||
@@ -49,10 +46,13 @@ import de.dennisguse.opentracks.util.TrackIconUtils;
|
|||||||
* @author Sandor Dornbush
|
* @author Sandor Dornbush
|
||||||
* @author Rodrigo Damazio
|
* @author Rodrigo Damazio
|
||||||
*/
|
*/
|
||||||
public class StatisticsRecordedFragment extends Fragment implements TrackDataListener {
|
public class StatisticsRecordedFragment extends Fragment {
|
||||||
|
|
||||||
|
private static final String TRACK_ID_KEY = "trackId";
|
||||||
|
|
||||||
private TrackStatistics trackStatistics = null;
|
private TrackStatistics trackStatistics = null;
|
||||||
private String category = "";
|
private String category = "";
|
||||||
|
private Track track;
|
||||||
|
|
||||||
private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = (preferences, key) -> {
|
private final SharedPreferences.OnSharedPreferenceChangeListener sharedPreferenceChangeListener = (preferences, key) -> {
|
||||||
if (PreferencesUtils.isKey(getContext(), R.string.stats_units_key, key) || PreferencesUtils.isKey(getContext(), R.string.stats_rate_key, key)) {
|
if (PreferencesUtils.isKey(getContext(), R.string.stats_units_key, key) || PreferencesUtils.isKey(getContext(), R.string.stats_rate_key, key)) {
|
||||||
@@ -88,6 +88,24 @@ public class StatisticsRecordedFragment extends Fragment implements TrackDataLis
|
|||||||
private TextView speedMovingValue;
|
private TextView speedMovingValue;
|
||||||
private TextView speedMovingUnit;
|
private TextView speedMovingUnit;
|
||||||
|
|
||||||
|
public static StatisticsRecordedFragment newInstance(Track.Id trackId) {
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putParcelable(TRACK_ID_KEY, trackId);
|
||||||
|
|
||||||
|
StatisticsRecordedFragment fragment = new StatisticsRecordedFragment();
|
||||||
|
fragment.setArguments(bundle);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
Track.Id trackId = getArguments().getParcelable(TRACK_ID_KEY);
|
||||||
|
ContentProviderUtils contentProviderUtils = new ContentProviderUtils(getContext());
|
||||||
|
track = contentProviderUtils.getTrack(trackId);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
@@ -140,17 +158,13 @@ public class StatisticsRecordedFragment extends Fragment implements TrackDataLis
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
PreferencesUtils.register(getContext(), sharedPreferenceChangeListener);
|
PreferencesUtils.register(getContext(), sharedPreferenceChangeListener);
|
||||||
|
|
||||||
TrackDataHub trackDataHub = ((TrackRecordedActivity) getActivity()).getTrackDataHub();
|
loadStatistics();
|
||||||
trackDataHub.registerTrackDataListener(this, true, false, true, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
PreferencesUtils.unregister(getContext(), sharedPreferenceChangeListener);
|
PreferencesUtils.unregister(getContext(), sharedPreferenceChangeListener);
|
||||||
|
|
||||||
TrackDataHub trackDataHub = ((TrackRecordedActivity) getActivity()).getTrackDataHub();
|
|
||||||
trackDataHub.unregisterTrackDataListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -180,8 +194,7 @@ public class StatisticsRecordedFragment extends Fragment implements TrackDataLis
|
|||||||
speedMovingUnit = null;
|
speedMovingUnit = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public void loadStatistics() {
|
||||||
public void onTrackUpdated(final Track track) {
|
|
||||||
if (isResumed()) {
|
if (isResumed()) {
|
||||||
getActivity().runOnUiThread(() -> {
|
getActivity().runOnUiThread(() -> {
|
||||||
if (isResumed()) {
|
if (isResumed()) {
|
||||||
@@ -193,41 +206,6 @@ public class StatisticsRecordedFragment extends Fragment implements TrackDataLis
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clearTrackPoints() {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSampledInTrackPoint(TrackPoint trackPoint) {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSampledOutTrackPoint(TrackPoint trackPoint) {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNewTrackPointsDone() {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void clearWaypoints() {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNewWaypoint(Waypoint wpt) {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNewWaypointsDone() {
|
|
||||||
// We don't care.
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateUI() {
|
private void updateUI() {
|
||||||
String trackIconValue = TrackIconUtils.getIconValue(getContext(), category);
|
String trackIconValue = TrackIconUtils.getIconValue(getContext(), category);
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
style="@style/StatsScrollView">
|
style="@style/StatsScrollView">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/root_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
@@ -209,5 +210,14 @@
|
|||||||
app:layout_constraintRight_toLeftOf="@+id/guideline3"
|
app:layout_constraintRight_toLeftOf="@+id/guideline3"
|
||||||
tools:text="km/h" />
|
tools:text="km/h" />
|
||||||
|
|
||||||
|
<!-- Horizontal line -->
|
||||||
|
<View
|
||||||
|
android:id="@+id/stats_speed_horizontal_end_line"
|
||||||
|
style="@style/StatsHorizontalLine"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
app:layout_constraintLeft_toRightOf="@+id/guideline"
|
||||||
|
app:layout_constraintRight_toLeftOf="@+id/guideline3"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/stats_max_speed_value" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
Reference in New Issue
Block a user