From 1a1b4de1ef45b87e5b28388ef9f351a9e31d2c3f Mon Sep 17 00:00:00 2001
From: sneazy-ibo <41344259+sneazy-ibo@users.noreply.github.com>
Date: Tue, 28 May 2024 18:19:59 +0200
Subject: [PATCH] feat(storyReply): redesigned components
---
app/src/main/AndroidManifest.xml | 3 +-
.../dantotsu/util/MarkdownCreatorActivity.kt | 73 +++++-
.../res/drawable/format_align_center_24.xml | 10 +
app/src/main/res/drawable/format_bold_24.xml | 10 +
.../main/res/drawable/format_italic_24.xml | 10 +
.../res/drawable/format_list_bulleted_24.xml | 11 +
.../res/drawable/format_list_numbered_24.xml | 10 +
app/src/main/res/drawable/format_quote_24.xml | 10 +
.../res/drawable/format_strikethrough_24.xml | 10 +
.../res/layout/activity_markdown_creator.xml | 214 ++++++++++--------
app/src/main/res/layout/fragment_status.xml | 12 +
app/src/main/res/values/strings.xml | 2 +
12 files changed, 268 insertions(+), 107 deletions(-)
create mode 100644 app/src/main/res/drawable/format_align_center_24.xml
create mode 100644 app/src/main/res/drawable/format_bold_24.xml
create mode 100644 app/src/main/res/drawable/format_italic_24.xml
create mode 100644 app/src/main/res/drawable/format_list_bulleted_24.xml
create mode 100644 app/src/main/res/drawable/format_list_numbered_24.xml
create mode 100644 app/src/main/res/drawable/format_quote_24.xml
create mode 100644 app/src/main/res/drawable/format_strikethrough_24.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c42fee0d..1104ba86 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -201,7 +201,8 @@
android:name=".others.imagesearch.ImageSearchActivity"
android:parentActivityName=".MainActivity" />
+ android:name=".util.MarkdownCreatorActivity"
+ android:windowSoftInputMode="adjustResize" />
<-", 3),
+ QUOTE("> ", 2),
+ CODE("`", 1);
+ }
@OptIn(DelicateCoroutinesApi::class)
override fun onCreate(savedInstanceState: Bundle?) {
@@ -36,11 +55,15 @@ class MarkdownCreatorActivity : AppCompatActivity() {
binding.markdownCreatorToolbar.updateLayoutParams {
topMargin = statusBarHeight
}
- binding.buttonContainer.updateLayoutParams {
+ binding.markdownOptionsContainer.updateLayoutParams {
bottomMargin += navBarHeight
}
setContentView(binding.root)
+ val params = binding.createButton.layoutParams as ViewGroup.MarginLayoutParams
+ params.marginEnd = 16 * resources.displayMetrics.density.toInt()
+ binding.createButton.layoutParams = params
+
if (intent.hasExtra("type")) {
type = intent.getStringExtra("type")!!
} else {
@@ -67,17 +90,12 @@ class MarkdownCreatorActivity : AppCompatActivity() {
text = ping ?: ""
binding.editText.setText(text)
binding.editText.addTextChangedListener {
- if (!binding.markdownCreatorPreviewCheckbox.isChecked) {
+ if (!isPreviewMode) {
text = it.toString()
}
}
previewMarkdown(false)
- binding.markdownCreatorPreviewCheckbox.setOnClickListener {
- previewMarkdown(binding.markdownCreatorPreviewCheckbox.isChecked)
- }
- binding.cancelButton.setOnClickListener {
- onBackPressedDispatcher.onBackPressed()
- }
+
binding.markdownCreatorBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
@@ -87,10 +105,10 @@ class MarkdownCreatorActivity : AppCompatActivity() {
toast(getString(R.string.cannot_be_empty))
return@setOnClickListener
}
- AlertDialogBuilder(this).apply {
+ AlertDialog.Builder(this).apply {
setTitle(R.string.warning)
setMessage(R.string.post_to_anilist_warning)
- setPosButton(R.string.ok) {
+ setPositiveButton(R.string.ok) { _, _ ->
launchIO {
val editId = intent.getIntExtra("edit", -1)
val isEdit = editId != -1
@@ -113,14 +131,45 @@ class MarkdownCreatorActivity : AppCompatActivity() {
finish()
}
}
- setNeutralButton(R.string.open_rules) {
+ setNeutralButton(R.string.open_rules) { _, _ ->
openLinkInBrowser("https://anilist.co/forum/thread/14")
}
- setNegButton(R.string.cancel)
+ setNegativeButton(R.string.cancel, null)
}.show()
}
+ binding.createButton.setOnLongClickListener {
+ isPreviewMode = !isPreviewMode
+ previewMarkdown(isPreviewMode)
+ if (isPreviewMode) {
+ toast("Preview enabled")
+ } else {
+ toast("Preview disabled")
+ }
+ true
+ }
binding.editText.requestFocus()
+ setupMarkdownButtons()
+ }
+
+ private fun setupMarkdownButtons() {
+ binding.formatBold.setOnClickListener { applyMarkdownFormat(MarkdownFormat.BOLD) }
+ binding.formatItalic.setOnClickListener { applyMarkdownFormat(MarkdownFormat.ITALIC) }
+ binding.formatStrikethrough.setOnClickListener { applyMarkdownFormat(MarkdownFormat.STRIKETHROUGH) }
+ }
+
+ private fun applyMarkdownFormat(format: MarkdownFormat) {
+ val start = binding.editText.selectionStart
+ val end = binding.editText.selectionEnd
+
+ if (start == end) {
+ binding.editText.text?.insert(start, format.syntax)
+ binding.editText.setSelection(start + format.selectionOffset)
+ } else {
+ binding.editText.text?.insert(end, format.syntax)
+ binding.editText.text?.insert(start, format.syntax)
+ binding.editText.setSelection(end + format.syntax.length, end + format.syntax.length)
+ }
}
private fun previewMarkdown(preview: Boolean) {
diff --git a/app/src/main/res/drawable/format_align_center_24.xml b/app/src/main/res/drawable/format_align_center_24.xml
new file mode 100644
index 00000000..c174a0ea
--- /dev/null
+++ b/app/src/main/res/drawable/format_align_center_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/format_bold_24.xml b/app/src/main/res/drawable/format_bold_24.xml
new file mode 100644
index 00000000..c640aaaa
--- /dev/null
+++ b/app/src/main/res/drawable/format_bold_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/format_italic_24.xml b/app/src/main/res/drawable/format_italic_24.xml
new file mode 100644
index 00000000..7f9ea8f9
--- /dev/null
+++ b/app/src/main/res/drawable/format_italic_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/format_list_bulleted_24.xml b/app/src/main/res/drawable/format_list_bulleted_24.xml
new file mode 100644
index 00000000..d2558d85
--- /dev/null
+++ b/app/src/main/res/drawable/format_list_bulleted_24.xml
@@ -0,0 +1,11 @@
+
+
+
diff --git a/app/src/main/res/drawable/format_list_numbered_24.xml b/app/src/main/res/drawable/format_list_numbered_24.xml
new file mode 100644
index 00000000..bc344d32
--- /dev/null
+++ b/app/src/main/res/drawable/format_list_numbered_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/format_quote_24.xml b/app/src/main/res/drawable/format_quote_24.xml
new file mode 100644
index 00000000..74ecc150
--- /dev/null
+++ b/app/src/main/res/drawable/format_quote_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/format_strikethrough_24.xml b/app/src/main/res/drawable/format_strikethrough_24.xml
new file mode 100644
index 00000000..a7556219
--- /dev/null
+++ b/app/src/main/res/drawable/format_strikethrough_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_markdown_creator.xml b/app/src/main/res/layout/activity_markdown_creator.xml
index 87af585d..d7523dca 100644
--- a/app/src/main/res/layout/activity_markdown_creator.xml
+++ b/app/src/main/res/layout/activity_markdown_creator.xml
@@ -1,107 +1,133 @@
-
-
-
-
-
-
-
-
-
-
-
-
+ android:fitsSystemWindows="false">
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_status.xml b/app/src/main/res/layout/fragment_status.xml
index 9cb56109..fe7a16ec 100644
--- a/app/src/main/res/layout/fragment_status.xml
+++ b/app/src/main/res/layout/fragment_status.xml
@@ -58,6 +58,18 @@
tools:ignore="HardcodedText" />
+
Apply
Cancel
Edit
+ Publish
+ Write a response…
This Season
Next Season
Previous Season