diff --git a/app/build.gradle b/app/build.gradle index 0b0226d..ca961cb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { applicationId "top.fumiama.simpledict" minSdkVersion 26 targetSdkVersion 30 - versionCode 5 - versionName '1.3' + versionCode 6 + versionName '1.4' resConfigs "zh", "zh-rCN" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/top/fumiama/simpledict/MainActivity.kt b/app/src/main/java/top/fumiama/simpledict/MainActivity.kt index a05c9fd..bb3086e 100644 --- a/app/src/main/java/top/fumiama/simpledict/MainActivity.kt +++ b/app/src/main/java/top/fumiama/simpledict/MainActivity.kt @@ -1,6 +1,9 @@ package top.fumiama.simpledict import android.annotation.SuppressLint +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context import android.content.Intent import android.os.Bundle import android.speech.RecognizerIntent @@ -14,7 +17,6 @@ import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.google.android.material.textfield.TextInputLayout import com.lapism.search.internal.SearchLayout import com.lapism.search.util.SearchUtils import kotlinx.android.synthetic.main.activity_main.* @@ -31,12 +33,14 @@ class MainActivity : AppCompatActivity() { } } } + private var cm: ClipboardManager? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val ad = LikeViewHolder(ffr).RecyclerViewAdapter() - ffr.apply { + cm = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + ffr.apply { layoutManager = LinearLayoutManager(this@MainActivity) adapter = ad setOnScrollChangeListener { _, _, scrollY, _, _ -> @@ -126,13 +130,15 @@ class MainActivity : AppCompatActivity() { .setMessage(data) .setPositiveButton(hintAdd) { _, _ -> val t = EditText(this@MainActivity) + t.setText(data) AlertDialog.Builder(this@MainActivity) .setTitle("$hintAdd$key") .setView(t) .setPositiveButton(android.R.string.ok) { _, _ -> - if (t.text.isNotEmpty()) Thread { + if (t.text.isNotEmpty() && t.text.toString() != data) Thread { dict[key] = t.text.toString() }.start() + else Toast.makeText(this, "未更改", Toast.LENGTH_SHORT).show() } .setNegativeButton(android.R.string.cancel) { _, _ -> } .show() @@ -157,7 +163,7 @@ class MainActivity : AppCompatActivity() { } newSet } - listKeys = selectSet.toList() + listKeys = selectSet.toList().let { if(it.size > 50) it.subList(0, 49) else it } listKeys?.forEach { Log.d("MyMain", "Select key: $it") } @@ -204,9 +210,16 @@ class MainActivity : AppCompatActivity() { setOnClickListener { showDictAlert(key, data) } + setOnLongClickListener { + cm?.setPrimaryClip(ClipData.newPlainText("SimpleDict", "$key\n$data")) + runOnUiThread { + Toast.makeText(this@MainActivity, "已复制", Toast.LENGTH_SHORT).show() + } + true + } vl.setOnClickListener { getSharedPreferences("dict", MODE_PRIVATE)?.edit()?.apply { - if(like) { + if (like) { remove(key) it.setBackgroundResource(R.drawable.ic_like) } else { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index fa4202f..8017324 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,6 +4,24 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + + + + + + - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/line_word.xml b/app/src/main/res/layout/line_word.xml index c0d5939..6b20e36 100644 --- a/app/src/main/res/layout/line_word.xml +++ b/app/src/main/res/layout/line_word.xml @@ -7,19 +7,6 @@ android:focusable="true" android:foreground="?android:attr/selectableItemBackground"> - - - - + + \ No newline at end of file diff --git a/app/winrelease/app-winrelease.apk b/app/winrelease/app-winrelease.apk index a8e5cf4..e0e0f7a 100644 Binary files a/app/winrelease/app-winrelease.apk and b/app/winrelease/app-winrelease.apk differ diff --git a/app/winrelease/output-metadata.json b/app/winrelease/output-metadata.json index fbc96a3..2bdf04d 100644 --- a/app/winrelease/output-metadata.json +++ b/app/winrelease/output-metadata.json @@ -10,8 +10,8 @@ { "type": "SINGLE", "filters": [], - "versionCode": 5, - "versionName": "1.3", + "versionCode": 6, + "versionName": "1.4", "outputFile": "app-winrelease.apk" } ]