diff --git a/app/build.gradle b/app/build.gradle index cf1adcf..f7d993c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId "top.fumiama.simpledict" minSdkVersion 26 targetSdkVersion 30 - versionCode 3 - versionName '1.1.1' + versionCode 4 + versionName '1.2' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -54,7 +54,6 @@ android { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.appcompat:appcompat:1.2.0' @@ -82,7 +81,6 @@ andResGuard { // it's always better to remove duplicated resource from repo mergeDuplicatedRes = true whiteList = [ - "R.drawable.load", // your icon "R.drawable.icon", // for fabric @@ -94,14 +92,9 @@ andResGuard { "R.string.ga_trackingId", "R.string.firebase_database_url", "R.string.google_api_key", - "R.string.google_crash_reporting_api_key", - "R.font.*" + "R.string.google_crash_reporting_api_key" ] compressFilePattern = [ - "*.png", - "*.jpg", - "*.jpeg", - "*.gif", "resources.arsc" ] sevenzip { diff --git a/app/src/main/java/top/fumiama/simpledict/Client.kt b/app/src/main/java/top/fumiama/simpledict/Client.kt index cb16337..1ad560b 100644 --- a/app/src/main/java/top/fumiama/simpledict/Client.kt +++ b/app/src/main/java/top/fumiama/simpledict/Client.kt @@ -57,27 +57,27 @@ class Client(val ip: String, val port: Int) { } } - fun receiveRawMessage()= try { + fun receiveRawMessage() : ByteArray { + var re = byteArrayOf() + try { if (isConnect) { Log.d("MyC", "开始接收服务端信息") - val inMessage = ByteArray(1024) //设置接受缓冲,避免接受数据过长占用过多内存 - val a = din?.read(inMessage) //a存储返回消息的长度 - if (a == null || a <= -1) null - else { - Log.d("MyC", "reply length:$a") - inMessage.copyOf(a) - } - } else { - Log.d("MyC", "no connect to receive message") - null - } + val inMessage = ByteArray(4096) //设置接受缓冲,避免接受数据过长占用过多内存 + var a: Int + do { + a = din?.read(inMessage)?:0 //a存储返回消息的长度 + Log.d("MyC", "reply length:$a: ${inMessage.decodeToString()}") + re += inMessage.copyOf(a) + } while (a == 4096) + } else Log.d("MyC", "no connect to receive message") } catch (e: IOException) { Log.d("MyC", "receive message failed") e.printStackTrace() - null } + return re + } - fun receiveMessage() = receiveRawMessage()?.decodeToString() + fun receiveMessage() = receiveRawMessage().decodeToString() /** * 关闭连接 diff --git a/app/src/main/java/top/fumiama/simpledict/SimpleDict.kt b/app/src/main/java/top/fumiama/simpledict/SimpleDict.kt index c50fc26..8cb9315 100644 --- a/app/src/main/java/top/fumiama/simpledict/SimpleDict.kt +++ b/app/src/main/java/top/fumiama/simpledict/SimpleDict.kt @@ -6,13 +6,13 @@ import java.lang.Thread.sleep class SimpleDict(private val client: Client, private val pwd: String) { //must run in thread private var dict = HashMap() val keys get() = dict.keys - val values get() = dict.values + //val values get() = dict.values //val size get() = dict.size - private val raw: ByteArray? + private val raw: ByteArray get() { initDict() client.sendMessage("cat") - sleep(233) + sleep(2333) val re = client.receiveRawMessage() closeDict() return re @@ -47,7 +47,7 @@ class SimpleDict(private val client: Client, private val pwd: String) { //must fun fetchDict() { val dictBlock = ByteArray(128) - raw?.inputStream()?.let { + raw.inputStream().let { var c = '1' while (!it.read().toChar().isDigit()) Log.d("MySD", "Skip banner.") while (c.isDigit()) { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 88831e1..b7fc59a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -18,6 +18,7 @@ android:layout_height="match_parent" app:contentScrim="?attr/colorSurface" + app:layout_scrollFlags="scroll" app:toolbarId="@+id/toolbar"> @color/teal_200 @color/black - ?attr/colorPrimaryVariant + ?attr/colorPrimaryVariant \ No newline at end of file diff --git a/app/winrelease/app-winrelease.apk b/app/winrelease/app-winrelease.apk new file mode 100644 index 0000000..55c24c1 Binary files /dev/null and b/app/winrelease/app-winrelease.apk differ diff --git a/app/winrelease/output-metadata.json b/app/winrelease/output-metadata.json new file mode 100644 index 0000000..8f98f00 --- /dev/null +++ b/app/winrelease/output-metadata.json @@ -0,0 +1,18 @@ +{ + "version": 2, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "top.fumiama.simpledict", + "variantName": "processWinreleaseResources", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "versionCode": 4, + "versionName": "1.2", + "outputFile": "app-winrelease.apk" + } + ] +} \ No newline at end of file