Translate category names.

This commit is contained in:
Peter Serwylo 2017-03-15 14:55:50 +11:00
parent a7828bcb9e
commit ff946f6a7d

View File

@ -58,7 +58,7 @@ public class CategoryController extends RecyclerView.ViewHolder implements Loade
void bindModel(@NonNull String categoryName) {
currentCategory = categoryName;
heading.setText(categoryName);
heading.setText(translateCategory(categoryName));
viewAll.setVisibility(View.INVISIBLE);
loaderManager.initLoader(currentCategory.hashCode(), null, this);
loaderManager.initLoader(currentCategory.hashCode() + 1, null, this);
@ -66,6 +66,16 @@ public class CategoryController extends RecyclerView.ViewHolder implements Loade
background.setBackgroundColor(getBackgroundColour(categoryName));
}
/**
* Attempt to translate category name with fallback to default name if no translation available
*/
private String translateCategory(@NonNull String categoryName) {
String resId = categoryName.replace(" & ", "_").replace(" ", "_").replace("'", "");
int id = activity.getResources().getIdentifier("category_" + resId, "string", activity.getPackageName());
return id == 0 ? categoryName : activity.getString(id);
}
public static int getBackgroundColour(@NonNull String categoryName) {
// Seed based on the categoryName, so that each time we try to choose a colour for the same
// category it will look the same for each different user, and each different session.
@ -130,6 +140,7 @@ public class CategoryController extends RecyclerView.ViewHolder implements Loade
appCardsAdapter.setAppCursor(null);
}
@SuppressWarnings("FieldCanBeLocal")
private final View.OnClickListener onViewAll = new View.OnClickListener() {
@Override
public void onClick(View v) {