Restore selected country when rotating screen.

Bug: 29105266
Change-Id: I5c070a40465b32b4989481f270c448ba48f0e865
This commit is contained in:
Fan Zhang
2016-06-27 09:56:52 -07:00
parent e9fcb2c930
commit b0060dde63
2 changed files with 19 additions and 4 deletions

View File

@@ -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<SupportItemAdapter.ViewHolder> {
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<SupportItemAd
private boolean mHasInternet;
private Account mAccount;
public SupportItemAdapter(Activity activity, SupportFeatureProvider supportFeatureProvider,
View.OnClickListener itemClickListener) {
public SupportItemAdapter(Activity activity, Bundle savedInstanceState,
SupportFeatureProvider supportFeatureProvider, View.OnClickListener itemClickListener) {
mActivity = activity;
mSupportFeatureProvider = supportFeatureProvider;
mItemClickListener = itemClickListener;
@@ -81,6 +83,9 @@ public final class SupportItemAdapter extends RecyclerView.Adapter<SupportItemAd
mSupportData = new ArrayList<>();
// 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<SupportItemAd
}
}
public void onSaveInstanceState(Bundle outState) {
outState.putString(STATE_SELECTED_COUNTRY, mSelectedCountry);
}
/**
* Create data for the adapter. If there is already data in the adapter, they will be
* destroyed and recreated.