diff --git a/src/com/android/settings/dashboard/SupportFragment.java b/src/com/android/settings/dashboard/SupportFragment.java index b4447cc8a5b..58f79a87876 100644 --- a/src/com/android/settings/dashboard/SupportFragment.java +++ b/src/com/android/settings/dashboard/SupportFragment.java @@ -88,8 +88,8 @@ public final class SupportFragment extends InstrumentedFragment implements View. mAccountManager = AccountManager.get(mActivity); mSupportFeatureProvider = FeatureFactory.getFactory(mActivity).getSupportFeatureProvider(mActivity); - mSupportItemAdapter = new SupportItemAdapter(mActivity, mSupportFeatureProvider, - this /* itemClickListener */); + mSupportItemAdapter = new SupportItemAdapter(mActivity, savedInstanceState, + mSupportFeatureProvider, this /* itemClickListener */); mConnectivityManager = (ConnectivityManager) mActivity.getSystemService(Context.CONNECTIVITY_SERVICE); } @@ -129,6 +129,12 @@ public final class SupportFragment extends InstrumentedFragment implements View. mConnectivityManager.unregisterNetworkCallback(mNetworkCallback); } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + mSupportItemAdapter.onSaveInstanceState(outState); + } + @Override public void onAccountsUpdated(Account[] accounts) { // Account changed, update support items. diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java index 94cc94b5a44..0c5a9c3fdd9 100644 --- a/src/com/android/settings/dashboard/SupportItemAdapter.java +++ b/src/com/android/settings/dashboard/SupportItemAdapter.java @@ -23,6 +23,7 @@ import android.app.Activity; import android.app.DialogFragment; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.text.TextUtils; import android.view.LayoutInflater; @@ -53,6 +54,7 @@ import static com.android.settings.overlay.SupportFeatureProvider.SupportType.PH */ public final class SupportItemAdapter extends RecyclerView.Adapter { + private static final String STATE_SELECTED_COUNTRY = "STATE_SELECTED_COUNTRY"; private static final int TYPE_TITLE = R.layout.support_item_title; private static final int TYPE_ESCALATION_OPTIONS = R.layout.support_escalation_options; private static final int TYPE_ESCALATION_OPTIONS_OFFLINE = @@ -71,8 +73,8 @@ public final class SupportItemAdapter extends RecyclerView.Adapter(); // Optimistically assume we have Internet access. It will be updated later to correct value. mHasInternet = true; + if (savedInstanceState != null) { + mSelectedCountry = savedInstanceState.getString(STATE_SELECTED_COUNTRY); + } setAccount(mSupportFeatureProvider.getSupportEligibleAccount(mActivity)); refreshData(); } @@ -149,6 +154,10 @@ public final class SupportItemAdapter extends RecyclerView.Adapter