diff --git a/app/src/main/java/protect/card_locker/CardShortcutConfigure.java b/app/src/main/java/protect/card_locker/CardShortcutConfigure.java index 207f8d9ec..823acbeac 100644 --- a/app/src/main/java/protect/card_locker/CardShortcutConfigure.java +++ b/app/src/main/java/protect/card_locker/CardShortcutConfigure.java @@ -47,25 +47,19 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo finish(); } - // If all cards are archived, bail - if (DBHelper.getArchivedCardsCount(mDatabase) == cardCount) { - Toast.makeText(this, R.string.noUnarchivedCardsMessage, Toast.LENGTH_LONG).show(); - finish(); - } - final RecyclerView cardList = binding.list; GridLayoutManager layoutManager = (GridLayoutManager) cardList.getLayoutManager(); if (layoutManager != null) { layoutManager.setSpanCount(getResources().getInteger(R.integer.main_view_card_columns)); } - Cursor cardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.Unarchived); - mAdapter = new LoyaltyCardCursorAdapter(this, cardCursor, this); + Cursor cardCursor = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All); + mAdapter = new LoyaltyCardCursorAdapter(this, cardCursor, this, null); cardList.setAdapter(mAdapter); } private void onClickAction(int position) { - Cursor selected = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.Unarchived); + Cursor selected = DBHelper.getLoyaltyCardCursor(mDatabase, DBHelper.LoyaltyCardArchiveFilter.All); selected.moveToPosition(position); LoyaltyCard loyaltyCard = LoyaltyCard.toLoyaltyCard(selected); @@ -89,8 +83,8 @@ public class CardShortcutConfigure extends CatimaAppCompatActivity implements Lo public boolean onOptionsItemSelected(MenuItem inputItem) { int id = inputItem.getItemId(); - if (id == R.id.action_shown_details) { - mAdapter.showSelectDetailDisplayDialog(); + if (id == R.id.action_display_options) { + mAdapter.showDisplayOptionsDialog(); invalidateOptionsMenu(); return true; diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java b/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java index b8bbc6384..dfc79146c 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardCursorAdapter.java @@ -1,7 +1,6 @@ package protect.card_locker; import android.content.Context; -import android.content.SharedPreferences; import android.content.res.Resources; import android.database.Cursor; import android.graphics.Bitmap; @@ -18,14 +17,12 @@ import android.widget.TextView; import com.google.android.material.card.MaterialCardView; import com.google.android.material.color.MaterialColors; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.math.BigDecimal; import java.text.DateFormat; import java.util.ArrayList; import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.content.ContextCompat; import androidx.core.graphics.BlendModeColorFilterCompat; @@ -39,123 +36,34 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter notifyDataSetChanged(); + + mLoyaltyCardListDisplayOptions = new LoyaltyCardListDisplayOptionsManager(mContext, refreshCardsCallback, inputSwapCursorCallback); mSelectedItems = new SparseBooleanArray(); mAnimationItemsIndex = new SparseBooleanArray(); mDarkModeEnabled = Utils.isDarkModeEnabled(inputContext); - refreshState(); - swapCursor(inputCursor); } - private void saveDetailState(int stateId, boolean value) { - SharedPreferences cardDetailsPref = mContext.getSharedPreferences( - mContext.getString(R.string.sharedpreference_card_details), - Context.MODE_PRIVATE); - SharedPreferences.Editor cardDetailsPrefEditor = cardDetailsPref.edit(); - cardDetailsPrefEditor.putBoolean(mContext.getString(stateId), value); - cardDetailsPrefEditor.apply(); + public void showDisplayOptionsDialog() { + mLoyaltyCardListDisplayOptions.showDisplayOptionsDialog(); } - public void refreshState() { - // Retrieve user details preference - SharedPreferences cardDetailsPref = mContext.getSharedPreferences( - mContext.getString(R.string.sharedpreference_card_details), - Context.MODE_PRIVATE); - mShowNameBelowThumbnail = cardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_name_below_thumbnail), false); - mShowNote = cardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_note), true); - mShowBalance = cardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_balance), true); - mShowValidity = cardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_validity), true); - } - - public void showNameBelowThumbnail(boolean show) { - mShowNameBelowThumbnail = show; - notifyDataSetChanged(); - - saveDetailState(R.string.sharedpreference_card_details_show_name_below_thumbnail, show); - } - - public boolean showingNameBelowThumbnail() { - return mShowNameBelowThumbnail; - } - - public void showNote(boolean show) { - mShowNote = show; - notifyDataSetChanged(); - - saveDetailState(R.string.sharedpreference_card_details_show_note, show); - } - - public boolean showingNote() { - return mShowNote; - } - - public void showBalance(boolean show) { - mShowBalance = show; - notifyDataSetChanged(); - - saveDetailState(R.string.sharedpreference_card_details_show_balance, show); - } - - public boolean showingBalance() { - return mShowBalance; - } - - public void showValidity(boolean show) { - mShowValidity = show; - notifyDataSetChanged(); - - saveDetailState(R.string.sharedpreference_card_details_show_validity, show); - } - - public boolean showingValidity() { - return mShowValidity; - } - - public void showSelectDetailDisplayDialog() { - AlertDialog.Builder builder = new MaterialAlertDialogBuilder(mContext); - builder.setTitle(R.string.action_show_details); - builder.setMultiChoiceItems( - new String[]{ - mContext.getString(R.string.show_name_below_image_thumbnail), - mContext.getString(R.string.show_note), - mContext.getString(R.string.show_balance), - mContext.getString(R.string.show_validity) - }, - new boolean[]{ - showingNameBelowThumbnail(), - showingNote(), - showingBalance(), - showingValidity() - }, - (dialogInterface, i, b) -> { - switch (i) { - case 0: showNameBelowThumbnail(b); break; - case 1: showNote(b); break; - case 2: showBalance(b); break; - case 3: showValidity(b); break; - default: throw new IndexOutOfBoundsException("No such index exists in LoyaltyCardCursorAdapter show details view"); - } - } - ); - builder.setPositiveButton(R.string.ok, (dialog, i) -> dialog.dismiss()); - - AlertDialog dialog = builder.create(); - dialog.show(); + public boolean showingArchivedCards() { + return mLoyaltyCardListDisplayOptions.showingArchivedCards(); } @NonNull @@ -182,33 +90,33 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter callback; + + LoyaltyCardDisplayOption(String name, boolean value, Consumer callback) { + this.name = name; + this.value = value; + this.callback = callback; + } + } + + public final Context mContext; + + private final Runnable mRefreshCardsCallback; + private final Runnable mSwapCursorCallback; + + protected SharedPreferences mCardDetailsPref; + + private boolean mShowNameBelowThumbnail; + private boolean mShowNote; + private boolean mShowBalance; + private boolean mShowValidity; + private boolean mShowArchivedCards; + + public LoyaltyCardListDisplayOptionsManager(Context context, @NonNull Runnable refreshCardsCallback, @Nullable Runnable swapCursorCallback) { + mContext = context; + mRefreshCardsCallback = refreshCardsCallback; + mSwapCursorCallback = swapCursorCallback; + + // Retrieve user details preference + mCardDetailsPref = mContext.getSharedPreferences( + mContext.getString(R.string.sharedpreference_card_details), + Context.MODE_PRIVATE); + mShowNameBelowThumbnail = mCardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_name_below_thumbnail), false); + mShowNote = mCardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_note), true); + mShowBalance = mCardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_balance), true); + mShowValidity = mCardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_validity), true); + mShowArchivedCards = mCardDetailsPref.getBoolean(mContext.getString(R.string.sharedpreference_card_details_show_archived_cards), true); + } + + void saveDetailState(int stateId, boolean value) { + SharedPreferences.Editor cardDetailsPrefEditor = mCardDetailsPref.edit(); + cardDetailsPrefEditor.putBoolean(mContext.getString(stateId), value); + cardDetailsPrefEditor.apply(); + } + + public void showNameBelowThumbnail(boolean show) { + mShowNameBelowThumbnail = show; + mRefreshCardsCallback.run(); + + saveDetailState(R.string.sharedpreference_card_details_show_name_below_thumbnail, show); + } + + public boolean showingNameBelowThumbnail() { + return mShowNameBelowThumbnail; + } + + public void showNote(boolean show) { + mShowNote = show; + mRefreshCardsCallback.run(); + + saveDetailState(R.string.sharedpreference_card_details_show_note, show); + } + + public boolean showingNote() { + return mShowNote; + } + + public void showBalance(boolean show) { + mShowBalance = show; + mRefreshCardsCallback.run(); + + saveDetailState(R.string.sharedpreference_card_details_show_balance, show); + } + + public boolean showingBalance() { + return mShowBalance; + } + + public void showValidity(boolean show) { + mShowValidity = show; + mRefreshCardsCallback.run(); + + saveDetailState(R.string.sharedpreference_card_details_show_validity, show); + } + + public boolean showingValidity() { + return mShowValidity; + } + + public void showArchivedCards(boolean show) { + if (mSwapCursorCallback == null) { + throw new IllegalStateException("No swap cursor callback is available, can not manage archive state"); + } + + mShowArchivedCards = show; + mSwapCursorCallback.run(); + + saveDetailState(R.string.sharedpreference_card_details_show_archived_cards, show); + } + + public boolean showingArchivedCards() { + if (mSwapCursorCallback == null) { + throw new IllegalStateException("No swap cursor callback is available, can not manage archive state"); + } + + return mShowArchivedCards; + } + + public void showDisplayOptionsDialog() { + List displayOptions = new ArrayList<>(); + + displayOptions.add(new LoyaltyCardDisplayOption( + mContext.getString(R.string.show_name_below_image_thumbnail), + showingNameBelowThumbnail(), + this::showNameBelowThumbnail + )); + displayOptions.add(new LoyaltyCardDisplayOption( + mContext.getString(R.string.show_note), + showingNote(), + this::showNote + )); + displayOptions.add(new LoyaltyCardDisplayOption( + mContext.getString(R.string.show_balance), + showingBalance(), + this::showBalance + )); + displayOptions.add(new LoyaltyCardDisplayOption( + mContext.getString(R.string.show_validity), + showingValidity(), + this::showValidity + )); + + // Hide "Show archived cards" option unless the callback exists + if (mSwapCursorCallback != null) { + displayOptions.add(new LoyaltyCardDisplayOption( + mContext.getString(R.string.show_archived_cards), + showingArchivedCards(), + this::showArchivedCards + )); + } + + // We need to convert Boolean[] to boolean[] + boolean[] values = new boolean[displayOptions.size()]; + for (int i = 0; i < values.length; i++) values[i] = displayOptions.get(i).value; + + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(mContext); + builder.setTitle(R.string.action_display_options); + builder.setMultiChoiceItems( + displayOptions.stream().map(x -> x.name).toArray(String[]::new), + values, + (dialogInterface, i, b) -> displayOptions.get(i).callback.accept(b) + ); + builder.setPositiveButton(R.string.ok, (dialog, i) -> dialog.dismiss()); + + AlertDialog dialog = builder.create(); + dialog.show(); + } +} diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index ade687c27..d3cd1ccb1 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -41,7 +41,6 @@ import java.util.Arrays; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import protect.card_locker.databinding.ArchiveActivityBinding; import protect.card_locker.databinding.ContentMainBinding; import protect.card_locker.databinding.MainActivityBinding; import protect.card_locker.databinding.SortingOptionBinding; @@ -49,7 +48,6 @@ import protect.card_locker.preferences.SettingsActivity; public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCardCursorAdapter.CardAdapterListener { private MainActivityBinding binding; - private ArchiveActivityBinding archiveActivityBinding; private ContentMainBinding contentMainBinding; private static final String TAG = "Catima"; public static final String RESTART_ACTIVITY_INTENT = "restart_activity_intent"; @@ -72,8 +70,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard private View mNoGroupCardsText; private TabLayout groupsTabLayout; - private boolean mArchiveMode; - public static final String BUNDLE_ARCHIVE_MODE = "archiveMode"; + private Runnable mSwapLoyaltyCardListCursor; private ActivityResultLauncher mBarcodeScannerLauncher; private ActivityResultLauncher mSettingsLauncher; @@ -229,28 +226,25 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard extractIntentFields(getIntent()); SplashScreen.installSplashScreen(this); super.onCreate(inputSavedInstanceState); - if (!mArchiveMode) { - binding = MainActivityBinding.inflate(getLayoutInflater()); - setTitle(R.string.app_name); - setContentView(binding.getRoot()); - setSupportActionBar(binding.toolbar); - groupsTabLayout = binding.groups; - contentMainBinding = ContentMainBinding.bind(binding.include.getRoot()); - } else { - archiveActivityBinding = ArchiveActivityBinding.inflate(getLayoutInflater()); - setTitle(R.string.archiveList); - setContentView(archiveActivityBinding.getRoot()); - setSupportActionBar(archiveActivityBinding.toolbar); - groupsTabLayout = archiveActivityBinding.groups; - contentMainBinding = ContentMainBinding.bind(archiveActivityBinding.include.getRoot()); - } - if(mArchiveMode) { - enableToolbarBackButton(); - } + binding = MainActivityBinding.inflate(getLayoutInflater()); + setTitle(R.string.app_name); + setContentView(binding.getRoot()); + setSupportActionBar(binding.toolbar); + groupsTabLayout = binding.groups; + contentMainBinding = ContentMainBinding.bind(binding.include.getRoot()); mDatabase = new DBHelper(this).getWritableDatabase(); + mSwapLoyaltyCardListCursor = () -> { + Group group = null; + if (mGroup != null) { + group = (Group) mGroup; + } + + mAdapter.swapCursor(DBHelper.getLoyaltyCardCursor(mDatabase, mFilter, group, mOrder, mOrderDirection, mAdapter.showingArchivedCards() ? DBHelper.LoyaltyCardArchiveFilter.All : DBHelper.LoyaltyCardArchiveFilter.Unarchived)); + }; + groupsTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { @@ -283,7 +277,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard mNoGroupCardsText = contentMainBinding.noGroupCardsText; mCardList = contentMainBinding.list; - mAdapter = new LoyaltyCardCursorAdapter(this, null, this); + mAdapter = new LoyaltyCardCursorAdapter(this, null, this, mSwapLoyaltyCardListCursor); mCardList.setAdapter(mAdapter); registerForContextMenu(mCardList); @@ -349,8 +343,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard protected void onResume() { super.onResume(); - mAdapter.refreshState(); - if (mCurrentActionMode != null) { mAdapter.clearSelections(); mCurrentActionMode.finish(); @@ -398,27 +390,25 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard groupsTabLayout.selectTab(tab); assert tab != null; mGroup = tab.getTag(); - } else if (!mArchiveMode) { + } else { scaleScreen(); } updateLoyaltyCardList(true); // End of active tab logic - if (!mArchiveMode) { - FloatingActionButton addButton = binding.fabAdd; + FloatingActionButton addButton = binding.fabAdd; - addButton.setOnClickListener(v -> { - Intent intent = new Intent(getApplicationContext(), ScanActivity.class); - Bundle bundle = new Bundle(); - if (selectedTab != 0) { - bundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, groupsTabLayout.getTabAt(selectedTab).getText().toString()); - } - intent.putExtras(bundle); - mBarcodeScannerLauncher.launch(intent); - }); - addButton.bringToFront(); - } + addButton.setOnClickListener(v -> { + Intent intent = new Intent(getApplicationContext(), ScanActivity.class); + Bundle bundle = new Bundle(); + if (selectedTab != 0) { + bundle.putString(LoyaltyCardEditActivity.BUNDLE_ADDGROUP, groupsTabLayout.getTabAt(selectedTab).getText().toString()); + } + intent.putExtras(bundle); + mBarcodeScannerLauncher.launch(intent); + }); + addButton.bringToFront(); } @Override @@ -432,7 +422,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } private void displayCardSetupOptions(Menu menu, boolean shouldShow) { - for (int id : new int[]{R.id.action_search, R.id.action_shown_details, R.id.action_sort}) { + for (int id : new int[]{R.id.action_search, R.id.action_display_options, R.id.action_sort}) { menu.findItem(id).setVisible(shouldShow); } } @@ -442,12 +432,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } private void updateLoyaltyCardList(boolean updateCount) { - Group group = null; - if (mGroup != null) { - group = (Group) mGroup; - } - - mAdapter.swapCursor(DBHelper.getLoyaltyCardCursor(mDatabase, mFilter, group, mOrder, mOrderDirection, mArchiveMode ? DBHelper.LoyaltyCardArchiveFilter.Archived : DBHelper.LoyaltyCardArchiveFilter.Unarchived)); + mSwapLoyaltyCardListCursor.run(); if (updateCount) { updateLoyaltyCardCount(); @@ -478,12 +463,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } } } else { - if (mArchiveMode) { - // If an user deletes the last card in archive mode, we should close the activity - // This will move us back to the main view - finish(); - } - mCardList.setVisibility(View.GONE); mHelpSection.setVisibility(View.VISIBLE); @@ -557,8 +536,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard } private void extractIntentFields(Intent intent) { - final Bundle b = intent.getExtras(); - mArchiveMode = b != null && b.getBoolean(BUNDLE_ARCHIVE_MODE, false); onSharedIntent(intent); } @@ -591,11 +568,7 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard @Override public boolean onCreateOptionsMenu(Menu inputMenu) { - if (!mArchiveMode) { - getMenuInflater().inflate(R.menu.main_menu, inputMenu); - } else { - getMenuInflater().inflate(R.menu.archive_menu, inputMenu); - } + getMenuInflater().inflate(R.menu.main_menu, inputMenu); displayCardSetupOptions(inputMenu, mLoyaltyCardCount > 0); @@ -630,14 +603,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard }); } - if (!mArchiveMode) { - if (DBHelper.getArchivedCardsCount(mDatabase) == 0) { - inputMenu.findItem(R.id.action_archived).setVisible(false); - } else { - inputMenu.findItem(R.id.action_archived).setVisible(true); - } - } - return super.onCreateOptionsMenu(inputMenu); } @@ -649,8 +614,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard onBackPressed(); } - if (id == R.id.action_shown_details) { - mAdapter.showSelectDetailDisplayDialog(); + if (id == R.id.action_display_options) { + mAdapter.showDisplayOptionsDialog(); invalidateOptionsMenu(); return true; @@ -706,15 +671,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard return true; } - if (id == R.id.action_archived) { - Intent i = new Intent(getApplicationContext(), MainActivity.class); - Bundle bundle = new Bundle(); - bundle.putBoolean("archiveMode", true); - i.putExtras(bundle); - startActivity(i); - return true; - } - if (id == R.id.action_import_export) { Intent i = new Intent(getApplicationContext(), ImportExportActivity.class); startActivity(i); @@ -794,30 +750,31 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard boolean hasStarred = false; boolean hasUnstarred = false; - - if (!mArchiveMode) { - unarchiveItem.setVisible(false); - archiveItem.setVisible(true); - } else { - unarchiveItem.setVisible(true); - archiveItem.setVisible(false); - } + boolean hasArchived = false; + boolean hasUnarchived = false; for (LoyaltyCard loyaltyCard : mAdapter.getSelectedItems()) { - if (loyaltyCard.starStatus == 1) { hasStarred = true; } else { hasUnstarred = true; } - if (hasStarred && hasUnstarred) { - hasStarred = true; - hasUnstarred = true; + if (loyaltyCard.archiveStatus == 1) { + hasArchived = true; + } else { + hasUnarchived = true; + } + + // We have all types, no need to keep checking + if (hasStarred && hasUnstarred && hasArchived && hasUnarchived) { break; } } + unarchiveItem.setVisible(hasArchived); + archiveItem.setVisible(hasUnarchived); + if (count == 1) { starItem.setVisible(!hasStarred); unstarItem.setVisible(!hasUnstarred); diff --git a/app/src/main/java/protect/card_locker/ManageGroupActivity.java b/app/src/main/java/protect/card_locker/ManageGroupActivity.java index d518ca0a8..365fca58d 100644 --- a/app/src/main/java/protect/card_locker/ManageGroupActivity.java +++ b/app/src/main/java/protect/card_locker/ManageGroupActivity.java @@ -28,7 +28,6 @@ import androidx.recyclerview.widget.RecyclerView; import protect.card_locker.databinding.ActivityManageGroupBinding; public class ManageGroupActivity extends CatimaAppCompatActivity implements ManageGroupCursorAdapter.CardAdapterListener { - private ActivityManageGroupBinding binding; private SQLiteDatabase mDatabase; private ManageGroupCursorAdapter mAdapter; @@ -100,7 +99,7 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana } mGroupNameText.setText(mGroup._id); setTitle(getString(R.string.editGroup, mGroup._id)); - mAdapter = new ManageGroupCursorAdapter(this, null, this, mGroup); + mAdapter = new ManageGroupCursorAdapter(this, null, this, mGroup, null); mCardList.setAdapter(mAdapter); registerForContextMenu(mCardList); @@ -167,8 +166,8 @@ public class ManageGroupActivity extends CatimaAppCompatActivity implements Mana public boolean onOptionsItemSelected(MenuItem inputItem) { int id = inputItem.getItemId(); - if (id == R.id.action_shown_details) { - mAdapter.showSelectDetailDisplayDialog(); + if (id == R.id.action_display_options) { + mAdapter.showDisplayOptionsDialog(); invalidateOptionsMenu(); return true; diff --git a/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java b/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java index 9e198719b..363d9c11f 100644 --- a/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java +++ b/app/src/main/java/protect/card_locker/ManageGroupCursorAdapter.java @@ -16,8 +16,8 @@ public class ManageGroupCursorAdapter extends LoyaltyCardCursorAdapter { final private Group mGroup; final private SQLiteDatabase mDatabase; - public ManageGroupCursorAdapter(Context inputContext, Cursor inputCursor, CardAdapterListener inputListener, Group group) { - super(inputContext, inputCursor, inputListener); + public ManageGroupCursorAdapter(Context inputContext, Cursor inputCursor, CardAdapterListener inputListener, Group group, Runnable inputSwapCursorCallback) { + super(inputContext, inputCursor, inputListener, inputSwapCursorCallback); mGroup = new Group(group._id, group.order); mInGroupOverlay = new HashMap<>(); mDatabase = new DBHelper(inputContext).getWritableDatabase(); diff --git a/app/src/main/res/layout/archive_activity.xml b/app/src/main/res/layout/archive_activity.xml deleted file mode 100644 index 03ae97283..000000000 --- a/app/src/main/res/layout/archive_activity.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - diff --git a/app/src/main/res/menu/archive_menu.xml b/app/src/main/res/menu/archive_menu.xml deleted file mode 100644 index 710618a33..000000000 --- a/app/src/main/res/menu/archive_menu.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/app/src/main/res/menu/card_details_menu.xml b/app/src/main/res/menu/card_details_menu.xml index 8c660497f..501cfd072 100644 --- a/app/src/main/res/menu/card_details_menu.xml +++ b/app/src/main/res/menu/card_details_menu.xml @@ -1,8 +1,8 @@ diff --git a/app/src/main/res/menu/main_menu.xml b/app/src/main/res/menu/main_menu.xml index c5fe0f2d8..41c5f92dc 100644 --- a/app/src/main/res/menu/main_menu.xml +++ b/app/src/main/res/menu/main_menu.xml @@ -10,8 +10,8 @@ app:showAsAction="always|collapseActionView" android:visible="false"/> @@ -26,10 +26,6 @@ android:icon="@drawable/ic_folder_white" android:title="@string/groups" app:showAsAction="never"/> - أخرج من الأرشيف تمت أرشفة البطاقة البطاقة غير مؤرشفة - أرشيف تعذر العثور على تطبيق معرض مدعوم انشئ بعض من البطاقات, و عيينهم لهذه المجموعة. مسح بطاقة @@ -171,7 +170,6 @@ رخصة اسم تاريخ النسخة - أخف التفاصيل %1$d بطاقة ( %2$d مؤرشفة) %1$d بطاقة ( %2$d مؤرشفة) @@ -245,7 +243,6 @@ على GitHub الإبلاغ عن خطأ انقضاء - لا توجد بطاقات غير مؤرشفة موجودة الاستيراد من Loyalty Card Keychain Copyright © 2019–%d Sylvia van Os حدد ملفك LoyaltyCardKeychain.csv التصدير من Loyalty Card Keychain للاستيراد. @@ -256,7 +253,6 @@ \nلا يتم جمع أي بيانات على الإطلاق ، والتي يمكن لأي شخص تأكيدها لأن تطبيقنا هو برنامج حر. تعذر إنشاء عنوان URL قابل للمشاركة. الرجاء الإبلاغ عن هذا. ساعد في ترجمة هذا التطبيق - اظهر التفاصيل على Google Play لون المظهر السابق diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 5d5ae9fcf..827398bbb 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -203,8 +203,6 @@ Избиране на цвят Името на списъка не може да е празно Редактиране на списък - Подробности под картата - По-малко детайли Създайте карти и ги зачислите към списък от тук. в Weblate Избор на карта @@ -228,8 +226,6 @@ Изваждане от архива Картата е архивирана Карта е извадена от архива - Архив - Няма карти извън архива Не е намерено поддържано приложение за галерия %1$d карта (%2$d архивирана) diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index ca88eceee..ffcc52b62 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -197,7 +197,6 @@ \nলয়্যালটি কার্ড কীচেনের আমদানি/রপ্তানি মেনু থেকে প্রথমে সেখানে রপ্তানি টিপে এটি তৈরি করুন। রঙ নির্বাচন করুন কার্ড সংরক্ষণাগারমুক্ত করা হয়েছে - সংরক্ষণাগার ভুল প্রতিবেদন একটি সমর্থিত গ্যালারি অ্যাপ খুঁজে পাওয়া যায়নি @@ -234,8 +233,6 @@ গ্যালারি অ্যাপে শুধুমাত্র ছবি খোলা যাবে Weblate-এ Google Play-তে - বিস্তারিত দেখাও - আড়াল বিস্তারিত একটি কার্ড নির্বাচন করুন অপশন তারকাচিহ্নিত @@ -254,7 +251,6 @@ সংরক্ষণ করুন সংরক্ষণাগারমুক্ত করুন কার্ড সংরক্ষণাগারভুক্ত - আর্কাইভ করা কোনো কার্ড নেই Catima-তে স্বাগতম আপনি কত খরচ করেছেন\? পরিমান লিখুন diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 56e0f64e2..e18f9fd9c 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -210,8 +210,6 @@ Úprava skupiny: %s Zatím nemáte žádné věrnostní karty. Jakmile nějaké přidáte, můžete je zde přiřadit do skupiny. Vybrat kartu - Zobrazit detaily - Skrýt detaily na Weblate Zobrazit podrobnosti S hvězdičkou @@ -228,8 +226,6 @@ Ponechat orientaci jako při otevření karty Archivovat Vrátit z archivu - Archiv - Nejsou žádné karty vrácené z archivu Karta vrácena z archivu Orientace čárového kódu Na šířku diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 583b15798..2e94af579 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -205,8 +205,6 @@ Erstelle einige Karten und ordne sie dann hier der Gruppe zu. Vorschau setzen Farbe auswählen - Details anzeigen - Details ausblenden auf Weblate Wählen Sie eine Karte Optionen @@ -220,8 +218,6 @@ Wenn Sie Unterstützung anfordern möchten, geben Sie bitte die folgenden Informationen an: System folgen Landschaft - Archiv - Es gibt keine nicht archivierten Karten Porträt Duplizieren Archivierung aufheben diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index 6ed4bea50..cb0e65ca2 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -105,7 +105,6 @@ Αφαίρεση εικόνας Τραβήξτε μια φωτογραφία Αλλάξατε τον κωδικό. Θέλετε να ενημερώσετε και τον γραμμοκώδικα στην ίδια τιμή; - Εμφάνιση λεπτομερειών Επιλογές Αυτή η ομάδα είναι άδεια Επιπλέον φωτισμός γραμμοκώδικα @@ -152,7 +151,6 @@ Ελεύθερες βιβλιοθήκες τρίτων: %s Άδεια Αν θέλετε να ζητήσετε υποστήριξη, συμπεριλάβετε τις ακόλουθες πληροφορίες: - Απόκρυψη λεπτομερειών Δεδομένα εισήχθησαν Προχώρα πάνω Τύπος γραμμοκώδικα @@ -233,8 +231,6 @@ Η κάρτα αρχειοθετήθηκε Η κάρτα αφαιρέθηκε από το αρχείο Αφαίρεση από το αρχείο - Αρχείο - Δεν υπάρχουν αρχειοθετημένες κάρτες Πόσα ξοδέψατε; Αδύνατη η πρόσβαση στην κάμερα Αποτυχία ανάκτησης αρχείου εικόνας diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b42138ae8..bd1c5762a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -211,9 +211,7 @@ En GitHub en Google Play Informar de un error - Ocultar detalles en Weblate - Mostrar detalles Seleccione el color Establecer una miniatura Ordenar @@ -240,8 +238,6 @@ Archivar Tarjeta archivada Tarjeta desarchivada - Archivo - No existen tarjetas sin archivar Establezca una contraseña para proteger su exportación (opcional) No se ha podido encontrar una aplicación de galería compatible diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 46998df45..3d8c92543 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -202,8 +202,6 @@ ja datan käyttö Google Playssa Ilmoita virheestä - Näytä tiedot - Piilota tiedot Valitse kortti Tähdellä merkityt Vaihtoehdot @@ -222,12 +220,10 @@ Pysty Vaaka Kortti on poistettu arkistosta - Arkistoimattomia kortteja ei ole olemassa Poista arkistosta Kortti arkistoitu Tuettua galleriasovellusta ei löytynyt Viivakoodin suuntaus - Arkisto %1$d kortti (%2$d arkistoitu) %1$d korttia (%2$d arkistoitu) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ee3edaf52..300e89044 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -209,8 +209,6 @@ Le nom du groupe ne peut pas être vide Définir la vignette Sélectionnez la couleur - Afficher les détails - Masquer les détails sur Weblate Sélectionnez une carte Options @@ -233,8 +231,6 @@ Désarchiver Carte archivée Carte désarchivée - Archives - Il n\'existe aucune carte non archivée Impossible de trouver une application de galerie prise en charge %1$d carte (%2$d archivée) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 796ca02df..c0a184aca 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -96,7 +96,6 @@ Odaberi tvoju iz LoyaltyCardKeychain izvezenu LoyaltyCardKeychain.csv datoteku koju želiš uvesti. \nStvori je putem izbornika „Uvoz/Izvoz” u aplikaciji LoyaltyCardKeychain i tamo najprije pritisni „Izvoz”. Promijenio/la si ID. Želiš li također aktualizirati crtični kod da koristi istu vrijednost\? - Sakrij detalje Uvezi kartice Odaberi boju Postavi sličicu @@ -132,7 +131,6 @@ Kartica je arhivirana Kartica je dearhivirana Nije bilo moguće pronaći aplikaciju za galeriju - Arhiva Nije bilo moguće pristupiti kameri Za snimanje crtičnih kodova Catima treba pristup tvojoj kameri. Dodirni ovdje za mijenjanje postavki dozvola. Libre biblioteke trećih strana: %s @@ -260,9 +258,7 @@ Ime Nedavno korišteno … u obrnutom redoslijedu - Prikaži detalje Odaberi karticu - Ne postoje nearhivirane kartice Prethodna Sljedeća Koliko si potrošio/la\? diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 34e245a73..8068d378c 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -70,8 +70,6 @@ Szürke Rendezés a Google Playen - Részletek megjelenítése - Részletek elrejtése és adathasználat a Weblate-en Név @@ -221,7 +219,6 @@ %1$d kártya (%2$d archiválva) %1$d kártya (%2$d archiválva) - Nincs archiválatlan kártya Először telepítsen egy webböngészőt Nem található támogatott galéria alkalmazás Előző @@ -235,7 +232,6 @@ Archiválás Archiválás megszüntetése Kártya archiválva - Archívum Klónozás Jelenlegi egyenleg: %s Adja meg az összeget diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml index 80201f079..4172ffa51 100644 --- a/app/src/main/res/values-in-rID/strings.xml +++ b/app/src/main/res/values-in-rID/strings.xml @@ -206,8 +206,6 @@ %1$d kartu (%2$d diarsipkan) di Weblate - Tampilkan detail - Sembunyikan detail Selamat datang di Catima Install browser web terlebih dahulu @@ -230,12 +228,10 @@ Duplikat Arsip Kartu diarsipkan - Arsip Gagal mengambil file gambar Hanya gambar yang dapat dibuka di aplikasi galeri Ekstrak Kartu tidak diarsipkan - Tidak ada kartu yang diekstrak Opsi Berbintang Import kartu diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8ffa37f39..4683d4d0b 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -209,8 +209,6 @@ Gruppo aggiornato Seleziona il colore Imposta l\'immagine - Mostra i dettagli - Nascondi i dettagli su Weblate Seleziona una tessera Opzioni @@ -228,8 +226,6 @@ Duplica Archivia Disarchivia - Archivio - Non esistono schede non archiviate Carta non archiviata Carta archiviata Verticale diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 68a53f7fc..1ca7fef3a 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -195,8 +195,6 @@ and data usage グループを更新しました グループ編集: %s - 詳細を表示 - 詳細を非表示 色を選択 アイコン設定 グループ編集 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 80c65225e..4a3fa4f4e 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -123,7 +123,6 @@ 보관 취소 보관된 카드 보관되지 않은 카드 - 보관소 지원되는 갤러리 앱을 찾을 수 없습니다 Catima 오신 것을 환영합니다 유효 @@ -171,7 +170,6 @@ 그룹 이름은 비워둘 수 없습니다 만료일 선택 어두운 테마를 위한 검정색 배경 - 세부정보 표시 + 더하기 버튼을 클릭하여 분류할 그룹을 추가합니다. 그룹을 삭제하시겠습니까\? 이미지를 읽을 수 없습니다 @@ -194,12 +192,10 @@ 손전등 켜기 내보내기를 보호하기 위한 암호 설정(선택 사항) 비밀번호를 입력해주세요 - 상세정보 표시 썸네일 설정 잔액 표시 이 앱을 번역하도록 도와주세요 복제하다 - 보관되지 않은 카드가 없습니다 %1$d 카드 (%2$d 보관됨) diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index c2b89118a..c3e6ea339 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -209,11 +209,7 @@ Sukurkite keletą kortelių ir priskirkite jas grupei čia. Nustatyti piktogramą Pasirinkti spalvą - Paslėpti informaciją - Rodyti išsamią informaciją Brūkšninio kodo orientacija - Archyvas - Nėra išarchyvuotų kortelių Nepavyko rasti palaikomos galerijos programėlės Ankstesnė Kita diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 63d75d8aa..47c111f99 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -105,8 +105,6 @@ Numurs nav ievadīts Par %s Derīguma termiņš beidzās: %s - Slēpt detaļas - Rādīt detalizēti Izvēlieties krāsu Catima Rozā @@ -230,8 +228,6 @@ Atarhivēt Karte arhivēta Karte atarhivēta - Arhīvs - Nav atarhivētu karšu Nevarēja atrast atbalstītu galerijas lietotni Iepriekšējā Nākamā diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 9b69d0148..af65e3a0e 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -203,8 +203,6 @@ Gruppenavn kan ikke være tomt Redigerer gruppe: %s Lag noen kort, og legg dem til i en gruppe her. - Vis detaljer - Skjul detaljer Velg farge Sett miniatyrbilde velg et kort @@ -226,8 +224,6 @@ Opphev arkivering Kort arkivert Kort flyttet tilbake fra arkiv - Ingen kort flyttet tilbake fra arkiv finnes - Arkiv Følg systemet Stående Fant ikke noe støttet galleriprogram diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 631cd9566..93bf9e245 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -205,8 +205,6 @@ Groep bewerken Miniatuur instellen Kies een kleur - Details tonen - Details verbergen op Weblate Kies een kaart Opties @@ -227,9 +225,7 @@ Dearchiveren De kaart is gearchiveerd De kaart is gedearchiveerd - Archief Horizontaal - Er zijn geen gedearchiveerde kaarten Er is geen ondersteunde galerij-app aangetroffen %1$d kaart (%2$d gearchiveerd) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 65a9bbe8a..66a38e1cb 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -187,8 +187,6 @@ %d zaznaczonych Wybierz kartę - Pokaż szczegóły - Ukryj szczegóły Nazwa Ostatnio używane Data wygaśnięcia @@ -238,8 +236,6 @@ Cofnij archiwizację Karta zarchiwizowana Karta niezarchiwizowana - Archiwum - Nie istnieją żadne niezarchiwizowane karty Nie można odnaleźć aplikacji galeria Poprzedni Następny diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index a68561070..e541c546a 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -209,8 +209,6 @@ Crie alguns cartões e atribua-os depois ao grupo aqui. Selecionar cor Definir miniatura - Mostrar detalhes - Ocultar detalhes Selecione um cartão no Weblate Estrela @@ -233,8 +231,6 @@ Desarquivar Cartão arquivado Cartão desarquivado - Arquivar - Não existem cartões desarquivados %1$d cartão (%2$d arquivado) %1$d cartões (%2$d arquivados) diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 69f48b858..731e39e0d 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -94,7 +94,6 @@ Da Nu Arhivați - Arhivă Vă rugăm, introduceți parola Acest tip de cod de bare nu poate fi afișat. Este posibil ca acesta să se poată afișa într-o versiune mai nouă a aplicației. Imagini diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 1e6311c76..195c62674 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -213,8 +213,6 @@ Создайте несколько карт, а затем распределите их по группам здесь. Выбор миниатюры Выбрать цвет - Скрытие подробностей - Отображение подробностей на Weblate Выбор карты Параметры @@ -233,8 +231,6 @@ Фиксировать ориентацию при открытии карты Архивировать Разархивировать - Архив - Нет карт вне архива Как в системе Дублировать Ориентация штрих-кода diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 6c63c078c..8bf03604c 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -127,7 +127,6 @@ Farba témy Slobodné knižnice tretích strán: %s Slobodné zdroje tretích strán: %s - Zobraziť detaily Vyberte svoj catima.zip export z aplikácie Catima, ktorý chcete importovať. \nVytvorte ho z ponuky Import/Export inej aplikácie Catima tak, že stlačíte tlačidlo Exportovať. Prijať @@ -146,7 +145,6 @@ Nahlásiť chybu na Weblate Zobraziť podrobnosti - Skryť detaily Áno Import z aplikácie Stocard Vybrať farbu @@ -262,8 +260,6 @@ ID skopírované do schránky Chcem sa s vami zdielať karty Podporili: %s - Archív - Nie sú žiadne karty vrátené z archívu Nový zostatok: %s Nepodarilo sa nájsť podporovanú aplikáciu galérie Zobraziť poznámku diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index bb3b721e3..111fb4b3f 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -184,7 +184,6 @@ Posodobi stanje Slikovne datoteke ni bilo mogoče pridobiti Zasluge - Prikaži podrobnosti na Weblate-u Možnosti Podvoji @@ -192,8 +191,6 @@ Odpakiraj arhiv Karta arhivirana Kartica ni arhivirana - Arhiv - Ne obstajajo ne arhivirane kartice Ni mogoče najti podprte aplikacije za gledanje slik Prejšnje Naslednje @@ -254,7 +251,6 @@ Catima Omogočeno od: %s V aplikaciji za gledanje slik lahko odpremo samo slike - Skrij podrobnosti %1$d kartica (%2$d arhivirana) %1$d kartici (%2$d arhivirani) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index aa9ed2f70..f0d0ea396 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -202,8 +202,6 @@ Redigerar grupp: %s Välj färg Välj ikon - Visa detaljer - Dölj detaljer Bidragsgivare Källkodslager Skapa några kort och placera dem sedan i den här gruppen. @@ -225,14 +223,12 @@ Lås aktuell riktning när kort öppnas Ta tillbaks från arkiv Kort arkiverat - Arkivet Spårsystem Kopiera Kort återläst från arkiv Nästa Arkivera Föregående - Inga ej arkiverade kort finns %1$d kort (%2$d arkiverat) %1$d kort (%2$d arkiverade) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 54a7c61af..9a79bba60 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -205,8 +205,6 @@ Grup güncellendi Renk seç Küçük resim ayarla - Ayrıntıları göster - Ayrıntıları gizle Weblate\'de Kart seç Seçenekler @@ -224,8 +222,6 @@ Çoğalt Arşivden çıkar Kart arşivlendi - Arşiv - Arşivden çıkarılan kart yok Barkod yönü Kartı açarken kullanılan yönü kilitle Kart arşivden çıkarıldı diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 5c8d5957e..20fdd665d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -213,8 +213,6 @@ Створите кілька карток, та призначте їх до групи тут. Вибір кольору Вибір мініатюри - Показати деталі - Сховати деталі на Weblate Оберіть карту Параметри @@ -238,8 +236,6 @@ Блокування орієнтації при відкритті картки Картка архівована Картка розархівована - Архів - Немає не архівованих карток %1$d карту (%2$d заархівовано) %1$d карти (%2$d заархівовано) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index be56886e0..a0580d5f7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -208,8 +208,6 @@ 设置密码来保护导出的内容(可选) 紫红 紫色 - 显示详情 - 隐藏详情 因他们而存在: %s 和数据使用方法 找不到支持的图库应用 @@ -231,8 +229,6 @@ 移出归档 卡片已归档 卡片未归档 - 已归档卡 - 没有未归档卡 先安装一个浏览器 欢迎使用Catima 输入金额 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 69d215be9..0750c1183 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -194,7 +194,6 @@ 收藏標示 建立一些卡片,然後將它們分配到這個群組中。 顯示資訊 - 顯示詳情 選擇卡片 已收藏 @@ -208,7 +207,6 @@ 已更新群組 編輯群組中:%s 使用深色主題時,使用純黑色背景 - 隱藏詳情 於 Weblate 選項 如果您想請求協助,請附上以下訊息: @@ -227,10 +225,8 @@ 跟隨系統 橫向 先安裝網頁瀏覽器 - 封存 無法找到支援的圖庫應用程式 上一張 - 沒有已封存的卡片 下一張 歡迎使用 Catima diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ec73cabfa..b81d40ad8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -275,8 +275,6 @@ Rate this app on Google Play Report Error - Show details - Hide details on Weblate Select a card Options @@ -287,9 +285,7 @@ Unarchive Card archived Card unarchived - Archive Overflow menu - No unarchived cards exist Could not find a supported gallery app %1$d card (%2$d archived) @@ -325,11 +321,14 @@ Show note Show balance Show validity + sharedpreference_card_details_show_name_below_thumbnail sharedpreference_card_details_show_note sharedpreference_card_details_show_balance sharedpreference_card_details_show_validity - sharedpreference_card_details_show_name_below_thumbnail + sharedpreference_card_details_show_archived_cards Cards General Privacy + Display options + Show archived cards diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java index f005bd308..2d34136f6 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java @@ -18,13 +18,10 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.shadows.ShadowLog; import java.math.BigDecimal; -import java.text.DateFormat; import java.util.Currency; -import java.util.Date; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.preference.PreferenceManager; -import protect.card_locker.preferences.Settings; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @@ -52,7 +49,7 @@ public class LoyaltyCardCursorAdapterTest { } private View createView(Cursor cursor) { - LoyaltyCardCursorAdapter adapter = new LoyaltyCardCursorAdapter(activity.getApplicationContext(), cursor, (MainActivity) activity); + LoyaltyCardCursorAdapter adapter = new LoyaltyCardCursorAdapter(activity.getApplicationContext(), cursor, (MainActivity) activity, null); LoyaltyCardCursorAdapter.LoyaltyCardListItemViewHolder viewHolder = adapter.createViewHolder(activity.findViewById(R.id.list), 0); adapter.bindViewHolder(viewHolder, cursor.getPosition()); diff --git a/app/src/test/java/protect/card_locker/MainActivityTest.java b/app/src/test/java/protect/card_locker/MainActivityTest.java index 45251217d..cc67d5dba 100644 --- a/app/src/test/java/protect/card_locker/MainActivityTest.java +++ b/app/src/test/java/protect/card_locker/MainActivityTest.java @@ -59,12 +59,11 @@ public class MainActivityTest { assertNotNull(menu); // The settings, import/export, groups, search and add button should be present - assertEquals(menu.size(), 8); + assertEquals(menu.size(), 7); assertEquals("Search", menu.findItem(R.id.action_search).getTitle().toString()); assertEquals("Sort", menu.findItem(R.id.action_sort).getTitle().toString()); - assertEquals("Show details", menu.findItem(R.id.action_shown_details).getTitle().toString()); + assertEquals("Display options", menu.findItem(R.id.action_display_options).getTitle().toString()); assertEquals("Groups", menu.findItem(R.id.action_manage_groups).getTitle().toString()); - assertEquals("Archive", menu.findItem(R.id.action_archived).getTitle().toString()); assertEquals("Import/Export", menu.findItem(R.id.action_import_export).getTitle().toString()); assertEquals("About", menu.findItem(R.id.action_about).getTitle().toString()); assertEquals("Settings", menu.findItem(R.id.action_settings).getTitle().toString());