forked from upstream-mirrors/OpenTracks
Cleanup: use ActivityType instead of passing it's id around as String.
Part of #1608.
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user