"Choose category" indicate selected group (radion button) right next to group
"Choose category" ripple background on tap is missing
"Add new category" text field underline should be OsmAnd active color, not the selected.
"Add new category" text field background is barely visible, check its background color.
This commit is contained in:
androiddevkotlin 2021-03-10 00:30:43 +02:00
parent fe1fda65ff
commit 7227478dfb
11 changed files with 48 additions and 27 deletions

View file

@ -21,7 +21,10 @@
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
app:startIconDrawable="@drawable/ic_action_folder">
app:startIconDrawable="@drawable/ic_action_folder"
app:boxBackgroundColor="?attr/text_input_background"
app:boxStrokeColor="@color/osmand_orange"
app:hintTextColor="@color/text_color_secondary_light">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/name_edit_text"

View file

@ -57,7 +57,9 @@ public class SearchHistoryHelper {
}
public void addNewItemToHistory(GPXInfo gpxInfo) {
addNewItemToHistory(new HistoryEntry(0, 0, createPointDescription(gpxInfo)));
if(gpxInfo != null) {
addNewItemToHistory(new HistoryEntry(0, 0, createPointDescription(gpxInfo)));
}
}
public List<HistoryEntry> getHistoryEntries(boolean onlyPoints) {

View file

@ -169,7 +169,6 @@ public class AddNewFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
view = UiUtilities.getInflater(app, nightMode).inflate(R.layout.add_new_favorite_category, null);
nameTextBox = view.findViewById(R.id.name_text_box);
nameTextBox.setBoxBackgroundColorResource(nightMode ? R.color.list_background_color_dark : R.color.activity_background_color_light);
nameTextBox.setHint(app.getResources().getString(R.string.favorite_category_name));
ColorStateList colorStateList = ColorStateList.valueOf(ContextCompat
.getColor(app, nightMode ? R.color.text_color_secondary_dark : R.color.text_color_secondary_light));
@ -179,7 +178,6 @@ public class AddNewFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
editText.requestFocus();
AndroidUtils.softKeyboardDelayed(getActivity(), editText);
nameTextBox.setStartIconTintList(ColorStateList.valueOf(selectedColor));
nameTextBox.setBoxStrokeColorStateList(ColorStateList.valueOf(selectedColor));
BaseBottomSheetItem editFolderName = new BaseBottomSheetItem.Builder()
.setCustomView(view)
@ -200,7 +198,6 @@ public class AddNewFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
((TextView) view.findViewById(R.id.color_name)).setText(ColorDialogs.getColorName(color));
selectedColor = color;
nameTextBox.setStartIconTintList(ColorStateList.valueOf(selectedColor));
nameTextBox.setBoxStrokeColorStateList(ColorStateList.valueOf(selectedColor));
}
@Override

View file

@ -32,7 +32,6 @@ import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.base.BaseOsmAndFragment;
import net.osmand.plus.base.BottomSheetDialogFragment;
import net.osmand.plus.widgets.AutoCompleteTextViewEx;
import net.osmand.util.Algorithms;
@ -77,7 +76,7 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment {
dismiss();
}
});
int activeColorResId = !editor.isLight() ? R.color.active_color_primary_dark : R.color.active_color_primary_light;
Button saveButton = (Button) view.findViewById(R.id.save_button);
@ -182,7 +181,7 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment {
protected DialogFragment createSelectCategoryDialog() {
PointEditor editor = getEditor();
if (editor != null) {
return SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag());
return SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag(), "getSelectedCategory()");
} else {
return null;
}
@ -364,7 +363,7 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment {
if (isPersonalCategoryDisplayName(requireContext(), name)) {
return PERSONAL_CATEGORY;
}
if(name.equals(getDefaultCategoryName())) {
if (name.equals(getDefaultCategoryName())) {
return "";
}
return name;

View file

@ -739,12 +739,19 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment implemen
protected DialogFragment createSelectCategoryDialog() {
PointEditor editor = getEditor();
if (editor != null) {
return SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag());
return SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag(), getSelectedCategory());
} else {
return null;
}
}
public String getSelectedCategory() {
if (groupListAdapter != null && groupListAdapter.getSelectedItem() != null) {
return groupListAdapter.getSelectedItem();
}
return getCategoryInitValue();
}
@Nullable
protected AddNewFavoriteCategoryBottomSheet createAddCategoryDialog() {
PointEditor editor = getEditor();

View file

@ -23,7 +23,7 @@ public class RtePtEditorFragment extends WptPtEditorFragment {
@Override
protected DialogFragment createSelectCategoryDialog() {
PointEditor editor = getEditor();
return editor != null ? SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag()) : null;
return editor != null ? SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag(), "") : null;
}
public static void showInstance(final MapActivity mapActivity) {

View file

@ -43,7 +43,9 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
public static final String TAG = SelectFavoriteCategoryBottomSheet.class.getSimpleName();
private static final String KEY_CTX_SEL_CAT_EDITOR_TAG = "key_ctx_sel_cat_editor_tag";
private static final String KEY_CTX_SEL_CURRENT_CATEGORY = "key_ctx_sel_current_category";
private static String editorTag;
private static String selectedCategory;
private OsmandApplication app;
private GPXUtilities.GPXFile gpxFile;
private Map<String, Integer> gpxCategories;
@ -60,10 +62,11 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
return drawable;
}
public static SelectFavoriteCategoryBottomSheet createInstance(String editorTag) {
public static SelectFavoriteCategoryBottomSheet createInstance(String editorTag, String selectedCategory) {
SelectFavoriteCategoryBottomSheet fragment = new SelectFavoriteCategoryBottomSheet();
Bundle bundle = new Bundle();
bundle.putString(KEY_CTX_SEL_CAT_EDITOR_TAG, editorTag);
bundle.putString(KEY_CTX_SEL_CURRENT_CATEGORY, selectedCategory);
fragment.setArguments(bundle);
fragment.setRetainInstance(true);
return fragment;
@ -94,6 +97,12 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
restoreState(getArguments());
}
if (selectedCategory == null) {
restoreState(savedInstanceState);
} else if (getArguments() != null) {
restoreState(getArguments());
}
BaseBottomSheetItem titleItem = new BottomSheetItemWithDescription.Builder()
.setDescription(getString(R.string.select_category_descr))
.setTitle(getString(R.string.favorite_category_select))
@ -137,16 +146,20 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
View favoriteCategoryList = UiUtilities.getInflater(app, nightMode).inflate(R.layout.favorite_categories_dialog, null);
ScrollView scrollContainer = favoriteCategoryList.findViewById(R.id.scroll_container);
final int dp16 = AndroidUtils.dpToPx(app, 16f);
scrollContainer.setPadding(dp16,0, dp16,0);
scrollContainer.setPadding(dp16, 0, dp16, 0);
LinearLayout favoriteCategoryContainer = favoriteCategoryList.findViewById(R.id.list_container);
final FavouritesDbHelper favoritesHelper = app.getFavorites();
if (gpxFile != null) {
if (gpxCategories != null) {
for (Map.Entry<String, Integer> e : gpxCategories.entrySet()) {
String categoryName = e.getKey();
String favoriteCategoryCount = String.valueOf(e.getKey().length());
favoriteCategoryContainer.addView(createCategoryItem(activity, nightMode, categoryName, e.getValue(), favoriteCategoryCount, false));
String favoriteCategoryCount;
if (Algorithms.isEmpty(gpxFile.getPointsByCategories().get(e.getKey()))) {
favoriteCategoryCount = app.getString(R.string.shared_string_empty);
} else {
favoriteCategoryCount = String.valueOf(gpxFile.getPointsByCategories().get(e.getKey()).size());
}
favoriteCategoryContainer.addView(createCategoryItem(activity, nightMode, e.getKey(), e.getValue(), favoriteCategoryCount, false));
}
}
} else {
@ -171,19 +184,14 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
View itemView = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.bottom_sheet_item_with_descr_and_radio_btn, null);
final AppCompatImageView button = (AppCompatImageView) itemView.findViewById(R.id.icon);
final int dp8 = AndroidUtils.dpToPx(app, 8f);
button.setPadding(0,0, dp8,0);
button.setPadding(0, 0, dp8, 0);
LinearLayout descriptionContainer = itemView.findViewById(R.id.descriptionContainer);
descriptionContainer.setPadding(0, 0, 0, 0);
View divider = itemView.findViewById(R.id.divider_bottom);
divider.setVisibility(View.GONE);
itemView.setPadding(0, 0, 0, 0);
final RadioButton compoundButton = itemView.findViewById(R.id.compound_button);
int activeColorId = nightMode ?
R.color.active_color_primary_dark : R.color.active_color_primary_light;
int disableColorId = nightMode ?
R.color.icon_color_default_dark : R.color.icon_color_default_light;
UiUtilities.setupCompoundButton(nightMode, ContextCompat.getColor(app,
nightMode ? activeColorId : disableColorId), compoundButton);
if (isHidden) {
button.setImageResource(R.drawable.ic_action_hide);
@ -195,6 +203,11 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
gpxFile != null ? R.color.gpx_color_point : R.color.color_favorite)));
}
}
final RadioButton compoundButton = itemView.findViewById(R.id.compound_button);
final boolean isSelectedCategory = selectedCategory.equals(categoryName);
compoundButton.setChecked(isSelectedCategory);
UiUtilities.setupCompoundButton(nightMode, ContextCompat.getColor(app,
activeColorId), compoundButton);
String name = categoryName.length() == 0 ? getString(R.string.shared_string_favorites) : categoryName;
TextView text = itemView.findViewById(R.id.title);
TextView description = itemView.findViewById(R.id.description);
@ -204,7 +217,6 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
@Override
public void onClick(View v) {
FragmentActivity a = getActivity();
compoundButton.setSelected(true);
if (a instanceof MapActivity) {
PointEditor pointEditor = ((MapActivity) a).getContextMenu().getPointEditor(editorTag);
if (pointEditor != null) {
@ -222,6 +234,7 @@ public class SelectFavoriteCategoryBottomSheet extends MenuBottomSheetDialogFrag
public void restoreState(Bundle bundle) {
editorTag = bundle.getString(KEY_CTX_SEL_CAT_EDITOR_TAG);
selectedCategory = bundle.getString(KEY_CTX_SEL_CURRENT_CATEGORY);
}
public interface CategorySelectionListener {

View file

@ -67,7 +67,7 @@ public class WptPtEditorFragment extends PointEditorFragment {
protected DialogFragment createSelectCategoryDialog() {
WptPtEditor editor = getWptPtEditor();
if (editor != null) {
SelectFavoriteCategoryBottomSheet selectCategoryDialogFragment = SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag());
SelectFavoriteCategoryBottomSheet selectCategoryDialogFragment = SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag(), "");
GPXFile gpx = editor.getGpxFile();
if (gpx != null) {
selectCategoryDialogFragment.setGpxFile(gpx);

View file

@ -81,7 +81,7 @@ public class WptPtEditorFragmentNew extends PointEditorFragmentNew {
protected DialogFragment createSelectCategoryDialog() {
WptPtEditor editor = getWptPtEditor();
if (editor != null) {
SelectFavoriteCategoryBottomSheet selectCategoryDialogFragment = SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag());
SelectFavoriteCategoryBottomSheet selectCategoryDialogFragment = SelectFavoriteCategoryBottomSheet.createInstance(editor.getFragmentTag(), getSelectedCategory());
GPXFile gpx = editor.getGpxFile();
if (gpx != null) {
selectCategoryDialogFragment.setGpxFile(gpx);

View file

@ -176,7 +176,7 @@ public class FavoriteAction extends QuickAction {
@Override
public void onClick(final View view) {
SelectFavoriteCategoryBottomSheet dialogFragment = SelectFavoriteCategoryBottomSheet.createInstance("");
SelectFavoriteCategoryBottomSheet dialogFragment = SelectFavoriteCategoryBottomSheet.createInstance("", "");
dialogFragment.show(
activity.getSupportFragmentManager(),

View file

@ -120,7 +120,7 @@ public class GPXAction extends QuickAction {
@Override
public void onClick(final View view) {
SelectFavoriteCategoryBottomSheet dialogFragment = SelectFavoriteCategoryBottomSheet.createInstance("");
SelectFavoriteCategoryBottomSheet dialogFragment = SelectFavoriteCategoryBottomSheet.createInstance("", "");
dialogFragment.show(
activity.getSupportFragmentManager(),