From e3bf88f76d3d26231a4dc0d4d9761e7cb60cdc77 Mon Sep 17 00:00:00 2001 From: cdhiraj40 Date: Tue, 7 Dec 2021 12:58:07 +0530 Subject: [PATCH 1/2] added feature to deselect car from the car selection activity --- .../res/values-de/strings_car_selection.xml | 1 + .../res/values/car_list_item_options.xml | 3 +- .../res/values/strings_car_selection.xml | 1 + .../preferences/CarPreferenceHandler.java | 28 +++++++++++++++++++ .../carselection/CarSelectionActivity.java | 11 ++++++++ .../carselection/CarSelectionListAdapter.java | 17 ++++++++++- 6 files changed, 59 insertions(+), 2 deletions(-) diff --git a/org.envirocar.app/res/values-de/strings_car_selection.xml b/org.envirocar.app/res/values-de/strings_car_selection.xml index 3b5a38642..28c4848f8 100644 --- a/org.envirocar.app/res/values-de/strings_car_selection.xml +++ b/org.envirocar.app/res/values-de/strings_car_selection.xml @@ -27,6 +27,7 @@ Fahrzeug Auswahl %s %s ausgewählt. + %s %s wurde nicht ausgewählt. %s %s gelöscht. %s %s wurde hinzugefügt und als mein Auto ausgewählt. %s %s wurde hinzugefügt. diff --git a/org.envirocar.app/res/values/car_list_item_options.xml b/org.envirocar.app/res/values/car_list_item_options.xml index 663e8fb7a..491902aab 100644 --- a/org.envirocar.app/res/values/car_list_item_options.xml +++ b/org.envirocar.app/res/values/car_list_item_options.xml @@ -25,7 +25,8 @@ Select Car - + Delete Car + Deselect Car \ No newline at end of file diff --git a/org.envirocar.app/res/values/strings_car_selection.xml b/org.envirocar.app/res/values/strings_car_selection.xml index 61d035625..0381227b1 100644 --- a/org.envirocar.app/res/values/strings_car_selection.xml +++ b/org.envirocar.app/res/values/strings_car_selection.xml @@ -27,6 +27,7 @@ Select a Car %s %s has been selected as my car. + %s %s has been deselected. %s %s has been deleted. %s %s has been added and selected as my car. %s %s has been added to the list. diff --git a/org.envirocar.app/src/org/envirocar/app/handler/preferences/CarPreferenceHandler.java b/org.envirocar.app/src/org/envirocar/app/handler/preferences/CarPreferenceHandler.java index d4678aefc..29e498fb4 100644 --- a/org.envirocar.app/src/org/envirocar/app/handler/preferences/CarPreferenceHandler.java +++ b/org.envirocar.app/src/org/envirocar/app/handler/preferences/CarPreferenceHandler.java @@ -265,7 +265,35 @@ public boolean removeCar(Car car) { flushCarListState(); return true; } + /** + * + * @param car the car to deselect from the shared preferences. + * @return true if the car has been successfully deselected. + */ + public boolean deselectCar(Car car) { + LOG.info(String.format("deselectCar(%s %s)", car.getManufacturer(), car.getModel())); + + // If the car type equals the selected car, then set it to null and fire an event on the + // event bus. + if (mSelectedCar != null && mSelectedCar.equals(car)) { + LOG.info(String.format("%s %s equals the selected car type.", + car.getManufacturer(), car.getModel())); + + // Set the selected car to null and flush the car state. + mSelectedCar = null; + flushSelectedCarState(); + mBus.post(new NewCarTypeSelectedEvent(null)); + } + + // Return false when the car is not contained in the set. + if (!mDeserialzedCars.contains(car)) + return false; + + // Finally flush the state to shared preferences + flushCarListState(); + return true; + } /** * Returns true if there already are some cars created. * diff --git a/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionActivity.java b/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionActivity.java index be71920f3..f0d3166c1 100644 --- a/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionActivity.java +++ b/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionActivity.java @@ -239,6 +239,17 @@ public void onSelectCar(Car car) { } } + @Override + public void onDeselectCar(Car car){ + Car selectedCar = mCarManager.getCar(); + mCarManager.deselectCar(car); + mCarListAdapter.notifyDataSetChanged(); + + // Show Snackbar. + showSnackbar(String.format(getString(R.string.car_selection_car_deselected), + car.getManufacturer(), car.getModel())); + } + @Override public void onDeleteCar(Car car) { LOG.info(String.format("onDeleteCar(%s %s %s %s)", diff --git a/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionListAdapter.java b/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionListAdapter.java index ffbab5c30..466c72fe8 100644 --- a/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionListAdapter.java +++ b/org.envirocar.app/src/org/envirocar/app/views/carselection/CarSelectionListAdapter.java @@ -57,12 +57,20 @@ public interface OnCarListActionCallback { */ void onSelectCar(Car car); + /** + * Called whenever a car should be deselected. + * + * @param car the selected car. + */ + void onDeselectCar(Car car); + /** * Called whenever a car should be deleted. * * @param car the selected car. */ void onDeleteCar(Car car); + } /** @@ -144,7 +152,7 @@ public View getView(int position, View convertView, ViewGroup parent) { Resources res = getContext().getResources(); String[] state; if (mSelectedCar != null && mSelectedCar.equals(car)) { - state = res.getStringArray(R.array.car_list_option_item_Delete_car); + state = res.getStringArray(R.array.selected_car_list_option_items); } else{ state = res.getStringArray(R.array.car_list_option_items); @@ -168,8 +176,15 @@ public View getView(int position, View convertView, ViewGroup parent) { mCallback.onDeleteCar(car); break; case 1: + // deselect the car if its selected if(car.equals(mSelectedCar)) + { + mSelectedCar = null; + mSelectedButton.setChecked(false); + mSelectedButton= null; + mCallback.onDeselectCar(car); return; + } // Uncheck the currently checked car. if (mSelectedButton != null) { From cca7ee273448047fe3adeda2f66af056e17ca019 Mon Sep 17 00:00:00 2001 From: cdhiraj40 Date: Tue, 7 Dec 2021 13:25:36 +0530 Subject: [PATCH 2/2] added car deselection array items string in german language --- org.envirocar.app/res/values-de/car_list_item_options.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/org.envirocar.app/res/values-de/car_list_item_options.xml b/org.envirocar.app/res/values-de/car_list_item_options.xml index 6ef8519cb..9b932beee 100644 --- a/org.envirocar.app/res/values-de/car_list_item_options.xml +++ b/org.envirocar.app/res/values-de/car_list_item_options.xml @@ -25,7 +25,8 @@ Fahrzeug auswählen - + Fahrzeug löschen + Fahrzeug abwählen \ No newline at end of file