From 4e0ecaa7be69ace4094fd9b45d6a6450f05a44ae Mon Sep 17 00:00:00 2001 From: QuangDNguyen2211 <70936038+QuangDNguyen2211@users.noreply.github.com> Date: Sat, 25 Sep 2021 02:06:44 -0700 Subject: [PATCH] Changing Reverse button in sorting into a checkbox (#406) --- .../protect/card_locker/MainActivity.java | 29 ++++++++++++------- app/src/main/res/layout/sorting_option.xml | 21 ++++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 app/src/main/res/layout/sorting_option.xml diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index 28f167e23..a2085975f 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -16,6 +16,8 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; +import android.widget.CheckBox; +import android.widget.CompoundButton; import android.widget.Toast; import com.google.android.material.floatingactionbutton.FloatingActionButton; @@ -519,10 +521,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard if (id == R.id.action_sort) { TabLayout.Tab tab = ((TabLayout) findViewById(R.id.groups)).getTabAt(selectedTab); - - AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); - builder.setTitle(R.string.sort_by); - AtomicInteger currentIndex = new AtomicInteger(); List loyaltyCardOrders = Arrays.asList(DBHelper.LoyaltyCardOrder.values()); for (int i = 0; i < loyaltyCardOrders.size(); i++) { @@ -532,18 +530,29 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } } + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); + builder.setTitle(R.string.sort_by); + + final View customLayout = getLayoutInflater().inflate(R.layout.sorting_option, null); + builder.setView(customLayout); + + CheckBox ch = (CheckBox) customLayout.findViewById(R.id.checkBox_reverse); + ch.setChecked(mOrderDirection == DBHelper.LoyaltyCardOrderDirection.Descending); + builder.setSingleChoiceItems(R.array.sort_types_array, currentIndex.get(), (dialog, which) -> currentIndex.set(which)); + builder.setPositiveButton(R.string.sort, (dialog, which) -> { - setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Ascending); - + if(ch.isChecked()) { + setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Descending); + } + else { + setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Ascending); + } dialog.dismiss(); }); - builder.setNeutralButton(R.string.reverse, (dialog, which) -> { - setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Descending); - dialog.dismiss(); - }); builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); + AlertDialog dialog = builder.create(); dialog.show(); diff --git a/app/src/main/res/layout/sorting_option.xml b/app/src/main/res/layout/sorting_option.xml new file mode 100644 index 000000000..78955f2d4 --- /dev/null +++ b/app/src/main/res/layout/sorting_option.xml @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c8f3a9240..55a4afd16 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -128,6 +128,7 @@ sharedpreference_sort_order sharedpreference_sort_direction + I want to share a card with you catima.app /share