package com.garethevans.church.opensongtablet;
import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.SeekBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.ToggleButton;
import java.util.ArrayList;
public class PopUpLayoutFragment extends DialogFragment {
static PopUpLayoutFragment newInstance() {
PopUpLayoutFragment frag;
frag = new PopUpLayoutFragment();
return frag;
}
SeekBar setXMarginProgressBar;
SeekBar setYMarginProgressBar;
ToggleButton toggleAutoScaleButton;
SeekBar setMaxFontSizeProgressBar;
SeekBar setFontSizeProgressBar;
TextView fontSizePreview;
TextView maxfontSizePreview;
Spinner presoFontSpinner;
SeekBar presoTitleSizeSeekBar;
SeekBar presoAuthorSizeSeekBar;
SeekBar presoCopyrightSizeSeekBar;
SeekBar presoAlertSizeSeekBar;
Button closeLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle(getActivity().getResources().getString(R.string.settings));
final View V = inflater.inflate(R.layout.popup_layout, container, false);
setXMarginProgressBar = (SeekBar) V.findViewById(R.id.setXMarginProgressBar);
setYMarginProgressBar = (SeekBar) V.findViewById(R.id.setYMarginProgressBar);
toggleAutoScaleButton = (ToggleButton) V.findViewById(R.id.toggleAutoScaleButton);
setMaxFontSizeProgressBar = (SeekBar) V.findViewById(R.id.setMaxFontSizeProgressBar);
setFontSizeProgressBar = (SeekBar) V.findViewById(R.id.setFontSizeProgressBar);
fontSizePreview = (TextView) V.findViewById(R.id.fontSizePreview);
maxfontSizePreview = (TextView) V.findViewById(R.id.maxfontSizePreview);
closeLayout = (Button) V.findViewById(R.id.closeLayout);
presoFontSpinner = (Spinner) V.findViewById(R.id.presoFontSpinner);
presoTitleSizeSeekBar = (SeekBar) V.findViewById(R.id.presoTitleSizeSeekBar);
presoAuthorSizeSeekBar = (SeekBar) V.findViewById(R.id.presoAuthorSizeSeekBar);
presoCopyrightSizeSeekBar = (SeekBar) V.findViewById(R.id.presoCopyrightSizeSeekBar);
presoAlertSizeSeekBar = (SeekBar) V.findViewById(R.id.presoAlertSizeSeekBar);
SetTypeFace.setTypeface();
// Set the stuff up to what it should be from preferences
fontSizePreview.setTypeface(FullscreenActivity.presofont);
String newtext = (FullscreenActivity.presoFontSize) + " sp";
fontSizePreview.setText(newtext);
fontSizePreview.setTextSize(FullscreenActivity.presoFontSize);
maxfontSizePreview.setTypeface(FullscreenActivity.presofont);
newtext = (FullscreenActivity.presoMaxFontSize) + " sp";
maxfontSizePreview.setText(newtext);
maxfontSizePreview.setTextSize(FullscreenActivity.presoMaxFontSize);
setXMarginProgressBar.setMax(200);
setYMarginProgressBar.setMax(200);
setMaxFontSizeProgressBar.setMax(70);
setFontSizeProgressBar.setMax(70);
presoTitleSizeSeekBar.setMax(32);
presoAuthorSizeSeekBar.setMax(32);
presoCopyrightSizeSeekBar.setMax(32);
presoAlertSizeSeekBar.setMax(32);
presoTitleSizeSeekBar.setProgress(FullscreenActivity.presoTitleSize);
presoAuthorSizeSeekBar.setProgress(FullscreenActivity.presoAuthorSize);
presoCopyrightSizeSeekBar.setProgress(FullscreenActivity.presoCopyrightSize);
presoAlertSizeSeekBar.setProgress(FullscreenActivity.presoAlertSize);
setXMarginProgressBar.setProgress(FullscreenActivity.xmargin_presentation);
setYMarginProgressBar.setProgress(FullscreenActivity.ymargin_presentation);
setFontSizeProgressBar.setProgress(FullscreenActivity.presoFontSize - 4);
setMaxFontSizeProgressBar.setProgress(FullscreenActivity.presoMaxFontSize - 4);
if (FullscreenActivity.presoAutoScale) {
setFontSizeProgressBar.setEnabled(false);
setFontSizeProgressBar.setAlpha(0.5f);
setMaxFontSizeProgressBar.setEnabled(true);
setMaxFontSizeProgressBar.setAlpha(1.0f);
maxfontSizePreview.setAlpha(1.0f);
toggleAutoScaleButton.setChecked(true);
fontSizePreview.setAlpha(0.5f);
} else {
setFontSizeProgressBar.setEnabled(true);
setFontSizeProgressBar.setAlpha(1.0f);
setMaxFontSizeProgressBar.setEnabled(false);
setMaxFontSizeProgressBar.setAlpha(0.5f);
maxfontSizePreview.setAlpha(0.5f);
toggleAutoScaleButton.setChecked(false);
fontSizePreview.setAlpha(1.0f);
}
// Set up the font spinner
ArrayList<String> font_choices = new ArrayList<>();
font_choices.add(getResources().getString(R.string.font_default));
font_choices.add(getResources().getString(R.string.font_monospace));
font_choices.add(getResources().getString(R.string.font_sans));
font_choices.add(getResources().getString(R.string.font_serif));
font_choices.add(getResources().getString(R.string.font_firasanslight));
font_choices.add(getResources().getString(R.string.font_firasansregular));
font_choices.add(getResources().getString(R.string.font_kaushanscript));
font_choices.add(getResources().getString(R.string.font_latolight));
font_choices.add(getResources().getString(R.string.font_latoregular));
font_choices.add(getResources().getString(R.string.font_leaguegothic));
ArrayAdapter<String> choose_fonts = new ArrayAdapter<>(getActivity(), R.layout.my_spinner, font_choices);
choose_fonts.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
presoFontSpinner.setAdapter(choose_fonts);
presoFontSpinner.setSelection(FullscreenActivity.mypresofontnum);
// Set listeners
presoFontSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
FullscreenActivity.mypresofontnum = position;
SetTypeFace.setTypeface();
fontSizePreview.setTypeface(FullscreenActivity.presofont);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
setXMarginProgressBar.setOnSeekBarChangeListener(new setMargin_Listener());
setYMarginProgressBar.setOnSeekBarChangeListener(new setMargin_Listener());
setMaxFontSizeProgressBar.setOnSeekBarChangeListener(new setMaxFontSizeListener());
setFontSizeProgressBar.setOnSeekBarChangeListener(new setFontSizeListener());
presoTitleSizeSeekBar.setOnSeekBarChangeListener(new presoSectionSizeListener());
presoAuthorSizeSeekBar.setOnSeekBarChangeListener(new presoSectionSizeListener());
presoCopyrightSizeSeekBar.setOnSeekBarChangeListener(new presoSectionSizeListener());
presoAlertSizeSeekBar.setOnSeekBarChangeListener(new presoSectionSizeListener());
closeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Grab the variables, save and close
FullscreenActivity.xmargin_presentation = setXMarginProgressBar.getProgress();
FullscreenActivity.ymargin_presentation = setYMarginProgressBar.getProgress();
FullscreenActivity.presoAutoScale = toggleAutoScaleButton.isChecked();
FullscreenActivity.presoFontSize = setFontSizeProgressBar.getProgress() + 4;
FullscreenActivity.presoMaxFontSize = setMaxFontSizeProgressBar.getProgress() + 4;
Preferences.savePreferences();
dismiss();
}
});
toggleAutoScaleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
setFontSizeProgressBar.setEnabled(false);
setFontSizeProgressBar.setAlpha(0.5f);
fontSizePreview.setAlpha(0.5f);
setMaxFontSizeProgressBar.setEnabled(true);
setMaxFontSizeProgressBar.setAlpha(1.0f);
maxfontSizePreview.setAlpha(1.0f);
PresenterMode.autoscale = true;
FullscreenActivity.presoAutoScale = true;
Preferences.savePreferences();
//MyPresentation.doScale();
MyPresentation.resetFontSize();
} else {
setFontSizeProgressBar.setEnabled(true);
setFontSizeProgressBar.setAlpha(1.0f);
fontSizePreview.setAlpha(1.0f);
setMaxFontSizeProgressBar.setEnabled(false);
setMaxFontSizeProgressBar.setAlpha(0.5f);
maxfontSizePreview.setAlpha(0.5f);
PresenterMode.autoscale = false;
FullscreenActivity.presoAutoScale = false;
Preferences.savePreferences();
MyPresentation.updateFontSize();
}
}
});
return V;
}
private class setMargin_Listener implements SeekBar.OnSeekBarChangeListener {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
PresenterMode.tempxmargin = setXMarginProgressBar.getProgress();
PresenterMode.tempymargin = setYMarginProgressBar.getProgress();
MyPresentation.changeMargins();
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {
FullscreenActivity.xmargin_presentation = setXMarginProgressBar.getProgress();
FullscreenActivity.ymargin_presentation = setYMarginProgressBar.getProgress();
// Save preferences
Preferences.savePreferences();
}
}
private class setFontSizeListener implements SeekBar.OnSeekBarChangeListener {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
FullscreenActivity.presoFontSize = progress + 4;
String newtext = (progress + 4) + " sp";
fontSizePreview.setText(newtext);
fontSizePreview.setTextSize(progress + 4);
MyPresentation.updateFontSize();
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {
FullscreenActivity.presoFontSize = seekBar.getProgress() + 4;
// Save preferences
Preferences.savePreferences();
}
}
private class setMaxFontSizeListener implements SeekBar.OnSeekBarChangeListener {
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
FullscreenActivity.presoMaxFontSize = progress + 4;
String newtext = (progress + 4) + " sp";
maxfontSizePreview.setText(newtext);
maxfontSizePreview.setTextSize(progress + 4);
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {
FullscreenActivity.presoMaxFontSize = seekBar.getProgress() + 4;
// Save preferences
Preferences.savePreferences();
}
}
private class presoSectionSizeListener implements SeekBar.OnSeekBarChangeListener {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
FullscreenActivity.presoTitleSize = presoTitleSizeSeekBar.getProgress();
FullscreenActivity.presoAuthorSize = presoAuthorSizeSeekBar.getProgress();
FullscreenActivity.presoCopyrightSize = presoCopyrightSizeSeekBar.getProgress();
FullscreenActivity.presoAlertSize = presoAlertSizeSeekBar.getProgress();
MyPresentation.updateFontSize();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// Save the preferences
Preferences.savePreferences();
}
}
}