package net.miz_hi.smileessence.view.activity; import android.app.Activity; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import net.miz_hi.smileessence.Client; import net.miz_hi.smileessence.R; import net.miz_hi.smileessence.auth.AuthenticationDB; import net.miz_hi.smileessence.command.main.CommandInformation; import net.miz_hi.smileessence.command.main.CommandOpenLicense; import net.miz_hi.smileessence.data.list.ListModel; import net.miz_hi.smileessence.data.search.SearchModel; import net.miz_hi.smileessence.dialog.ConfirmDialog; import net.miz_hi.smileessence.dialog.SeekBarDialog; import net.miz_hi.smileessence.notification.Notificator; import net.miz_hi.smileessence.preference.EnumPreferenceKey; public class SettingActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); Preference textSize = findPreference(getResources().getString(R.string.key_setting_textSize)); textSize.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { final SeekBarDialog helper = new SeekBarDialog(SettingActivity.this, "テキストサイズ"); helper.setSeekBarMax(16); helper.setSeekBarStart(Client.getSettings().getTextSize() - 8); helper.setLevelCorrect(8); helper.setText("デフォルト = 10"); helper.setOnClickListener(new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Client.putPreferenceValue(EnumPreferenceKey.TEXT_SIZE, helper.getProgress() + helper.getLevelCorrect()); Client.loadSettings(); } }); helper.createSeekBarDialog().show(); return true; } }); Preference requestCount = findPreference(getResources().getString(R.string.key_setting_requestCount)); requestCount.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { final SeekBarDialog helper = new SeekBarDialog(SettingActivity.this, "読み込み件数"); helper.setSeekBarMax(80); helper.setSeekBarStart(Client.<Integer>getPreferenceValue(EnumPreferenceKey.REQUEST_COUNT) - 20); helper.setLevelCorrect(20); helper.setText("大きすぎると動作が重くなります"); helper.setOnClickListener(new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Client.putPreferenceValue(EnumPreferenceKey.REQUEST_COUNT, helper.getProgress() + helper.getLevelCorrect()); Client.loadSettings(); } }); helper.createSeekBarDialog().show(); return true; } }); Preference deleteAccounts = findPreference(getResources().getString(R.string.key_setting_delete_accounts)); deleteAccounts.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { ConfirmDialog helper = new ConfirmDialog(SettingActivity.this, "本当にリセットしますか?"); helper.setOnClickListener(new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch(which) { case DialogInterface.BUTTON_POSITIVE: { Notificator.toast("全ての認証情報をリセットします。再起動してください"); AuthenticationDB.instance().deleteAll(); ListModel.instance().deleteAll(); SearchModel.instance().deleteAll(); finish(); MainActivity.getInstance().finish(true); break; } default: { dialog.dismiss(); } } } }); helper.createYesNoAlert().show(); return true; } }); Preference appInfo = findPreference(getResources().getString(R.string.app_info)); appInfo.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { new CommandInformation((Activity) preference.getContext()).run(); return true; } }); Preference licenseNotice = findPreference(getResources().getString(R.string.license_notices)); licenseNotice.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { new CommandOpenLicense((Activity) preference.getContext()).run(); return true; } }); } }