diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..5d279b9
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+Markdown-Widget
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index fb7f4a8..b589d56 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 526b4c2..ae388c2 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -7,13 +7,13 @@
+
-
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 0000000..7e340a7
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5ba69b0..e50919e 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -14,7 +14,7 @@
-
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 8f818eb..8657a8f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -36,6 +36,7 @@ android {
packagingOptions {
resources.excludes.add("META-INF/*")
}
+ namespace 'ch.tiim.markdown_widget'
}
android.applicationVariants.all { variant ->
@@ -52,6 +53,7 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'com.vladsch.flexmark:flexmark-all:0.64.0'
+ implementation 'com.github.Dhaval2404:ColorPicker:2.3'
testImplementation 'junit:junit:4.13.2'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ebbba00..0dfb1d5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
+
+ savePref(context, appWidgetId, "bgcolor", color.toString())
+ selectedColor.setBackgroundColor(color)
+ }
+ .show()
+ }
+
private val onAddWidget = View.OnClickListener {
val context = this@MarkdownFileWidgetConfigureActivity
@@ -73,6 +97,9 @@ class MarkdownFileWidgetConfigureActivity : Activity() {
val widgetText = inputFilePath.text.toString()
savePref(context, appWidgetId, "filepath" , widgetText)
+ val customCssText = customCSS.text.toString()
+ savePref(context, appWidgetId, "customcss" , customCssText)
+
val rID = radioGroup.checkedRadioButtonId
val tapBehaviour = when (rID) {
R.id.radio_noop -> {
@@ -87,7 +114,6 @@ class MarkdownFileWidgetConfigureActivity : Activity() {
}
savePref(context, appWidgetId, "behaviour", tapBehaviour)
-
// It is the responsibility of the configuration activity to update the app widget
val appWidgetManager = AppWidgetManager.getInstance(context)
@@ -114,10 +140,14 @@ class MarkdownFileWidgetConfigureActivity : Activity() {
inputFilePath = binding.inputFile
radioGroup = binding.radiogroup
+ binding.bgcolorButton.setOnClickListener(onPickColor)
binding.addButton.setOnClickListener(onAddWidget)
binding.btnBrowse.setOnClickListener(onBrowse)
binding.radioDefaultApp.isSelected = true
-
+ selectedColor = binding.selectedColor
+ selectedColor.setBackgroundColor(Color.WHITE)
+ selectedColor.setOnClickListener(onPickColor)
+ customCSS = binding.customCSS
// Find the widget id from the intent.
val intent = intent
diff --git a/app/src/main/java/ch/tiim/markdown_widget/MarkdownParser.kt b/app/src/main/java/ch/tiim/markdown_widget/MarkdownParser.kt
index 92357eb..2955d7e 100644
--- a/app/src/main/java/ch/tiim/markdown_widget/MarkdownParser.kt
+++ b/app/src/main/java/ch/tiim/markdown_widget/MarkdownParser.kt
@@ -49,12 +49,12 @@ class MarkdownParser(private val theme:String) {
-
- ${theme}
-
+
- ${html}
+ $html
"""
}
diff --git a/app/src/main/java/ch/tiim/markdown_widget/MarkdownRenderer.kt b/app/src/main/java/ch/tiim/markdown_widget/MarkdownRenderer.kt
index 924c521..93720ea 100644
--- a/app/src/main/java/ch/tiim/markdown_widget/MarkdownRenderer.kt
+++ b/app/src/main/java/ch/tiim/markdown_widget/MarkdownRenderer.kt
@@ -15,9 +15,9 @@ import kotlin.math.max
private const val TAG = "MarkdownRenderer"
-class MarkdownRenderer(private val context: Context, private val width: Int, private val height: Int, private val data: String, private val onReady: ((Bitmap) -> Unit) = {}) {
+class MarkdownRenderer(private val context: Context, private val width: Int, private val height: Int, private val data: String, private val bgColor: Int = Color.WHITE, private val customCSS: String = "", private val onReady: ((Bitmap) -> Unit) = {}) {
- private val mdParser = MarkdownParser("")
+ private val mdParser = MarkdownParser(customCSS)
val webView = WebView(context);
private val bitmap = Bitmap.createBitmap(max(width, 100), max(height, 100), Bitmap.Config.ARGB_8888)
private val canvas = Canvas(bitmap)
@@ -25,11 +25,12 @@ class MarkdownRenderer(private val context: Context, private val width: Int, pri
init {
val html = getHtml(data);
- prepareWebView(html)
+ prepareWebView(html, bgColor)
}
private fun prepareWebView(
- html: String
+ html: String,
+ bgColor: Int = Color.WHITE
) {
webView.webViewClient = object: WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
@@ -47,12 +48,13 @@ class MarkdownRenderer(private val context: Context, private val width: Int, pri
}
}
webView.layout(0, 0, width, height)
- webView.setBackgroundColor(Color.WHITE)
+
+ webView.setBackgroundColor(bgColor)
//webView.setBackgroundColor(Color.MAGENTA)
val encodedHtml = Base64.encodeToString(html.toByteArray(), Base64.DEFAULT)
webView.loadData(encodedHtml, "text/html", "base64")
- webView.isDrawingCacheEnabled = true
- webView.buildDrawingCache()
+ // webView.isDrawingCacheEnabled = true
+ // webView.buildDrawingCache()
}
fun isReady():Boolean {
diff --git a/app/src/main/res/drawable/textborder.xml b/app/src/main/res/drawable/textborder.xml
new file mode 100644
index 0000000..ff0d6ee
--- /dev/null
+++ b/app/src/main/res/drawable/textborder.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/markdown_file_widget_configure.xml b/app/src/main/res/layout/markdown_file_widget_configure.xml
index 0142b88..1107ed8 100644
--- a/app/src/main/res/layout/markdown_file_widget_configure.xml
+++ b/app/src/main/res/layout/markdown_file_widget_configure.xml
@@ -47,6 +47,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
+
+
+
+
+
+
+