package com.appboy.sample;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.TextView;
import com.appboy.sample.util.SpinnerUtils;
import com.appboy.support.StringUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class SharedPreferencesDataDialog extends DialogPreference implements AdapterView.OnItemSelectedListener {
private Context mContext;
private List mOptionList;
private View mMainView;
public SharedPreferencesDataDialog(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
setDialogLayoutResource(R.layout.data_dialog);
setPersistent(false);
mOptionList = Arrays.asList((new File(mContext.getApplicationInfo().dataDir, "shared_prefs")).list());
}
@Override
public View onCreateDialogView() {
mMainView = super.onCreateDialogView();
SpinnerUtils.setUpSpinnerWithList((Spinner) mMainView.findViewById(R.id.file_chooser_spinner), this, mOptionList);
return mMainView;
}
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String sharedPreferencesFileName = (String) mOptionList.get(position);
List<String> sharedPreferencesData = new ArrayList<String>();
SharedPreferences sharedPreferences = mContext.getApplicationContext().getSharedPreferences(sharedPreferencesFileName.replace(".xml", ""), Context.MODE_PRIVATE);
Map<String,?> keys = sharedPreferences.getAll();
for (Map.Entry<String,?> entry : keys.entrySet()) {
sharedPreferencesData.add(entry.getKey() + ": " + entry.getValue().toString());
}
((TextView) mMainView.findViewById(R.id.data_dialog_text_view)).setText(StringUtils.join(sharedPreferencesData, "\n"));
}
public void onNothingSelected(AdapterView<?> parent) {
// Do nothing
}
@Override
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
}
}