public void onClick(View v) { // If the user click on these fields, then we assume user has changed some settings. settingsChanged = true; if (v == colorCheckbox) { if (colorCheckbox.isChecked()) { colorRow.setVisibility(View.VISIBLE); } else { colorRow.setVisibility(View.GONE); resetToDefaultColors(); } } if (v == colorButton) { showColorPickerDialog(); } if (v == qTypefaceCheckbox) { if (qTypefaceCheckbox.isChecked()) { qTypefaceEdit.setVisibility(View.VISIBLE); } else { qTypefaceEdit.setVisibility(View.GONE); setting.setQuestionFont(""); } } if (v == aTypefaceCheckbox) { if (aTypefaceCheckbox.isChecked()) { aTypefaceEdit.setVisibility(View.VISIBLE); } else { aTypefaceEdit.setVisibility(View.GONE); setting.setAnswerFont(""); } } if (v == displayInHTMLCheckbox) { if (displayInHTMLCheckbox.isChecked()) { // Create a AlertDialog for user to select fields display in HTML fieldsDisplayedInHTML = setting.getDisplayInHTMLEnum(); showCardFieldMultipleChoiceAlertDialog( fieldsDisplayedInHTML, R.string.settings_html_display); } else { fieldsDisplayedInHTML = EnumSet.noneOf(CardField.class); } if (fieldsDisplayedInHTML.size() == 0) { field1Checkbox.setChecked(false); } } if (v == field1Checkbox) { if (field1Checkbox.isChecked()) { questionFields = setting.getQuestionFieldEnum(); showCardFieldMultipleChoiceAlertDialog(questionFields, R.string.settings_field1); } else { questionFields = EnumSet.of(CardField.QUESTION); } if (questionFields.size() == 0) { field1Checkbox.setChecked(false); } } if (v == field2Checkbox) { if (field2Checkbox.isChecked()) { answerFields = setting.getAnswerFieldEnum(); showCardFieldMultipleChoiceAlertDialog(answerFields, R.string.settings_field2); } else { answerFields = EnumSet.of(CardField.ANSWER); } if (answerFields.size() == 0) { field2Checkbox.setChecked(false); } } if (v == qTypefaceEdit) { FileBrowserFragment df = new FileBrowserFragment(); Bundle b = new Bundle(); b.putString(FileBrowserFragment.EXTRA_FILE_EXTENSIONS, ".ttf"); b.putString(FileBrowserFragment.EXTRA_DEFAULT_ROOT, AMEnv.DEFAULT_ROOT_PATH); b.putBoolean(FileBrowserFragment.EXTRA_DISMISS_ON_SELECT, true); df.setArguments(b); df.setOnFileClickListener(qTypefaceEditFbListener); df.show(getSupportFragmentManager(), "qTypefaceEditFB"); } if (v == aTypefaceEdit) { FileBrowserFragment df = new FileBrowserFragment(); Bundle b = new Bundle(); b.putString(FileBrowserFragment.EXTRA_FILE_EXTENSIONS, ".ttf"); b.putString(FileBrowserFragment.EXTRA_DEFAULT_ROOT, AMEnv.DEFAULT_ROOT_PATH); b.putBoolean(FileBrowserFragment.EXTRA_DISMISS_ON_SELECT, true); df.setArguments(b); df.setOnFileClickListener(aTypefaceEditFbListener); df.show(getSupportFragmentManager(), "aTypefaceEditFB"); } }
@Override public void run() { // Dismiss the progress dialog settingDao = dbOpenHelper.getSettingDao(); setContentView(R.layout.settings_screen); questionFontSizeSpinner = (AMSpinner) findViewById(R.id.question_font_size_spinner); answerFontSizeSpinner = (AMSpinner) findViewById(R.id.answer_font_size_spinner); questionAlignSpinner = (AMSpinner) findViewById(R.id.question_align_spinner); answerAlignSpinner = (AMSpinner) findViewById(R.id.answer_align_spinner); styleSpinner = (AMSpinner) findViewById(R.id.card_style_spinner); qaRatioSpinner = (AMSpinner) findViewById(R.id.ratio_spinner); questionLocaleSpinner = (AMSpinner) findViewById(R.id.question_locale_spinner); answerLocaleSpinner = (AMSpinner) findViewById(R.id.answer_locale_spinner); audioLocationEdit = (EditText) findViewById(R.id.settings_audio_location); // If we got no text, we will use the default location. if (!Strings.isNullOrEmpty(setting.getQuestionAudio())) { audioLocationEdit.setText(setting.getQuestionAudioLocation()); } if (!Strings.isNullOrEmpty(setting.getAnswerAudio())) { audioLocationEdit.setText(setting.getAnswerAudioLocation()); } if (Strings.isNullOrEmpty(audioLocationEdit.getText().toString())) { audioLocationEdit.setText(AMEnv.DEFAULT_AUDIO_PATH); } colorCheckbox = (CheckBox) findViewById(R.id.checkbox_customize_color); colorCheckbox.setOnClickListener(settingFieldOnClickListener); colorRow = (TableRow) findViewById(R.id.color_row); colorSpinner = (AMSpinner) findViewById(R.id.color_item_spinner); colorButton = (Button) findViewById(R.id.settings_color_button); colorButton.setOnClickListener(settingFieldOnClickListener); colors = new ArrayList<Integer>(5); colors.add(setting.getQuestionTextColor()); colors.add(setting.getAnswerTextColor()); colors.add(setting.getQuestionBackgroundColor()); colors.add(setting.getAnswerBackgroundColor()); colors.add(setting.getSeparatorColor()); qTypefaceCheckbox = (CheckBox) findViewById(R.id.checkbox_typeface_question); qTypefaceCheckbox.setOnClickListener(settingFieldOnClickListener); aTypefaceCheckbox = (CheckBox) findViewById(R.id.checkbox_typeface_answer); aTypefaceCheckbox.setOnClickListener(settingFieldOnClickListener); qTypefaceEdit = (EditText) findViewById(R.id.edit_typeface_question); qTypefaceEdit.setOnClickListener(settingFieldOnClickListener); aTypefaceEdit = (EditText) findViewById(R.id.edit_typeface_answer); aTypefaceEdit.setOnClickListener(settingFieldOnClickListener); displayInHTMLCheckbox = (CheckBox) findViewById(R.id.display_html); displayInHTMLCheckbox.setOnClickListener(settingFieldOnClickListener); fieldsDisplayedInHTML = setting.getDisplayInHTMLEnum(); linebreakCheckbox = (CheckBox) findViewById(R.id.linebreak_conversion); linebreakCheckbox.setOnClickListener(settingFieldOnClickListener); field1Checkbox = (CheckBox) findViewById(R.id.checkbox_field1); field1Checkbox.setOnClickListener(settingFieldOnClickListener); questionFields = setting.getQuestionFieldEnum(); field2Checkbox = (CheckBox) findViewById(R.id.checkbox_field2); field2Checkbox.setOnClickListener(settingFieldOnClickListener); answerFields = setting.getAnswerFieldEnum(); updateViews(); setSpinnerListeners(); }