diff --git a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt index 90e1fcaa0..68ec64649 100644 --- a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditActivity.kt @@ -17,9 +17,11 @@ import io.legado.app.constant.EventBus import io.legado.app.data.entities.ReplaceRule import io.legado.app.ui.widget.KeyboardToolPop import io.legado.app.utils.getViewModel +import io.legado.app.utils.openUrl import io.legado.app.utils.postEvent import kotlinx.android.synthetic.main.activity_replace_edit.* import org.jetbrains.anko.displayMetrics +import org.jetbrains.anko.sdk27.listeners.onClick import org.jetbrains.anko.toast import kotlin.math.abs @@ -58,10 +60,12 @@ class ReplaceEditActivity : override fun onActivityCreated(savedInstanceState: Bundle?) { mSoftKeyboardTool = KeyboardToolPop(this, AppConst.keyboardToolChars, this) window.decorView.viewTreeObserver.addOnGlobalLayoutListener(this) - viewModel.replaceRuleData.observe(this, { + viewModel.initData(intent) { upReplaceView(it) - }) - viewModel.initData(intent) + } + iv_help.onClick { + openUrl("https://www.runoob.com/regexp/regexp-syntax.html") + } } override fun onCompatCreateOptionsMenu(menu: Menu): Boolean { @@ -96,7 +100,7 @@ class ReplaceEditActivity : } private fun getReplaceRule(): ReplaceRule { - val replaceRule: ReplaceRule = viewModel.replaceRuleData.value ?: ReplaceRule() + val replaceRule: ReplaceRule = viewModel.replaceRule ?: ReplaceRule() replaceRule.name = et_name.text.toString() replaceRule.group = et_group.text.toString() replaceRule.pattern = et_replace_rule.text.toString() diff --git a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt index 12df23446..65fa3c430 100644 --- a/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/replace/edit/ReplaceEditViewModel.kt @@ -2,35 +2,33 @@ package io.legado.app.ui.replace.edit import android.app.Application import android.content.Intent -import androidx.lifecycle.MutableLiveData import io.legado.app.App import io.legado.app.base.BaseViewModel import io.legado.app.data.entities.ReplaceRule class ReplaceEditViewModel(application: Application) : BaseViewModel(application) { - val replaceRuleData = MutableLiveData() + var replaceRule: ReplaceRule? = null - fun initData(intent: Intent) { + fun initData(intent: Intent, finally: (replaceRule: ReplaceRule) -> Unit) { execute { - replaceRuleData.value ?: let { - val id = intent.getLongExtra("id", -1) - if (id > 0) { - App.db.replaceRuleDao().findById(id)?.let { - replaceRuleData.postValue(it) - } - } else { - val pattern = intent.getStringExtra("pattern") ?: "" - val isRegex = intent.getBooleanExtra("isRegex", false) - val scope = intent.getStringExtra("scope") - val rule = ReplaceRule( - name = pattern, - pattern = pattern, - isRegex = isRegex, - scope = scope - ) - replaceRuleData.postValue(rule) - } + val id = intent.getLongExtra("id", -1) + if (id > 0) { + replaceRule = App.db.replaceRuleDao().findById(id) + } else { + val pattern = intent.getStringExtra("pattern") ?: "" + val isRegex = intent.getBooleanExtra("isRegex", false) + val scope = intent.getStringExtra("scope") + replaceRule = ReplaceRule( + name = pattern, + pattern = pattern, + isRegex = isRegex, + scope = scope + ) + } + }.onFinally { + replaceRule?.let { + finally(it) } } } diff --git a/app/src/main/res/drawable/ic_cancel.xml b/app/src/main/res/drawable/ic_cancel.xml deleted file mode 100644 index 21715879d..000000000 --- a/app/src/main/res/drawable/ic_cancel.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_replace_edit.xml b/app/src/main/res/layout/activity_replace_edit.xml index c6b80619d..af4253705 100644 --- a/app/src/main/res/layout/activity_replace_edit.xml +++ b/app/src/main/res/layout/activity_replace_edit.xml @@ -62,11 +62,28 @@ android:layout_height="wrap_content" /> - + android:orientation="horizontal" + android:gravity="center_vertical"> + + + + + + + app:showAsAction="always" + tools:ignore="AlwaysShowAction" /> + app:showAsAction="always" /> @@ -39,7 +38,6 @@ @@ -60,25 +58,22 @@ android:id="@+id/menu_set_charset" android:icon="@drawable/ic_translate" android:title="@string/set_charset" - app:showAsAction="ifRoom" /> + app:showAsAction="always" /> + app:showAsAction="never" />