1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-453 Editor | Fix | Fix markdown paste (#2765)

This commit is contained in:
Mikhail 2022-12-16 22:13:53 +03:00 committed by GitHub
parent 4ac2255dd4
commit ce929f3d88
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 36 additions and 8 deletions

View file

@ -34,7 +34,7 @@ dependencies {
implementation applicationDependencies.appcompat
implementation applicationDependencies.kotlin
implementation applicationDependencies.coroutinesAndroid
implementation applicationDependencies.androidxCore
implementation libs.androidxCore
implementation applicationDependencies.lifecycleRuntime
implementation applicationDependencies.design

View file

@ -2,7 +2,10 @@ package com.anytypeio.anytype.core_ui.widgets.text
import android.R.id.copy
import android.R.id.paste
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Context.CLIPBOARD_SERVICE
import android.graphics.Canvas
import android.text.InputType
import android.text.Spanned
@ -12,6 +15,9 @@ import android.util.AttributeSet
import android.view.DragEvent
import android.view.KeyEvent
import android.view.MotionEvent
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputConnection
import android.view.inputmethod.InputConnectionWrapper
import androidx.appcompat.widget.AppCompatEditText
import androidx.core.graphics.withTranslation
import com.anytypeio.anytype.core_ui.R
@ -69,6 +75,15 @@ class TextInputWidget : AppCompatEditText {
)
}
override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnectionWrapper? {
val defaultInputConnection = super.onCreateInputConnection(outAttrs)
return if (defaultInputConnection == null) {
defaultInputConnection
} else {
TextInputConnection(defaultInputConnection, false)
}
}
private val watchers: MutableList<TextWatcher> = mutableListOf()
private var highlightDrawer: HighlightDrawer? = null
@ -299,4 +314,17 @@ class TextInputWidget : AppCompatEditText {
companion object {
val DEFAULT_INPUT_WIDGET_ACTION = BlockView.InputAction.NewLine
}
private inner class TextInputConnection(
target: InputConnection, mutable: Boolean
) : InputConnectionWrapper(target, mutable) {
private val clipboard = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
override fun commitText(text: CharSequence, newCursorPosition: Int): Boolean {
clipboard.setPrimaryClip(ClipData.newPlainText(null, text))
onTextContextMenuItem(paste)
return true
}
}
}

View file

@ -4,7 +4,6 @@ ext {
kotlinx_serialization_json_version = '1.4.0'
// AndroidX
androidx_core_version = '1.7.0'
androidx_core_ktx_version = '1.7.0'
androidx_test_core_version = '1.4.0'
androidx_core_testing_version = '2.1.0'
@ -92,7 +91,6 @@ ext {
kotlin: "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version",
coroutines: "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version",
coroutinesAndroid: "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version",
androidxCore: "androidx.core:core-ktx:$androidx_core_version",
fragment: "androidx.fragment:fragment-ktx:$fragment_version",
navigation: "androidx.navigation:navigation-fragment-ktx:$navigation_version",
navigationUi: "androidx.navigation:navigation-ui-ktx:$navigation_version",

View file

@ -11,7 +11,7 @@ dependencies {
implementation applicationDependencies.kotlin
implementation applicationDependencies.coroutinesAndroid
implementation applicationDependencies.androidxCore
implementation libs.androidxCore
implementation applicationDependencies.timber

View file

@ -1,8 +1,10 @@
[versions]
middleware_version = "v0.24.0"
androidx_core_version = "1.7.0"
[libraries]
middleware = { module = "io.anytype:android-mw", version.ref = "middleware_version" }
androidxCore = { module = "androidx.core:core-ktx", version.ref = "androidx_core_version" }
agp = { module = "com.android.tools.build:gradle", version = "7.3.0" }
[bundles]

View file

@ -21,7 +21,7 @@ dependencies {
implementation applicationDependencies.appcompat
implementation applicationDependencies.kotlin
implementation applicationDependencies.coroutinesAndroid
implementation applicationDependencies.androidxCore
implementation libs.androidxCore
implementation applicationDependencies.emojiCompat
implementation applicationDependencies.design

View file

@ -11,7 +11,7 @@ dependencies {
implementation applicationDependencies.appcompat
implementation applicationDependencies.kotlin
implementation applicationDependencies.coroutinesAndroid
implementation applicationDependencies.androidxCore
implementation libs.androidxCore
implementation applicationDependencies.timber
implementation applicationDependencies.kotlinxSerializationJson

View file

@ -51,7 +51,7 @@ dependencies {
implementation applicationDependencies.glide
implementation applicationDependencies.coroutinesAndroid
implementation applicationDependencies.constraintLayout
implementation applicationDependencies.androidxCore
implementation libs.androidxCore
implementation applicationDependencies.timber
implementation applicationDependencies.fragment
implementation applicationDependencies.design

View file

@ -9,7 +9,7 @@ dependencies {
implementation mainApplication.appcompat
implementation mainApplication.kotlin
implementation mainApplication.coroutinesAndroid
implementation mainApplication.androidxCore
implementation libs.androidxCore
implementation mainApplication.design
implementation mainApplication.recyclerView
}