Merge pull request #2708 from Philoul/wear/new_custom_watchface
Wear CWF svg format included for images
This commit is contained in:
commit
10e14960a5
5 changed files with 18 additions and 18 deletions
|
@ -35,6 +35,7 @@ dependencies {
|
||||||
|
|
||||||
api "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_version"
|
api "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinx_serialization_version"
|
||||||
api "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$kotlinx_serialization_version"
|
api "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$kotlinx_serialization_version"
|
||||||
|
api "com.caverock:androidsvg:$caverock_androidsvg_version"
|
||||||
api "org.apache.commons:commons-lang3:$commonslang3_version"
|
api "org.apache.commons:commons-lang3:$commonslang3_version"
|
||||||
|
|
||||||
//RxBus
|
//RxBus
|
||||||
|
|
|
@ -4,12 +4,15 @@ import android.content.res.Resources
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
|
import android.graphics.drawable.PictureDrawable
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import com.caverock.androidsvg.SVG
|
||||||
import info.nightscout.shared.R
|
import info.nightscout.shared.R
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import java.io.BufferedOutputStream
|
import java.io.BufferedOutputStream
|
||||||
|
import java.io.ByteArrayInputStream
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
|
@ -42,9 +45,7 @@ enum class CwfDrawableFileMap(val key: String, @DrawableRes val icon: Int?, val
|
||||||
|
|
||||||
enum class DrawableFormat(val extension: String) {
|
enum class DrawableFormat(val extension: String) {
|
||||||
UNKNOWN(""),
|
UNKNOWN(""),
|
||||||
|
SVG("svg"),
|
||||||
//XML("xml"),
|
|
||||||
//SVG("svg"),
|
|
||||||
JPG("jpg"),
|
JPG("jpg"),
|
||||||
PNG("png");
|
PNG("png");
|
||||||
|
|
||||||
|
@ -66,19 +67,15 @@ data class DrawableData(val value: ByteArray, val format: DrawableFormat) {
|
||||||
val bitmap = BitmapFactory.decodeByteArray(value, 0, value.size)
|
val bitmap = BitmapFactory.decodeByteArray(value, 0, value.size)
|
||||||
BitmapDrawable(resources, bitmap)
|
BitmapDrawable(resources, bitmap)
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
DrawableFormat.SVG -> {
|
DrawableFormat.SVG -> {
|
||||||
//TODO: include svg to Drawable convertor here
|
val svg = SVG.getFromInputStream(ByteArrayInputStream(value))
|
||||||
null
|
val picture = svg.renderToPicture()
|
||||||
|
PictureDrawable(picture).apply {
|
||||||
|
setBounds(0, 0, svg.documentWidth.toInt(), svg.documentHeight.toInt())
|
||||||
}
|
}
|
||||||
DrawableFormat.XML -> {
|
|
||||||
// Always return a null Drawable, even if xml file is a valid xml vector file
|
|
||||||
val xmlInputStream = ByteArrayInputStream(value)
|
|
||||||
val xmlPullParser = Xml.newPullParser()
|
|
||||||
xmlPullParser.setInput(xmlInputStream, null)
|
|
||||||
Drawable.createFromXml(resources, xmlPullParser)
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<string name="metadata_wear_import_filename">File name: %1$s</string>
|
<string name="metadata_wear_import_filename">File name: %1$s</string>
|
||||||
<string name="metadata_label_plugin_version">Plugin version: %1$s</string>
|
<string name="metadata_label_plugin_version">Plugin version: %1$s</string>
|
||||||
<string name="metadata_label_watchface_name_version">Name: %1$s (%2$s)</string>
|
<string name="metadata_label_watchface_name_version">Name: %1$s (%2$s)</string>
|
||||||
<string name="metadata_label_watchface_comment" translatable="false">Comment: %1$s</string>
|
<string name="metadata_label_watchface_comment">Comment: %1$s</string>
|
||||||
<string name="metadata_label_watchface_authorization" translatable="false">%1$s</string>
|
<string name="metadata_label_watchface_authorization" translatable="false">%1$s</string>
|
||||||
<string name="pref_show_iob">Show IOB</string>
|
<string name="pref_show_iob">Show IOB</string>
|
||||||
<string name="pref_show_detailed_iob">Show detailed IOB</string>
|
<string name="pref_show_detailed_iob">Show detailed IOB</string>
|
||||||
|
|
|
@ -51,6 +51,8 @@ buildscript {
|
||||||
|
|
||||||
kotlinx_datetime_version = '0.4.0'
|
kotlinx_datetime_version = '0.4.0'
|
||||||
kotlinx_serialization_version = '1.6.0'
|
kotlinx_serialization_version = '1.6.0'
|
||||||
|
|
||||||
|
caverock_androidsvg_version = '1.4'
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
|
|
|
@ -165,7 +165,7 @@ class CwfInfosActivity : TranslatedDaggerAppCompatActivity() {
|
||||||
val cwfView = viewList[position]
|
val cwfView = viewList[position]
|
||||||
val key = cwfView.first.key
|
val key = cwfView.first.key
|
||||||
val value = cwfView.first.comment
|
val value = cwfView.first.comment
|
||||||
val visible = cwfView.second // will be used if all keys included into RecyclerView
|
//val visible = cwfView.second // will be used if all keys included into RecyclerView
|
||||||
with(holder.cwfInfosActivityViewItemBinding) {
|
with(holder.cwfInfosActivityViewItemBinding) {
|
||||||
viewKey.text = "\"$key\":"
|
viewKey.text = "\"$key\":"
|
||||||
viewComment.text = rh.gs(value)
|
viewComment.text = rh.gs(value)
|
||||||
|
|
Loading…
Reference in a new issue