Bugfix: resume functionality was not starting recording.

Introduced in 9d64989ef1
This commit is contained in:
Dennis Guse
2022-05-08 09:47:48 +02:00
parent cc44e8e9bf
commit ac8eea377e
2 changed files with 32 additions and 28 deletions
@@ -3,6 +3,7 @@ package de.dennisguse.opentracks;
import static androidx.test.espresso.Espresso.onData; import static androidx.test.espresso.Espresso.onData;
import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.longClick;
import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withId;
@@ -39,33 +40,30 @@ public class EspressoUITest {
@LargeTest @LargeTest
@Test @Test
public void record_pause_resume_stop() { public void record_stop_resume_stop_finish() {
{ {
// TrackListActivity: start recording // TrackListActivity: start recording
ViewInteraction trackControllerRecordButton = onView(withId(R.id.track_list_fab_action)); ViewInteraction trackControllerRecordButton = onView(withId(R.id.track_list_fab_action));
trackControllerRecordButton.perform(click()); trackControllerRecordButton.perform(click());
} }
{ {
// TrackRecordingActivity // TrackRecordingActivity: wait to record some time and then stop
ViewInteraction trackControllerStopButton = onView(withId(R.id.track_recording_fab_action)); onView(withId(R.id.track_recording_fab_action))
.perform(waitFor(5000))
.perform(longClick());
// // wait; stay recording // TrackStoppedActivity: resume
// trackControllerRecordButton.perform(waitFor(5000)); onView(withId(R.id.resume_button))
// .perform(click());
// //pause
// trackControllerRecordButton.perform(veryLongTouch(1600));
//
// // wait; stay paused
// trackControllerRecordButton.perform(waitFor(1000));
//
// // resume
// trackControllerRecordButton.perform(click());
//
// // wait; stay recording
// trackControllerRecordButton.perform(waitFor(1000));
// stop; // TrackRecordingActivity: wait and then stop
trackControllerStopButton.perform(veryLongTouch(1600)); onView(withId(R.id.track_recording_fab_action))
.perform(waitFor(5000))
.perform(longClick());
// TrackStoppedActivity
onView(withId(R.id.finish_button))
.perform(click());
} }
} }
@@ -13,6 +13,7 @@ import de.dennisguse.opentracks.data.models.SpeedFormatter;
import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.databinding.TrackStoppedBinding; import de.dennisguse.opentracks.databinding.TrackStoppedBinding;
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.util.ExportUtils; import de.dennisguse.opentracks.util.ExportUtils;
import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.IntentUtils;
@@ -94,16 +95,14 @@ public class TrackStoppedActivity extends AbstractActivity implements ChooseActi
}); });
viewBinding.resumeButton.setOnClickListener(v -> { viewBinding.resumeButton.setOnClickListener(v -> {
resume(); resumeTrackAndFinish();
finish();
}); });
} }
@Override @Override
public void onBackPressed() { public void onBackPressed() {
super.onBackPressed(); super.onBackPressed();
resume(); resumeTrackAndFinish();
finish();
} }
@Override @Override
@@ -122,10 +121,17 @@ public class TrackStoppedActivity extends AbstractActivity implements ChooseActi
viewBinding.fields.trackEditActivityType.setText(getString(TrackIconUtils.getIconActivityType(iconValue))); viewBinding.fields.trackEditActivityType.setText(getString(TrackIconUtils.getIconActivityType(iconValue)));
} }
private void resume() { private void resumeTrackAndFinish() {
Intent newIntent = IntentUtils.newIntent(TrackStoppedActivity.this, TrackRecordingActivity.class) new TrackRecordingServiceConnection((service, connection) -> {
.putExtra(TrackRecordingActivity.EXTRA_TRACK_ID, trackId); service.resumeTrack(trackId);
startActivity(newIntent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); Intent newIntent = IntentUtils.newIntent(TrackStoppedActivity.this, TrackRecordingActivity.class)
.putExtra(TrackRecordingActivity.EXTRA_TRACK_ID, trackId);
startActivity(newIntent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
connection.unbind(this);
finish();
}).startAndBind(this);
} }
} }