Skip to content

Commit afc67c9

Browse files
committed
Make sure the "open in new window" selection is preserved across device rotation, and restart.
1 parent 626991e commit afc67c9

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

aztec/src/main/kotlin/org/wordpress/aztec/AztecText.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
129129
val LINK_DIALOG_VISIBLE_KEY = "LINK_DIALOG_VISIBLE_KEY"
130130
val LINK_DIALOG_URL_KEY = "LINK_DIALOG_URL_KEY"
131131
val LINK_DIALOG_ANCHOR_KEY = "LINK_DIALOG_ANCHOR_KEY"
132+
val LINK_DIALOG_OPEN_NEW_WINDOW_KEY = "LINK_DIALOG_OPEN_NEW_WINDOW_KEY"
132133

133134
val HISTORY_LIST_KEY = "HISTORY_LIST_KEY"
134135
val HISTORY_CURSOR_KEY = "HISTORY_CURSOR_KEY"
@@ -596,8 +597,8 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
596597
if (isLinkDialogVisible) {
597598
val retainedUrl = customState.getString(LINK_DIALOG_URL_KEY, "")
598599
val retainedAnchor = customState.getString(LINK_DIALOG_ANCHOR_KEY, "")
599-
600-
showLinkDialog(retainedUrl, retainedAnchor)
600+
val retainedOpenInNewWindow = customState.getString(LINK_DIALOG_OPEN_NEW_WINDOW_KEY, "")
601+
showLinkDialog(retainedUrl, retainedAnchor, retainedOpenInNewWindow)
601602
}
602603

603604
val isBlockEditorDialogVisible = customState.getBoolean(BLOCK_DIALOG_VISIBLE_KEY, false)
@@ -644,9 +645,11 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
644645

645646
val urlInput = addLinkDialog!!.findViewById<EditText>(R.id.linkURL)
646647
val anchorInput = addLinkDialog!!.findViewById<EditText>(R.id.linkText)
648+
val openInNewWindowCheckbox = addLinkDialog!!.findViewById<CheckBox>(R.id.openInNewWindow)
647649

648650
bundle.putString(LINK_DIALOG_URL_KEY, urlInput?.text?.toString())
649651
bundle.putString(LINK_DIALOG_ANCHOR_KEY, anchorInput?.text?.toString())
652+
bundle.putString(LINK_DIALOG_OPEN_NEW_WINDOW_KEY, if (openInNewWindowCheckbox != null && openInNewWindowCheckbox.isChecked) "checked=true" else "checked=false")
650653
}
651654

652655
if (blockEditorDialog != null && blockEditorDialog!!.isShowing) {
@@ -1450,12 +1453,12 @@ open class AztecText : AppCompatEditText, TextWatcher, UnknownHtmlSpan.OnUnknown
14501453
}
14511454

14521455
@SuppressLint("InflateParams")
1453-
fun showLinkDialog(presetUrl: String = "", presetAnchor: String = "") {
1456+
fun showLinkDialog(presetUrl: String = "", presetAnchor: String = "", presetOpenInNewWindow: String = "" ) {
14541457
val urlAndAnchor = linkFormatter.getSelectedUrlWithAnchor()
14551458

14561459
val url = if (TextUtils.isEmpty(presetUrl)) urlAndAnchor.first else presetUrl
14571460
val anchor = if (TextUtils.isEmpty(presetAnchor)) urlAndAnchor.second else presetAnchor
1458-
val openInNewWindow = urlAndAnchor.third
1461+
val openInNewWindow = if (TextUtils.isEmpty(presetOpenInNewWindow)) urlAndAnchor.third else presetOpenInNewWindow == "checked=true"
14591462

14601463
val builder = AlertDialog.Builder(context)
14611464

0 commit comments

Comments
 (0)