private void setSpinnerListeners() { // This listener is set to detect if the spinner has been touched. // If it is touched then we think the settings are changed. View.OnTouchListener spinnerOnTouchListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { settingsChanged = true; } // This must return false, we the spinner can still work. return false; } }; questionFontSizeSpinner.setOnTouchListener(spinnerOnTouchListener); answerFontSizeSpinner.setOnTouchListener(spinnerOnTouchListener); questionAlignSpinner.setOnTouchListener(spinnerOnTouchListener); answerAlignSpinner.setOnTouchListener(spinnerOnTouchListener); styleSpinner.setOnTouchListener(spinnerOnTouchListener); qaRatioSpinner.setOnTouchListener(spinnerOnTouchListener); questionLocaleSpinner.setOnTouchListener(spinnerOnTouchListener); answerLocaleSpinner.setOnTouchListener(spinnerOnTouchListener); colorSpinner.setOnTouchListener(spinnerOnTouchListener); colorSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) { Integer color = colors.get(position); if (color != null) { colorButton.setTextColor(color); } else { final int defaultTextColor = ContextCompat.getColor(SettingsScreen.this, android.R.color.primary_text_dark); colorButton.setTextColor(defaultTextColor); } } public void onNothingSelected(AdapterView<?> adapterView) {} }); }
private void showColorPickerDialog() { final int spinnerPos = colorSpinner.getSelectedItemPosition(); Integer currentColor = colors.get(spinnerPos); final int defaultTextColor = ContextCompat.getColor(this, android.R.color.primary_text_dark); final int defaultBackgroundColor = ContextCompat.getColor(this, android.R.color.background_dark); final ColorPickerView colorPickerView = new ColorPickerView(this); colorPickerView.showAlpha(false); if (currentColor != null) { colorPickerView.setColor(currentColor); } else if (spinnerPos == QUESTION_TEXT_SPINNER_POS || spinnerPos == ANSWER_TEXT_SPINNER_POS) { colorPickerView.setColor(defaultTextColor); } else if (spinnerPos == QUESTION_BACKGROUND_SPINNER_POS || spinnerPos == ANSWER_BACKGROUND_SPINNER_POS) { colorPickerView.setColor(defaultBackgroundColor); } new AlertDialog.Builder(this) .setTitle(R.string.color_button_text) .setView(colorPickerView) .setPositiveButton( R.string.ok_text, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { colorButton.setTextColor(colorPickerView.getColor()); colors.set(spinnerPos, colorPickerView.getColor()); } }) .create() .show(); }
private void updateViews() { // Default 24 px font questionFontSizeSpinner.selectItemFromValue(Integer.toString(setting.getQuestionFontSize()), 6); answerFontSizeSpinner.selectItemFromValue(Integer.toString(setting.getAnswerFontSize()), 6); // Default center questionAlignSpinner.selectItemFromValue(setting.getQuestionTextAlign().toString(), 1); answerAlignSpinner.selectItemFromValue(setting.getAnswerTextAlign().toString(), 1); // Default US but need special care questionLocaleSpinner.selectItemFromValue(setting.getQuestionAudio(), 2); answerLocaleSpinner.selectItemFromValue(setting.getAnswerAudio(), 2); if (!Strings.isNullOrEmpty(setting.getQuestionAudioLocation())) { // User audio questionLocaleSpinner.setSelection(1); } else if (Strings.isNullOrEmpty(setting.getQuestionAudio())) { // Disabled questionLocaleSpinner.setSelection(0); } if (!Strings.isNullOrEmpty(setting.getAnswerAudioLocation())) { // User audio answerLocaleSpinner.setSelection(1); } else if (Strings.isNullOrEmpty(setting.getAnswerAudio())) { // Disabled answerLocaleSpinner.setSelection(0); } // Default to single sided styleSpinner.selectItemFromValue(setting.getCardStyle().toString(), 0); // Default to 50, the index in the array for value 50 is 5. qaRatioSpinner.selectItemFromValue(setting.getQaRatio().toString(), 5); colorCheckbox.setChecked(!setting.isDefaultColor()); if (colorCheckbox.isChecked()) { colorRow.setVisibility(View.VISIBLE); } else { colorRow.setVisibility(View.GONE); } Integer colorButtonTextColor = colorSpinner.getSelectedItemPosition(); if (colorButtonTextColor != null) { colorButton.setTextColor(colorButtonTextColor); } else { final int defaultTextColor = ContextCompat.getColor(this, android.R.color.primary_text_dark); colorButton.setText(defaultTextColor); } qTypefaceCheckbox.setChecked(!Strings.isNullOrEmpty(setting.getQuestionFont())); if (qTypefaceCheckbox.isChecked()) { qTypefaceEdit.setVisibility(View.VISIBLE); qTypefaceEdit.setText(setting.getQuestionFont()); } else { qTypefaceEdit.setVisibility(View.GONE); } aTypefaceCheckbox.setChecked(!Strings.isNullOrEmpty(setting.getAnswerFont())); if (aTypefaceCheckbox.isChecked()) { aTypefaceEdit.setVisibility(View.VISIBLE); aTypefaceEdit.setText(setting.getAnswerFont()); } else { aTypefaceEdit.setVisibility(View.GONE); } displayInHTMLCheckbox.setChecked(!(fieldsDisplayedInHTML.isEmpty())); linebreakCheckbox.setChecked(setting.getHtmlLineBreakConversion()); field1Checkbox.setChecked( !(questionFields.size() == 1 && questionFields.contains(CardField.QUESTION))); field2Checkbox.setChecked( !(answerFields.size() == 1 && answerFields.contains(CardField.ANSWER))); }