diff --git a/app/src/main/java/org/houxg/leamonax/editor/Editor.java b/app/src/main/java/org/houxg/leamonax/editor/Editor.java
index 007729a..d0ee342 100644
--- a/app/src/main/java/org/houxg/leamonax/editor/Editor.java
+++ b/app/src/main/java/org/houxg/leamonax/editor/Editor.java
@@ -57,6 +57,10 @@ public abstract class Editor {
public abstract void toggleItalic();
+ public abstract void toggleQuote();
+
+ public abstract void toggleHeading();
+
public interface EditorListener {
void onPageLoaded();
void onClickedLink(String title, String url);
diff --git a/app/src/main/java/org/houxg/leamonax/editor/MarkdownEditor.java b/app/src/main/java/org/houxg/leamonax/editor/MarkdownEditor.java
index 566fa16..516d500 100644
--- a/app/src/main/java/org/houxg/leamonax/editor/MarkdownEditor.java
+++ b/app/src/main/java/org/houxg/leamonax/editor/MarkdownEditor.java
@@ -115,4 +115,14 @@ public class MarkdownEditor extends Editor {
public void toggleItalic() {
execJs("ZSSEditor.setItalic();");
}
+
+ @Override
+ public void toggleQuote() {
+ execJs("ZSSEditor.setBlockquote();");
+ }
+
+ @Override
+ public void toggleHeading() {
+ execJs("ZSSEditor.setHeading();");
+ }
}
diff --git a/app/src/main/java/org/houxg/leamonax/editor/RichTextEditor.java b/app/src/main/java/org/houxg/leamonax/editor/RichTextEditor.java
index 1f438b4..3877f36 100644
--- a/app/src/main/java/org/houxg/leamonax/editor/RichTextEditor.java
+++ b/app/src/main/java/org/houxg/leamonax/editor/RichTextEditor.java
@@ -128,6 +128,16 @@ public class RichTextEditor extends Editor implements OnJsEditorStateChangedList
execJs("ZSSEditor.setItalic();");
}
+ @Override
+ public void toggleQuote() {
+ execJs("ZSSEditor.setBlockquote();");
+ }
+
+ @Override
+ public void toggleHeading() {
+ execJs("ZSSEditor.setHeading();");
+ }
+
private String appendPTag(String source) {
String[] segments = source.split("\n\n");
StringBuilder contentBuilder = new StringBuilder();
diff --git a/app/src/main/java/org/houxg/leamonax/ui/edit/EditorFragment.java b/app/src/main/java/org/houxg/leamonax/ui/edit/EditorFragment.java
index fd6dcdc..5c693f6 100644
--- a/app/src/main/java/org/houxg/leamonax/ui/edit/EditorFragment.java
+++ b/app/src/main/java/org/houxg/leamonax/ui/edit/EditorFragment.java
@@ -32,6 +32,7 @@ import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
+import butterknife.Optional;
public class EditorFragment extends Fragment implements Editor.EditorListener {
@@ -44,13 +45,22 @@ public class EditorFragment extends Fragment implements Editor.EditorListener {
private EditorFragmentListener mListener;
private Editor mEditor;
- @BindView(R.id.fl_tools)
+ @BindView(R.id.fl_container)
View mToolContainer;
+ @Nullable
@BindView(R.id.btn_bold)
ToggleImageButton mBoldBtn;
+ @Nullable
@BindView(R.id.btn_italic)
ToggleImageButton mItalicBtn;
+ @Nullable
+ @BindView(R.id.btn_heading)
+ ToggleImageButton mHeadingBtn;
+ @Nullable
+ @BindView(R.id.btn_quote)
+ ToggleImageButton mQuoteBtn;
+
@BindView(R.id.btn_order_list)
ToggleImageButton mOrderListBtn;
@BindView(R.id.btn_unorder_list)
@@ -92,19 +102,25 @@ public class EditorFragment extends Fragment implements Editor.EditorListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_editor, container, false);
- ButterKnife.bind(this, view);
+
Bundle arguments = savedInstanceState == null ? getArguments() : savedInstanceState;
mIsEditingEnabled = arguments.getBoolean(ARG_ENABLE_EDIT, false);
boolean isMarkdown = arguments.getBoolean(ARG_IS_MARKDOWN, true);
- mToolContainer.setVisibility(mIsEditingEnabled ? View.VISIBLE : View.GONE);
-
+ int formatRestId;
if (isMarkdown) {
mEditor = new MarkdownEditor(this);
+ formatRestId = R.layout.format_bar_markdown;
} else {
mEditor = new RichTextEditor(this);
+ formatRestId = R.layout.format_bar_richtext;
}
+ ViewGroup formatBarContainer = (ViewGroup) view.findViewById(R.id.fl_container);
+ View formatBar = inflater.inflate(formatRestId, formatBarContainer, false);
+ formatBarContainer.addView(formatBar, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ ButterKnife.bind(this, view);
+ mToolContainer.setVisibility(mIsEditingEnabled ? View.VISIBLE : View.GONE);
mEditor.init(mWebView);
return view;
}
@@ -191,16 +207,30 @@ public class EditorFragment extends Fragment implements Editor.EditorListener {
mEditor.toggleUnorderList();
}
+ @Optional
@OnClick(R.id.btn_bold)
void toggleBold() {
mEditor.toggleBold();
}
+ @Optional
@OnClick(R.id.btn_italic)
void toggleItalic() {
mEditor.toggleItalic();
}
+ @Optional
+ @OnClick(R.id.btn_heading)
+ void toggleHeading() {
+ mEditor.toggleHeading();
+ }
+
+ @Optional
+ @OnClick(R.id.btn_quote)
+ void toggleQuote() {
+ mEditor.toggleQuote();
+ }
+
@OnClick(R.id.btn_undo)
void undo() {
mEditor.undo();
diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_quote_black_disable.png b/app/src/main/res/drawable-xxhdpi/ic_format_quote_disable.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_format_quote_black_disable.png
rename to app/src/main/res/drawable-xxhdpi/ic_format_quote_disable.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_quote_black_enable.png b/app/src/main/res/drawable-xxhdpi/ic_format_quote_enable.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_format_quote_black_enable.png
rename to app/src/main/res/drawable-xxhdpi/ic_format_quote_enable.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_heading_disable.png b/app/src/main/res/drawable-xxhdpi/ic_heading_disable.png
new file mode 100644
index 0000000..587127e
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_heading_disable.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_heading_enable.png b/app/src/main/res/drawable-xxhdpi/ic_heading_enable.png
new file mode 100644
index 0000000..2174890
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_heading_enable.png differ
diff --git a/app/src/main/res/layout/format_bar_markdown.xml b/app/src/main/res/layout/format_bar_markdown.xml
new file mode 100755
index 0000000..c05b027
--- /dev/null
+++ b/app/src/main/res/layout/format_bar_markdown.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/format_bar_richtext.xml b/app/src/main/res/layout/format_bar_richtext.xml
new file mode 100755
index 0000000..c3109ab
--- /dev/null
+++ b/app/src/main/res/layout/format_bar_richtext.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_editor.xml b/app/src/main/res/layout/fragment_editor.xml
index ccee21c..ebd3a60 100755
--- a/app/src/main/res/layout/fragment_editor.xml
+++ b/app/src/main/res/layout/fragment_editor.xml
@@ -1,65 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_alignParentBottom="true" />
+ android:layout_above="@id/fl_container" />