From ba0fb4ebaa7e159fdbc1422e7a79b1a02caaf5eb Mon Sep 17 00:00:00 2001 From: Vlad Mihalachi Date: Fri, 11 Oct 2013 15:18:06 +0200 Subject: [PATCH] Version 1.2: font size font size --- .gitignore | 1 - Turbo Editor/build.gradle | 30 +++++ Turbo Editor/libs/eventbus-2.0.2.jar | Bin 0 -> 22493 bytes Turbo Editor/libs/eventbus-2.1.0-beta-1.jar | Bin 42209 -> 0 bytes Turbo Editor/src/main/AndroidManifest.xml | 4 +- .../activity/SelectFileActivity.java | 2 +- .../fragment/EditDialogFragment.java | 3 - .../turboeditor/fragment/EditorFragment.java | 123 ++++++++++-------- .../fragment/SeekbarDialogFragment.java | 108 +++++++++++++++ .../turboeditor/helper/PreferenceHelper.java | 8 ++ .../res/layout/dialog_fragment_seekbar.xml | 48 +++++++ .../src/main/res/layout/fragment_editor.xml | 3 +- .../src/main/res/layout/item_file_list.xml | 3 +- .../src/main/res/menu/fragment_editor.xml | 12 +- Turbo Editor/src/main/res/raw/changelog.xml | 4 + Turbo Editor/src/main/res/values/colors.xml | 4 +- Turbo Editor/src/main/res/values/dimens.xml | 1 - Turbo Editor/src/main/res/values/ids.xml | 1 + Turbo Editor/src/main/res/values/strings.xml | 7 +- Turbo Editor/src/main/res/values/styles.xml | 1 - 20 files changed, 288 insertions(+), 75 deletions(-) create mode 100644 Turbo Editor/build.gradle create mode 100644 Turbo Editor/libs/eventbus-2.0.2.jar delete mode 100644 Turbo Editor/libs/eventbus-2.1.0-beta-1.jar create mode 100644 Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java create mode 100644 Turbo Editor/src/main/res/layout/dialog_fragment_seekbar.xml diff --git a/.gitignore b/.gitignore index 3168f64..f94a449 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,6 @@ proguard/ # Android Studio .gradle -*.gradle *.jks /local.properties /.idea/workspace.xml diff --git a/Turbo Editor/build.gradle b/Turbo Editor/build.gradle new file mode 100644 index 0000000..92114cb --- /dev/null +++ b/Turbo Editor/build.gradle @@ -0,0 +1,30 @@ +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.5.+' + } +} +apply plugin: 'android' + +repositories { + mavenCentral() +} + +android { + compileSdkVersion 18 + buildToolsVersion "18.1.0" + + defaultConfig { + minSdkVersion 14 + targetSdkVersion 18 + } +} + +dependencies { + compile 'com.github.gabrielemariotti.changeloglib:library:1.2.0' + compile 'com.android.support:support-v13:18.0.0' + compile "commons-io:commons-io:2.4" + compile fileTree(dir: 'libs', include: '*.jar') +} diff --git a/Turbo Editor/libs/eventbus-2.0.2.jar b/Turbo Editor/libs/eventbus-2.0.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..183228f91c305fc64dca1dedd6f42c50fc0fd796 GIT binary patch literal 22493 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

U@$7L%(22fvAVQ&1=p=bG;bAN(4GrU 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 literal 0 HcmV?d00001 diff --git a/Turbo Editor/libs/eventbus-2.1.0-beta-1.jar b/Turbo Editor/libs/eventbus-2.1.0-beta-1.jar deleted file mode 100644 index c68edd41b64af03c04cf4a73310f4135a14e6915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42209 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 doInBackground(final String */ @Override protected void onPostExecute(final LinkedList names) { - boolean isRoot = currentFolder.equals("/"); if (names != null) { + boolean isRoot = currentFolder.equals("/"); listView.setAdapter(new AdapterDetailedList(getBaseContext(), names, isRoot)); } super.onPostExecute(names); diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditDialogFragment.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditDialogFragment.java index bc22d85..9bd3a27 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditDialogFragment.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditDialogFragment.java @@ -45,13 +45,10 @@ public static EditDialogFragment newInstance(final Actions action) { public static EditDialogFragment newInstance(final Actions action, final String hint) { final EditDialogFragment f = new EditDialogFragment(); - - // Supply num input as an argument. final Bundle args = new Bundle(); args.putSerializable("action", action); args.putString("hint", hint); f.setArguments(args); - return f; } diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java index 9b1b1e3..863d85c 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/EditorFragment.java @@ -69,7 +69,7 @@ import de.greenrobot.event.EventBus; -public class EditorFragment extends Fragment implements EditDialogFragment.EditDialogListener { +public class EditorFragment extends Fragment implements EditDialogFragment.EditDialogListener, SeekbarDialogFragment.onSeekbarDialogDismissed { private static final String TAG = "A0A"; private Editor mEditor; @@ -77,6 +77,7 @@ public class EditorFragment extends Fragment implements EditDialogFragment.EditD // Editor Variables static boolean sWrapText; static boolean sColorSyntax; + static int sFontSize; // private boolean mUseMonospace; private String mCurrentEncoding; @@ -99,6 +100,12 @@ public static EditorFragment newInstance(String filePath) { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); + this.sFilePath = getArguments().getString("filePath"); + this.mCurrentEncoding = PreferenceHelper.getEncoding(getActivity()); + this.mUseMonospace = PreferenceHelper.getUseMonospace(getActivity()); + this.sColorSyntax = PreferenceHelper.getSyntaxHiglight(getActivity()); + this.sWrapText = PreferenceHelper.getWrapText(getActivity()); + this.sFontSize = PreferenceHelper.getFontSize(getActivity()); } @@ -107,10 +114,20 @@ public void onCreate(Bundle savedInstanceState) { */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - // Out custom layout View rootView = inflater.inflate(R.layout.fragment_editor, container, false); - // mEditor = (Editor) rootView.findViewById(R.id.editor); + mEditor.setHorizontallyScrolling(!this.sWrapText); + if (!this.sWrapText) { + int paddingLeft = (int) PixelDipConverter.convertDpToPixel(sFontSize * 1.5f, getActivity()); + mEditor.setPadding(paddingLeft, 0, 0, 0); + } else { + int paddingLeft = (int) PixelDipConverter.convertDpToPixel(5, getActivity()); + mEditor.setPadding(paddingLeft, 0, 0, 0); + } + if(this.mUseMonospace){ + mEditor.setTypeface(Typeface.MONOSPACE); + } + mEditor.setTextSize(sFontSize); return rootView; } @@ -121,18 +138,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - // - this.sFilePath = getArguments().getString("filePath"); - this.mCurrentEncoding = PreferenceHelper.getEncoding(getActivity()); - this.mUseMonospace = PreferenceHelper.getUseMonospace(getActivity()); - this.sColorSyntax = PreferenceHelper.getSyntaxHiglight(getActivity()); - this.sWrapText = PreferenceHelper.getWrapText(getActivity()); String fileName = FilenameUtils.getName(getArguments().getString("filePath")); - // getActivity().getActionBar().setTitle(fileName); - // - configureEditText(); - // try { final FileInputStream inputStream = new FileInputStream( @@ -174,7 +181,16 @@ public boolean onOptionsItemSelected(MenuItem item) { this.mEditor.onKeyShortcut(KeyEvent.KEYCODE_Y, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_Y)); } else if (i == R.id.im_editor_encoding) { - showEncodingDialog(); + EditDialogFragment dialogFrag = EditDialogFragment.newInstance(EditDialogFragment.Actions.Encoding, this.mCurrentEncoding); + dialogFrag.setTargetFragment(this, 0); + dialogFrag.show(getFragmentManager().beginTransaction(), "dialog"); + } else if (i == R.id.im_text_size) { + int fontMax = 36; + float scaledDensity = getResources().getDisplayMetrics().scaledDensity; + int fontCurrent = (int) (mEditor.getTextSize() / scaledDensity); + SeekbarDialogFragment dialogFrag = SeekbarDialogFragment.newInstance(SeekbarDialogFragment.Actions.FileSize, fontCurrent, fontMax); + dialogFrag.setTargetFragment(this, 0); + dialogFrag.show(getFragmentManager().beginTransaction(), "dialog"); } else if (i == R.id.im_syntax_highlight) { item.setChecked(!item.isChecked()); PreferenceHelper.setSyntaxHiglight(getActivity(), item.isChecked()); @@ -191,13 +207,6 @@ public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); } - private void showEncodingDialog() { - EditDialogFragment dialogFrag = EditDialogFragment.newInstance(EditDialogFragment.Actions.Encoding, this.mCurrentEncoding); - dialogFrag.setTargetFragment(this, 0); - dialogFrag.show(getFragmentManager().beginTransaction(), "encodingDialog"); - } - - /** * {@inheritDoc} */ @@ -209,33 +218,50 @@ public void onFinishEditDialog(final String inputText, final String hint, final } } + /** + * {@inheritDoc} + */ + @Override + public void onSeekbarDialogDismissed(SeekbarDialogFragment.Actions action, int value) { + PreferenceHelper.setFontSize(getActivity(), value); + updateTextEditor(); + } + private void updateTextEditor() { - final boolean countLines = PreferenceHelper.getWrapText(getActivity()); + final boolean wrapText = PreferenceHelper.getWrapText(getActivity()); final boolean syntaxHighlight = PreferenceHelper.getSyntaxHiglight(getActivity()); final boolean useMonospace = PreferenceHelper.getUseMonospace(getActivity()); final String encoding = PreferenceHelper.getEncoding(getActivity()); - - if (this.sWrapText != countLines) { - this.sWrapText = countLines; - final String s = this.mEditor.getText().toString(); - //inflateOfWrapText(); - this.mEditor.setText(s); - configureEditText(); + final int fontSize = PreferenceHelper.getFontSize(getActivity()); + + if (this.sWrapText != wrapText) { + this.sWrapText = wrapText; + this.mEditor.setText(this.mEditor.getText().toString()); + this.mEditor.setHorizontallyScrolling(!this.sWrapText); + if (!this.sWrapText) { + int paddingLeft = (int) PixelDipConverter.convertDpToPixel(sFontSize * 1.5f, getActivity()); + mEditor.setPadding(paddingLeft, 0, 0, 0); + } else { + int paddingLeft = (int) PixelDipConverter.convertDpToPixel(5, getActivity()); + mEditor.setPadding(paddingLeft, 0, 0, 0); + } } if (this.sColorSyntax != syntaxHighlight) { this.sColorSyntax = syntaxHighlight; - final String s = this.mEditor.getText().toString(); - //inflateOfWrapText(); - this.mEditor.setText(s); + this.mEditor.setText(this.mEditor.getText().toString()); } if (this.mUseMonospace != useMonospace) { this.mUseMonospace = useMonospace; this.mEditor.setTypeface(Typeface.MONOSPACE); - //final String s = this.mEditor.getText().toString(); - //inflateOfWrapText(); - //this.mEditor.setText(s); + } + + if (this.sFontSize != fontSize) { + this.sFontSize = fontSize; + int paddingLeft = (int) PixelDipConverter.convertDpToPixel(fontSize * 1.5f, getActivity()); + mEditor.setPadding(paddingLeft, 0, 0, 0); + this.mEditor.setTextSize(fontSize); } if (!this.mCurrentEncoding.equals(encoding)) { @@ -248,20 +274,6 @@ private void updateTextEditor() { } } - private void configureEditText() { - this.mEditor.setHorizontallyScrolling(!this.sWrapText); - if (!this.sWrapText) { - int paddingLeft = (int) PixelDipConverter.convertDpToPixel(25, getActivity()); - mEditor.setPadding(paddingLeft, 0, 0, 0); - } else { - int paddingLeft = (int) PixelDipConverter.convertDpToPixel(5, getActivity()); - mEditor.setPadding(paddingLeft, 0, 0, 0); - } - if(this.mUseMonospace){ - this.mEditor.setTypeface(Typeface.MONOSPACE); - } - } - class SaveFile extends AsyncTask { /** @@ -301,7 +313,6 @@ public static class Editor extends EditText { ID_REDO = R.id.im_redo; private static final int SYNTAX_DELAY_MILLIS = 0; - private static final float textSize = 16; private final Handler updateHandler = new Handler(); private final TextPaint mPaintNumbers = @@ -346,11 +357,11 @@ public Editor(Context context, super(context, attrs); this.mScale = context.getResources() .getDisplayMetrics().density; - init(context); + init(); } // Init the class - private void init(final Context context) { + private void init() { mEditHistory = new EditHistory(); mChangeListener = new EditTextChangeListener(); @@ -361,7 +372,7 @@ private void init(final Context context) { getTextColors().getDefaultColor()); this.mPaintNumbers .setTextSize( - textSize * this.mScale * 0.8f); + sFontSize); this.mPaintNumbers.setAntiAlias(true); // Syntax editor @@ -393,6 +404,12 @@ public CharSequence filter( }}); } + @Override + public void setTextSize(float size) { + super.setTextSize(size); + this.mPaintNumbers.setTextSize(sFontSize); + } + /** * {@inheritDoc} */ diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java new file mode 100644 index 0000000..62c7b17 --- /dev/null +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/fragment/SeekbarDialogFragment.java @@ -0,0 +1,108 @@ +/* + * Copyright (C) 2013 Vlad Mihalachi + * + * This file is part of Turbo Editor. + * + * Turbo Editor is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Turbo Editor is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Turbo Editor. If not, see . + */ + +package com.vmihalachi.turboeditor.fragment; + +import android.app.Dialog; +import android.app.DialogFragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.SeekBar; + +import com.vmihalachi.turboeditor.R; + +// ... +public class SeekbarDialogFragment extends DialogFragment { + + SeekBar mSeekBar; + + public static SeekbarDialogFragment newInstance(final Actions action) { + return SeekbarDialogFragment.newInstance(action, 50, 100); + } + + public static SeekbarDialogFragment newInstance(final Actions action, final int current, final int max) { + final SeekbarDialogFragment f = new SeekbarDialogFragment(); + final Bundle args = new Bundle(); + args.putSerializable("action", action); + args.putInt("current", current); + args.putInt("max", max); + f.setArguments(args); + return f; + } + + @Override + public View onCreateView(final LayoutInflater inflater, final ViewGroup container, + final Bundle savedInstanceState) { + + final Dialog dialog = getDialog(); + final Actions action = (Actions) getArguments().getSerializable("action"); + final String title; + switch (action) { + case FileSize: + title = getString(R.string.text_size); + break; + default: + title = null; + break; + } + dialog.setTitle(title); + + final View view = inflater.inflate(R.layout.dialog_fragment_seekbar, container); + this.mSeekBar = (SeekBar) view.findViewById(android.R.id.input); + this.mSeekBar.setProgress(getArguments().getInt("current")); + this.mSeekBar.setMax(getArguments().getInt("max")); + + view.findViewById(android.R.id.button1) + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View v) { + returnData(); + } + }); + return view; + } + + void returnData(){ + try { + ((onSeekbarDialogDismissed) getTargetFragment()).onSeekbarDialogDismissed( + (Actions) getArguments().getSerializable("action"), + mSeekBar.getProgress() + ); + } catch (Exception e){ + try { + ((onSeekbarDialogDismissed) getActivity()).onSeekbarDialogDismissed( + (Actions) getArguments().getSerializable("action"), + mSeekBar.getProgress() + ); + } catch (Exception e2){ + } + } + this.dismiss(); + } + + public enum Actions { + FileSize + } + + public interface onSeekbarDialogDismissed { + void onSeekbarDialogDismissed(Actions action, int value); + } +} \ No newline at end of file diff --git a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java index 7013ff0..ca615db 100644 --- a/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java +++ b/Turbo Editor/src/main/java/com/vmihalachi/turboeditor/helper/PreferenceHelper.java @@ -57,6 +57,10 @@ public static String getEncoding(Context context) { return getPrefs(context).getString("editor_encoding", "UTF-8"); } + public static int getFontSize(Context context) { + return getPrefs(context).getInt("font_size", 18); + } + public static String getLastNavigatedFolder(Context context) { return getPrefs(context).getString("last_navigated_folder", SD_CARD_ROOT); } @@ -83,6 +87,10 @@ public static void setEncoding(Context context, String value) { getEditor(context).putString("editor_encoding", value).commit(); } + public static void setFontSize(Context context, int value) { + getEditor(context).putInt("font_size", value).commit(); + } + public static void setLastNavigatedFolder(Context context, String value) { getEditor(context).putString("last_navigated_folder", value).commit(); } diff --git a/Turbo Editor/src/main/res/layout/dialog_fragment_seekbar.xml b/Turbo Editor/src/main/res/layout/dialog_fragment_seekbar.xml new file mode 100644 index 0000000..d13b291 --- /dev/null +++ b/Turbo Editor/src/main/res/layout/dialog_fragment_seekbar.xml @@ -0,0 +1,48 @@ + + + + + + + + + +