From 4a1858e47bd18af981e23bc07f6182a635c3fe90 Mon Sep 17 00:00:00 2001 From: Kevin Sicong Jiang Date: Sun, 2 May 2021 05:41:19 +0800 Subject: [PATCH] Fix active tab lost on rotation (#221) --- .../card_locker/LoyaltyCardEditActivity.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 39ef4424d..41788cf61 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -50,6 +50,8 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; @@ -59,7 +61,7 @@ import androidx.fragment.app.DialogFragment; public class LoyaltyCardEditActivity extends AppCompatActivity { private static final String TAG = "Catima"; - + private final String STATE_TAB_INDEX = "savedTab"; TabLayout tabs; ImageView thumbnail; @@ -115,6 +117,20 @@ public class LoyaltyCardEditActivity extends AppCompatActivity + ", updateLoyaltyCard=" + updateLoyaltyCard); } + @Override + public void onSaveInstanceState(@NonNull Bundle savedInstanceState) { + super.onSaveInstanceState(savedInstanceState); + tabs = findViewById(R.id.tabs); + savedInstanceState.putInt(STATE_TAB_INDEX, tabs.getSelectedTabPosition()); + } + + @Override + public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + tabs = findViewById(R.id.tabs); + tabs.selectTab(tabs.getTabAt(savedInstanceState.getInt(STATE_TAB_INDEX))); + } + @Override protected void onCreate(Bundle savedInstanceState) {