blob: fa430d741acae511119570751463c7c4ff33a086 [file] [log] [blame]
package com.android.gallery3d.video;
import android.app.ListActivity;
import android.app.ActionBar;
import android.app.Activity;
import android.app.DialogFragment;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.android.gallery3d.R;
public class VideoSettingsActivity extends ListActivity {
private String OPTION_NAME = "option_name";
private String OPTION_DESC = "option_desc";
private String DIALOG_TAG_SELECT_STEP_OPTION = "step_option_dialog";
private static int[] sStepOptionArray = null;
private static final int STEP_OPTION_THREE_SECOND = 0;
private static final int STEP_OPTION_SIX_SECOND = 1;
private static final String SELECTED_STEP_OPTION = "selected_step_option";
private static final String VIDEO_PLAYER_DATA = "video_player_data";
private int mSelectedStepOption = -1;
private SharedPreferences mPrefs = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();
actionBar.setTitle(getResources().getString(R.string.settings));
setContentView(R.layout.setting_list);
ArrayList<HashMap<String, Object>> arrlist = new ArrayList<HashMap<String, Object>>(1);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(OPTION_NAME, getString(R.string.setp_option_name));
map.put(OPTION_DESC, getString(R.string.step_option_desc));
arrlist.add(map);
SimpleAdapter adapter = new SimpleAdapter(this, arrlist, android.R.layout.simple_list_item_2,
new String[] { OPTION_NAME, OPTION_DESC }, new int[] {
android.R.id.text1, android.R.id.text2});
setListAdapter(adapter);
restoreStepOptionSettings();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
storeStepOptionSettings();
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
restoreDialogFragment();
restoreStepOptionSettings();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
storeStepOptionSettings();
super.onDestroy();
}
@Override
protected void onListItemClick(ListView arg0, View arg1, int arg2, long arg3) {
switch (arg2) {
case 0:
DialogFragment newFragment = null;
FragmentManager fragmentManager = getFragmentManager();
removeOldFragmentByTag(DIALOG_TAG_SELECT_STEP_OPTION);
newFragment = StepOptionDialogFragment.newInstance(getStepOptionIDArray(),
R.string.setp_option_name, mSelectedStepOption);
((StepOptionDialogFragment) newFragment).setOnClickListener(mStepOptionSelectedListener);
newFragment.show(fragmentManager, DIALOG_TAG_SELECT_STEP_OPTION);
break;
default:
break;
}
}
private int[] getStepOptionIDArray() {
int[] stepOptionIDArray = new int[2];
stepOptionIDArray[STEP_OPTION_THREE_SECOND] = R.string.setp_option_three_second;
stepOptionIDArray[STEP_OPTION_SIX_SECOND] = R.string.setp_option_six_second;
sStepOptionArray = new int[2];
sStepOptionArray[0] = STEP_OPTION_THREE_SECOND;
sStepOptionArray[1] = STEP_OPTION_SIX_SECOND;
return stepOptionIDArray;
}
private DialogInterface.OnClickListener mStepOptionSelectedListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichItemSelect) {
setSelectedStepOption(whichItemSelect);
dialog.dismiss();
}
};
public void setSelectedStepOption(int which) {
mSelectedStepOption = getSelectedStepOption(which);
}
static int getSelectedStepOption(int which) {
return sStepOptionArray[which];
}
/**
* remove old DialogFragment
*
* @param tag
* the tag of DialogFragment to be removed
*/
private void removeOldFragmentByTag(String tag) {
FragmentManager fragmentManager = getFragmentManager();
DialogFragment oldFragment = (DialogFragment) fragmentManager.findFragmentByTag(tag);
if (null != oldFragment) {
oldFragment.dismissAllowingStateLoss();
}
}
private void restoreDialogFragment() {
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(DIALOG_TAG_SELECT_STEP_OPTION);
if (null != fragment) {
((StepOptionDialogFragment) fragment).setOnClickListener(mStepOptionSelectedListener);
}
}
private void storeStepOptionSettings() {
if (null == mPrefs) {
mPrefs = getSharedPreferences(VIDEO_PLAYER_DATA, 0);
}
SharedPreferences.Editor ed = mPrefs.edit();
ed.clear();
ed.putInt(SELECTED_STEP_OPTION, mSelectedStepOption);
ed.commit();
}
private void restoreStepOptionSettings() {
if (null == mPrefs) {
mPrefs = getSharedPreferences(VIDEO_PLAYER_DATA, 0);
}
mSelectedStepOption = mPrefs.getInt(SELECTED_STEP_OPTION, STEP_OPTION_THREE_SECOND);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// The user clicked on the Messaging icon in the action bar. Take them back from
// wherever they came from
finish();
return true;
}
return false;
}
}