mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-10 13:13:05 +02:00
Use ViewBinding for activities.
This commit is contained in:
@@ -21,16 +21,11 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.documentfile.provider.DocumentFile;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
@@ -42,6 +37,7 @@ import de.dennisguse.opentracks.R;
|
||||
import de.dennisguse.opentracks.content.data.Track;
|
||||
import de.dennisguse.opentracks.content.data.TracksColumns;
|
||||
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
|
||||
import de.dennisguse.opentracks.databinding.ExportActivityBinding;
|
||||
import de.dennisguse.opentracks.io.file.ErrorListDialog;
|
||||
import de.dennisguse.opentracks.io.file.TrackFileFormat;
|
||||
import de.dennisguse.opentracks.util.ExportUtils;
|
||||
@@ -88,15 +84,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
|
||||
boolean doubleBackToCancel = false;
|
||||
|
||||
private TextView viewTotal;
|
||||
private TextView viewDone;
|
||||
private TextView viewSummary;
|
||||
private ProgressBar viewProgressBar;
|
||||
private ImageView viewAlertIcon;
|
||||
private TextView viewAlertMsg;
|
||||
private CheckBox viewDoItForAllSwitch;
|
||||
private Button viewLeftButton;
|
||||
private Button viewRightButton;
|
||||
private ExportActivityBinding viewBinding;
|
||||
|
||||
private ArrayList<String> trackErrors = new ArrayList<>();
|
||||
|
||||
@@ -105,10 +93,10 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
private ContentProviderUtils contentProviderUtils;
|
||||
|
||||
// List of tracks to be exported.
|
||||
private ArrayList<Track.Id> trackIds = new ArrayList<>();
|
||||
private final ArrayList<Track.Id> trackIds = new ArrayList<>();
|
||||
|
||||
private LinkedBlockingQueue<PendingConflict> conflictsQueue = new LinkedBlockingQueue<>();
|
||||
private Handler conflictsHandler = new Handler();
|
||||
private final LinkedBlockingQueue<PendingConflict> conflictsQueue = new LinkedBlockingQueue<>();
|
||||
private final Handler conflictsHandler = new Handler();
|
||||
|
||||
private final Runnable conflictsRunnable = new Runnable() {
|
||||
@Override
|
||||
@@ -123,7 +111,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
return;
|
||||
}
|
||||
|
||||
viewLeftButton.setOnClickListener((view) -> {
|
||||
viewBinding.exportProgressLeftButton.setOnClickListener((view) -> {
|
||||
setConflictVisibility(View.GONE);
|
||||
conflict.skip();
|
||||
conflictsQueue.remove(conflict);
|
||||
@@ -132,7 +120,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
}
|
||||
});
|
||||
|
||||
viewRightButton.setOnClickListener((view) -> {
|
||||
viewBinding.exportProgressRightButton.setOnClickListener((view) -> {
|
||||
setConflictVisibility(View.GONE);
|
||||
conflict.overwrite();
|
||||
conflictsQueue.remove(conflict);
|
||||
@@ -147,7 +135,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.export_progress_activity);
|
||||
viewBinding = ExportActivityBinding.inflate(getLayoutInflater());
|
||||
|
||||
directoryUri = getIntent().getParcelableExtra(EXTRA_DIRECTORY_URI_KEY);
|
||||
trackFileFormat = (TrackFileFormat) getIntent().getSerializableExtra(EXTRA_TRACKFILEFORMAT_KEY);
|
||||
@@ -162,16 +150,6 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
|
||||
resultReceiver = new ExportServiceResultReceiver(new Handler(), this);
|
||||
|
||||
viewTotal = findViewById(R.id.export_progress_total);
|
||||
viewDone = findViewById(R.id.export_progress_done);
|
||||
viewSummary = findViewById(R.id.export_progress_summary);
|
||||
viewProgressBar = findViewById(R.id.export_progress_bar);
|
||||
viewAlertIcon = findViewById(R.id.export_progress_alert_icon);
|
||||
viewAlertMsg = findViewById(R.id.export_progress_alert_msg);
|
||||
viewDoItForAllSwitch = findViewById(R.id.export_progress_toggle);
|
||||
viewLeftButton = findViewById(R.id.export_progress_left_button);
|
||||
viewRightButton = findViewById(R.id.export_progress_right_button);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
autoConflict = CONFLICT_NONE;
|
||||
setProgress();
|
||||
@@ -235,10 +213,10 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
}
|
||||
|
||||
trackExportTotalCount = cursor.getCount();
|
||||
viewTotal.setText("" + trackExportTotalCount);
|
||||
viewBinding.exportProgressTotal.setText("" + trackExportTotalCount);
|
||||
for (int i = from; i < trackExportTotalCount; i++) {
|
||||
cursor.moveToPosition(i);
|
||||
Track track = contentProviderUtils.createTrack(cursor);
|
||||
Track track = ContentProviderUtils.createTrack(cursor);
|
||||
trackIds.add(track.getId());
|
||||
}
|
||||
|
||||
@@ -274,11 +252,11 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
}
|
||||
|
||||
private void setConflictVisibility(int visibility) {
|
||||
viewAlertIcon.setVisibility(visibility);
|
||||
viewAlertMsg.setVisibility(visibility);
|
||||
viewDoItForAllSwitch.setVisibility(visibility);
|
||||
viewLeftButton.setVisibility(visibility);
|
||||
viewRightButton.setVisibility(visibility);
|
||||
viewBinding.exportProgressAlertIcon.setVisibility(visibility);
|
||||
viewBinding.exportProgressAlertMsg.setVisibility(visibility);
|
||||
viewBinding.exportProgressApplyToAll.setVisibility(visibility);
|
||||
viewBinding.exportProgressLeftButton.setVisibility(visibility);
|
||||
viewBinding.exportProgressRightButton.setVisibility(visibility);
|
||||
}
|
||||
|
||||
private int getTotalDone() {
|
||||
@@ -288,11 +266,11 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
private void setProgress() {
|
||||
int done = getTotalDone();
|
||||
|
||||
viewDone.setText("" + done);
|
||||
viewTotal.setText("" + trackExportTotalCount);
|
||||
viewBinding.exportProgressDone.setText("" + done);
|
||||
viewBinding.exportProgressTotal.setText("" + trackExportTotalCount);
|
||||
|
||||
viewProgressBar.setProgress((int) ((float) done / (float) trackExportTotalCount * 100f));
|
||||
viewSummary.setText(getString(R.string.export_progress_review, getTotalDone(), trackExportSuccessCount, trackExportOverwrittenCount, trackExportSkippedCount, trackExportErrorCount));
|
||||
viewBinding.exportProgressBar.setProgress((int) ((float) done / (float) trackExportTotalCount * 100f));
|
||||
viewBinding.exportProgressSummary.setText(getString(R.string.export_progress_review, getTotalDone(), trackExportSuccessCount, trackExportOverwrittenCount, trackExportSkippedCount, trackExportErrorCount));
|
||||
}
|
||||
|
||||
private void onExportCompleted(Track.Id trackId) {
|
||||
@@ -306,25 +284,25 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
}
|
||||
|
||||
private void onExportEnded() {
|
||||
viewAlertIcon.setVisibility(View.VISIBLE);
|
||||
viewAlertMsg.setVisibility(View.VISIBLE);
|
||||
viewRightButton.setVisibility(View.VISIBLE);
|
||||
viewRightButton.setText(getString(R.string.generic_ok));
|
||||
viewBinding.exportProgressRightButton.setVisibility(View.VISIBLE);
|
||||
viewBinding.exportProgressRightButton.setText(getString(R.string.generic_ok));
|
||||
viewBinding.exportProgressRightButton.setOnClickListener((view) -> finish());
|
||||
|
||||
viewBinding.exportProgressAlertIcon.setVisibility(View.VISIBLE);
|
||||
viewBinding.exportProgressAlertMsg.setVisibility(View.VISIBLE);
|
||||
if (trackExportErrorCount > 0) {
|
||||
viewLeftButton.setVisibility(View.VISIBLE);
|
||||
viewLeftButton.setText(getString(R.string.generic_show_errors));
|
||||
viewLeftButton.setOnClickListener((view) -> ErrorListDialog.showDialog(getSupportFragmentManager(), getString(R.string.export_track_errors), trackErrors));
|
||||
viewAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_report_problem_24));
|
||||
viewBinding.exportProgressLeftButton.setVisibility(View.VISIBLE);
|
||||
viewBinding.exportProgressLeftButton.setText(getString(R.string.generic_show_errors));
|
||||
viewBinding.exportProgressLeftButton.setOnClickListener((view) -> ErrorListDialog.showDialog(getSupportFragmentManager(), getString(R.string.export_track_errors), trackErrors));
|
||||
viewBinding.exportProgressAlertIcon.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.ic_report_problem_24));
|
||||
String msg = getResources().getQuantityString(R.plurals.generic_completed_with_errors, trackExportErrorCount, trackExportErrorCount);
|
||||
viewAlertMsg.setText(msg);
|
||||
viewBinding.exportProgressAlertMsg.setText(msg);
|
||||
} else {
|
||||
viewLeftButton.setVisibility(View.GONE);
|
||||
viewAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_dialog_success_24dp));
|
||||
viewAlertMsg.setText(getString(R.string.generic_completed));
|
||||
viewBinding.exportProgressLeftButton.setVisibility(View.GONE);
|
||||
viewBinding.exportProgressAlertIcon.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.ic_dialog_success_24dp));
|
||||
viewBinding.exportProgressAlertMsg.setText(getString(R.string.generic_completed));
|
||||
}
|
||||
|
||||
viewRightButton.setOnClickListener((view) -> finish());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -368,7 +346,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
* Handle conflicts (exporting file already exists).
|
||||
*/
|
||||
private class PendingConflict {
|
||||
private Track.Id trackId;
|
||||
private final Track.Id trackId;
|
||||
|
||||
public PendingConflict(Track.Id trackId) {
|
||||
this.trackId = trackId;
|
||||
@@ -383,8 +361,8 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
public boolean resolve() {
|
||||
if (autoConflict == CONFLICT_NONE) {
|
||||
Track track = contentProviderUtils.getTrack(trackId);
|
||||
viewAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_report_problem_24));
|
||||
viewAlertMsg.setText(getString(R.string.export_track_already_exists_msg, track.getName()));
|
||||
viewBinding.exportProgressAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_report_problem_24));
|
||||
viewBinding.exportProgressAlertMsg.setText(getString(R.string.export_track_already_exists_msg, track.getName()));
|
||||
setConflictVisibility(View.VISIBLE);
|
||||
return false;
|
||||
}
|
||||
@@ -399,7 +377,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
public void overwrite() {
|
||||
export(trackId, CONFLICT_OVERWRITE);
|
||||
|
||||
if (viewDoItForAllSwitch.isChecked()) {
|
||||
if (viewBinding.exportProgressApplyToAll.isChecked()) {
|
||||
autoConflict = CONFLICT_OVERWRITE;
|
||||
}
|
||||
}
|
||||
@@ -410,7 +388,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
|
||||
public void skip() {
|
||||
export(trackId, CONFLICT_SKIP);
|
||||
|
||||
if (viewDoItForAllSwitch.isChecked()) {
|
||||
if (viewBinding.exportProgressApplyToAll.isChecked()) {
|
||||
autoConflict = CONFLICT_SKIP;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,10 +20,6 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
@@ -33,6 +29,7 @@ import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import de.dennisguse.opentracks.R;
|
||||
import de.dennisguse.opentracks.databinding.ImportActivityBinding;
|
||||
import de.dennisguse.opentracks.io.file.ErrorListDialog;
|
||||
|
||||
/**
|
||||
@@ -50,14 +47,7 @@ public class ImportActivity extends FragmentActivity {
|
||||
private static final String BUNDLE_DOCUMENT_URI = "document_uri";
|
||||
private static final String BUNDLE_IS_DIRECTORY = "is_directory";
|
||||
|
||||
private TextView viewTotal;
|
||||
private TextView viewDone;
|
||||
private TextView viewSummary;
|
||||
private ProgressBar viewProgressBar;
|
||||
private ImageView viewAlertIcon;
|
||||
private TextView viewAlertMsg;
|
||||
private Button viewLeftButton;
|
||||
private Button viewRightButton;
|
||||
private ImportActivityBinding viewBinding;
|
||||
|
||||
boolean doubleBackToCancel = false;
|
||||
|
||||
@@ -71,21 +61,12 @@ public class ImportActivity extends FragmentActivity {
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.import_progress_activity);
|
||||
viewBinding = ImportActivityBinding.inflate(getLayoutInflater());
|
||||
setContentView(viewBinding.getRoot());
|
||||
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
|
||||
viewTotal = findViewById(R.id.import_progress_total);
|
||||
viewDone = findViewById(R.id.import_progress_done);
|
||||
viewSummary = findViewById(R.id.import_progress_summary);
|
||||
viewProgressBar = findViewById(R.id.import_progress_bar);
|
||||
viewAlertIcon = findViewById(R.id.import_progress_alert_icon);
|
||||
viewAlertMsg = findViewById(R.id.import_progress_alert_msg);
|
||||
viewLeftButton = findViewById(R.id.import_progress_left_button);
|
||||
viewRightButton = findViewById(R.id.import_progress_right_button);
|
||||
|
||||
final DocumentFile documentFile;
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
if (getIntent().getData() != null) {
|
||||
documentUri = getIntent().getData();
|
||||
@@ -143,9 +124,9 @@ public class ImportActivity extends FragmentActivity {
|
||||
}
|
||||
|
||||
private void initViews() {
|
||||
viewDone.setText("0");
|
||||
viewTotal.setText("0");
|
||||
viewSummary.setText(getString(R.string.import_progress_review, 0, 0, 0, 0));
|
||||
viewBinding.importProgressDone.setText("0");
|
||||
viewBinding.importProgressTotal.setText("0");
|
||||
viewBinding.importProgressSummary.setText(getString(R.string.import_progress_review, 0, 0, 0, 0));
|
||||
}
|
||||
|
||||
private int getTotalDone() {
|
||||
@@ -155,11 +136,11 @@ public class ImportActivity extends FragmentActivity {
|
||||
private void setProgress() {
|
||||
int done = getTotalDone();
|
||||
|
||||
viewDone.setText("" + done);
|
||||
viewTotal.setText("" + summary.getTotalCount());
|
||||
viewBinding.importProgressDone.setText("" + done);
|
||||
viewBinding.importProgressTotal.setText("" + summary.getTotalCount());
|
||||
|
||||
viewProgressBar.setProgress((int) ((float) done / (float) summary.getTotalCount() * 100f));
|
||||
viewSummary.setText(getString(R.string.import_progress_review, getTotalDone(), summary.getSuccessCount(), summary.getExistsCount(), summary.getErrorCount()));
|
||||
viewBinding.importProgressBar.setProgress((int) ((float) done / (float) summary.getTotalCount() * 100f));
|
||||
viewBinding.importProgressSummary.setText(getString(R.string.import_progress_review, getTotalDone(), summary.getSuccessCount(), summary.getExistsCount(), summary.getErrorCount()));
|
||||
|
||||
if (done == summary.getTotalCount()) {
|
||||
onImportEnded();
|
||||
@@ -167,27 +148,26 @@ public class ImportActivity extends FragmentActivity {
|
||||
}
|
||||
|
||||
private void onImportEnded() {
|
||||
viewAlertIcon.setVisibility(View.VISIBLE);
|
||||
viewAlertMsg.setVisibility(View.VISIBLE);
|
||||
viewRightButton.setVisibility(View.VISIBLE);
|
||||
viewRightButton.setText(getString(R.string.generic_ok));
|
||||
|
||||
if (summary.getErrorCount() > 0) {
|
||||
viewLeftButton.setVisibility(View.VISIBLE);
|
||||
viewLeftButton.setText(getString(R.string.generic_show_errors));
|
||||
viewLeftButton.setOnClickListener((view) -> ErrorListDialog.showDialog(getSupportFragmentManager(), getString(R.string.import_error_list_dialog_title), summary.getFileErrors()));
|
||||
viewAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_report_problem_24));
|
||||
String msg = getResources().getQuantityString(R.plurals.generic_completed_with_errors, summary.getErrorCount(), summary.getErrorCount());
|
||||
viewAlertMsg.setText(msg);
|
||||
} else {
|
||||
viewLeftButton.setVisibility(View.GONE);
|
||||
viewAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_dialog_success_24dp));
|
||||
viewAlertMsg.setText(getString(R.string.generic_completed));
|
||||
}
|
||||
|
||||
viewRightButton.setOnClickListener((view) -> {
|
||||
viewBinding.importProgressRightButton.setVisibility(View.VISIBLE);
|
||||
viewBinding.importProgressRightButton.setText(getString(R.string.generic_ok));
|
||||
viewBinding.importProgressRightButton.setOnClickListener((view) -> {
|
||||
getViewModelStore().clear();
|
||||
finish();
|
||||
});
|
||||
|
||||
viewBinding.importProgressAlertMsg.setVisibility(View.VISIBLE);
|
||||
viewBinding.importProgressAlertIcon.setVisibility(View.VISIBLE);
|
||||
if (summary.getErrorCount() > 0) {
|
||||
viewBinding.importProgressLeftButton.setVisibility(View.VISIBLE);
|
||||
viewBinding.importProgressLeftButton.setText(getString(R.string.generic_show_errors));
|
||||
viewBinding.importProgressLeftButton.setOnClickListener((view) -> ErrorListDialog.showDialog(getSupportFragmentManager(), getString(R.string.import_error_list_dialog_title), summary.getFileErrors()));
|
||||
viewBinding.importProgressAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_report_problem_24));
|
||||
String msg = getResources().getQuantityString(R.plurals.generic_completed_with_errors, summary.getErrorCount(), summary.getErrorCount());
|
||||
viewBinding.importProgressAlertMsg.setText(msg);
|
||||
} else {
|
||||
viewBinding.importProgressLeftButton.setVisibility(View.GONE);
|
||||
viewBinding.importProgressAlertIcon.setImageDrawable(getDrawable(R.drawable.ic_dialog_success_24dp));
|
||||
viewBinding.importProgressAlertMsg.setText(getString(R.string.generic_completed));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user