This commit is contained in:
Vijay 2025-12-14 19:37:57 +05:30 committed by GitHub
commit 490201b2c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 65 additions and 61 deletions

View File

@ -828,8 +828,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
boolean result = super.onPrepareOptionsMenu(menu);
if (loyaltyCard != null) {
// Update star status
if (loyaltyCard.starStatus == 1) {
@ -842,15 +841,21 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
// Update archive/unarchive button
if (loyaltyCard.archiveStatus != 0) {
menu.findItem(R.id.action_unarchive).setVisible(true);
menu.findItem(R.id.action_archive).setVisible(false);
menu.findItem(R.id.action_archive_unarchive).setTitle(R.string.archive);
menu.findItem(R.id.action_archive_unarchive).setIcon(R.drawable.ic_archive);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
menu.findItem(R.id.action_archive_unarchive).setTooltipText(getString(R.string.archive));
}
} else {
menu.findItem(R.id.action_unarchive).setVisible(false);
menu.findItem(R.id.action_archive).setVisible(true);
menu.findItem(R.id.action_archive_unarchive).setTitle(R.string.unarchive);
menu.findItem(R.id.action_archive_unarchive).setIcon(R.drawable.ic_unarchive);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
menu.findItem(R.id.action_archive_unarchive).setTooltipText(getString(R.string.unarchive));
}
}
}
return true;
return result;
}
@Override
@ -887,22 +892,17 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
invalidateOptionsMenu();
return true;
} else if (id == R.id.action_archive) {
DBHelper.updateLoyaltyCardArchiveStatus(database, loyaltyCardId, 1);
Toast.makeText(LoyaltyCardViewActivity.this, R.string.archived, Toast.LENGTH_LONG).show();
} else if (id == R.id.action_archive_unarchive) {
DBHelper.updateLoyaltyCardArchiveStatus(database, loyaltyCardId, loyaltyCard.archiveStatus == 0 ? 1 : 0);
Toast.makeText(LoyaltyCardViewActivity.this, loyaltyCard.archiveStatus == 0 ? R.string.archived : R.string.unarchived, Toast.LENGTH_LONG).show();
// If we're archiving the card, remove any existing shortcut
// Archived cards also do not show up in the shortcut picker
if (loyaltyCard.archiveStatus == 0) {
ShortcutHelper.removeShortcut(LoyaltyCardViewActivity.this, loyaltyCardId);
}
ShortcutHelper.removeShortcut(LoyaltyCardViewActivity.this, loyaltyCardId);
new ListWidget().updateAll(LoyaltyCardViewActivity.this);
// Re-init loyaltyCard with new data from DB
onResume();
invalidateOptionsMenu();
return true;
} else if (id == R.id.action_unarchive) {
DBHelper.updateLoyaltyCardArchiveStatus(database, loyaltyCardId, 0);
Toast.makeText(LoyaltyCardViewActivity.this, R.string.unarchived, Toast.LENGTH_LONG).show();
// Re-init loyaltyCard with new data from DB
onResume();
invalidateOptionsMenu();

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M20.54,5.23l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6c-0.47,0 -0.88,0.21 -1.16,0.55L3.46,5.23C3.17,5.57 3,6.02 3,6.5V19c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5c0,-0.48 -0.17,-0.93 -0.46,-1.27zM12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5zM5.12,5l0.81,-1h12l0.94,1H5.12z" />
</vector>

View File

@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>

View File

@ -0,0 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
<path android:fillColor="@android:color/white" android:pathData="M20.55,5.22l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6C5.53,3 5.12,3.21 4.85,3.55L3.46,5.22C3.17,5.57 3,6.01 3,6.5V19c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5C21,6.01 20.83,5.57 20.55,5.22zM12,9.5l5.5,5.5H14v2h-4v-2H6.5L12,9.5zM5.12,5l0.82,-1h12l0.93,1H5.12z"/>
</vector>

View File

@ -15,33 +15,19 @@
app:showAsAction="always" />
<item
android:id="@+id/action_overflow"
android:title="@string/overflowMenu"
android:icon="@drawable/ic_overflow_menu"
app:showAsAction="always">
android:id="@+id/action_archive_unarchive"
android:icon="@drawable/ic_archive"
android:title="@string/archive"
app:showAsAction="always"/>
<menu>
<item
android:id="@+id/action_duplicate"
android:title="@string/duplicateCard"
app:showAsAction="never" />
<item
android:id="@+id/action_duplicate"
android:title="@string/duplicateCard"
app:showAsAction="never" />
<item
android:id="@+id/action_archive"
android:title="@string/archive"
app:showAsAction="never"/>
<item
android:id="@+id/action_unarchive"
android:title="@string/unarchive"
app:showAsAction="never"/>
<item
android:id="@+id/action_delete"
android:title="@string/delete"
app:showAsAction="never"/>
</menu>
</item>
<item
android:id="@+id/action_delete"
android:title="@string/delete"
app:showAsAction="never"/>
</menu>

View File

@ -1034,11 +1034,13 @@ public class LoyaltyCardViewActivityTest {
final Menu menu = shadowOf(activity).getOptionsMenu();
assertTrue(menu != null);
// The share, star and overflow options should be present
assertEquals(menu.size(), 3);
assertEquals(menu.size(), 5);
assertEquals("Share", menu.findItem(R.id.action_share).getTitle().toString());
assertEquals("Add to favorites", menu.findItem(R.id.action_star_unstar).getTitle().toString());
assertEquals("Unarchive", menu.findItem(R.id.action_archive_unarchive).getTitle().toString());
assertEquals("Duplicate", menu.findItem(R.id.action_duplicate).getTitle().toString());
assertEquals("Delete", menu.findItem(R.id.action_delete).getTitle().toString());
database.close();
}
@ -1194,8 +1196,7 @@ public class LoyaltyCardViewActivityTest {
final Menu menu = shadowOf(activity).getOptionsMenu();
assertTrue(menu != null);
// The share, star and overflow options should be present
assertEquals(menu.size(), 3);
assertEquals(menu.size(), 5);
assertEquals("Add to favorites", menu.findItem(R.id.action_star_unstar).getTitle().toString());
@ -1207,6 +1208,16 @@ public class LoyaltyCardViewActivityTest {
shadowOf(getMainLooper()).idle();
assertEquals("Add to favorites", menu.findItem(R.id.action_star_unstar).getTitle().toString());
assertEquals("Unarchive", menu.findItem(R.id.action_archive_unarchive).getTitle().toString());
shadowOf(activity).clickMenuItem(R.id.action_archive_unarchive);
shadowOf(getMainLooper()).idle();
assertEquals("Archive", menu.findItem(R.id.action_archive_unarchive).getTitle().toString());
shadowOf(activity).clickMenuItem(R.id.action_archive_unarchive);
shadowOf(getMainLooper()).idle();
assertEquals("Unarchive", menu.findItem(R.id.action_archive_unarchive).getTitle().toString());
database.close();
}