Cleanup: use ActivityType instead of passing it's id around as String.

Part of #1608.
This commit is contained in:
Dennis Guse
2023-06-24 19:30:00 +02:00
parent 779681088c
commit 425ea0f216
34 changed files with 162 additions and 171 deletions
@@ -47,7 +47,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
private TrackRecordingServiceConnection trackRecordingServiceConnection;
private ContentProviderUtils contentProviderUtils;
private Track track;
private String iconValue;
private ActivityType activityType;
private TrackEditBinding viewBinding;
@@ -73,32 +73,30 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
viewBinding.fields.trackEditName.setText(track.getName());
viewBinding.fields.trackEditActivityType.setText(track.getActivityType());
viewBinding.fields.trackEditActivityType.setText(track.getActivityTypeLocalized());
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, ActivityType.getLocalizedStrings(this));
viewBinding.fields.trackEditActivityType.setAdapter(adapter);
viewBinding.fields.trackEditActivityType.setOnItemClickListener((parent, view, position, id) -> {
String localizedActivityType = (String) viewBinding.fields.trackEditActivityType.getAdapter().getItem(position);
setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType)
.getId());
setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType));
});
viewBinding.fields.trackEditActivityType.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) {
String localizedActivityType = viewBinding.fields.trackEditActivityType.getText().toString();
setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType)
.getId());
setActivityTypeIcon(ActivityType.findByLocalizedString(this, localizedActivityType));
}
});
iconValue = null;
activityType = null;
if (bundle != null) {
iconValue = bundle.getString(ICON_VALUE_KEY);
activityType = (ActivityType) bundle.getSerializable(ICON_VALUE_KEY);
}
if (iconValue == null) {
iconValue = track.getActivityTypeId();
if (activityType == null) {
activityType = track.getActivityType();
}
setActivityTypeIcon(iconValue);
setActivityTypeIcon(activityType);
viewBinding.fields.trackEditActivityTypeIcon.setOnClickListener(v -> ChooseActivityTypeDialogFragment.showDialog(getSupportFragmentManager(), viewBinding.fields.trackEditActivityType.getText().toString()));
viewBinding.fields.trackEditDescription.setText(track.getDescription());
@@ -131,7 +129,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(ICON_VALUE_KEY, iconValue);
outState.putSerializable(ICON_VALUE_KEY, activityType);
}
@Override
@@ -140,16 +138,14 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
return viewBinding.getRoot();
}
private void setActivityTypeIcon(String iconValue) {
this.iconValue = iconValue;
viewBinding.fields.trackEditActivityTypeIcon.setImageResource(ActivityType.findByActivityTypeId(iconValue)
.getIconDrawableId());
private void setActivityTypeIcon(ActivityType activityType) {
this.activityType = activityType;
viewBinding.fields.trackEditActivityTypeIcon.setImageResource(activityType.getIconDrawableId());
}
@Override
public void onChooseActivityTypeDone(String value) {
setActivityTypeIcon(value);
viewBinding.fields.trackEditActivityType.setText(getString(ActivityType.findByActivityTypeId(value)
.getFirstLocalizedStringId()));
public void onChooseActivityTypeDone(ActivityType activityType) {
setActivityTypeIcon(activityType);
viewBinding.fields.trackEditActivityType.setText(getString(activityType.getFirstLocalizedStringId()));
}
}