diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ad7ea95a0..e112d6e68 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,7 +49,7 @@ android:configChanges="orientation|screenSize" android:theme="@style/AppTheme.NoActionBar"/> diff --git a/app/src/main/java/protect/card_locker/IntroActivity.java b/app/src/main/java/protect/card_locker/IntroActivity.java deleted file mode 100644 index 465f694a7..000000000 --- a/app/src/main/java/protect/card_locker/IntroActivity.java +++ /dev/null @@ -1,43 +0,0 @@ -package protect.card_locker; - -import android.os.Bundle; -import android.support.annotation.LayoutRes; -import android.support.v4.app.Fragment; - -import com.github.paolorotolo.appintro.AppIntro; - - -public class IntroActivity extends AppIntro -{ - @Override - public void init(Bundle savedInstanceState) - { - addIntroSlide(R.layout.intro1_layout); - addIntroSlide(R.layout.intro2_layout); - addIntroSlide(R.layout.intro3_layout); - addIntroSlide(R.layout.intro4_layout); - addIntroSlide(R.layout.intro5_layout); - addIntroSlide(R.layout.intro6_layout); - } - - private void addIntroSlide(@LayoutRes int layout) - { - Fragment slide = new IntroSlide(); - Bundle args = new Bundle(); - args.putInt("layout", layout); - slide.setArguments(args); - addSlide(slide); - } - - @Override - public void onSkipPressed(Fragment fragment) { - finish(); - } - - @Override - public void onDonePressed(Fragment fragment) { - finish(); - } -} - - diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index b556336c5..50f9d1327 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -2,8 +2,11 @@ package protect.card_locker; 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; @@ -53,6 +56,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity boolean updateLoyaltyCard; boolean viewLoyaltyCard; + boolean rotationEnabled; + DBHelper db; @Override @@ -305,6 +310,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity getMenuInflater().inflate(R.menu.card_add_menu, menu); } + rotationEnabled = true; + return super.onCreateOptionsMenu(menu); } @@ -361,6 +368,22 @@ public class LoyaltyCardViewActivity extends AppCompatActivity 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; diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index 0d7bdf1d7..7eb745794 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -29,6 +29,8 @@ import com.google.common.collect.ImmutableMap; import java.util.Calendar; import java.util.Map; +import protect.card_locker.intro.IntroActivity; + public class MainActivity extends AppCompatActivity { private static final String TAG = "LoyaltyCardLocker"; diff --git a/app/src/main/java/protect/card_locker/intro/IntroActivity.java b/app/src/main/java/protect/card_locker/intro/IntroActivity.java new file mode 100644 index 000000000..04e18cfa3 --- /dev/null +++ b/app/src/main/java/protect/card_locker/intro/IntroActivity.java @@ -0,0 +1,36 @@ +package protect.card_locker.intro; + +import android.os.Bundle; +import android.support.annotation.LayoutRes; +import android.support.v4.app.Fragment; + +import com.github.paolorotolo.appintro.AppIntro; + +import protect.card_locker.R; + + +public class IntroActivity extends AppIntro +{ + @Override + public void init(Bundle savedInstanceState) + { + addSlide(new IntroSlide1()); + addSlide(new IntroSlide2()); + addSlide(new IntroSlide3()); + addSlide(new IntroSlide4()); + addSlide(new IntroSlide5()); + addSlide(new IntroSlide6()); + } + + @Override + public void onSkipPressed(Fragment fragment) { + finish(); + } + + @Override + public void onDonePressed(Fragment fragment) { + finish(); + } +} + + diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide1.java b/app/src/main/java/protect/card_locker/intro/IntroSlide1.java new file mode 100644 index 000000000..7e53d7652 --- /dev/null +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide1.java @@ -0,0 +1,19 @@ +package protect.card_locker.intro; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import protect.card_locker.R; + +public class IntroSlide1 extends Fragment +{ + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) + { + View v = inflater.inflate(R.layout.intro1_layout, container, false); + return v; + } +} diff --git a/app/src/main/java/protect/card_locker/IntroSlide.java b/app/src/main/java/protect/card_locker/intro/IntroSlide2.java similarity index 54% rename from app/src/main/java/protect/card_locker/IntroSlide.java rename to app/src/main/java/protect/card_locker/intro/IntroSlide2.java index 7fff1f357..6ee1952b7 100644 --- a/app/src/main/java/protect/card_locker/IntroSlide.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide2.java @@ -1,4 +1,4 @@ -package protect.card_locker; +package protect.card_locker.intro; import android.os.Bundle; import android.support.v4.app.Fragment; @@ -6,20 +6,15 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -public class IntroSlide extends Fragment -{ - int _layout; +import protect.card_locker.R; - @Override - public void setArguments(Bundle bundle) - { - _layout = bundle.getInt("layout"); - } +public class IntroSlide2 extends Fragment +{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View v = inflater.inflate(_layout, container, false); + View v = inflater.inflate(R.layout.intro2_layout, container, false); return v; } } diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide3.java b/app/src/main/java/protect/card_locker/intro/IntroSlide3.java new file mode 100644 index 000000000..deb6927b0 --- /dev/null +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide3.java @@ -0,0 +1,19 @@ +package protect.card_locker.intro; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import protect.card_locker.R; + +public class IntroSlide3 extends Fragment +{ + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) + { + View v = inflater.inflate(R.layout.intro3_layout, container, false); + return v; + } +} diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide4.java b/app/src/main/java/protect/card_locker/intro/IntroSlide4.java new file mode 100644 index 000000000..d47a5ac8e --- /dev/null +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide4.java @@ -0,0 +1,19 @@ +package protect.card_locker.intro; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import protect.card_locker.R; + +public class IntroSlide4 extends Fragment +{ + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) + { + View v = inflater.inflate(R.layout.intro4_layout, container, false); + return v; + } +} diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide5.java b/app/src/main/java/protect/card_locker/intro/IntroSlide5.java new file mode 100644 index 000000000..6127ab1ba --- /dev/null +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide5.java @@ -0,0 +1,19 @@ +package protect.card_locker.intro; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import protect.card_locker.R; + +public class IntroSlide5 extends Fragment +{ + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) + { + View v = inflater.inflate(R.layout.intro5_layout, container, false); + return v; + } +} diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide6.java b/app/src/main/java/protect/card_locker/intro/IntroSlide6.java new file mode 100644 index 000000000..d3fba4f98 --- /dev/null +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide6.java @@ -0,0 +1,19 @@ +package protect.card_locker.intro; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import protect.card_locker.R; + +public class IntroSlide6 extends Fragment +{ + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) + { + View v = inflater.inflate(R.layout.intro6_layout, container, false); + return v; + } +} diff --git a/app/src/main/res/drawable-hdpi/ic_lock_open_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_lock_open_white_24dp.png new file mode 100644 index 000000000..6bae68f56 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_lock_open_white_24dp.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_lock_outline_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_lock_outline_white_24dp.png new file mode 100644 index 000000000..e53f54186 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_lock_outline_white_24dp.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_lock_open_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_lock_open_white_24dp.png new file mode 100644 index 000000000..3f47b54cf Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_lock_open_white_24dp.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_lock_outline_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_lock_outline_white_24dp.png new file mode 100644 index 000000000..13f432fe0 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_lock_outline_white_24dp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_lock_open_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_lock_open_white_24dp.png new file mode 100644 index 000000000..cbe9e1cd0 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_lock_open_white_24dp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_lock_outline_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_lock_outline_white_24dp.png new file mode 100644 index 000000000..e2d109130 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_lock_outline_white_24dp.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_lock_open_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_lock_open_white_24dp.png new file mode 100644 index 000000000..1d1b0f4d3 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_lock_open_white_24dp.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_lock_outline_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_lock_outline_white_24dp.png new file mode 100644 index 000000000..bd2cf4dae Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_lock_outline_white_24dp.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_lock_open_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_lock_open_white_24dp.png new file mode 100644 index 000000000..8ab410727 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_lock_open_white_24dp.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_lock_outline_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_lock_outline_white_24dp.png new file mode 100644 index 000000000..de1d564b1 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_lock_outline_white_24dp.png differ diff --git a/app/src/main/res/menu/card_view_menu.xml b/app/src/main/res/menu/card_view_menu.xml index 657d80dca..df5498c9e 100644 --- a/app/src/main/res/menu/card_view_menu.xml +++ b/app/src/main/res/menu/card_view_menu.xml @@ -2,6 +2,11 @@ + Editovat Smazat Potvrdit + Lock Screen + Unlock Screen Odstzranit věrnostní kartu Opravdu chcete smazat tuto věrnostní kartu? Ano diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 8f4071dfc..9ff7d193d 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -33,6 +33,8 @@ %1$s: %2$s Bestätigen Kopiere die Nummer in die Zwischenablage + Lock Screen + Unlock Screen Löschen Bitte bestätigen Sie, dass diese Karte gelöscht werden soll. Lösche die Kundenkarte diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 87aa34148..e8c660771 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -18,6 +18,8 @@ Modifier Modifier Supprimer + Lock Screen + Unlock Screen Confirmer Supprimer la carte de fidélité Confirmez que vous souhaitez supprimer cette carte diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 9e4897c3c..1d3bf2f07 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -56,6 +56,8 @@ Copia ID negli appunti ID della carta copiato negli appunti Conferma + Lock Screen + Unlock Screen Rimuovi carta fedeltà Conferma che vuoi eliminare questa carta. Fare il backup dei dati ti permette di spostare le tue tessere da un dispositivo ad un altro. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 953c51718..18c0d71c3 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -19,6 +19,8 @@ Redaguoti Ištrinti Patvirtinti + Lock Screen + Unlock Screen Panaikinti lojalumo kortelę Prašome patvirtinti jog Jūs norite panaikinti šią lojalumo kortelę. Gerai diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index d0908a155..52f695c1b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -58,7 +58,8 @@ Bevestig Bevestig deze kaart te verwijderen. Verwijder kaart - + Lock Screen + Unlock Screen Data die is geback-upt maakt het mogelijk om je klantenkaarten naar een ander apparaat te verplaatsen. Importeren succesvol Importeren mislukte diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 613d83108..7e5d86717 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,6 +19,8 @@ Edit Delete Confirm + Lock Screen + Unlock Screen Remove Loyalty Card Please confirm that you want to delete this card. OK diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index b351a5c08..5504d80d2 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -6,6 +6,7 @@ import android.content.pm.ActivityInfo; 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; @@ -24,12 +25,13 @@ import org.robolectric.annotation.Config; import org.robolectric.res.builder.RobolectricPackageManager; import org.robolectric.shadows.ShadowActivity; import org.robolectric.shadows.ShadowLog; -import org.robolectric.util.ActivityController; +import org.robolectric.android.controller.ActivityController; import java.io.IOException; 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) @@ -414,4 +416,27 @@ public class LoyaltyCardViewActivityTest 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()); + } } diff --git a/app/src/test/java/protect/card_locker/MainActivityTest.java b/app/src/test/java/protect/card_locker/MainActivityTest.java index d727fb89d..9b7de1270 100644 --- a/app/src/test/java/protect/card_locker/MainActivityTest.java +++ b/app/src/test/java/protect/card_locker/MainActivityTest.java @@ -21,7 +21,7 @@ import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; -import org.robolectric.util.ActivityController; +import org.robolectric.android.controller.ActivityController; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -131,7 +131,7 @@ public class MainActivityTest ComponentName componentName = next.getComponent(); String name = componentName.flattenToShortString(); - assertEquals("protect.card_locker/.IntroActivity", name); + assertEquals("protect.card_locker/.intro.IntroActivity", name); Bundle extras = next.getExtras(); assertNull(extras);