diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index e04aaedde..04a23e2fa 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -1209,6 +1209,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements getWindow().setDecorFitsSystemWindows(true); if (getWindow().getInsetsController() != null) { getWindow().getInsetsController().show(WindowInsets.Type.statusBars() | WindowInsets.Type.navigationBars()); + getWindow().getInsetsController().setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_DEFAULT); } } else { unsetFullscreenModeSdkLessThan30(); diff --git a/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java b/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java index c205dc5bc..c986c3f3c 100644 --- a/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java +++ b/app/src/test/java/protect/card_locker/BarcodeSelectorActivityTest.java @@ -11,7 +11,6 @@ import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.android.controller.ActivityController; -import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowLooper; import static org.junit.Assert.assertEquals; @@ -21,7 +20,6 @@ import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class BarcodeSelectorActivityTest { @Test public void emptyStateTest() { diff --git a/app/src/test/java/protect/card_locker/DatabaseTest.java b/app/src/test/java/protect/card_locker/DatabaseTest.java index b35f3bbad..fb756ffec 100644 --- a/app/src/test/java/protect/card_locker/DatabaseTest.java +++ b/app/src/test/java/protect/card_locker/DatabaseTest.java @@ -27,7 +27,6 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class DatabaseTest { private SQLiteDatabase mDatabase; private Activity mActivity; diff --git a/app/src/test/java/protect/card_locker/ImportExportActivityTest.java b/app/src/test/java/protect/card_locker/ImportExportActivityTest.java index b8ac02a99..feb255478 100644 --- a/app/src/test/java/protect/card_locker/ImportExportActivityTest.java +++ b/app/src/test/java/protect/card_locker/ImportExportActivityTest.java @@ -13,13 +13,11 @@ import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; import static org.junit.Assert.assertEquals; import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class ImportExportActivityTest { private void registerIntentHandler(String handler) { // Add something that will 'handle' the given intent type diff --git a/app/src/test/java/protect/card_locker/ImportExportTest.java b/app/src/test/java/protect/card_locker/ImportExportTest.java index 9aaa546f2..0fc65e117 100644 --- a/app/src/test/java/protect/card_locker/ImportExportTest.java +++ b/app/src/test/java/protect/card_locker/ImportExportTest.java @@ -59,7 +59,6 @@ import static org.junit.Assert.assertTrue; import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class ImportExportTest { private Activity activity; private SQLiteDatabase mDatabase; @@ -888,11 +887,8 @@ public class ImportExportTest { @Test public void exportImportV2Zip() throws FileNotFoundException { // Prepare images - BitmapDrawable launcher = (BitmapDrawable) ResourcesCompat.getDrawableForDensity(activity.getResources(), R.mipmap.ic_launcher, DisplayMetrics.DENSITY_XXXHIGH, activity.getTheme()); - BitmapDrawable roundLauncher = (BitmapDrawable) ResourcesCompat.getDrawableForDensity(activity.getResources(), R.mipmap.ic_launcher_round, DisplayMetrics.DENSITY_XXXHIGH, activity.getTheme()); - - Bitmap launcherBitmap = launcher.getBitmap(); - Bitmap roundLauncherBitmap = roundLauncher.getBitmap(); + Bitmap bitmap1 = new LetterBitmap(activity.getApplicationContext(), "1", "1", 12, 64, 64, Color.BLACK, Color.YELLOW).getLetterTile(); + Bitmap bitmap2 = new LetterBitmap(activity.getApplicationContext(), "2", "2", 12, 64, 64, Color.GREEN, Color.WHITE).getLetterTile(); // Set up cards and groups HashMap loyaltyCardHashMap = new HashMap<>(); @@ -908,12 +904,12 @@ public class ImportExportTest { List groups = Arrays.asList(DBHelper.getGroup(mDatabase, "One")); DBHelper.setLoyaltyCardGroups(mDatabase, loyaltyCardId, groups); loyaltyCardGroups.put(loyaltyCardId, groups); - Utils.saveCardImage(activity.getApplicationContext(), launcherBitmap, loyaltyCardId, ImageLocationType.front); - Utils.saveCardImage(activity.getApplicationContext(), roundLauncherBitmap, loyaltyCardId, ImageLocationType.back); - Utils.saveCardImage(activity.getApplicationContext(), launcherBitmap, loyaltyCardId, ImageLocationType.icon); - loyaltyCardFrontImages.put(loyaltyCardId, launcherBitmap); - loyaltyCardBackImages.put(loyaltyCardId, roundLauncherBitmap); - loyaltyCardIconImages.put(loyaltyCardId, launcherBitmap); + Utils.saveCardImage(activity.getApplicationContext(), bitmap1, loyaltyCardId, ImageLocationType.front); + Utils.saveCardImage(activity.getApplicationContext(), bitmap2, loyaltyCardId, ImageLocationType.back); + Utils.saveCardImage(activity.getApplicationContext(), bitmap1, loyaltyCardId, ImageLocationType.icon); + loyaltyCardFrontImages.put(loyaltyCardId, bitmap1); + loyaltyCardBackImages.put(loyaltyCardId, bitmap2); + loyaltyCardIconImages.put(loyaltyCardId, bitmap1); // Create card 2 loyaltyCardId = (int) DBHelper.insertLoyaltyCard(mDatabase, "Card 2", "", null, null, new BigDecimal(0), null, "123456", null, null, 2, 1, null,0); diff --git a/app/src/test/java/protect/card_locker/ImportURITest.java b/app/src/test/java/protect/card_locker/ImportURITest.java index 408799db5..7d16b1fa5 100644 --- a/app/src/test/java/protect/card_locker/ImportURITest.java +++ b/app/src/test/java/protect/card_locker/ImportURITest.java @@ -12,7 +12,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; import java.io.InvalidObjectException; import java.io.UnsupportedEncodingException; @@ -25,7 +24,6 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class ImportURITest { private ImportURIHelper importURIHelper; private SQLiteDatabase mDatabase; diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java index 8aa0399e4..7665638f5 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardCursorAdapterTest.java @@ -15,7 +15,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowLog; import java.math.BigDecimal; @@ -32,7 +31,6 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class LoyaltyCardCursorAdapterTest { private Activity activity; private SQLiteDatabase mDatabase; diff --git a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java index 14a35a7ac..63501e5cf 100644 --- a/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java +++ b/app/src/test/java/protect/card_locker/LoyaltyCardViewActivityTest.java @@ -19,6 +19,8 @@ import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.View; +import android.view.WindowInsets; +import android.view.WindowInsetsController; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; @@ -62,6 +64,7 @@ import androidx.preference.PreferenceManager; import static android.os.Looper.getMainLooper; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -69,7 +72,6 @@ import static org.junit.Assert.assertTrue; import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class LoyaltyCardViewActivityTest { private final String BARCODE_DATA = "428311627547"; private final CatimaBarcode BARCODE_TYPE = CatimaBarcode.fromBarcode(BarcodeFormat.UPC_A); @@ -1209,7 +1211,7 @@ public class LoyaltyCardViewActivityTest { activityController.visible(); activityController.resume(); - assertEquals(false, activity.isFinishing()); + assertFalse(activity.isFinishing()); View collapsingToolbarLayout = activity.findViewById(R.id.collapsingToolbarLayout); BottomAppBar bottomAppBar = activity.findViewById(R.id.bottom_app_bar); @@ -1220,9 +1222,9 @@ public class LoyaltyCardViewActivityTest { SeekBar barcodeScaler = activity.findViewById(R.id.barcodeScaler); // Android should not be in fullscreen mode - int uiOptions = activity.getWindow().getDecorView().getSystemUiVisibility(); - assertNotEquals(uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, uiOptions); - assertNotEquals(uiOptions | View.SYSTEM_UI_FLAG_FULLSCREEN, uiOptions); + assertTrue(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.statusBars())); + assertTrue(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.navigationBars())); + assertEquals(WindowInsetsController.BEHAVIOR_DEFAULT, activity.getWindow().getInsetsController().getSystemBarsBehavior()); // Elements should be visible (except minimize button and scaler) assertEquals(View.VISIBLE, collapsingToolbarLayout.getVisibility()); @@ -1238,9 +1240,9 @@ public class LoyaltyCardViewActivityTest { shadowOf(getMainLooper()).idle(); // Android should be in fullscreen mode - uiOptions = activity.getWindow().getDecorView().getSystemUiVisibility(); - assertEquals(uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, uiOptions); - assertEquals(uiOptions | View.SYSTEM_UI_FLAG_FULLSCREEN, uiOptions); + assertFalse(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.statusBars())); + assertFalse(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.navigationBars())); + assertEquals(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE, activity.getWindow().getInsetsController().getSystemBarsBehavior()); // Elements should not be visible (except minimize button and scaler) assertEquals(View.GONE, collapsingToolbarLayout.getVisibility()); @@ -1254,9 +1256,11 @@ public class LoyaltyCardViewActivityTest { // Clicking minimize button should deactivate fullscreen mode minimizeButton.performClick(); shadowOf(getMainLooper()).idle(); - uiOptions = activity.getWindow().getDecorView().getSystemUiVisibility(); - assertNotEquals(uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, uiOptions); - assertNotEquals(uiOptions | View.SYSTEM_UI_FLAG_FULLSCREEN, uiOptions); + + assertTrue(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.statusBars())); + assertTrue(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.navigationBars())); + assertEquals(WindowInsetsController.BEHAVIOR_DEFAULT, activity.getWindow().getInsetsController().getSystemBarsBehavior()); + assertEquals(View.VISIBLE, collapsingToolbarLayout.getVisibility()); assertEquals(View.VISIBLE, bottomAppBar.getVisibility()); assertEquals(View.VISIBLE, maximizeButton.getVisibility()); @@ -1268,9 +1272,11 @@ public class LoyaltyCardViewActivityTest { // Another click back to fullscreen maximizeButton.performClick(); shadowOf(getMainLooper()).idle(); - uiOptions = activity.getWindow().getDecorView().getSystemUiVisibility(); - assertEquals(uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, uiOptions); - assertEquals(uiOptions | View.SYSTEM_UI_FLAG_FULLSCREEN, uiOptions); + + assertFalse(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.statusBars())); + assertFalse(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.navigationBars())); + assertEquals(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE, activity.getWindow().getInsetsController().getSystemBarsBehavior()); + assertEquals(View.GONE, collapsingToolbarLayout.getVisibility()); assertEquals(View.GONE, bottomAppBar.getVisibility()); assertEquals(View.GONE, maximizeButton.getVisibility()); @@ -1282,9 +1288,11 @@ public class LoyaltyCardViewActivityTest { // In full screen mode, back button should disable fullscreen activity.onBackPressed(); shadowOf(getMainLooper()).idle(); - uiOptions = activity.getWindow().getDecorView().getSystemUiVisibility(); - assertNotEquals(uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY, uiOptions); - assertNotEquals(uiOptions | View.SYSTEM_UI_FLAG_FULLSCREEN, uiOptions); + + assertTrue(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.statusBars())); + assertTrue(activity.getWindow().getDecorView().getRootWindowInsets().isVisible(WindowInsets.Type.navigationBars())); + assertEquals(WindowInsetsController.BEHAVIOR_DEFAULT, activity.getWindow().getInsetsController().getSystemBarsBehavior()); + assertEquals(View.VISIBLE, collapsingToolbarLayout.getVisibility()); assertEquals(View.VISIBLE, bottomAppBar.getVisibility()); assertEquals(View.VISIBLE, maximizeButton.getVisibility()); @@ -1296,7 +1304,7 @@ public class LoyaltyCardViewActivityTest { // Pressing back when not in full screen should finish activity activity.onBackPressed(); shadowOf(getMainLooper()).idle(); - assertEquals(true, activity.isFinishing()); + assertTrue(activity.isFinishing()); database.close(); } diff --git a/app/src/test/java/protect/card_locker/MainActivityTest.java b/app/src/test/java/protect/card_locker/MainActivityTest.java index 51497f549..19a9d47d5 100644 --- a/app/src/test/java/protect/card_locker/MainActivityTest.java +++ b/app/src/test/java/protect/card_locker/MainActivityTest.java @@ -33,7 +33,6 @@ import static org.junit.Assert.assertNotNull; import static org.robolectric.Shadows.shadowOf; @RunWith(RobolectricTestRunner.class) -@Config(sdk = 23) public class MainActivityTest { private SharedPreferences prefs;