/*
* Copyright (c) 2011 yang hui <yanghui1986527@gmail.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License v2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 021110-1307, USA.
*/
package com.hd.explorer;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.util.Log;
import android.view.WindowManager;
public class HDPreferenceActivity extends PreferenceActivity implements
OnPreferenceChangeListener, OnPreferenceClickListener {
private static final String TAG = "HDSettings";
//Dialogs ID
private final int DIALOG_THANKS_TO = 0;
private CheckBoxPreference check_showhidden;
String key_showhidden;
boolean default_value_showhidden;
private PreferenceScreen screen_thanksto;
String key_thanksto;
/**
* <b>onCreate</b><br/>
* HDRecorderSettingsActivity activity创建时首先调用该方法
*
* @param savedInstanceState 用于保存数据
* @return 无
* @exception 无
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//从xml文件中添加Preference项
addPreferencesFromResource(R.xml.settings);
if(/*misFullScreen*/true){
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
key_showhidden = getResources().getString(R.string.preference_showhidden_key);
default_value_showhidden = Boolean.parseBoolean(getResources().getString(R.string.preference_showhidden_default_value));
check_showhidden = (CheckBoxPreference) findPreference(key_showhidden);
check_showhidden.setOnPreferenceChangeListener(this);
key_thanksto = getResources().getString(R.string.preference_thanks_key);
screen_thanksto = (PreferenceScreen) findPreference(key_thanksto);
screen_thanksto.setOnPreferenceClickListener(this);
SharedPreferences settings = getPreferenceManager().getSharedPreferences();
Boolean isshowhidden = settings.getBoolean(key_showhidden, default_value_showhidden);
check_showhidden.setChecked(isshowhidden);
}
/**
* <b>onDestroy</b><br/>
* onDestroy<br/>
*
* @param 无
* @return 无
*/
@Override
protected void onDestroy() {
super.onDestroy();
}
/**
* <b>onPreferenceClick</b><br/>
* 当Preference项被点击时响应事件<br/>
*
* @param preference Preference
* @return true,表示已经处理;false,表示未处理。
*/
@Override
public boolean onPreferenceClick(Preference preference) {
Log.i(TAG,"onPreferenceClick");
if(preference == screen_thanksto){
showDialog(DIALOG_THANKS_TO);
return true;
}
return false;
}
/**
* <b>onCreateDialog</b><br/>
* 创建对话框<br/>
*
* @param id 对话框id
* @return Dialog,创建的对话框窗口
*/
@Override
protected Dialog onCreateDialog(int id) {
Log.i(TAG,"onCreateDialog");
switch (id) {
case DIALOG_THANKS_TO:
AlertDialog.Builder mthankstoDialog = new AlertDialog.Builder(this);
mthankstoDialog.setIcon(android.R.drawable.ic_dialog_info);
mthankstoDialog.setTitle(R.string.dialog_thanks_to_title);
mthankstoDialog.setMessage(R.string.dialog_thanks_to_message);
mthankstoDialog.setPositiveButton(R.string.button_text_yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
return mthankstoDialog.create();
default:
break;
}
return super.onCreateDialog(id);
}
/**
* <b>onPreferenceChange</b><br/>
* 当Preference的值发生改变时,响应事件,保存修改后的值。<br/>
*
* @param preference Preference
* @param newValue 修改后的值
* @return true,表示已经处理;false,表示未处理。
*/
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
SharedPreferences settings = getPreferenceManager().getSharedPreferences();
Editor edit = settings.edit();
if(preference == check_showhidden){
edit.putBoolean(key_showhidden, (Boolean)newValue);
}
edit.commit();
return true;
}
/**
* <b>onConfigurationChanged</b><br/>
* 屏幕旋转时,触发该响应<br/>
*
* @param newConfig 屏幕配置信息
* @return 无
*/
@Override
public void onConfigurationChanged(Configuration newConfig) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
}
} catch (Exception e) {
}
}
}