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
@@ -83,24 +83,21 @@ public class ActivityTypePreference extends DialogPreference {
textView.setAdapter(adapter);
textView.setOnItemClickListener((parent, v, position, id) -> {
String localizedActivityType = (String) textView.getAdapter().getItem(position);
String iconValue = ActivityType.findByLocalizedString(context, localizedActivityType)
.getId();
updateIcon(iconValue);
ActivityType activityType = ActivityType.findByLocalizedString(context, localizedActivityType);
updateIcon(activityType);
});
textView.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) {
String localizedActivityType = textView.getText().toString();
String iconValue = ActivityType.findByLocalizedString(context, localizedActivityType)
.getId();
updateIcon(iconValue);
ActivityType activityType = ActivityType.findByLocalizedString(context, localizedActivityType);
updateIcon(activityType);
}
});
iconView = view.findViewById(R.id.activity_type_preference_spinner);
iconView.setOnClickListener((it) -> showIconSelectDialog());
updateIcon(ActivityType.findByLocalizedString(context, category)
.getId());
updateIcon(ActivityType.findByLocalizedString(context, category));
}
private void showIconSelectDialog() {
@@ -119,16 +116,14 @@ public class ActivityTypePreference extends DialogPreference {
}
}
public void updateUI(String iconValue) {
updateIcon(iconValue);
textView.setText(getActivity().getString(ActivityType.findByActivityTypeId(iconValue)
.getFirstLocalizedStringId()));
public void updateUI(ActivityType activityType) {
updateIcon(activityType);
textView.setText(getActivity().getString(activityType.getFirstLocalizedStringId()));
textView.clearFocus();
}
private void updateIcon(String iconValue) {
iconView.setImageResource(ActivityType.findByActivityTypeId(iconValue)
.getIconDrawableId());
private void updateIcon(ActivityType activityType) {
iconView.setImageResource(activityType.getIconDrawableId());
}
}
}
@@ -9,6 +9,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.data.models.ActivityType;
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
public class DefaultsSettingsFragment extends PreferenceFragmentCompat implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller {
@@ -81,9 +82,9 @@ public class DefaultsSettingsFragment extends PreferenceFragmentCompat implement
}
@Override
public void onChooseActivityTypeDone(String iconValue) {
public void onChooseActivityTypeDone(ActivityType activityType) {
if (activityPreferenceDialog != null) {
activityPreferenceDialog.updateUI(iconValue);
activityPreferenceDialog.updateUI(activityType);
}
}
}
@@ -10,6 +10,7 @@ import androidx.preference.PreferenceFragmentCompat;
import de.dennisguse.opentracks.AbstractActivity;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.data.models.ActivityType;
import de.dennisguse.opentracks.databinding.SettingsBinding;
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
@@ -104,9 +105,9 @@ public class SettingsActivity extends AbstractActivity implements ChooseActivity
}
@Override
public void onChooseActivityTypeDone(String iconValue) {
public void onChooseActivityTypeDone(ActivityType activityType) {
try {
((ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller) this.fragment).onChooseActivityTypeDone(iconValue);
((ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller) this.fragment).onChooseActivityTypeDone(activityType);
} catch (ClassCastException e) {
throw new ClassCastException(this.fragment.getClass().getSimpleName() + " must implement " + ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller.class.getSimpleName());
}