Forráskód Böngészése

Merge branch 'feature_integrate_brush_submodule'

# Conflicts:
#	src/main/AndroidManifest.xml
#	src/main/res/values/strings.xml
liweihao 6 éve
szülő
commit
c9f1ad81ba

+ 1 - 0
build.gradle

@@ -60,6 +60,7 @@ dependencies {
     implementation project(':Bomo_for_Android_encodeModule')
     implementation project(':uikit')
     implementation project(':pdfexport')
+    implementation project(':kdan_brush_library_for_android')
 
     implementation 'com.squareup.picasso:picasso:2.71828'
     implementation 'com.github.naman14:TAndroidLame:1.1'

+ 1 - 0
src/main/AndroidManifest.xml

@@ -21,6 +21,7 @@
         <activity
             android:name="com.bomostory.sceneeditmodule.ChooseThemeActivity"
             android:screenOrientation="landscape"/>
+        <activity android:name="com.bomostory.sceneeditmodule.screen.draw.DrawActivity"></activity>
     </application>
 
 </manifest>

+ 2 - 1
src/main/java/com/bomostory/sceneeditmodule/SceneEditActivity.kt

@@ -44,6 +44,7 @@ import kotlinx.android.synthetic.main.view_control_dialogue_dialog.view.*
 import com.bomostory.sceneeditmodule.DialogueColorData
 import com.bomostory.sceneeditmodule.SceneDrawer
 import com.bomostory.sceneeditmodule.navigationbar.actor.ObjectView
+import com.bomostory.sceneeditmodule.screen.draw.DrawActivity
 import io.reactivex.android.schedulers.AndroidSchedulers
 import io.reactivex.schedulers.Schedulers
 import kotlinx.android.synthetic.main.actor_select_view.view.*
@@ -284,7 +285,7 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
             initActorRecyclerView()
         })
         navigationBarView.setonClickBrushBtn(View.OnClickListener {
-            initBrushView()
+            startActivity(Intent(this,DrawActivity::class.java))
         })
         navigationBarView.setonClickDialogueBtn(View.OnClickListener {
             initDialogueView()

+ 175 - 0
src/main/java/com/bomostory/sceneeditmodule/screen/draw/DrawActivity.kt

@@ -0,0 +1,175 @@
+package com.bomostory.sceneeditmodule.screen.draw
+
+import android.arch.lifecycle.Observer
+import android.arch.lifecycle.ViewModelProviders
+import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
+import android.support.v7.app.AppCompatActivity
+import android.os.Bundle
+import android.view.View
+import android.widget.SeekBar
+import com.example.tfat.myapplication.R
+import com.kdanmobile.kdanbrushlib.model.KdanBrush
+import com.kdanmobile.kdanbrushlib.widget.DrawView
+import kotlinx.android.synthetic.main.activity_draw.*
+
+class DrawActivity : AppCompatActivity() {
+    private lateinit var viewModel: DrawViewModel
+    private lateinit var drawView: DrawView
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_draw)
+
+        viewModel = ViewModelProviders.of(this).get(DrawViewModel::class.java)
+        drawView = DrawView(this)
+
+        drawViewLayout.addView(drawView)
+
+        //TODO change button to your widget
+        pencil.setOnClickListener(this::onClickPencil)
+        crayon.setOnClickListener(this::onClickCrayon)
+        pen.setOnClickListener(this::onClickPen)
+        chineseBrush.setOnClickListener(this::onClickChineseBrush)
+        eraser.setOnClickListener(this::onClickEraser)
+
+        //TODO change button to your widget
+        color1.setOnClickListener(this::onColor1Selected)
+        color2.setOnClickListener(this::onColor2Selected)
+        color3.setOnClickListener(this::onColor3Selected)
+
+        brushSizeSeekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+                if (fromUser) onBrushSizeChanged(progress)
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {}
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {}
+        })
+        colorRValue.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+                if (fromUser) onColorRValueChanged(progress)
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {}
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {}
+        })
+        colorGValue.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+                if (fromUser) onColorGValueChanged(progress)
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {}
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {}
+
+        })
+        colorBValue.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+                if (fromUser) onColorBValueChanged(progress)
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {}
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {}
+
+        })
+        colorAValue.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+                if (fromUser) onColorAValueChanged(progress)
+            }
+
+            override fun onStartTrackingTouch(seekBar: SeekBar?) {}
+            override fun onStopTrackingTouch(seekBar: SeekBar?) {}
+
+        })
+
+        viewModel.initBrush(drawView)
+        viewModel.initColor(resources)
+        viewModel.currentBrushLiveData.observe(this, Observer(this::onBrushChanged))
+        viewModel.currentColorIndexLiveData.observe(this, Observer(this::onColorIndexChanged))
+        viewModel.color1LiveData.observe(this, Observer(this::onColor1Changed))
+        viewModel.color2LiveData.observe(this, Observer(this::onColor2Changed))
+        viewModel.color3LiveData.observe(this, Observer(this::onColor3Changed))
+        viewModel.selectPencil()
+    }
+
+    private fun onClickPencil(view: View) {
+        viewModel.selectPencil()
+    }
+
+    private fun onClickCrayon(view: View) {
+        viewModel.selectCrayon()
+    }
+
+    private fun onClickPen(view: View) {
+        viewModel.selectPen()
+    }
+
+    private fun onClickChineseBrush(view: View) {
+        viewModel.selectChineseBrush()
+    }
+
+    private fun onClickEraser(view: View) {
+        viewModel.selectEraser()
+    }
+
+    private fun onColor1Selected(view: View?) {
+        viewModel.selectColor(0)
+    }
+
+    private fun onColor2Selected(view: View?) {
+        viewModel.selectColor(1)
+    }
+
+    private fun onColor3Selected(view: View?) {
+        viewModel.selectColor(2)
+    }
+
+    private fun onBrushSizeChanged(brushSize: Int) {
+        viewModel.setBrushSize(brushSize)
+    }
+
+    private fun onBrushChanged(kdanBrush: KdanBrush?) {
+        kdanBrush?.apply {
+            drawView.brush = this
+
+            brushSize.text = "${this.radius.value}"
+            brushSizeSeekBar.max = this.radius.max
+            colorRValue.progress = Color.red(this.color)
+            colorGValue.progress = Color.green(this.color)
+            colorBValue.progress = Color.blue(this.color)
+            colorAValue.progress = Color.alpha(this.color)
+        }
+    }
+
+    private fun onColorIndexChanged(colorIndex: Int?) {
+        viewModel.setBrushColor(colorIndex)
+    }
+
+    private fun onColorRValueChanged(colorRValue: Int) {
+        viewModel.setColorRValue(colorRValue)
+    }
+
+    private fun onColorGValueChanged(colorGValue: Int) {
+        viewModel.setColorGValue(colorGValue)
+    }
+
+    private fun onColorBValueChanged(colorBValue: Int) {
+        viewModel.setColorBValue(colorBValue)
+    }
+
+    private fun onColorAValueChanged(colorAValue:Int){
+        viewModel.setColorAValue(colorAValue)
+    }
+
+    private fun onColor1Changed(colorDrawable: ColorDrawable?) {
+        color1.background = colorDrawable
+    }
+
+    private fun onColor2Changed(colorDrawable: ColorDrawable?) {
+        color2.background = colorDrawable
+    }
+
+    private fun onColor3Changed(colorDrawable: ColorDrawable?) {
+        color3.background = colorDrawable
+    }
+}

+ 240 - 0
src/main/java/com/bomostory/sceneeditmodule/screen/draw/DrawViewModel.kt

@@ -0,0 +1,240 @@
+package com.bomostory.sceneeditmodule.screen.draw
+
+import android.arch.lifecycle.LiveData
+import android.arch.lifecycle.MutableLiveData
+import android.arch.lifecycle.ViewModel
+import android.content.res.Resources
+import android.graphics.Color
+import android.graphics.drawable.ColorDrawable
+import android.support.v4.content.res.ResourcesCompat
+import com.example.tfat.myapplication.R
+import com.kdanmobile.kdanbrushlib.brush.*
+import com.kdanmobile.kdanbrushlib.model.KdanBrush
+import com.kdanmobile.kdanbrushlib.widget.DrawView
+
+class DrawViewModel : ViewModel() {
+
+    val currentBrushLiveData: LiveData<KdanBrush>
+        get() = mCurrentBrushLiveData
+
+    val currentColorIndexLiveData: LiveData<Int>
+        get() = mCurrentColorIndexLiveData
+    val color1LiveData: LiveData<ColorDrawable>
+        get() = mColor1LiveData
+    val color2LiveData: LiveData<ColorDrawable>
+        get() = mColor2LiveData
+    val color3LiveData: LiveData<ColorDrawable>
+        get() = mColor3LiveData
+
+    private var mCurrentBrushLiveData = MutableLiveData<KdanBrush>()
+
+    private var mCurrentColorIndexLiveData = MutableLiveData<Int>()
+    private var mColor1LiveData = MutableLiveData<ColorDrawable>()
+    private var mColor2LiveData = MutableLiveData<ColorDrawable>()
+    private var mColor3LiveData = MutableLiveData<ColorDrawable>()
+
+    private lateinit var pencilBrush: PencilBrush
+    private lateinit var crayonBrush: CrayonBrush
+    private lateinit var penBrush: FountainPenBrush
+    private lateinit var chineseBrush: ChineseBrush
+    private lateinit var eraser: DefaultEraser
+
+
+    fun initBrush(drawView: DrawView) {
+        //TODO remove drawView from view model
+        pencilBrush = PencilBrush(drawView)
+        crayonBrush = CrayonBrush(drawView)
+        penBrush = FountainPenBrush(drawView)
+        chineseBrush = ChineseBrush(drawView)
+        eraser = DefaultEraser(drawView)
+    }
+
+    fun initColor(resource: Resources) {
+        //TODO add other color
+        mColor1LiveData.value = ColorDrawable(ResourcesCompat.getColor(resource, R.color.defaultColor1, null))
+        mColor2LiveData.value = ColorDrawable(ResourcesCompat.getColor(resource, R.color.defaultColor2, null))
+        mColor3LiveData.value = ColorDrawable(ResourcesCompat.getColor(resource, R.color.defaultColor3, null))
+        mCurrentColorIndexLiveData.value = 0
+    }
+
+    fun selectPencil() {
+        mCurrentBrushLiveData.value = pencilBrush
+        currentColorIndexLiveData.value?.let {
+            selectColor(it)
+        }
+    }
+
+    fun selectCrayon() {
+        mCurrentBrushLiveData.value = crayonBrush
+        currentColorIndexLiveData.value?.let {
+            selectColor(it)
+        }
+    }
+
+    fun selectPen() {
+        mCurrentBrushLiveData.value = penBrush
+        currentColorIndexLiveData.value?.let {
+            selectColor(it)
+        }
+    }
+
+    fun selectChineseBrush() {
+        mCurrentBrushLiveData.value = chineseBrush
+        currentColorIndexLiveData.value?.let {
+            selectColor(it)
+        }
+    }
+
+    fun selectEraser() {
+        mCurrentBrushLiveData.value = eraser
+    }
+
+    fun selectColor(index: Int) {
+        mCurrentColorIndexLiveData.value = index
+    }
+
+    fun setColorRValue(rValue: Int) {
+        var colorDrawable: ColorDrawable? = null
+
+        when (mCurrentColorIndexLiveData.value) {
+            0 -> {
+                mColor1LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), rValue, Color.green(it.color), Color.blue(it.color)))
+                }
+                mColor1LiveData.value = colorDrawable
+            }
+            1 -> {
+                mColor2LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), rValue, Color.green(it.color), Color.blue(it.color)))
+                }
+                mColor2LiveData.value = colorDrawable
+            }
+            2 -> {
+                mColor3LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), rValue, Color.green(it.color), Color.blue(it.color)))
+                }
+                mColor3LiveData.value = colorDrawable
+            }
+        }
+        
+        setBrushColor(currentColorIndexLiveData.value)
+    }
+
+    fun setColorGValue(gValue: Int) {
+        var colorDrawable: ColorDrawable? = null
+
+        when (mCurrentColorIndexLiveData.value) {
+            0 -> {
+                mColor1LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), Color.red(it.color), gValue, Color.blue(it.color)))
+                }
+                mColor1LiveData.value = colorDrawable
+            }
+            1 -> {
+                mColor2LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), Color.red(it.color), gValue, Color.blue(it.color)))
+                }
+                mColor2LiveData.value = colorDrawable
+            }
+            2 -> {
+                mColor3LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), Color.red(it.color), gValue, Color.blue(it.color)))
+                }
+                mColor3LiveData.value = colorDrawable
+            }
+        }
+
+        setBrushColor(currentColorIndexLiveData.value)
+    }
+
+    fun setColorBValue(bValue: Int) {
+        var colorDrawable: ColorDrawable? = null
+
+        when (mCurrentColorIndexLiveData.value) {
+            0 -> {
+                mColor1LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), Color.red(it.color), Color.green(it.color), bValue))
+                }
+                mColor1LiveData.value = colorDrawable
+            }
+            1 -> {
+                mColor2LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), Color.red(it.color), Color.green(it.color), bValue))
+                }
+                mColor2LiveData.value = colorDrawable
+            }
+            2 -> {
+                mColor3LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(Color.alpha(it.color), Color.red(it.color), Color.green(it.color), bValue))
+                }
+                mColor3LiveData.value = colorDrawable
+            }
+        }
+
+        setBrushColor(currentColorIndexLiveData.value)
+    }
+
+    fun setColorAValue(aValue: Int) {
+        var colorDrawable: ColorDrawable? = null
+
+        when (mCurrentColorIndexLiveData.value) {
+            0 -> {
+                mColor1LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(aValue, Color.red(it.color), Color.green(it.color), Color.blue(it.color)))
+                }
+                mColor1LiveData.value = colorDrawable
+            }
+            1 -> {
+                mColor2LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(aValue, Color.red(it.color), Color.green(it.color), Color.blue(it.color)))
+                }
+                mColor2LiveData.value = colorDrawable
+            }
+            2 -> {
+                mColor3LiveData.value?.let {
+                    colorDrawable = ColorDrawable(Color.argb(aValue, Color.red(it.color), Color.green(it.color), Color.blue(it.color)))
+                }
+                mColor3LiveData.value = colorDrawable
+            }
+        }
+
+        setBrushColor(currentColorIndexLiveData.value)
+    }
+
+    fun setBrushSize(brushSize: Int) {
+        val brush = mCurrentBrushLiveData.value
+        brush?.radius?.value = brushSize
+        mCurrentBrushLiveData.value = brush
+    }
+
+    fun setBrushColor(index: Int?) {
+        val brush = mCurrentBrushLiveData.value
+        var color: Int? = null
+
+        when (index) {
+            0 -> {
+                mColor1LiveData.value?.let {
+                    color = it.color
+                }
+            }
+            1 -> {
+                mColor2LiveData.value?.let {
+                    color = it.color
+                }
+            }
+            2 -> {
+                mColor3LiveData.value?.let {
+                    color = it.color
+                }
+            }
+        }
+
+        color?.let {
+            if (brush?.color != it) {
+                brush?.color = it
+                mCurrentBrushLiveData.value = brush
+            }
+        }
+    }
+
+}

+ 162 - 0
src/main/res/layout/activity_draw.xml

@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.bomostory.sceneeditmodule.screen.draw.DrawActivity">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <RelativeLayout
+            android:id="@+id/drawViewLayout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+    </RelativeLayout>
+
+    <Button
+        android:id="@+id/pencil"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/pencil"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent" />
+
+    <Button
+        android:id="@+id/crayon"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/crayon"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/pencil" />
+
+    <Button
+        android:id="@+id/pen"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/pen"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/crayon" />
+
+    <Button
+        android:id="@+id/chineseBrush"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/chinese_brush"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/pen" />
+
+    <Button
+        android:id="@+id/eraser"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/eraser"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/chineseBrush" />
+
+    <TextView
+        android:id="@+id/brushSize"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/eraser" />
+
+    <SeekBar
+        android:id="@+id/brushSizeSeekBar"
+        android:layout_width="240dp"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toTopOf="@+id/brushSize"
+        app:layout_constraintLeft_toRightOf="@+id/eraser" />
+
+    <Button
+        android:id="@+id/color1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/brushSizeSeekBar" />
+
+    <Button
+        android:id="@+id/color2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/color1" />
+
+    <Button
+        android:id="@+id/color3"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/color2" />
+
+    <SeekBar
+        android:id="@+id/colorRValue"
+        android:layout_width="128dp"
+        android:layout_height="wrap_content"
+        android:max="255"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/r"
+        app:layout_constraintBottom_toBottomOf="@id/colorRValue"
+        app:layout_constraintRight_toLeftOf="@+id/colorRValue"
+        app:layout_constraintTop_toTopOf="@id/colorRValue" />
+
+    <SeekBar
+        android:id="@+id/colorGValue"
+        android:layout_width="128dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp"
+        android:max="255"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/colorRValue" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/g"
+        app:layout_constraintBottom_toBottomOf="@id/colorGValue"
+        app:layout_constraintRight_toLeftOf="@id/colorGValue"
+        app:layout_constraintTop_toTopOf="@+id/colorGValue" />
+
+    <SeekBar
+        android:id="@+id/colorBValue"
+        android:layout_width="128dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp"
+        android:max="255"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/colorGValue" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/b"
+        app:layout_constraintBottom_toBottomOf="@id/colorBValue"
+        app:layout_constraintRight_toLeftOf="@id/colorBValue"
+        app:layout_constraintTop_toTopOf="@id/colorBValue" />
+
+    <SeekBar
+        android:id="@+id/colorAValue"
+        android:layout_width="128dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="25dp"
+        android:max="255"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/colorBValue" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/a"
+        app:layout_constraintBottom_toBottomOf="@id/colorAValue"
+        app:layout_constraintRight_toLeftOf="@id/colorAValue"
+        app:layout_constraintTop_toTopOf="@id/colorAValue" />
+
+</android.support.constraint.ConstraintLayout>

+ 5 - 0
src/main/res/values/colors.xml

@@ -4,6 +4,11 @@
     <color name="colorPrimaryDark">#303F9F</color>
     <color name="colorAccent">#FF4081</color>
     <color name="colorRed">#FF0000</color>
+    
+    <!--brush-->
+    <color name="defaultColor1">#d0021b</color>
+    <color name="defaultColor2">#f5a623</color>
+    <color name="defaultColor3">#f8e71c</color>
 
     <color name="black_overlay">#66000000</color>
 </resources>

+ 11 - 0
src/main/res/values/strings.xml

@@ -59,4 +59,15 @@
     <string name="front_cover_scene_choose_dialog_align_center">Align to center</string>
     <string name="front_cover_scene_choose_dialog_align_left">Align to left</string>
     <string name="front_cover_scene_choose_dialog_align_right">Align to right</string>
+
+    <!--brush-->
+    <string name="pencil">Pencil</string>
+    <string name="crayon">Crayon</string>
+    <string name="pen">Pen</string>
+    <string name="chinese_brush">Chinese Brush</string>
+    <string name="eraser">Eraser</string>
+    <string name="r">R</string>
+    <string name="g">G</string>
+    <string name="b">B</string>
+    <string name="a">A</string>
 </resources>