Skip to content

Commit

Permalink
Add menu option to lock screen when viewing card
Browse files Browse the repository at this point in the history
When passing a phone to a clerk to scan the barcode, if the
phone is rotated and the screen reloads it can be bothersome
or confusion. To avoid this situation, a new option is
added to lock the screen.

A menu icon is now added which defaults as unlocked. When
touched the app sets its orientation to the "natural" orientation
of the device. When touched again the sensor dictates the
orientation of the device.
  • Loading branch information
brarcher committed Jul 17, 2017
1 parent 641d29a commit fb7e3e1
Show file tree
Hide file tree
Showing 20 changed files with 67 additions and 1 deletion.
23 changes: 23 additions & 0 deletions app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java
Expand Up @@ -2,8 +2,11 @@


import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
Expand Down Expand Up @@ -53,6 +56,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
boolean updateLoyaltyCard;
boolean viewLoyaltyCard;

boolean rotationEnabled;

DBHelper db;

@Override
Expand Down Expand Up @@ -305,6 +310,8 @@ else if(updateLoyaltyCard)
getMenuInflater().inflate(R.menu.card_add_menu, menu);
}

rotationEnabled = true;

return super.onCreateOptionsMenu(menu);
}

Expand Down Expand Up @@ -361,6 +368,22 @@ public void onClick(DialogInterface dialog, int which)
finish();
return true;

case R.id.action_lock_unlock:
if(rotationEnabled)
{
item.setIcon(R.drawable.ic_lock_outline_white_24dp);
item.setTitle(R.string.unlockScreen);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
}
else
{
item.setIcon(R.drawable.ic_lock_open_white_24dp);
item.setTitle(R.string.lockScreen);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
rotationEnabled = !rotationEnabled;
return true;

case R.id.action_save:
doSave();
return true;
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions app/src/main/res/menu/card_view_menu.xml
Expand Up @@ -2,6 +2,11 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
android:id="@+id/action_lock_unlock"
android:icon="@drawable/ic_lock_open_white_24dp"
android:title="@string/lockScreen"
app:showAsAction="always"/>
<item
android:id="@+id/action_edit"
android:icon="@drawable/ic_mode_edit_white_24dp"
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-cs/strings.xml
Expand Up @@ -19,6 +19,8 @@
<string name="edit">Editovat</string>
<string name="delete">Smazat</string>
<string name="confirm">Potvrdit</string>
<!-- NEEDS TRANSLATED --><string name="lockScreen">Lock Screen</string>
<!-- NEEDS TRANSLATED --><string name="unlockScreen">Unlock Screen</string>
<string name="deleteTitle">Odstzranit věrnostní kartu</string>
<string name="deleteConfirmation">Opravdu chcete smazat tuto věrnostní kartu?</string>
<string name="ok">Ano</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-de/strings.xml
Expand Up @@ -33,6 +33,8 @@
<string name="cardIdFormat">%1$s: %2$s</string>
<string name="confirm">Bestätigen</string>
<string name="copy_to_clipboard">Kopiere die Nummer in die Zwischenablage</string>
<!-- NEEDS TRANSLATED --><string name="lockScreen">Lock Screen</string>
<!-- NEEDS TRANSLATED --><string name="unlockScreen">Unlock Screen</string>
<string name="delete">Löschen</string>
<string name="deleteConfirmation">Bitte bestätigen Sie, dass diese Karte gelöscht werden soll.</string>
<string name="deleteTitle">Lösche die Kundenkarte</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-fr/strings.xml
Expand Up @@ -18,6 +18,8 @@
<string name="editCard">Modifier</string>
<string name="edit">Modifier</string>
<string name="delete">Supprimer</string>
<!-- NEEDS TRANSLATED --><string name="lockScreen">Lock Screen</string>
<!-- NEEDS TRANSLATED --><string name="unlockScreen">Unlock Screen</string>
<string name="confirm">Confirmer</string>
<string name="deleteTitle">Supprimer la carte de fidélité</string>
<string name="deleteConfirmation">Confirmez que vous souhaitez supprimer cette carte</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-it/strings.xml
Expand Up @@ -56,6 +56,8 @@
<string name="copy_to_clipboard">Copia ID negli appunti</string>
<string name="copy_to_clipboard_toast">ID della carta copiato negli appunti</string>
<string name="confirm">Conferma</string>
<!-- NEEDS TRANSLATED --><string name="lockScreen">Lock Screen</string>
<!-- NEEDS TRANSLATED --><string name="unlockScreen">Unlock Screen</string>
<string name="deleteTitle">Rimuovi carta fedeltà</string>
<string name="deleteConfirmation">Conferma che vuoi eliminare questa carta.</string>
<string name="importExportHelp">Fare il backup dei dati ti permette di spostare le tue tessere da un dispositivo ad un altro.</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-lt/strings.xml
Expand Up @@ -19,6 +19,8 @@
<string name="edit">Redaguoti</string>
<string name="delete">Ištrinti</string>
<string name="confirm">Patvirtinti</string>
<!-- NEEDS TRANSLATED --><string name="lockScreen">Lock Screen</string>
<!-- NEEDS TRANSLATED --><string name="unlockScreen">Unlock Screen</string>
<string name="deleteTitle">Panaikinti lojalumo kortelę</string>
<string name="deleteConfirmation">Prašome patvirtinti jog Jūs norite panaikinti šią lojalumo kortelę.</string>
<string name="ok">Gerai</string>
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values-nl/strings.xml
Expand Up @@ -58,7 +58,8 @@
<string name="confirm">Bevestig</string>
<string name="deleteConfirmation">Bevestig deze kaart te verwijderen.</string>
<string name="deleteTitle">Verwijder kaart</string>

<!-- NEEDS TRANSLATED --><string name="lockScreen">Lock Screen</string>
<!-- NEEDS TRANSLATED --><string name="unlockScreen">Unlock Screen</string>
<string name="importExportHelp">Data die is geback-upt maakt het mogelijk om je klantenkaarten naar een ander apparaat te verplaatsen.</string>
<string name="importSuccessfulTitle">Importeren succesvol</string>
<string name="importFailedTitle">Importeren mislukte</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Expand Up @@ -19,6 +19,8 @@
<string name="edit">Edit</string>
<string name="delete">Delete</string>
<string name="confirm">Confirm</string>
<string name="lockScreen">Lock Screen</string>
<string name="unlockScreen">Unlock Screen</string>
<string name="deleteTitle">Remove Loyalty Card</string>
<string name="deleteConfirmation">Please confirm that you want to delete this card.</string>
<string name="ok">OK</string>
Expand Down
Expand Up @@ -6,6 +6,7 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
Expand All @@ -30,6 +31,7 @@

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.robolectric.Shadows.shadowOf;

@RunWith(RobolectricTestRunner.class)
Expand Down Expand Up @@ -414,4 +416,27 @@ public void startWithLoyaltyCardWithReceiptUpdateReceiptCancel() throws IOExcept
shadowOf(activity).clickMenuItem(android.R.id.home);
assertEquals(true, activity.isFinishing());
}

@Test
public void checkMenu() throws IOException
{
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);

db.insertLoyaltyCard("store", "note", BARCODE_DATA, BARCODE_TYPE);

activityController.start();
activityController.visible();
activityController.resume();

final Menu menu = shadowOf(activity).getOptionsMenu();
assertTrue(menu != null);

// The settings and add button should be present
assertEquals(menu.size(), 2);

assertEquals("Lock Screen", menu.findItem(R.id.action_lock_unlock).getTitle().toString());
assertEquals("Edit", menu.findItem(R.id.action_edit).getTitle().toString());
}
}

0 comments on commit fb7e3e1

Please sign in to comment.