Skip to content

fix: 输入完成后公示不显示 #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions MathKeyboard/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.tianshaokai.mathkeyboard">

<application
android:allowBackup="false"
tools:replace="android:allowBackup">

<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>

</application>


</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.net.Uri;
import android.os.Environment;
import android.support.v4.content.FileProvider;
import android.text.TextUtils;

import com.tianshaokai.jlatexmath.core.AjLatexMath;
Expand All @@ -20,31 +22,31 @@
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Logger;


public class LatexUtil {

public static String latexSavePath = "";

public static void init(Context context){
latexSavePath = Environment.getExternalStorageDirectory() + "/Android/data/"
+ context.getPackageName() + "/files/latex/";
File file = new File(latexSavePath);
if (!file.exists()){
public static void init(Context context) {
latexSavePath = "/files/latex";
File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), latexSavePath);
if (!file.exists()) {
file.mkdirs();
}
AjLatexMath.init(context);
}

public static void asyncAnalysisLatex(final Context context, final String latexContent, final LatexCallback callback){
asyncAnalysisLatex(context, latexContent, 16,150,callback);
public static void asyncAnalysisLatex(final Context context, final String latexContent, final LatexCallback callback) {
asyncAnalysisLatex(context, latexContent, 16, 150, callback);
}

public static void asyncAnalysisLatex(final Context context, final String latexContent,final int margin, final LatexCallback callback){
asyncAnalysisLatex(context, latexContent, 16,margin,callback);
public static void asyncAnalysisLatex(final Context context, final String latexContent, final int margin, final LatexCallback callback) {
asyncAnalysisLatex(context, latexContent, 16, margin, callback);
}

public static void asyncAnalysisLatex(final Context context, final String latexContent, final int textSize,final int margin, final LatexCallback callback){
public static void asyncAnalysisLatex(final Context context, final String latexContent, final int textSize, final int margin, final LatexCallback callback) {

// Observable.create(new Observable.OnSubscribe<String>() {
// @Override
Expand Down Expand Up @@ -80,14 +82,14 @@ public static void asyncAnalysisLatex(final Context context, final String latexC
}

public static synchronized String analysisLatex(Context context, String latexContent) {
return analysisLatex(context, latexContent,16,200);
return analysisLatex(context, latexContent, 16, 200);
}

public static synchronized String analysisLatex(Context context, String latexContent,int margin) {
return analysisLatex(context, latexContent,16,margin);
public static synchronized String analysisLatex(Context context, String latexContent, int margin) {
return analysisLatex(context, latexContent, 16, margin);
}

public static synchronized String analysisLatex(Context context,String latexContent,int textSize,int margin){
public static synchronized String analysisLatex(Context context, String latexContent, int textSize, int margin) {
String mLatexContent = latexContent;

if (latexContent.contains("$")) {
Expand Down Expand Up @@ -124,31 +126,33 @@ public static synchronized String analysisLatex(Context context,String latexCont
return mLatexContent;
}

private static String createImgTag(Context context, String latex, boolean isLeft,int textSize,int margin) {
File file = new File(latexSavePath);
if (!file.exists()) {
file.mkdirs();
private static String createImgTag(Context context, String latex, boolean isLeft, int textSize, int margin) {
File directory = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), latexSavePath);
if (!directory.exists()) {
directory.mkdirs();
}

// String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmssSSS").format(new Date());
// String filePath = latexSavePath + "IMG_" + timeStamp + ".png";
String fileName = stringToMD5(latex) + ".png";
String filePath = latexSavePath + fileName;
String filePath = latexSavePath + "/" + fileName;
// Logger.getLogger().d("--->filePath:" + filePath);
String imgTag = "<img src='" + filePath + "' />";
if (new File(filePath).exists()){
File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), filePath);
String imgTag = "<img src='" + file.getAbsolutePath() + "' />";
if (file.exists()) {
return imgTag;
}
try {
saveBitmap(context, latex, new File(filePath), isLeft,textSize,margin);
String absolutePath = saveBitmap(context, latex, file, isLeft, textSize, margin);
imgTag = "<img src='" + absolutePath + "' />";
} catch (Exception e) {
e.printStackTrace();
}

return imgTag;
}

private static void saveBitmap(Context context, String teX, File file, boolean isLeft,int textSize,int margin) {
private static String saveBitmap(Context context, String teX, File file, boolean isLeft, int textSize, int margin) {
int w = context.getResources().getDisplayMetrics().widthPixels;
int h = context.getResources().getDisplayMetrics().heightPixels;
int align = TeXConstants.ALIGN_LEFT;
Expand All @@ -173,7 +177,8 @@ private static void saveBitmap(Context context, String teX, File file, boolean i
icon.paintIcon(g2, 0, 0);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
Uri copyUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", file);
fos = (FileOutputStream) context.getContentResolver().openOutputStream(copyUri);
image.compress(Bitmap.CompressFormat.PNG, 80, fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
Expand All @@ -188,10 +193,12 @@ private static void saveBitmap(Context context, String teX, File file, boolean i
}
}
}
return file.getAbsolutePath();
}

/**
* 将字符串转成MD5值
*
* @param string 需要转换的字符串
* @return 字符串的MD5值
*/
Expand All @@ -218,15 +225,15 @@ public static String stringToMD5(String string) {
return hex.toString();
}

public static void clearData(){
public static void clearData() {
try {
FileUtil.delAllFile(latexSavePath);
} catch (Exception e) {
e.printStackTrace();
}
}

public interface LatexCallback{
public interface LatexCallback {

void onAnalysisLatex(String content);

Expand Down
8 changes: 6 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.tianshaokai.app">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Expand All @@ -11,8 +12,11 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".KeyboardActivity" android:screenOrientation="portrait">
android:theme="@style/AppTheme"
tools:replace="android:allowBackup">
<activity
android:name=".KeyboardActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
10 changes: 7 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@ buildscript {

repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' } //华为 push
//mavenCentral仓和jcenter仓的聚合仓 阿里云镜像(老)
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.android.tools.build:gradle:7.1.1'


// NOTE: Do not place your application dependencies here; they belong
Expand All @@ -18,7 +20,9 @@ buildscript {
allprojects {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' } //华为 push
//mavenCentral仓和jcenter仓的聚合仓 阿里云镜像(老)
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists