From c3a3c3f224cd0f6b6a263ee713d7040a1803773e Mon Sep 17 00:00:00 2001
From: yangzc
Date: Wed, 1 Jun 2016 16:56:59 +0800
Subject: [PATCH 001/154] d
---
.../hyena/coretext/blocks/CYTextBlock.java | 2 +-
.../hyena/coretext/samples/MainActivity.java | 53 ++-------
.../coretext/samples/SampleFragment1.java | 61 ++++++++++
.../coretext/samples/SampleFragment2.java | 109 ++++++++++++++++++
samples/src/main/res/layout/activity_main.xml | 34 +-----
5 files changed, 182 insertions(+), 77 deletions(-)
create mode 100644 samples/src/main/java/com/hyena/coretext/samples/SampleFragment1.java
create mode 100644 samples/src/main/java/com/hyena/coretext/samples/SampleFragment2.java
diff --git a/library/src/main/java/com/hyena/coretext/blocks/CYTextBlock.java b/library/src/main/java/com/hyena/coretext/blocks/CYTextBlock.java
index b00b840..7e1e733 100644
--- a/library/src/main/java/com/hyena/coretext/blocks/CYTextBlock.java
+++ b/library/src/main/java/com/hyena/coretext/blocks/CYTextBlock.java
@@ -18,7 +18,7 @@ public class CYTextBlock extends CYBlock {
private List mSubBlocks = new ArrayList();
{
- mPaint.setTextSize(20);
+ mPaint.setTextSize(60);
}
public CYTextBlock(String content){
diff --git a/samples/src/main/java/com/hyena/coretext/samples/MainActivity.java b/samples/src/main/java/com/hyena/coretext/samples/MainActivity.java
index ce94b36..2b5e56d 100644
--- a/samples/src/main/java/com/hyena/coretext/samples/MainActivity.java
+++ b/samples/src/main/java/com/hyena/coretext/samples/MainActivity.java
@@ -1,58 +1,21 @@
package com.hyena.coretext.samples;
-import android.app.Activity;
-import android.graphics.Color;
-import android.graphics.Typeface;
import android.os.Bundle;
-
-import com.hyena.coretext.AttributedString;
-import com.hyena.coretext.CYView;
-import com.hyena.coretext.blocks.CYBlock;
-import com.hyena.coretext.blocks.CYBreakLineBlock;
-import com.hyena.coretext.blocks.CYEditBlock;
-import com.hyena.coretext.blocks.CYPlaceHolderBlock;
-import com.hyena.coretext.blocks.CYTextBlock;
-import com.hyena.coretext.layout.CYHorizontalLayout;
-import com.hyena.coretext.blocks.CYImageBlock;
-
-import java.util.ArrayList;
-import java.util.List;
+import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentTransaction;
/**
* Created by yangzc on 16/3/19.
*/
-public class MainActivity extends Activity {
+public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- CYView view = new CYView(this);
-
- List blocks = new ArrayList();
- blocks.add(new CYImageBlock("").setResId(this, R.drawable.car).setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round));
- blocks.add(new CYTextBlock("这").setTextSize(50).setTextColor(Color.RED));
- blocks.add(new CYTextBlock("是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" +
- "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。").setTextSize(30));
- blocks.add(new CYTextBlock("这是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" +
- "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。").setTextSize(30));
- blocks.add(new CYBreakLineBlock(""));
- blocks.add(new CYImageBlock("").setResId(this, R.drawable.baidu).setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round));
- blocks.add(new CYBreakLineBlock(""));
- blocks.add(new CYEditBlock("").setWidth(200).setHeight(60));
-
-// AttributedString string = new AttributedString("这是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" +
-// "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。");
-// string.replaceBlock(0, 1, CYTextBlock.class).setTextSize(50).setTextColor(Color.RED)
-// .setTypeFace(Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC));
-//
-// string.replaceBlock(30, 31, CYImageBlock.class).setResId(this, R.drawable.baidu)
-// .setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round);
-
- view.setLayout(new CYHorizontalLayout());
- view.setBlocks(blocks);
-// view.setBlocks(string.buildBlocks());
-
- view.setPadding(20, 20, 20, 20);
- setContentView(view);
+ setContentView(R.layout.activity_main);
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ transaction.replace(R.id.main_container, new SampleFragment2());
+ transaction.commit();
}
+
}
diff --git a/samples/src/main/java/com/hyena/coretext/samples/SampleFragment1.java b/samples/src/main/java/com/hyena/coretext/samples/SampleFragment1.java
new file mode 100644
index 0000000..a160dda
--- /dev/null
+++ b/samples/src/main/java/com/hyena/coretext/samples/SampleFragment1.java
@@ -0,0 +1,61 @@
+package com.hyena.coretext.samples;
+
+import android.graphics.Color;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.hyena.coretext.CYView;
+import com.hyena.coretext.blocks.CYBlock;
+import com.hyena.coretext.blocks.CYBreakLineBlock;
+import com.hyena.coretext.blocks.CYEditBlock;
+import com.hyena.coretext.blocks.CYImageBlock;
+import com.hyena.coretext.blocks.CYPlaceHolderBlock;
+import com.hyena.coretext.blocks.CYTextBlock;
+import com.hyena.coretext.layout.CYHorizontalLayout;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by yangzc on 16/6/1.
+ */
+public class SampleFragment1 extends Fragment {
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+
+ CYView view = new CYView(getActivity());
+
+ List blocks = new ArrayList();
+ blocks.add(new CYImageBlock("").setResId(getContext(), R.drawable.car).setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round));
+ blocks.add(new CYTextBlock("这").setTextSize(50).setTextColor(Color.RED));
+ blocks.add(new CYTextBlock("是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" +
+ "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。").setTextSize(30));
+ blocks.add(new CYTextBlock("这是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" +
+ "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。").setTextSize(30));
+ blocks.add(new CYBreakLineBlock(""));
+ blocks.add(new CYImageBlock("").setResId(getContext(), R.drawable.baidu).setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round));
+ blocks.add(new CYBreakLineBlock(""));
+ blocks.add(new CYEditBlock("").setWidth(200).setHeight(60));
+
+// AttributedString string = new AttributedString("这是一个最好的时代,这是一个最坏的时代;这是一个智慧的年代,这是一个愚蠢的年代;" +
+// "这是一个光明的季节,这是一个黑暗的季节;这是希望之春,这是失望之冬;人们面前应有尽有,人们面前一无所有;人们正踏向天堂之路,人们正走向地狱之门。");
+// string.replaceBlock(0, 1, CYTextBlock.class).setTextSize(50).setTextColor(Color.RED)
+// .setTypeFace(Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC));
+//
+// string.replaceBlock(30, 31, CYImageBlock.class).setResId(this, R.drawable.baidu)
+// .setAlignStyle(CYPlaceHolderBlock.AlignStyle.Style_Round);
+
+ view.setLayout(new CYHorizontalLayout());
+ view.setBlocks(blocks);
+// view.setBlocks(string.buildBlocks());
+
+ view.setPadding(20, 20, 20, 20);
+ return view;
+ }
+}
diff --git a/samples/src/main/java/com/hyena/coretext/samples/SampleFragment2.java b/samples/src/main/java/com/hyena/coretext/samples/SampleFragment2.java
new file mode 100644
index 0000000..ba111a6
--- /dev/null
+++ b/samples/src/main/java/com/hyena/coretext/samples/SampleFragment2.java
@@ -0,0 +1,109 @@
+package com.hyena.coretext.samples;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.Fragment;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.hyena.coretext.AttributedString;
+import com.hyena.coretext.CYView;
+import com.hyena.coretext.blocks.CYBreakLineBlock;
+import com.hyena.coretext.blocks.CYEditBlock;
+import com.hyena.coretext.layout.CYHorizontalLayout;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Created by yangzc on 16/6/1.
+ */
+public class SampleFragment2 extends Fragment {
+
+ private CYView mCyView;
+
+ @Nullable
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ mCyView = new CYView(getActivity());
+ mCyView.setLayout(new CYHorizontalLayout());
+ mCyView.setPadding(20, 20, 20, 20);
+ return mCyView;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ String question = "\\frac{7}{5}×25=(
)
";
+ String result = trimString(replaceFillIn(question));
+ Log.v("yangzc", result);
+ AttributedString attString = new AttributedString(result);
+
+ char ch[] = result.toCharArray();
+ int startIndex = 0, endIndex = 0;
+ boolean isInCommand = false;
+ for (int i = 0; i < ch.length; i++) {
+ if (ch[i] == '\\') {//command
+ startIndex = i;
+ isInCommand = true;
+ }
+ if (ch[i] >= 'a' && ch[i] <= 'z') {
+ endIndex = i;
+ if (isInCommand) {
+ attString.replaceBlock(startIndex, endIndex, CYEditBlock.class)
+ .setWidth(200).setHeight(100);
+ }
+ isInCommand = false;
+ }
+ }
+ //replace latex
+
+
+ //replace fillInBlock
+ Pattern patternFillIn = Pattern.compile("\\\\fillin\\{\\}");
+ Matcher matcherFillIn = patternFillIn.matcher(result);
+ while (matcherFillIn.find()) {
+ attString.replaceBlock(matcherFillIn.start(), matcherFillIn.end(), CYEditBlock.class)
+ .setWidth(200).setHeight(100);
+ }
+
+ //replace p
+ Pattern patternP = Pattern.compile("
");
+ Matcher matcherP = patternP.matcher(result);
+ while (matcherP.find()) {
+ attString.replaceBlock(matcherP.start(), matcherP.end(), CYBreakLineBlock.class);
+ }
+ mCyView.setBlocks(attString.buildBlocks());
+ }
+
+ private String replaceFillIn(String html) {
+ Pattern pattern = Pattern.compile("|]*?edu_fillin.*?>(
)");
+ Matcher matcher = pattern.matcher(html);
+ String result = html;
+ while (matcher.find()) {
+ String group = matcher.group();
+ result = result.replace(group, "\\fillin{}");
+ }
+
+ return result;
+ }
+
+ private String trimString(String str) {
+ Pattern pattern = Pattern.compile("<[\\s\\S]*?>");
+ Matcher matcher = pattern.matcher(str);
+ String result = str;
+ while (matcher.find()) {
+ String group = matcher.group();
+ if (!"".equals(group)) {
+ result = result.replace(group, "");
+ }
+ }
+ return result;
+ }
+
+}
diff --git a/samples/src/main/res/layout/activity_main.xml b/samples/src/main/res/layout/activity_main.xml
index 276a86b..0dc84ad 100644
--- a/samples/src/main/res/layout/activity_main.xml
+++ b/samples/src/main/res/layout/activity_main.xml
@@ -1,34 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:id="@+id/main_container">
+
From 2ad74e17d874c632a06fbee836fc02ec72255da3 Mon Sep 17 00:00:00 2001
From: yangzc
Date: Wed, 8 Jun 2016 16:48:33 +0800
Subject: [PATCH 002/154] latex support
---
build.gradle | 1 +
library/build.gradle | 2 +-
samples/build.gradle | 4 ++--
samples/libs/latexmath.jar | Bin 0 -> 602148 bytes
samples/samples.iml | 1 +
5 files changed, 5 insertions(+), 3 deletions(-)
create mode 100644 samples/libs/latexmath.jar
diff --git a/build.gradle b/build.gradle
index e0b366a..6b8949f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,6 +15,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ maven { url "https://www.jitpack.io" }
}
}
diff --git a/library/build.gradle b/library/build.gradle
index 075ad1e..b3019d1 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -5,7 +5,7 @@ android {
buildToolsVersion "23.0.3"
defaultConfig {
- minSdkVersion 8
+ minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
diff --git a/samples/build.gradle b/samples/build.gradle
index 45767fe..565438c 100644
--- a/samples/build.gradle
+++ b/samples/build.gradle
@@ -5,7 +5,7 @@ android {
buildToolsVersion "23.0.3"
defaultConfig {
- minSdkVersion 8
+ minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
@@ -20,6 +20,6 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
- testCompile 'junit:junit:4.12'
compile project(':library')
+ testCompile 'junit:junit:4.12'
}
diff --git a/samples/libs/latexmath.jar b/samples/libs/latexmath.jar
new file mode 100644
index 0000000000000000000000000000000000000000..9c1f1b0aab3bec1f67f18f6fd29e036b62796a2e
GIT binary patch
literal 602148
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