Fix empty activity type
This commit is contained in:
parent
455518decc
commit
61a1d69c58
3 changed files with 32 additions and 11 deletions
|
@ -43,7 +43,7 @@ public class RouteActivityType {
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RouteActivityType getTypeFromName(String name) {
|
public static RouteActivityType getOrCreateTypeFromName(String name) {
|
||||||
for (RouteActivityType rat : values) {
|
for (RouteActivityType rat : values) {
|
||||||
if (rat.name.equalsIgnoreCase(name)) {
|
if (rat.name.equalsIgnoreCase(name)) {
|
||||||
return rat;
|
return rat;
|
||||||
|
|
|
@ -18,12 +18,13 @@ import com.squareup.picasso.Callback;
|
||||||
import com.squareup.picasso.Picasso;
|
import com.squareup.picasso.Picasso;
|
||||||
import com.squareup.picasso.RequestCreator;
|
import com.squareup.picasso.RequestCreator;
|
||||||
|
|
||||||
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.PicassoUtils;
|
import net.osmand.PicassoUtils;
|
||||||
|
import net.osmand.osm.RouteActivityType;
|
||||||
import net.osmand.plus.OsmAndFormatter;
|
import net.osmand.plus.OsmAndFormatter;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.UiUtilities;
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.profiles.ProfileIcons;
|
|
||||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||||
import net.osmand.plus.widgets.tools.CropCircleTransformation;
|
import net.osmand.plus.widgets.tools.CropCircleTransformation;
|
||||||
import net.osmand.plus.wikipedia.WikiArticleHelper;
|
import net.osmand.plus.wikipedia.WikiArticleHelper;
|
||||||
|
@ -37,6 +38,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.osmand.plus.wikivoyage.explore.travelcards.TravelGpxCard.*;
|
import static net.osmand.plus.wikivoyage.explore.travelcards.TravelGpxCard.*;
|
||||||
|
import static net.osmand.util.Algorithms.capitalizeFirstLetterAndLowercase;
|
||||||
|
|
||||||
public class SavedArticlesRvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
public class SavedArticlesRvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
|
|
||||||
|
@ -140,10 +142,12 @@ public class SavedArticlesRvAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||||
holder.title.setText(article.getTitle());
|
holder.title.setText(article.getTitle());
|
||||||
holder.userIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_user_account_16));
|
holder.userIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_user_account_16));
|
||||||
holder.user.setText(article.user);
|
holder.user.setText(article.user);
|
||||||
if(!Algorithms.isEmpty(article.activityType)) {
|
String activityTypeKey = article.activityType;
|
||||||
ProfileIcons activityRes = ProfileIcons.valueOf(article.activityType.toUpperCase());
|
if (!Algorithms.isEmpty(activityTypeKey)) {
|
||||||
holder.activityTypeIcon.setImageDrawable(getActiveIcon(activityRes.getResId()));
|
RouteActivityType activityType = RouteActivityType.getOrCreateTypeFromName(activityTypeKey);
|
||||||
holder.activityType.setText(activityRes.getTitleId());
|
int activityTypeIcon = getActivityTypeIcon(activityType);
|
||||||
|
holder.activityTypeIcon.setImageDrawable(getActiveIcon(activityTypeIcon));
|
||||||
|
holder.activityType.setText(getActivityTypeTitle(activityType));
|
||||||
holder.activityTypeLabel.setVisibility(View.VISIBLE);
|
holder.activityTypeLabel.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
holder.distance.setText(OsmAndFormatter.getFormattedDistance(article.totalDistance, app));
|
holder.distance.setText(OsmAndFormatter.getFormattedDistance(article.totalDistance, app));
|
||||||
|
@ -165,6 +169,17 @@ public class SavedArticlesRvAdapter extends RecyclerView.Adapter<RecyclerView.Vi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DrawableRes
|
||||||
|
private int getActivityTypeIcon(RouteActivityType activityType) {
|
||||||
|
int iconId = app.getResources().getIdentifier("mx_" + activityType.getIcon(), "drawable", app.getPackageName());
|
||||||
|
return iconId != 0 ? iconId : R.drawable.mx_special_marker;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getActivityTypeTitle(RouteActivityType activityType) {
|
||||||
|
return AndroidUtils.getActivityTypeStringPropertyName(app, activityType.getName(),
|
||||||
|
capitalizeFirstLetterAndLowercase(activityType.getName()));
|
||||||
|
}
|
||||||
|
|
||||||
private void updateSaveButton(final TravelGpxVH holder, final TravelGpx article) {
|
private void updateSaveButton(final TravelGpxVH holder, final TravelGpx article) {
|
||||||
if (article != null) {
|
if (article != null) {
|
||||||
final TravelLocalDataHelper helper = app.getTravelHelper().getBookmarksHelper();
|
final TravelLocalDataHelper helper = app.getTravelHelper().getBookmarksHelper();
|
||||||
|
|
|
@ -18,6 +18,7 @@ import net.osmand.plus.R;
|
||||||
import net.osmand.plus.track.TrackMenuFragment;
|
import net.osmand.plus.track.TrackMenuFragment;
|
||||||
import net.osmand.plus.wikivoyage.data.TravelGpx;
|
import net.osmand.plus.wikivoyage.data.TravelGpx;
|
||||||
import net.osmand.plus.wikivoyage.data.TravelLocalDataHelper;
|
import net.osmand.plus.wikivoyage.data.TravelLocalDataHelper;
|
||||||
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
|
@ -47,10 +48,14 @@ public class TravelGpxCard extends BaseTravelCard {
|
||||||
holder.title.setText(article.getTitle());
|
holder.title.setText(article.getTitle());
|
||||||
holder.userIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_user_account_16));
|
holder.userIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_user_account_16));
|
||||||
holder.user.setText(article.user);
|
holder.user.setText(article.user);
|
||||||
RouteActivityType activityType = RouteActivityType.getTypeFromName(article.activityType);
|
String activityTypeKey = article.activityType;
|
||||||
holder.activityTypeIcon.setImageDrawable(getActiveIcon(getActivityTypeIcon(activityType)));
|
if (!Algorithms.isEmpty(activityTypeKey)) {
|
||||||
holder.activityType.setText(getActivityTypeTitle(activityType));
|
RouteActivityType activityType = RouteActivityType.getOrCreateTypeFromName(activityTypeKey);
|
||||||
holder.activityTypeLabel.setVisibility(View.VISIBLE);
|
int activityTypeIcon = getActivityTypeIcon(activityType);
|
||||||
|
holder.activityTypeIcon.setImageDrawable(getActiveIcon(activityTypeIcon));
|
||||||
|
holder.activityType.setText(getActivityTypeTitle(activityType));
|
||||||
|
holder.activityTypeLabel.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
holder.distance.setText(OsmAndFormatter.getFormattedDistance(article.totalDistance, app));
|
holder.distance.setText(OsmAndFormatter.getFormattedDistance(article.totalDistance, app));
|
||||||
holder.diffElevationUp.setText(OsmAndFormatter.getFormattedAlt(article.diffElevationUp, app));
|
holder.diffElevationUp.setText(OsmAndFormatter.getFormattedAlt(article.diffElevationUp, app));
|
||||||
holder.diffElevationDown.setText(OsmAndFormatter.getFormattedAlt(article.diffElevationDown, app));
|
holder.diffElevationDown.setText(OsmAndFormatter.getFormattedAlt(article.diffElevationDown, app));
|
||||||
|
@ -75,7 +80,8 @@ public class TravelGpxCard extends BaseTravelCard {
|
||||||
|
|
||||||
@DrawableRes
|
@DrawableRes
|
||||||
private int getActivityTypeIcon(RouteActivityType activityType) {
|
private int getActivityTypeIcon(RouteActivityType activityType) {
|
||||||
return app.getResources().getIdentifier("mx_" + activityType.getIcon(), "drawable", app.getPackageName());
|
int iconId = app.getResources().getIdentifier("mx_" + activityType.getIcon(), "drawable", app.getPackageName());
|
||||||
|
return iconId != 0 ? iconId : R.drawable.mx_special_marker;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getActivityTypeTitle(RouteActivityType activityType) {
|
private String getActivityTypeTitle(RouteActivityType activityType) {
|
||||||
|
|
Loading…
Reference in a new issue