diff --git a/app/build.gradle b/app/build.gradle index 7da19a77a..60ec1211e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,12 +7,12 @@ findbugs { } android { - compileSdkVersion 27 + compileSdkVersion 29 defaultConfig { applicationId "protect.card_locker" minSdkVersion 16 - targetSdkVersion 27 + targetSdkVersion 29 versionCode 35 versionName "0.25.4" } @@ -46,19 +46,19 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:27.0.2' - compile 'com.android.support:design:27.0.2' - compile 'com.android.support:support-v4:27.0.2' + compile 'androidx.appcompat:appcompat:1.2.0-alpha01' + compile 'com.google.android.material:material:1.2.0-alpha03' + compile 'androidx.legacy:legacy-support-v4:1.0.0' compile 'com.journeyapps:zxing-android-embedded:3.5.0@aar' compile 'com.google.zxing:core:3.3.0' compile 'org.apache.commons:commons-csv:1.5' - compile 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'androidx.constraintlayout:constraintlayout:1.1.3' compile 'com.jaredrummler:colorpicker:1.0.2' compile group: 'com.google.guava', name: 'guava', version: '20.0' compile 'com.github.apl-devs:appintro:v4.2.0' compile "com.vanniktech:vntnumberpickerpreference:1.0.0" testCompile 'junit:junit:4.12' - testCompile "org.robolectric:robolectric:3.3.2" + testCompile "org.robolectric:robolectric:4.0.2" } task findbugs(type: FindBugs, dependsOn: 'assembleDebug') { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index afcb2c197..034df728c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -99,7 +99,7 @@ diff --git a/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java b/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java index 86c647c3b..18becdcc6 100644 --- a/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java +++ b/app/src/main/java/protect/card_locker/BarcodeSelectorActivity.java @@ -5,9 +5,9 @@ import android.content.Intent; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; diff --git a/app/src/main/java/protect/card_locker/CardShortcutConfigure.java b/app/src/main/java/protect/card_locker/CardShortcutConfigure.java index 3e2c8f639..2917d703d 100644 --- a/app/src/main/java/protect/card_locker/CardShortcutConfigure.java +++ b/app/src/main/java/protect/card_locker/CardShortcutConfigure.java @@ -4,8 +4,8 @@ import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.os.Parcelable; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.View; import android.widget.AdapterView; diff --git a/app/src/main/java/protect/card_locker/ExtrasHelper.java b/app/src/main/java/protect/card_locker/ExtrasHelper.java index 15f3fefa7..a867c4adc 100644 --- a/app/src/main/java/protect/card_locker/ExtrasHelper.java +++ b/app/src/main/java/protect/card_locker/ExtrasHelper.java @@ -1,7 +1,6 @@ package protect.card_locker; -import android.support.annotation.NonNull; -import android.util.Log; +import androidx.annotation.NonNull; import org.json.JSONException; import org.json.JSONObject; diff --git a/app/src/main/java/protect/card_locker/ImportExportActivity.java b/app/src/main/java/protect/card_locker/ImportExportActivity.java index e0be204cc..bd8fac2d3 100644 --- a/app/src/main/java/protect/card_locker/ImportExportActivity.java +++ b/app/src/main/java/protect/card_locker/ImportExportActivity.java @@ -7,19 +7,18 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; -import android.provider.OpenableColumns; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; -import android.support.v4.content.FileProvider; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; + +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.MenuItem; import android.view.View; diff --git a/app/src/main/java/protect/card_locker/LoyaltyCard.java b/app/src/main/java/protect/card_locker/LoyaltyCard.java index 40b3d4653..0df07023f 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCard.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCard.java @@ -3,13 +3,11 @@ package protect.card_locker; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.support.annotation.Nullable; +import androidx.annotation.Nullable; import org.json.JSONException; import org.json.JSONObject; -import java.util.HashMap; - public class LoyaltyCard { public final int id; diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index e408a9d02..90ee89449 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -9,11 +9,11 @@ import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.support.design.widget.Snackbar; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import com.google.android.material.snackbar.Snackbar; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -151,6 +151,8 @@ public class LoyaltyCardEditActivity extends AppCompatActivity @Override public void onNewIntent(Intent intent) { + super.onNewIntent(intent); + Log.i(TAG, "Received new intent"); extractIntentFields(intent); @@ -506,6 +508,8 @@ public class LoyaltyCardEditActivity extends AppCompatActivity @Override public void onActivityResult(int requestCode, int resultCode, Intent intent) { + super.onActivityResult(requestCode, resultCode, intent); + String contents = null; String format = null; diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardLockerApplication.java b/app/src/main/java/protect/card_locker/LoyaltyCardLockerApplication.java index c53584520..0705435fc 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardLockerApplication.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardLockerApplication.java @@ -1,7 +1,7 @@ package protect.card_locker; import android.app.Application; -import android.support.v7.app.AppCompatDelegate; +import androidx.appcompat.app.AppCompatDelegate; import protect.card_locker.preferences.Settings; diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index f32ff2ec2..a2d6a4248 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -5,13 +5,18 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ActivityInfo; import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; -import android.support.v4.widget.TextViewCompat; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; + +import androidx.appcompat.app.AlertDialog; +import androidx.core.graphics.ColorUtils; +import androidx.core.graphics.drawable.DrawableCompat; +import androidx.core.widget.TextViewCompat; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.content.res.AppCompatResources; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.util.TypedValue; import android.view.Menu; @@ -38,6 +43,7 @@ import protect.card_locker.preferences.Settings; public class LoyaltyCardViewActivity extends AppCompatActivity { private static final String TAG = "CardLocker"; + private static final double LUMINANCE_MIDPOINT = 0.5; TextView cardIdFieldView; TextView noteView; @@ -52,6 +58,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity ImportURIHelper importURIHelper; Settings settings; + boolean backgroundNeedsDarkIcons; + private void extractIntentFields(Intent intent) { final Bundle b = intent.getExtras(); @@ -59,6 +67,22 @@ public class LoyaltyCardViewActivity extends AppCompatActivity Log.d(TAG, "View activity: id=" + loyaltyCardId); } + private Drawable getIcon(int icon, boolean dark) + { + Drawable unwrappedIcon = AppCompatResources.getDrawable(this, icon); + Drawable wrappedIcon = DrawableCompat.wrap(unwrappedIcon); + if(dark) + { + DrawableCompat.setTint(wrappedIcon, Color.BLACK); + } + else + { + DrawableCompat.setTintList(wrappedIcon, null); + } + + return wrappedIcon; + } + @Override protected void onCreate(Bundle savedInstanceState) { @@ -94,6 +118,8 @@ public class LoyaltyCardViewActivity extends AppCompatActivity @Override public void onNewIntent(Intent intent) { + super.onNewIntent(intent); + Log.i(TAG, "Received new intent"); extractIntentFields(intent); } @@ -173,6 +199,27 @@ public class LoyaltyCardViewActivity extends AppCompatActivity collapsingToolbarLayout.setBackgroundColor(backgroundHeaderColor); + // If the background is very bright, we should use dark icons + backgroundNeedsDarkIcons = (ColorUtils.calculateLuminance(backgroundHeaderColor) > LUMINANCE_MIDPOINT); + ActionBar actionBar = getSupportActionBar(); + if(actionBar != null) + { + actionBar.setHomeAsUpIndicator(getIcon(R.drawable.ic_arrow_back_white, backgroundNeedsDarkIcons)); + } + + // Make notification area light if dark icons are needed + if(Build.VERSION.SDK_INT >= 23) + { + window.getDecorView().setSystemUiVisibility(backgroundNeedsDarkIcons ? View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR : 0); + } + if(Build.VERSION.SDK_INT >= 21) + { + window.setStatusBarColor(Color.TRANSPARENT); + } + + // Set shadow colour of store text so even same color on same color would be readable + storeName.setShadowLayer(1, 1, 1, backgroundNeedsDarkIcons ? Color.BLACK : Color.WHITE); + if(format != null) { findViewById(R.id.barcode).setVisibility(View.VISIBLE); @@ -187,14 +234,7 @@ public class LoyaltyCardViewActivity extends AppCompatActivity @Override public void onGlobalLayout() { - if (Build.VERSION.SDK_INT < 16) - { - barcodeImage.getViewTreeObserver().removeGlobalOnLayoutListener(this); - } - else - { - barcodeImage.getViewTreeObserver().removeOnGlobalLayoutListener(this); - } + barcodeImage.getViewTreeObserver().removeOnGlobalLayoutListener(this); Log.d(TAG, "ImageView size now known"); new BarcodeImageWriterTask(barcodeImage, cardIdString, format).execute(); @@ -218,19 +258,25 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { getMenuInflater().inflate(R.menu.card_view_menu, menu); - if(settings.getLockBarcodeScreenOrientation()) + // Always calculate lockscreen icon, it may need a black color + boolean lockBarcodeScreenOrientation = settings.getLockBarcodeScreenOrientation(); + MenuItem item = menu.findItem(R.id.action_lock_unlock); + setOrientatonLock(item, lockBarcodeScreenOrientation); + if(lockBarcodeScreenOrientation) { - MenuItem item = menu.findItem(R.id.action_lock_unlock); - setOrientatonLock(item, true); item.setVisible(false); } if(loyaltyCard != null && !loyaltyCard.extras.getAllValues(new String[]{Locale.getDefault().getLanguage(), "en", ""}).isEmpty()) { - MenuItem item = menu.findItem(R.id.action_view_extras); - item.setVisible(true); + MenuItem extraItem = menu.findItem(R.id.action_view_extras); + extraItem.setIcon(getIcon(R.drawable.ic_info_outline_white, backgroundNeedsDarkIcons)); + extraItem.setVisible(true); } + menu.findItem(R.id.action_share).setIcon(getIcon(R.drawable.ic_share_white, backgroundNeedsDarkIcons)); + menu.findItem(R.id.action_edit).setIcon(getIcon(R.drawable.ic_mode_edit_white_24dp, backgroundNeedsDarkIcons)); + return super.onCreateOptionsMenu(menu); } @@ -291,13 +337,14 @@ public class LoyaltyCardViewActivity extends AppCompatActivity { if(lock) { - item.setIcon(R.drawable.ic_lock_outline_white_24dp); + + item.setIcon(getIcon(R.drawable.ic_lock_outline_white_24dp, backgroundNeedsDarkIcons)); item.setTitle(R.string.unlockScreen); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); } else { - item.setIcon(R.drawable.ic_lock_open_white_24dp); + item.setIcon(getIcon(R.drawable.ic_lock_open_white_24dp, backgroundNeedsDarkIcons)); item.setTitle(R.string.lockScreen); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } @@ -325,4 +372,4 @@ public class LoyaltyCardViewActivity extends AppCompatActivity }) .show(); } -} \ No newline at end of file +} diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java index 466bbbe54..60d702063 100644 --- a/app/src/main/java/protect/card_locker/MainActivity.java +++ b/app/src/main/java/protect/card_locker/MainActivity.java @@ -12,10 +12,10 @@ import android.content.pm.PackageManager; import android.content.res.Configuration; import android.database.Cursor; import android.os.Bundle; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.SearchView; -import android.support.v7.widget.Toolbar; +import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.SearchView; +import androidx.appcompat.widget.Toolbar; import android.util.Log; import android.view.ContextMenu; import android.view.Menu; @@ -79,6 +79,8 @@ public class MainActivity extends AppCompatActivity @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == MAIN_REQUEST_CODE) { // We're coming back from another view so clear the search @@ -397,4 +399,4 @@ public class MainActivity extends AppCompatActivity Intent intent = new Intent(this, IntroActivity.class); startActivityForResult(intent, MAIN_REQUEST_CODE); } -} \ No newline at end of file +} diff --git a/app/src/main/java/protect/card_locker/intro/IntroActivity.java b/app/src/main/java/protect/card_locker/intro/IntroActivity.java index d34b0b05d..37a699ed8 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroActivity.java +++ b/app/src/main/java/protect/card_locker/intro/IntroActivity.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import com.github.paolorotolo.appintro.AppIntro; diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide1.java b/app/src/main/java/protect/card_locker/intro/IntroSlide1.java index 7e53d7652..beecb43c3 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroSlide1.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide1.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide2.java b/app/src/main/java/protect/card_locker/intro/IntroSlide2.java index 6ee1952b7..a1e652c51 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroSlide2.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide2.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide3.java b/app/src/main/java/protect/card_locker/intro/IntroSlide3.java index deb6927b0..5acc83e7b 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroSlide3.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide3.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide4.java b/app/src/main/java/protect/card_locker/intro/IntroSlide4.java index d47a5ac8e..1a7ad6e69 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroSlide4.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide4.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide5.java b/app/src/main/java/protect/card_locker/intro/IntroSlide5.java index 6127ab1ba..ab3b5b757 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroSlide5.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide5.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/protect/card_locker/intro/IntroSlide6.java b/app/src/main/java/protect/card_locker/intro/IntroSlide6.java index d3fba4f98..217967844 100644 --- a/app/src/main/java/protect/card_locker/intro/IntroSlide6.java +++ b/app/src/main/java/protect/card_locker/intro/IntroSlide6.java @@ -1,7 +1,7 @@ package protect.card_locker.intro; import android.os.Bundle; -import android.support.v4.app.Fragment; +import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/app/src/main/java/protect/card_locker/preferences/Settings.java b/app/src/main/java/protect/card_locker/preferences/Settings.java index f6c9fb026..586e18769 100644 --- a/app/src/main/java/protect/card_locker/preferences/Settings.java +++ b/app/src/main/java/protect/card_locker/preferences/Settings.java @@ -3,9 +3,9 @@ package protect.card_locker.preferences; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import android.support.annotation.IntegerRes; -import android.support.annotation.StringRes; -import android.support.v7.app.AppCompatDelegate; +import androidx.annotation.IntegerRes; +import androidx.annotation.StringRes; +import androidx.appcompat.app.AppCompatDelegate; import protect.card_locker.R; diff --git a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java index ee1bccbbb..485626742 100644 --- a/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java +++ b/app/src/main/java/protect/card_locker/preferences/SettingsActivity.java @@ -3,9 +3,9 @@ package protect.card_locker.preferences; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.app.AppCompatDelegate; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; import android.view.MenuItem; import protect.card_locker.R; diff --git a/app/src/main/res/drawable-hdpi/ic_arrow_back_white.png b/app/src/main/res/drawable-hdpi/ic_arrow_back_white.png new file mode 100644 index 000000000..f782543d3 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_arrow_back_white.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_arrow_back_white.png b/app/src/main/res/drawable-mdpi/ic_arrow_back_white.png new file mode 100644 index 000000000..222690b0b Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_arrow_back_white.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_arrow_back_white.png b/app/src/main/res/drawable-xhdpi/ic_arrow_back_white.png new file mode 100644 index 000000000..c4e8d91ba Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_arrow_back_white.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white.png b/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white.png new file mode 100644 index 000000000..575d5075c Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white.png differ diff --git a/app/src/main/res/layout/barcode_selector_activity.xml b/app/src/main/res/layout/barcode_selector_activity.xml index 248087cee..8edd3374f 100644 --- a/app/src/main/res/layout/barcode_selector_activity.xml +++ b/app/src/main/res/layout/barcode_selector_activity.xml @@ -1,23 +1,23 @@ - + - - - + - + diff --git a/app/src/main/res/layout/import_export_activity.xml b/app/src/main/res/layout/import_export_activity.xml index 7d3f7fc76..464b3657e 100644 --- a/app/src/main/res/layout/import_export_activity.xml +++ b/app/src/main/res/layout/import_export_activity.xml @@ -1,23 +1,23 @@ - + - - - + - + diff --git a/app/src/main/res/layout/loyalty_card_edit_activity.xml b/app/src/main/res/layout/loyalty_card_edit_activity.xml index 4ce3df789..198a867b0 100644 --- a/app/src/main/res/layout/loyalty_card_edit_activity.xml +++ b/app/src/main/res/layout/loyalty_card_edit_activity.xml @@ -1,28 +1,28 @@ - + - - - + + app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"> - - - +