diff --git a/app/src/main/java/protect/card_locker/CardShortcutConfigure.java b/app/src/main/java/protect/card_locker/CardShortcutConfigure.java index 669150996..e34ebccd9 100644 --- a/app/src/main/java/protect/card_locker/CardShortcutConfigure.java +++ b/app/src/main/java/protect/card_locker/CardShortcutConfigure.java @@ -21,7 +21,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; /** * The configuration screen for creating a shortcut. */ -public class CardShortcutConfigure extends AppCompatActivity implements LoyaltyCardCursorAdapter.MessageAdapterListener +public class CardShortcutConfigure extends AppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener { static final String TAG = "Catima"; final DBHelper mDb = new DBHelper(this); @@ -92,7 +92,7 @@ public class CardShortcutConfigure extends AppCompatActivity implements LoyaltyC } @Override - public void onMessageRowClicked(int inputPosition) { + public void onRowClicked(int inputPosition) { onClickAction(inputPosition); } diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java b/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java index 869ece904..2c1dbde17 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java @@ -14,11 +14,9 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import org.w3c.dom.Text; - import java.math.BigDecimal; import java.text.DateFormat; -import java.util.Date; +import java.util.ArrayList; import androidx.cardview.widget.CardView; import androidx.constraintlayout.widget.ConstraintLayout; @@ -30,18 +28,20 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter getSelectedItems() + { + + ArrayList result = new ArrayList<>(); + + int i; + for(i = 0; i < mSelectedItems.size(); i++) + { + mCursor.moveToPosition(mSelectedItems.keyAt(i)); + result.add(LoyaltyCard.toLoyaltyCard(mCursor)); + } + + return result; + } + private void resetCurrentIndex() { mCurrentSelectedIndex = -1; } - public interface MessageAdapterListener + public interface CardAdapterListener { void onIconClicked(int inputPosition); - void onMessageRowClicked(int inputPosition); + void onRowClicked(int inputPosition); void onRowLongClicked(int inputPosition); } @@ -259,17 +279,17 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter 1 ? R.string.copy_to_clipboard_multiple_toast : R.string.copy_to_clipboard_toast, Toast.LENGTH_LONG).show(); + inputMode.finish(); return true; } else if (inputItem.getItemId() == R.id.action_share) { +// final ImportURIHelper importURIHelper = new ImportURIHelper(MainActivity.this); +// importURIHelper.startShareIntent(mCard); inputMode.finish(); - final ImportURIHelper importURIHelper = new ImportURIHelper(MainActivity.this); - importURIHelper.startShareIntent(mCard); return true; } else if(inputItem.getItemId() == R.id.action_edit) { - inputMode.finish(); + if (mAdapter.getSelectedItemCount() != 1) { + throw new IllegalArgumentException("Cannot edit more than 1 card at a time"); + } + Intent intent = new Intent(getApplicationContext(), LoyaltyCardEditActivity.class); Bundle bundle = new Bundle(); - bundle.putInt("id", mCard.id); + bundle.putInt("id", mAdapter.getSelectedItems().get(0).id); bundle.putBoolean("update", true); intent.putExtras(bundle); startActivity(intent); + inputMode.finish(); return true; } @@ -327,10 +352,6 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor mCardList.setLayoutManager(mLayoutManager); mCardList.setItemAnimator(new DefaultItemAnimator()); - DividerItemDecoration itemDecorator= new DividerItemDecoration(this, LinearLayoutManager.VERTICAL); - itemDecorator.setDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.list_divider)); - mCardList.addItemDecoration(itemDecorator); - final TextView helpText = findViewById(R.id.helpText); final TextView noMatchingCardsText = findViewById(R.id.noMatchingCardsText); @@ -363,6 +384,10 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor mCardList.setAdapter(mAdapter); registerForContextMenu(mCardList); + + if (mCurrentActionMode != null) { + mCurrentActionMode.finish(); + } } public void updateTabGroups(TabLayout groupsTabLayout) @@ -616,7 +641,7 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor } @Override - public void onMessageRowClicked(int inputPosition) + public void onRowClicked(int inputPosition) { if (mAdapter.getSelectedItemCount() > 0) @@ -625,7 +650,7 @@ public class MainActivity extends AppCompatActivity implements LoyaltyCardCursor } else { - Cursor selected = (Cursor) mDB.getLoyaltyCardCursor(); + Cursor selected = mAdapter.getCursor(); selected.moveToPosition(inputPosition); LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(selected); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 65fb75a17..85902a053 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,6 +37,7 @@ Scan Card Barcode Card Shortcut Add a card first + Copied Card ID(s) Image of card barcode @@ -174,4 +175,5 @@ Set barcode value This barcode type can\'t yet be displayed. It may be supported in a newer version of the app. The value is not valid for the selected barcode type + Copied card IDs to clipboard