package com.novoda.dropcap.demo; import android.app.Activity; import android.os.Bundle; import android.support.annotation.ColorInt; import android.util.TypedValue; import android.view.View; import android.widget.Button; import android.widget.EditText; import com.novoda.drop_cap.R; import com.novoda.dropcap.DropCapView; public class DropCapActivity extends Activity { private DropCapView dropCapView; private TextSizeDialogDisplayer copyTextSizeDialogDisplayer; private TextSizeDialogDisplayer dropCapSizeDialogDisplayer; private TextColorDialogDisplayer dropCapTextColorDialogDisplayer; private TextColorDialogDisplayer copyTextColorDialogDisplayer; private TypefaceDialogDisplayer dropCapTypefaceDialogDisplayer; private TypefaceDialogDisplayer copyTypefaceDialogDisplayer; private FontType dropCapFontType; private FontType copyFontType; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_drop_cap); dropCapView = (DropCapView) findViewById(R.id.view_drop_cap); createTextSizeDialogDisplayers(); createTextColorDialogDisplayers(); createTypefaceDialogDisplayers(); createTextUpdater(); } private void createTextSizeDialogDisplayers() { dropCapSizeDialogDisplayer = new TextSizeDialogDisplayer( getFragmentManager(), getResources(), onDropCapTextSizeChanged ); copyTextSizeDialogDisplayer = new TextSizeDialogDisplayer( getFragmentManager(), getResources(), onCopyTextSizeChanged ); Button dropCapTextSizeButton = (Button) findViewById(R.id.drop_cap_size); dropCapTextSizeButton.setOnClickListener(onClickDisplayDropCapTextSizeDialog); Button copyTextSizeButton = (Button) findViewById(R.id.copy_size); copyTextSizeButton.setOnClickListener(onClickDisplayCopyTextSizeDialog); } private final OnTextSizeChangeListener onDropCapTextSizeChanged = new OnTextSizeChangeListener() { @Override public void onSizeChanged(int newTextSize) { dropCapView.setDropCapTextSize(TypedValue.COMPLEX_UNIT_PX, newTextSize); } }; private final OnTextSizeChangeListener onCopyTextSizeChanged = new OnTextSizeChangeListener() { @Override public void onSizeChanged(int newTextSize) { dropCapView.setCopyTextSize(TypedValue.COMPLEX_UNIT_PX, newTextSize); } }; private final View.OnClickListener onClickDisplayDropCapTextSizeDialog = new View.OnClickListener() { @Override public void onClick(View v) { dropCapSizeDialogDisplayer.showTextSizeDialog(dropCapView.getDropCapTextSize()); } }; private final View.OnClickListener onClickDisplayCopyTextSizeDialog = new View.OnClickListener() { @Override public void onClick(View v) { copyTextSizeDialogDisplayer.showTextSizeDialog(dropCapView.getCopyTextSize()); } }; private void createTextColorDialogDisplayers() { dropCapTextColorDialogDisplayer = new TextColorDialogDisplayer( getFragmentManager(), getResources(), onDropCapTextColorChanged ); copyTextColorDialogDisplayer = new TextColorDialogDisplayer( getFragmentManager(), getResources(), onCopyTextColorChanged ); Button dropCapTextColorButton = (Button) findViewById(R.id.drop_cap_color); dropCapTextColorButton.setOnClickListener(onClickDisplayDropCapTextColorDialog); Button copyTextColorButton = (Button) findViewById(R.id.copy_color); copyTextColorButton.setOnClickListener(onClickDisplayCopyTextColorDialog); } private final OnTextColorChangeListener onDropCapTextColorChanged = new OnTextColorChangeListener() { @Override public void onColorChanged(@ColorInt int color) { dropCapView.setDropCapTextColor(color); } }; private final OnTextColorChangeListener onCopyTextColorChanged = new OnTextColorChangeListener() { @Override public void onColorChanged(@ColorInt int color) { dropCapView.setCopyTextColor(color); } }; private final View.OnClickListener onClickDisplayDropCapTextColorDialog = new View.OnClickListener() { @Override public void onClick(View v) { dropCapTextColorDialogDisplayer.showTextColorDialog(dropCapView.getDropCapTextColor()); } }; private final View.OnClickListener onClickDisplayCopyTextColorDialog = new View.OnClickListener() { @Override public void onClick(View v) { copyTextColorDialogDisplayer.showTextColorDialog(dropCapView.getCopyTextColor()); } }; private void createTypefaceDialogDisplayers() { dropCapTypefaceDialogDisplayer = new TypefaceDialogDisplayer( getFragmentManager(), getResources(), onDropCapTypefaceChanged ); copyTypefaceDialogDisplayer = new TypefaceDialogDisplayer( getFragmentManager(), getResources(), onCopyTypefaceChanged ); Button dropCapTypefaceButton = (Button) findViewById(R.id.drop_cap_typeface); dropCapTypefaceButton.setOnClickListener(onClickDisplayDropCapTypefaceDialog); Button copyTypefaceButton = (Button) findViewById(R.id.copy_typeface); copyTypefaceButton.setOnClickListener(onClickDisplayCopyTypefaceDialog); } private final OnTypefaceChangeListener onDropCapTypefaceChanged = new OnTypefaceChangeListener() { @Override public void onTypefaceChanged(FontType newFontType) { String fontPath = getResources().getString(newFontType.getAssetUrl()); dropCapView.setDropCapFontType(fontPath); dropCapFontType = newFontType; } }; private final OnTypefaceChangeListener onCopyTypefaceChanged = new OnTypefaceChangeListener() { @Override public void onTypefaceChanged(FontType newFontType) { String fontPath = getResources().getString(newFontType.getAssetUrl()); dropCapView.setCopyFontType(fontPath); copyFontType = newFontType; } }; private final View.OnClickListener onClickDisplayDropCapTypefaceDialog = new View.OnClickListener() { @Override public void onClick(View v) { dropCapTypefaceDialogDisplayer.showTypefaceDialog(dropCapFontType); } }; private final View.OnClickListener onClickDisplayCopyTypefaceDialog = new View.OnClickListener() { @Override public void onClick(View v) { copyTypefaceDialogDisplayer.showTypefaceDialog(copyFontType); } }; private void createTextUpdater() { final EditText textUpdateEditText = (EditText) findViewById(R.id.drop_cap_edit_text); Button textUpdateButton = (Button) findViewById(R.id.edit_text_update); textUpdateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String updatedText = textUpdateEditText.getText().toString(); dropCapView.setText(updatedText); } }); } }