Browse Source

phase2 part1

faterhenry 5 years ago
parent
commit
e555b15e73
59 changed files with 838 additions and 293 deletions
  1. 370 200
      src/main/java/com/bomostory/sceneeditmodule/SceneEditActivity.kt
  2. 3 0
      src/main/java/com/bomostory/sceneeditmodule/basicdata/Actor.kt
  3. 17 0
      src/main/java/com/bomostory/sceneeditmodule/navigationbar/NavigationBarView.kt
  4. 1 1
      src/main/java/com/bomostory/sceneeditmodule/navigationbar/actor/ObjectAdapter.kt
  5. 4 0
      src/main/java/com/bomostory/sceneeditmodule/navigationbar/scene/ControlSceneView.kt
  6. 11 1
      src/main/java/com/bomostory/sceneeditmodule/screen/draw/DrawActivity.kt
  7. 1 4
      src/main/java/com/bomostory/sceneeditmodule/screen/view/ActorView.kt
  8. 6 0
      src/main/res/drawable/ic_btn_startover.xml
  9. 16 0
      src/main/res/drawable/ic_page.xml
  10. 10 0
      src/main/res/drawable/ic_redo.xml
  11. 1 1
      src/main/res/drawable/ic_speechbubble_b1.xml
  12. 1 1
      src/main/res/drawable/ic_speechbubble_b2.xml
  13. 1 1
      src/main/res/drawable/ic_speechbubble_b3.xml
  14. 1 1
      src/main/res/drawable/ic_speechbubble_b4.xml
  15. 1 1
      src/main/res/drawable/ic_speechbubble_b5.xml
  16. 1 1
      src/main/res/drawable/ic_speechbubble_b6.xml
  17. 1 1
      src/main/res/drawable/ic_speechbubble_b7.xml
  18. 1 1
      src/main/res/drawable/ic_speechbubble_g1.xml
  19. 1 1
      src/main/res/drawable/ic_speechbubble_g2.xml
  20. 1 1
      src/main/res/drawable/ic_speechbubble_g3.xml
  21. 1 1
      src/main/res/drawable/ic_speechbubble_g4.xml
  22. 1 1
      src/main/res/drawable/ic_speechbubble_g5.xml
  23. 1 1
      src/main/res/drawable/ic_speechbubble_g6.xml
  24. 1 1
      src/main/res/drawable/ic_speechbubble_g7.xml
  25. 1 1
      src/main/res/drawable/ic_speechbubble_r1.xml
  26. 1 1
      src/main/res/drawable/ic_speechbubble_r2.xml
  27. 1 1
      src/main/res/drawable/ic_speechbubble_r3.xml
  28. 1 1
      src/main/res/drawable/ic_speechbubble_r4.xml
  29. 1 1
      src/main/res/drawable/ic_speechbubble_r5.xml
  30. 1 1
      src/main/res/drawable/ic_speechbubble_r6.xml
  31. 1 1
      src/main/res/drawable/ic_speechbubble_r7.xml
  32. 1 1
      src/main/res/drawable/ic_speechbubble_w1.xml
  33. 1 1
      src/main/res/drawable/ic_speechbubble_w2.xml
  34. 1 1
      src/main/res/drawable/ic_speechbubble_w3.xml
  35. 1 1
      src/main/res/drawable/ic_speechbubble_w4.xml
  36. 1 1
      src/main/res/drawable/ic_speechbubble_w5.xml
  37. 1 1
      src/main/res/drawable/ic_speechbubble_w6.xml
  38. 1 1
      src/main/res/drawable/ic_speechbubble_w7.xml
  39. 1 1
      src/main/res/drawable/ic_speechbubble_y1.xml
  40. 1 1
      src/main/res/drawable/ic_speechbubble_y2.xml
  41. 1 1
      src/main/res/drawable/ic_speechbubble_y3.xml
  42. 1 1
      src/main/res/drawable/ic_speechbubble_y4.xml
  43. 1 1
      src/main/res/drawable/ic_speechbubble_y5.xml
  44. 1 1
      src/main/res/drawable/ic_speechbubble_y6.xml
  45. 1 1
      src/main/res/drawable/ic_speechbubble_y7.xml
  46. 10 0
      src/main/res/drawable/ic_undo.xml
  47. 14 2
      src/main/res/layout/actor_select_view.xml
  48. 106 37
      src/main/res/layout/add_scene_view.xml
  49. 22 1
      src/main/res/layout/control_actor_dialog.xml
  50. 2 2
      src/main/res/layout/item_add_scene.xml
  51. 2 2
      src/main/res/layout/navigation_bar_view.xml
  52. 14 0
      src/main/res/layout/object_item.xml
  53. 14 2
      src/main/res/layout/object_select_view.xml
  54. 74 0
      src/main/res/layout/popupview_adjustment_dialog.xml
  55. 57 0
      src/main/res/layout/popupview_start_over.xml
  56. 29 3
      src/main/res/layout/scene_brush_view.xml
  57. 14 2
      src/main/res/layout/scene_control_view.xml
  58. 2 1
      src/main/res/layout/view_control_dialogue_dialog.xml
  59. 4 0
      src/main/res/values/dimens.xml

+ 370 - 200
src/main/java/com/bomostory/sceneeditmodule/SceneEditActivity.kt

@@ -51,10 +51,13 @@ import io.reactivex.android.schedulers.AndroidSchedulers
 import io.reactivex.schedulers.Schedulers
 import kotlinx.android.synthetic.main.actor_select_view.view.*
 import kotlinx.android.synthetic.main.add_scene_view.view.*
+import kotlinx.android.synthetic.main.fragment_music_edit_dialog.view.*
 import kotlinx.android.synthetic.main.layer_management_fragment.*
 import kotlinx.android.synthetic.main.navigation_bar_view.view.*
+import kotlinx.android.synthetic.main.popupview_adjustment_dialog.view.*
 import kotlinx.android.synthetic.main.popupview_color_dialog.view.*
 import kotlinx.android.synthetic.main.popupview_setting.view.*
+import kotlinx.android.synthetic.main.popupview_start_over.view.*
 import java.io.File
 import java.util.*
 import java.util.concurrent.CopyOnWriteArrayList
@@ -79,6 +82,7 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
     private lateinit var sceneAdapter: SceneAdapter
     private var isRecord = false
     private var isAutoSwipe = false
+    private var isClearObjects = false
     private var layerManagementDialog = LayerManagementDialog()
     private var editTextDialog = EditTextDialog()
     private val monitorSize = DisplayMetrics()
@@ -257,123 +261,60 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
     }
 
     private fun initNavigationBarView(position: Int) {
-        project.story?.let {
-            it.scenes?.let {
-                var isSceneRecorded =  when(it[currentSceneIndex].record){
-                                           null -> false
-                                           else -> true
-                                       }
-                if (position != currentSceneIndex && !isSceneRecorded) {
-                    initNavigationFunction()
-                } else {
-                    navigationBar.removeAllViews()
-                    var editSceneView = EditSceneView(this)
-                    navigationBar.addView(editSceneView)
-                    setControlSceneView()
-                    editSceneView.setOnClickDoneListener(View.OnClickListener {
-                        if (!isSceneRecorded) initNavigationFunction()
-                        else setControlSceneView()
-                    })
-                    editSceneView.setOnClickStartOverListener(View.OnClickListener {
-                        project.story?.let {
-                            it.scenes?.let{
-                                it[currentSceneIndex].record = null
-                                sceneEditView.scene = it[currentSceneIndex]
-                                initNavigationBarView(currentSceneIndex)
-                            }
-                        }
-                    })
-                    editSceneView.setOnClickReplaceListener(View.OnClickListener {
-                        viewContainer.removeAllViews()
-                        var addSceneView = AddSceneView(this)
-                        viewContainer.addView(addSceneView)
-                        val layoutManager = LinearLayoutManager(this)
-                        layoutManager.orientation = LinearLayoutManager.HORIZONTAL
-                        var onSceneSelectedArrayList = ArrayList<View.OnClickListener>()
-                        for (i in 0 until resourceThemeBitmap.size) {
-                            onSceneSelectedArrayList.add(replaceScene(i))
-                        }
-                        var addSceneAdapter = AddSceneAdapter(this, resourceThemeBitmap, onSceneSelectedArrayList)
-                        var newSceneRecyclerView = addSceneView.findViewById<RecyclerView>(R.id.new_scene_recycler_view)
-                        newSceneRecyclerView.layoutManager = layoutManager
-                        newSceneRecyclerView.adapter = addSceneAdapter
-                    })
-                    editSceneView.setOnClickDeleteListener(View.OnClickListener {
-                        var builder = AlertDialog.Builder(this@SceneEditActivity).apply {
-                            setTitle(resources.getString(R.string.delete_check))
-                            setPositiveButton(R.string.uikit_others_yes) { dialog, whichButton ->
-                                project.story?.let {
-                                    it.scenes?.let{
-                                        if (it.size <= 1) { return@let }
-                                        it.removeAt(currentSceneIndex)
-                                        when(currentSceneIndex >= it.size){
-                                            true -> {
-                                                currentSceneIndex = 0
-                                                sceneEditView.scene = it[0]
-                                            }
-                                            false -> sceneEditView.scene = it[currentSceneIndex]
-                                        }
-                                        initNavigationBarView(currentSceneIndex)
-                                        setControlSceneView()
-                                    }
-                                }
-                                window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-                                        WindowManager.LayoutParams.FLAG_FULLSCREEN)
-                                actionBar?.hide()
-                                supportActionBar?.hide()
-                                hideStatusBar()
-                            }
-                            setNegativeButton(R.string.uikit_others_not) { dialog, whichButton ->
-                                window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-                                        WindowManager.LayoutParams.FLAG_FULLSCREEN)
-                                actionBar?.hide()
-                                supportActionBar?.hide()
-                                hideStatusBar()
-                            }
-                            setOnDismissListener {
-                                window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
-                                        WindowManager.LayoutParams.FLAG_FULLSCREEN)
-                                actionBar?.hide()
-                                supportActionBar?.hide()
-                                hideStatusBar()
-                            }
-                        }
-                        val dialog: AlertDialog = builder.create()
-                        dialog.show()
-                    })
-                }
-            }
-        }
+        initNavigationFunction()
     }
 
     private fun initNavigationFunction(){
         var navigationBarView = NavigationBarView(this)
-        navigationBar.addView(navigationBarView)
-        navigationBarView.setonClickSceneBtn(View.OnClickListener {
-            initControlSceneView()
-        })
-        navigationBarView.setonClickActorBtn(View.OnClickListener {
-            initActorRecyclerView()
-        })
-        navigationBarView.setonClickBrushBtn(View.OnClickListener {
-            initBrushView()
-        })
-        navigationBarView.setonClickDialogueBtn(View.OnClickListener {
-            initDialogueView()
-        })
-        navigationBarView.setonClickImageBtn(View.OnClickListener {
-            pickFromGallery()
-        })
-        navigationBarView.setonClickSettingBtn(View.OnClickListener {
-            var popupWindow = PopupWindow(this)
-            popupWindow.contentView = createSettingPopupView()
-            popupWindow.width = ViewGroup.LayoutParams.WRAP_CONTENT
-            popupWindow.height = ViewGroup.LayoutParams.WRAP_CONTENT
-            popupWindow.isOutsideTouchable = true
-            var valueXInPixels = resources.getDimension(R.dimen.popup_view_setting_height) + resources.getDimension(R.dimen.navigation_bar_height)
-            popupWindow.showAsDropDown(navigationBarView.settings, 0, -(valueXInPixels).toInt(), Gravity.CENTER_HORIZONTAL)
+        project.story?.let {
+            it.scenes?.let {
+                when (it[currentSceneIndex].record) {
+                    null -> {
+                        startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_record))
+                        navigationBarView.setBtnEnable()
+                        navigationBar.addView(navigationBarView)
+                        navigationBarView.setonClickSceneBtn(View.OnClickListener {
+                            initControlSceneView()
+                        })
+                        navigationBarView.setonClickActorBtn(View.OnClickListener {
+                            initActorRecyclerView()
+                        })
+                        navigationBarView.setonClickBrushBtn(View.OnClickListener {
+                            initBrushView()
+                        })
+                        navigationBarView.setonClickDialogueBtn(View.OnClickListener {
+                            initDialogueView()
+                        })
+                        navigationBarView.setonClickImageBtn(View.OnClickListener {
+                            pickFromGallery()
+                        })
+                        navigationBarView.setonClickSettingBtn(View.OnClickListener {
+                            var popupWindow = PopupWindow(this)
+                            popupWindow.contentView = createSettingPopupView()
+                            popupWindow.width = ViewGroup.LayoutParams.WRAP_CONTENT
+                            popupWindow.height = ViewGroup.LayoutParams.WRAP_CONTENT
+                            popupWindow.isOutsideTouchable = true
+                            var valueXInPixels = resources.getDimension(R.dimen.popup_view_setting_height) + resources.getDimension(R.dimen.navigation_bar_height)
+                            popupWindow.showAsDropDown(navigationBarView.settings, 0, -(valueXInPixels).toInt(), Gravity.CENTER_HORIZONTAL)
 
-        })
+                        })
+                    }
+                    else -> {
+                        startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_startover))
+                        navigationBarView.setBtnDisable()
+                        navigationBar.addView(navigationBarView)
+                        navigationBarView.setonClickSceneBtn(View.OnClickListener {
+                            initControlSceneView()
+                        })
+                        navigationBarView.setonClickActorBtn(View.OnClickListener {})
+                        navigationBarView.setonClickBrushBtn(View.OnClickListener {})
+                        navigationBarView.setonClickDialogueBtn(View.OnClickListener {})
+                        navigationBarView.setonClickImageBtn(View.OnClickListener {})
+                        navigationBarView.setonClickSettingBtn(View.OnClickListener {})
+                    }
+                }
+            }
+        }
     }
 
     private fun createSettingPopupView(): View{
@@ -403,6 +344,34 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
         })
         return popupView
     }
+
+    private fun createStartOverPopupView(): View{
+        val popupView = LayoutInflater.from(this).inflate(R.layout.popupview_start_over, null)
+        when (isClearObjects) {
+            true -> {
+                popupView.rb_keep.isChecked  = false
+                popupView.rb_clear_all.isChecked = true
+            }
+            false -> {
+                popupView.rb_keep.isChecked  = true
+                popupView.rb_clear_all.isChecked = false
+            }
+        }
+        popupView.rg_start_over_settings.setOnCheckedChangeListener(object : RadioGroup.OnCheckedChangeListener{
+            override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
+                when (checkedId) {
+                    popupView.rb_keep.id -> {
+                        isClearObjects = false
+                    }
+                    popupView.rb_clear_all.id ->{
+                        isClearObjects = true
+                    }
+                }
+            }
+        })
+        return popupView
+    }
+
     private fun initBrushView(){
         if (currentLayerIndex == 6){
             switchLayer(0)
@@ -416,7 +385,7 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
     }
 
     private fun initActorRecyclerView() {
-        if (viewContainer.getChildAt(0) is SelectActorView || viewContainer.getChildAt(0) is ObjectView) {
+        if (viewContainer.getChildAt(0) is SelectActorView || viewContainer.getChildAt(0) is ObjectView || viewContainer.getChildAt(0) is AddSceneView) {
             viewContainer.removeAllViews()
             startRecord.visibility = View.VISIBLE
             return
@@ -438,16 +407,10 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
         viewContainer.addView(selectActorView)
         selectActorView.layoutParams.width = monitorSize.widthPixels
         selectActorView.btn_object.setOnClickListener {
-            viewContainer.removeAllViews()
-            var objectView = ObjectView(this)
-            objectView.setData(resourceObjectPath)
-            sceneEditView.findViewById<LayerView>(currentLayerIndex).setOnDragListener(objectDragListener())
-            viewContainer.addView(objectView)
-            objectView.layoutParams.width = monitorSize.widthPixels
-            objectView.btn_character.setOnClickListener {
-                viewContainer.removeAllViews()
-                initActorRecyclerView()
-            }
+            initAddObjectView()
+        }
+        selectActorView.btn_scene.setOnClickListener {
+            initReplaceSceneView()
         }
         selectActorView.btn_choose_theme.setOnClickListener {
             chooseTheme()
@@ -514,6 +477,10 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
             addSceneView.btn_add_scene_view_choose_theme.setOnClickListener {
                 chooseTheme()
             }
+            addSceneView.btn_add_scene_view_character.setOnClickListener {
+                viewContainer.removeAllViews()
+                initActorRecyclerView()
+            }
         })
         controlSceneView.setonClickDuplicateBtn(View.OnClickListener {
             project.story?.let {
@@ -569,6 +536,49 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
             }
             sceneAdapter.update(projectBitmaps, onSceneSelectedArrayList,recordTimeArrayList)
         })
+        controlSceneView.setOnClickDeleteBtn(View.OnClickListener {
+            var builder = AlertDialog.Builder(this@SceneEditActivity).apply {
+                setTitle(resources.getString(R.string.delete_check))
+                setPositiveButton(R.string.uikit_others_yes) { dialog, whichButton ->
+                    project.story?.let {
+                        it.scenes?.let{
+                            if (it.size <= 1) { return@let }
+                            it.removeAt(currentSceneIndex)
+                            when(currentSceneIndex >= it.size){
+                                true -> {
+                                    currentSceneIndex = 0
+                                    sceneEditView.scene = it[0]
+                                }
+                                false -> sceneEditView.scene = it[currentSceneIndex]
+                            }
+                            initNavigationBarView(currentSceneIndex)
+                            setControlSceneView()
+                        }
+                    }
+                    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                            WindowManager.LayoutParams.FLAG_FULLSCREEN)
+                    actionBar?.hide()
+                    supportActionBar?.hide()
+                    hideStatusBar()
+                }
+                setNegativeButton(R.string.uikit_others_not) { dialog, whichButton ->
+                    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                            WindowManager.LayoutParams.FLAG_FULLSCREEN)
+                    actionBar?.hide()
+                    supportActionBar?.hide()
+                    hideStatusBar()
+                }
+                setOnDismissListener {
+                    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                            WindowManager.LayoutParams.FLAG_FULLSCREEN)
+                    actionBar?.hide()
+                    supportActionBar?.hide()
+                    hideStatusBar()
+                }
+            }
+            val dialog: AlertDialog = builder.create()
+            dialog.show()
+        })
         val layoutManager = LinearLayoutManager(this)
         layoutManager.orientation = LinearLayoutManager.HORIZONTAL
         var sceneRecyclerView = controlSceneView.findViewById<RecyclerView>(R.id.scene_recycler_view)
@@ -595,7 +605,7 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
         recordingTime = 0L
         tv_scene_activity_record_time.text = resources.getString(R.string.uikit_edit_recording) + " 00:00"
         isRecord = false
-        startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_record))
+        startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_startover))
         navigationBar.visibility = View.VISIBLE
         initControlBarView()
         initControlSceneView()
@@ -609,82 +619,130 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
     private fun initRecord(){
         var recordPath: String? = null
         startRecord.setOnClickListener {
-            if (!isRecord) {
-                //  delete record
-                project.story?.let {
-                    it.scenes?.let{
-                        if (it[currentSceneIndex].recordPath != null)
-                            File(it[currentSceneIndex].recordPath).delete()
-                        it[currentSceneIndex].record = null
-                    }
-                }
-                recordPath = getRecordFilePath()
-                audioRecorder.prepare(File(recordPath))
-                audioRecorder.startRecording()
-                startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_record_stop))
-                startRecordTime = System.currentTimeMillis()
-                isRecord = true
-                switchToPreViewLayer()
-                navigationBar.visibility = View.INVISIBLE
-                tv_scene_activity_record_time.visibility = View.VISIBLE
-                timer.schedule(object:TimerTask(){
-                    override fun run() {
-                        runOnUiThread {
-                            recordingTime ++
-                            tv_scene_activity_record_time.text = "Recording " + "0" + recordingTime.div(60).toString() + ":" +
-                                    recordingTime.rem(60).div(10).toString() + recordingTime.rem(60).rem(10).toString()
-                        }
-                    }
-                }, 1000, 1000)
-            } else if (recordingTime >= 1){
-                audioRecorder.stopRecording()
-                tv_scene_activity_record_time.visibility = View.INVISIBLE
-                timer.cancel()
-                timer = Timer()
-                recordingTime = 0L
-                tv_scene_activity_record_time.text = resources.getString(R.string.uikit_edit_recording) + " 00:00"
-                isRecord = false
-                record.period = System.currentTimeMillis() - startRecordTime
-                if (!isAutoSwipe){
-                    project.story?.let {
-                        it.scenes?.let{
-                            it[currentSceneIndex].record = record
-                            it[currentSceneIndex].recordPath = recordPath
+            project.story?.let {
+                it.scenes?.let {
+                    if (it[currentSceneIndex].record != null) {
+                        var popupWindow = PopupWindow(this)
+                        var popupView = createStartOverPopupView().apply {
+                            tv_popup_start_over_cancel.setOnClickListener {
+                                popupWindow.dismiss()
+                            }
+                            tv_popup_start_over_start_over.setOnClickListener {
+                                popupWindow.dismiss()
+                                if (!isClearObjects) {
+                                    project.story?.let {
+                                        it.scenes?.let {
+                                            it[currentSceneIndex].record = null
+                                            sceneEditView.scene = it[currentSceneIndex]
+                                            initNavigationBarView(currentSceneIndex)
+                                        }
+                                    }
+                                } else {
+                                    project.story?.let {
+                                        it.scenes?.let {
+                                            var scene = Scene()
+                                            for (i in 5 until 0){
+                                                val layer = Layer()
+                                                layer.id = i
+                                                scene.layers.add(layer)
+                                            }
+                                            scene.backgroundPath = resourceThemeBitmap[resourceThemeBitmap.size - 1]
+                                            scene.sceneWidth = monitorSize.widthPixels
+                                            it[currentSceneIndex] = scene
+                                            sceneEditView.scene = it[currentSceneIndex]
+                                            initNavigationBarView(currentSceneIndex)
+                                        }
+                                    }
+                                }
+                            }
                         }
-                    }
-                } else {
-                    var autoSwipeRecord = Record()
-                    autoSwipeRecord.period = record.period
-                    for (i in 0 until record.period step TIME_STEP_FOR_FPS)
-                    autoSwipeRecord.tracks.apply {
-                        var track = Track().apply {
-                            when (i <= record.period.div(2)){
-                                true -> {
-                                    positionX = (-monitorSize.widthPixels.div(2)) + i.div(TIME_STEP_FOR_FPS).toInt() * monitorSize.widthPixels.div(record.period.div(2 * TIME_STEP_FOR_FPS).toInt())
-                                    time = i
+
+                        popupWindow.contentView = popupView
+                        popupWindow.width = resources.getDimension(R.dimen.popup_view_start_over_width).toInt()
+                        popupWindow.height = ViewGroup.LayoutParams.WRAP_CONTENT
+                        popupWindow.isOutsideTouchable = false
+                        var valueYInPixels = resources.getDimension(R.dimen.popup_view_start_over_height) + resources.getDimension(R.dimen.popup_view_start_over_padding_bottom)
+                        popupWindow.showAsDropDown(startRecord, -(popupWindow.width / 2), -(valueYInPixels).toInt(), Gravity.CENTER_HORIZONTAL)
+                    } else {
+                        if (!isRecord) {
+                            //  delete record
+                            project.story?.let {
+                                it.scenes?.let{
+                                    if (it[currentSceneIndex].recordPath != null)
+                                        File(it[currentSceneIndex].recordPath).delete()
+                                    it[currentSceneIndex].record = null
                                 }
-                                false -> {
-                                    var j = i - record.period.div(2)
-                                    positionX = (monitorSize.widthPixels.div(2)) - j.div(TIME_STEP_FOR_FPS).toInt() * monitorSize.widthPixels.div(record.period.div(2 * TIME_STEP_FOR_FPS).toInt())
-                                    time = i
+                            }
+                            recordPath = getRecordFilePath()
+                            audioRecorder.prepare(File(recordPath))
+                            audioRecorder.startRecording()
+                            startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_record_stop))
+                            startRecordTime = System.currentTimeMillis()
+                            isRecord = true
+                            switchToPreViewLayer()
+                            navigationBar.visibility = View.INVISIBLE
+                            tv_scene_activity_record_time.visibility = View.VISIBLE
+                            timer.schedule(object:TimerTask(){
+                                override fun run() {
+                                    runOnUiThread {
+                                        recordingTime ++
+                                        tv_scene_activity_record_time.text = "Recording " + "0" + recordingTime.div(60).toString() + ":" +
+                                                recordingTime.rem(60).div(10).toString() + recordingTime.rem(60).rem(10).toString()
+                                    }
+                                }
+                            }, 1000, 1000)
+                        } else if (recordingTime >= 1){
+                            audioRecorder.stopRecording()
+                            tv_scene_activity_record_time.visibility = View.INVISIBLE
+                            timer.cancel()
+                            timer = Timer()
+                            recordingTime = 0L
+                            tv_scene_activity_record_time.text = resources.getString(R.string.uikit_edit_recording) + " 00:00"
+                            isRecord = false
+                            record.period = System.currentTimeMillis() - startRecordTime
+                            if (!isAutoSwipe){
+                                project.story?.let {
+                                    it.scenes?.let{
+                                        it[currentSceneIndex].record = record
+                                        it[currentSceneIndex].recordPath = recordPath
+                                    }
+                                }
+                            } else {
+                                var autoSwipeRecord = Record()
+                                autoSwipeRecord.period = record.period
+                                for (i in 0 until record.period step TIME_STEP_FOR_FPS)
+                                    autoSwipeRecord.tracks.apply {
+                                        var track = Track().apply {
+                                            when (i <= record.period.div(2)){
+                                                true -> {
+                                                    positionX = (-monitorSize.widthPixels.div(2)) + i.div(TIME_STEP_FOR_FPS).toInt() * monitorSize.widthPixels.div(record.period.div(2 * TIME_STEP_FOR_FPS).toInt())
+                                                    time = i
+                                                }
+                                                false -> {
+                                                    var j = i - record.period.div(2)
+                                                    positionX = (monitorSize.widthPixels.div(2)) - j.div(TIME_STEP_FOR_FPS).toInt() * monitorSize.widthPixels.div(record.period.div(2 * TIME_STEP_FOR_FPS).toInt())
+                                                    time = i
+                                                }
+                                            }
+                                        }
+                                        add(track)
+                                    }
+                                project.story?.let {
+                                    it.scenes?.let{
+                                        it[currentSceneIndex].record = autoSwipeRecord
+                                        it[currentSceneIndex].recordPath = recordPath
+                                    }
                                 }
                             }
-                        }
-                        add(track)
-                    }
-                    project.story?.let {
-                        it.scenes?.let{
-                            it[currentSceneIndex].record = autoSwipeRecord
-                            it[currentSceneIndex].recordPath = recordPath
+
+                            startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_startover))
+                            navigationBar.visibility = View.VISIBLE
+                            initControlBarView()
+                            initControlSceneView()
+                            initRecordFinishView()
                         }
                     }
                 }
-
-                startRecord.setImageDrawable(resources.getDrawable(R.drawable.ic_btn_record))
-                navigationBar.visibility = View.VISIBLE
-                initControlBarView()
-                initControlSceneView()
-                initRecordFinishView()
             }
         }
     }
@@ -729,6 +787,45 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
         })
         navigationBar.addView(recordFinishView)
     }
+
+    private fun initReplaceSceneView(){
+        viewContainer.removeAllViews()
+        var addSceneView = AddSceneView(this)
+        viewContainer.addView(addSceneView)
+        val layoutManager = LinearLayoutManager(this)
+        layoutManager.orientation = LinearLayoutManager.HORIZONTAL
+        var onSceneSelectedArrayList = ArrayList<View.OnClickListener>()
+        for (i in 0 until resourceThemeBitmap.size) {
+            onSceneSelectedArrayList.add(replaceScene(i))
+        }
+        var addSceneAdapter = AddSceneAdapter(this, resourceThemeBitmap, onSceneSelectedArrayList)
+        var newSceneRecyclerView = addSceneView.findViewById<RecyclerView>(R.id.new_scene_recycler_view)
+        newSceneRecyclerView.layoutManager = layoutManager
+        newSceneRecyclerView.adapter = addSceneAdapter
+        addSceneView.btn_add_scene_view_character.setOnClickListener {
+            viewContainer.removeAllViews()
+            initActorRecyclerView()
+        }
+        addSceneView.btn_add_scene_view_object.setOnClickListener {
+            initAddObjectView()
+        }
+    }
+
+    private fun initAddObjectView(){
+        viewContainer.removeAllViews()
+        var objectView = ObjectView(this)
+        objectView.setData(resourceObjectPath)
+        sceneEditView.findViewById<LayerView>(currentLayerIndex).setOnDragListener(objectDragListener())
+        viewContainer.addView(objectView)
+        objectView.layoutParams.width = monitorSize.widthPixels
+        objectView.btn_character.setOnClickListener {
+            viewContainer.removeAllViews()
+            initActorRecyclerView()
+        }
+        objectView.btn_scene.setOnClickListener {
+            initReplaceSceneView()
+        }
+    }
     private fun switchScene(position: Int): View.OnClickListener {
         return View.OnClickListener {
             var oldSceneIndex = currentSceneIndex
@@ -866,8 +963,6 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
                     sceneEditView.scene = it[currentSceneIndex]
                 }
             }
-            initControlSceneView()
-            initNavigationBarView(currentSceneIndex)
         }
     }
     private fun setActorPositionZ(actors: ArrayList<Actor>){
@@ -1065,7 +1160,7 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
                     popupView.tv_opacity_dialog_opacity.text = "Opacity : " + p1.toString() + "%"
                     project.story?.let {
                         it.scenes?.let {
-                            it[currentSceneIndex].layers[currentLayerIndex].actors[actor.positionZ].opacity = p1.toFloat().div(100)
+                            it[currentSceneIndex].layers[currentLayerIndex].actors[actor.positionZ].opacity = p1.toFloat()
                             sceneEditView.scene = it[currentSceneIndex]
                             sceneEditView.setLayerVisible(currentLayerIndex)
                         }
@@ -1082,6 +1177,75 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
             }
             sceneEditView.setLayerVisible(currentLayerIndex)
         }
+        popupView.adjustment.setOnClickListener {
+            popupWindow.dismiss()
+            var popupWindow = PopupWindow(this)
+            var popupView = LayoutInflater.from(this).inflate(R.layout.popupview_adjustment_dialog, null)
+            popupWindow.contentView = popupView
+            popupWindow.width = ViewGroup.LayoutParams.WRAP_CONTENT
+            popupWindow.height = ViewGroup.LayoutParams.WRAP_CONTENT
+            popupWindow.isOutsideTouchable = false
+            popupWindow.showAtLocation(sceneEditView, Gravity.START,actor.positionX,0)
+            popupView.sb_adjustment_dialog_hue.progress = actor.hue.toInt() + 180
+            popupView.tv_adjustment_dialog_hue.text = "Hue" + " : " + (actor.hue.toInt() + 180).toString()
+            popupView.sb_adjustment_dialog_hue.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                    popupView.tv_adjustment_dialog_hue.text = "Hue : " + p1.toString()
+                    project.story?.let {
+                        it.scenes?.let {
+                            it[currentSceneIndex].layers[currentLayerIndex].actors[actor.positionZ].hue = p1.toFloat() - 180
+                            sceneEditView.scene = it[currentSceneIndex]
+                            sceneEditView.setLayerVisible(currentLayerIndex)
+                        }
+                    }
+                }
+                override fun onStartTrackingTouch(p0: SeekBar?) {
+                }
+                override fun onStopTrackingTouch(p0: SeekBar?) {
+                }
+            })
+            popupView.tv_adjustment_dialog_done.setOnClickListener {
+                popupWindow.dismiss()
+                sceneEditView.setLayerVisible(currentLayerIndex)
+            }
+            popupView.sb_adjustment_dialog_brightness.progress = actor.brightness.toInt()
+            popupView.tv_adjustment_dialog_brightness.text = "Brightness" + " : " + actor.brightness.toInt().toString()
+            popupView.sb_adjustment_dialog_brightness.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                    popupView.tv_adjustment_dialog_brightness.text = "Brightness : " + p1.toString()
+                    project.story?.let {
+                        it.scenes?.let {
+                            it[currentSceneIndex].layers[currentLayerIndex].actors[actor.positionZ].brightness = p1.toFloat()
+                            sceneEditView.scene = it[currentSceneIndex]
+                            sceneEditView.setLayerVisible(currentLayerIndex)
+                        }
+                    }
+                }
+                override fun onStartTrackingTouch(p0: SeekBar?) {
+                }
+                override fun onStopTrackingTouch(p0: SeekBar?) {
+                }
+            })
+            popupView.sb_adjustment_dialog_saturation.progress = actor.saturation.toInt()
+            popupView.tv_adjustment_dialog_saturation.text = "Saturation" + " : " + actor.saturation.toInt().toString()
+            popupView.sb_adjustment_dialog_saturation.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
+                override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) {
+                    popupView.tv_adjustment_dialog_saturation.text = "Saturation : " + p1.toString()
+                    project.story?.let {
+                        it.scenes?.let {
+                            it[currentSceneIndex].layers[currentLayerIndex].actors[actor.positionZ].saturation = p1.toFloat()
+                            sceneEditView.scene = it[currentSceneIndex]
+                            sceneEditView.setLayerVisible(currentLayerIndex)
+                        }
+                    }
+                }
+                override fun onStartTrackingTouch(p0: SeekBar?) {
+                }
+                override fun onStopTrackingTouch(p0: SeekBar?) {
+                }
+            })
+            sceneEditView.setLayerVisible(currentLayerIndex)
+        }
         popupView.Mirror.setOnClickListener {
             project.story?.let {
                 it.scenes?.let {
@@ -1534,10 +1698,16 @@ class SceneEditActivity : AppCompatActivity(), ActorAdapter.OnActorDragListener,
     override fun onSetDialogText(dialogue: Actor, content: String) {
         project.story?.let {
             it.scenes?.let {
-                dialogue.text = content
-                it[currentSceneIndex].layers[currentLayerIndex].actors[dialogue.positionZ] = dialogue
-                setActorPositionZ(it[currentSceneIndex].layers[currentLayerIndex].actors)
-                sceneEditView.scene = it[currentSceneIndex]
+                if(content == "") {
+                    it[currentSceneIndex].layers[currentLayerIndex].actors.remove(dialogue)
+                    setActorPositionZ(it[currentSceneIndex].layers[currentLayerIndex].actors)
+                    sceneEditView.scene = it[currentSceneIndex]
+                } else {
+                    dialogue.text = content
+                    it[currentSceneIndex].layers[currentLayerIndex].actors[dialogue.positionZ] = dialogue
+                    setActorPositionZ(it[currentSceneIndex].layers[currentLayerIndex].actors)
+                    sceneEditView.scene = it[currentSceneIndex]
+                }
                 editTextDialog.dismiss()
             }
         }

+ 3 - 0
src/main/java/com/bomostory/sceneeditmodule/basicdata/Actor.kt

@@ -19,6 +19,9 @@ open class Actor {
     var isDialogue = false
     var isMirror = false
     var opacity = 1.0f
+    var hue = 0f
+    var brightness = 50f
+    var saturation =  50f
     var dialogColor = 0
     var dialogType = 0
 }

+ 17 - 0
src/main/java/com/bomostory/sceneeditmodule/navigationbar/NavigationBarView.kt

@@ -6,6 +6,7 @@ import android.view.LayoutInflater
 import android.widget.ImageButton
 import android.widget.RelativeLayout
 import com.example.tfat.myapplication.R
+import kotlinx.android.synthetic.main.control_actor_dialog.view.*
 import kotlinx.android.synthetic.main.navigation_bar_view.view.*
 
 class NavigationBarView : RelativeLayout{
@@ -58,4 +59,20 @@ class NavigationBarView : RelativeLayout{
     fun setonClickImageBtn(onClickListener: OnClickListener) {
         layout_navigation_bar_image.setOnClickListener(onClickListener)
     }
+
+    fun setBtnDisable(){
+        actor.alpha = 0.6f
+        brush.alpha = 0.6f
+        dialogue.alpha = 0.6f
+        layout_navigation_bar_image.alpha = 0.6f
+        settings.alpha = 0.6f
+    }
+
+    fun setBtnEnable(){
+        actor.alpha = 1.0f
+        brush.alpha = 1.0f
+        dialogue.alpha = 1.0f
+        layout_navigation_bar_image.alpha = 1.0f
+        settings.alpha = 1.0f
+    }
 }

+ 1 - 1
src/main/java/com/bomostory/sceneeditmodule/navigationbar/actor/ObjectAdapter.kt

@@ -20,7 +20,7 @@ class ObjectAdapter(var data: ArrayList<String>, var onTouchListeners: ArrayList
     }
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ObjectAdapter.ViewHolder {
-        val v1 = LayoutInflater.from(parent.context).inflate(R.layout.dialogue_item, parent, false)
+        val v1 = LayoutInflater.from(parent.context).inflate(R.layout.object_item, parent, false)
         return ViewHolder(v1)
     }
 

+ 4 - 0
src/main/java/com/bomostory/sceneeditmodule/navigationbar/scene/ControlSceneView.kt

@@ -32,4 +32,8 @@ class ControlSceneView : RelativeLayout {
     fun setonClickDuplicateBtn(onClickListener: OnClickListener) {
         duplicate.setOnClickListener(onClickListener)
     }
+
+    fun setOnClickDeleteBtn(onClickListener: OnClickListener){
+        btn_sceneControlView_delete.setOnClickListener(onClickListener)
+    }
 }

+ 11 - 1
src/main/java/com/bomostory/sceneeditmodule/screen/draw/DrawActivity.kt

@@ -35,7 +35,7 @@ class DrawActivity : AppCompatActivity() , FileUtils.OnSaveActorImage{
 
         viewModel = ViewModelProviders.of(this).get(DrawViewModel::class.java)
         drawView = DrawView(this)
-
+        drawView.enableUndoRedo(true)
         drawViewLayout.addView(drawView)
 
         //TODO change button to your widget
@@ -57,6 +57,8 @@ class DrawActivity : AppCompatActivity() , FileUtils.OnSaveActorImage{
         brush_view.iv_brush_view_color9.setOnClickListener(this::onColor9Selected)
         brush_view.iv_brush_view_color10.setOnClickListener(this::onColor10Selected)
         brush_view.btn_brush_view_tune.setOnClickListener(this::onTuneSelected)
+        brush_view.btn_brush_view_undo.setOnClickListener(this::onUndo)
+        brush_view.btn_brush_view_redo.setOnClickListener(this::onRedo)
         brush_view.btn_brush_view_done.setOnClickListener(this::onDoneClick)
 
         brush_view.seek_bar_brush_view_size.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
@@ -173,6 +175,14 @@ class DrawActivity : AppCompatActivity() , FileUtils.OnSaveActorImage{
         popupWindow.showAsDropDown(brush_view, 0, -valueXInPixels.toInt(), Gravity.RIGHT)
     }
 
+    private fun onUndo(view: View?){
+        drawView.undo()
+    }
+
+    private fun onRedo(view: View?){
+        drawView.redo()
+    }
+
     private fun onDoneClick(view: View?) {
         FileUtils.saveBitmapForActor(this, Gson().fromJson<Project>(intent.getStringExtra("project"), Project::class.java), drawView.drawerBitmap, System.currentTimeMillis().toString())
     }

+ 1 - 4
src/main/java/com/bomostory/sceneeditmodule/screen/view/ActorView.kt

@@ -3,13 +3,11 @@ package com.bomostory.sceneeditmodule.screen.view
 import android.content.Context
 import android.graphics.*
 import android.graphics.drawable.BitmapDrawable
-import android.graphics.drawable.Drawable
 import android.util.AttributeSet
 import android.widget.ImageView
 import com.bomostory.sceneeditmodule.DialogueDrawer
 import com.bomostory.sceneeditmodule.ImageOperation
 import com.bomostory.sceneeditmodule.basicdata.Actor
-import kotlinx.android.synthetic.main.control_actor_dialog.view.*
 import pl.droidsonroids.gif.GifDrawable
 import kotlin.math.max
 
@@ -27,8 +25,7 @@ class ActorView : ImageView {
                         setImageDrawable(gifDrawable)
                         gifDrawable?.start()
                     } else {
-                        //TODO() setImageBitmap(ImageOperation.imageoperation(BitmapFactory.decodeFile(it.resourcePath),1f,it.opacity,1f))
-                        setImageDrawable(Drawable.createFromPath(it.resourcePath))
+                        setImageBitmap(ImageOperation.imageoperation(BitmapFactory.decodeFile(it.resourcePath),it.hue,it.saturation.div(50),it.brightness.div(50)))
                     }
                 }
                 if (it.isMirror && !it.isDialogue) {

+ 6 - 0
src/main/res/drawable/ic_btn_startover.xml

@@ -0,0 +1,6 @@
+<vector android:height="24dp" android:viewportHeight="56"
+    android:viewportWidth="56" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#FFF" android:fillType="evenOdd" android:pathData="M28,28m-28,0a28,28 0,1 1,56 0a28,28 0,1 1,-56 0"/>
+    <path android:fillColor="#4E342E" android:fillType="nonZero" android:pathData="M29,19a9,9 0,0 0,-9 9h-3l4,3.99L25,28h-3c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42A8.954,8.954 0,0 0,29 37a9,9 0,0 0,0 -18z"/>
+    <path android:fillColor="#4E342E" android:fillType="nonZero" android:pathData="M28,24v5l4.25,2.52 0.77,-1.28 -3.52,-2.09V24z"/>
+</vector>

+ 16 - 0
src/main/res/drawable/ic_page.xml

@@ -0,0 +1,16 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M15,6H4v12.01h16V11h-5z"
+      android:strokeAlpha="0.3"
+      android:fillColor="#FFECB3"
+      android:fillType="evenOdd"
+      android:fillAlpha="0.3"/>
+  <path
+      android:pathData="M4,4c-1.1,0 -2,0.9 -2,2v12.01c0,1.1 0.9,1.99 2,1.99h16c1.1,0 2,-0.9 2,-2v-8l-6,-6L4,4zM20,18.01L4,18.01L4,6h11v5h5v7.01z"
+      android:fillColor="#FFECB3"
+      android:fillType="nonZero"/>
+</vector>

+ 10 - 0
src/main/res/drawable/ic_redo.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M18.4,10.6C16.55,8.99 14.15,8 11.5,8c-4.65,0 -8.58,3.03 -9.96,7.22L3.9,16a8.002,8.002 0,0 1,7.6 -5.5c1.95,0 3.73,0.72 5.12,1.88L13,16h9V7l-3.6,3.6z"
+      android:fillColor="#FFF"
+      android:fillType="evenOdd"/>
+</vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_b1.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
+    <path android:fillColor="#73E4FF" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
     <path android:fillColor="#73E4FF" android:pathData="M96,1c1.7,0 3,1.3 3,3v72c0,1.7 -1.3,3 -3,3H4c-1.7,0 -3,-1.3 -3,-3V4c0,-1.7 1.3,-3 3,-3H96"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_b2.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#73E4FF" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
     <path android:fillColor="#73E4FF" android:pathData="M50,1c27,0 49,17.5 49,39S77,79 50,79S1,61.5 1,40S23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_b3.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
+    <path android:fillColor="#73E4FF" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
     <path android:fillColor="#73E4FF" android:pathData="M91.2,1c2.3,0 4.4,0.9 5.9,2.4C98.4,4.7 99,6.3 99,8v48.2c0,3.9 -3.6,7 -7.9,7H76.2H75l0.2,1.2l2.2,13.2L60,63.3l-0.3,-0.2h-0.4H8.9c-4.4,0 -7.9,-3.1 -7.9,-7V8c0,-3.9 3.6,-7 7.9,-7H91.2"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_b4.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_b5.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="81"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#73E4FF" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
     <path android:fillColor="#73E4FF" android:pathData="M50,1c27,0 49,15.1 49,33.6c0,8.5 -4.6,16.6 -13,22.9c-8.5,6.3 -20,10.1 -32.4,10.7h-0.9v0.9c0,0.2 -0.1,4.7 3.9,9.2c-5.1,-1.2 -10.7,-3.7 -14.4,-10.1l-0.3,-0.4l-0.5,-0.1C18,65 1,51.1 1,34.6C1,16.1 23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_b6.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
+    <path android:fillColor="#73E4FF" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
     <path android:fillColor="#73E4FF" android:pathData="M50,1c27,0 49,15.4 49,34.3S77,69.6 50,69.6S1,54.2 1,35.3S23,1 50,1M85.1,65.8c2.5,0 4.6,1.5 4.6,3.4s-2.1,3.4 -4.6,3.4s-4.6,-1.5 -4.6,-3.4S82.6,65.8 85.1,65.8M90.5,75.6c1.4,0 2.7,0.8 2.7,1.7c0,0.9 -1.3,1.7 -2.7,1.7s-2.7,-0.8 -2.7,-1.7S89.1,75.6 90.5,75.6"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_b7.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_g1.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
+    <path android:fillColor="#B9FF73" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
     <path android:fillColor="#B9FF73" android:pathData="M96,1c1.7,0 3,1.3 3,3v72c0,1.7 -1.3,3 -3,3H4c-1.7,0 -3,-1.3 -3,-3V4c0,-1.7 1.3,-3 3,-3H96"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_g2.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#B9FF73" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
     <path android:fillColor="#B9FF73" android:pathData="M50,1c27,0 49,17.5 49,39S77,79 50,79S1,61.5 1,40S23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_g3.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
+    <path android:fillColor="#B9FF73" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
     <path android:fillColor="#B9FF73" android:pathData="M91.2,1c2.3,0 4.4,0.9 5.9,2.4C98.4,4.7 99,6.3 99,8v48.2c0,3.9 -3.6,7 -7.9,7H76.2H75l0.2,1.2l2.2,13.2L60,63.3l-0.3,-0.2h-0.4H8.9c-4.4,0 -7.9,-3.1 -7.9,-7V8c0,-3.9 3.6,-7 7.9,-7H91.2"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_g4.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_g5.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="81"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#B9FF73" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
     <path android:fillColor="#B9FF73" android:pathData="M50,1c27,0 49,15.1 49,33.6c0,8.5 -4.6,16.6 -13,22.9c-8.5,6.3 -20,10.1 -32.4,10.7h-0.9v0.9c0,0.2 -0.1,4.7 3.9,9.2c-5.1,-1.2 -10.7,-3.7 -14.4,-10.1l-0.3,-0.4l-0.5,-0.1C18,65 1,51.1 1,34.6C1,16.1 23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_g6.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
+    <path android:fillColor="#B9FF73" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
     <path android:fillColor="#B9FF73" android:pathData="M50,1c27,0 49,15.4 49,34.3S77,69.6 50,69.6S1,54.2 1,35.3S23,1 50,1M85.1,65.8c2.5,0 4.6,1.5 4.6,3.4s-2.1,3.4 -4.6,3.4s-4.6,-1.5 -4.6,-3.4S82.6,65.8 85.1,65.8M90.5,75.6c1.4,0 2.7,0.8 2.7,1.7c0,0.9 -1.3,1.7 -2.7,1.7s-2.7,-0.8 -2.7,-1.7S89.1,75.6 90.5,75.6"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_g7.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_r1.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
+    <path android:fillColor="#FF9573" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
     <path android:fillColor="#FF9573" android:pathData="M96,1c1.7,0 3,1.3 3,3v72c0,1.7 -1.3,3 -3,3H4c-1.7,0 -3,-1.3 -3,-3V4c0,-1.7 1.3,-3 3,-3H96"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_r2.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#FF9573" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
     <path android:fillColor="#FF9573" android:pathData="M50,1c27,0 49,17.5 49,39S77,79 50,79S1,61.5 1,40S23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_r3.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
+    <path android:fillColor="#FF9573" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
     <path android:fillColor="#FF9573" android:pathData="M91.2,1c2.3,0 4.4,0.9 5.9,2.4C98.4,4.7 99,6.3 99,8v48.2c0,3.9 -3.6,7 -7.9,7H76.2H75l0.2,1.2l2.2,13.2L60,63.3l-0.3,-0.2h-0.4H8.9c-4.4,0 -7.9,-3.1 -7.9,-7V8c0,-3.9 3.6,-7 7.9,-7H91.2"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_r4.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_r5.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="81"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#FF9573" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
     <path android:fillColor="#FF9573" android:pathData="M50,1c27,0 49,15.1 49,33.6c0,8.5 -4.6,16.6 -13,22.9c-8.5,6.3 -20,10.1 -32.4,10.7h-0.9v0.9c0,0.2 -0.1,4.7 3.9,9.2c-5.1,-1.2 -10.7,-3.7 -14.4,-10.1l-0.3,-0.4l-0.5,-0.1C18,65 1,51.1 1,34.6C1,16.1 23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_r6.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
+    <path android:fillColor="#FF9573" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
     <path android:fillColor="#FF9573" android:pathData="M50,1c27,0 49,15.4 49,34.3S77,69.6 50,69.6S1,54.2 1,35.3S23,1 50,1M85.1,65.8c2.5,0 4.6,1.5 4.6,3.4s-2.1,3.4 -4.6,3.4s-4.6,-1.5 -4.6,-3.4S82.6,65.8 85.1,65.8M90.5,75.6c1.4,0 2.7,0.8 2.7,1.7c0,0.9 -1.3,1.7 -2.7,1.7s-2.7,-0.8 -2.7,-1.7S89.1,75.6 90.5,75.6"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_r7.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_w1.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
     <path android:fillColor="#FFFFFF" android:pathData="M96,1c1.7,0 3,1.3 3,3v72c0,1.7 -1.3,3 -3,3H4c-1.7,0 -3,-1.3 -3,-3V4c0,-1.7 1.3,-3 3,-3H96"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_w2.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
     <path android:fillColor="#FFFFFF" android:pathData="M50,1c27,0 49,17.5 49,39S77,79 50,79S1,61.5 1,40S23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_w3.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
     <path android:fillColor="#FFFFFF" android:pathData="M91.2,1c2.3,0 4.4,0.9 5.9,2.4C98.4,4.7 99,6.3 99,8v48.2c0,3.9 -3.6,7 -7.9,7H76.2H75l0.2,1.2l2.2,13.2L60,63.3l-0.3,-0.2h-0.4H8.9c-4.4,0 -7.9,-3.1 -7.9,-7V8c0,-3.9 3.6,-7 7.9,-7H91.2"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_w4.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_w5.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="81"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
     <path android:fillColor="#FFFFFF" android:pathData="M50,1c27,0 49,15.1 49,33.6c0,8.5 -4.6,16.6 -13,22.9c-8.5,6.3 -20,10.1 -32.4,10.7h-0.9v0.9c0,0.2 -0.1,4.7 3.9,9.2c-5.1,-1.2 -10.7,-3.7 -14.4,-10.1l-0.3,-0.4l-0.5,-0.1C18,65 1,51.1 1,34.6C1,16.1 23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_w6.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
     <path android:fillColor="#FFFFFF" android:pathData="M50,1c27,0 49,15.4 49,34.3S77,69.6 50,69.6S1,54.2 1,35.3S23,1 50,1M85.1,65.8c2.5,0 4.6,1.5 4.6,3.4s-2.1,3.4 -4.6,3.4s-4.6,-1.5 -4.6,-3.4S82.6,65.8 85.1,65.8M90.5,75.6c1.4,0 2.7,0.8 2.7,1.7c0,0.9 -1.3,1.7 -2.7,1.7s-2.7,-0.8 -2.7,-1.7S89.1,75.6 90.5,75.6"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_w7.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_y1.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
+    <path android:fillColor="#FFF573" android:pathData="M96,0H4C1.8,0 0,1.8 0,4v72c0,2.2 1.8,4 4,4h92c2.2,0 4,-1.8 4,-4V4C100,1.8 98.2,0 96,0L96,0z"/>
     <path android:fillColor="#FFF573" android:pathData="M96,1c1.7,0 3,1.3 3,3v72c0,1.7 -1.3,3 -3,3H4c-1.7,0 -3,-1.3 -3,-3V4c0,-1.7 1.3,-3 3,-3H96"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_y2.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#FFF573" android:pathData="M50,0C22.4,0 0,17.9 0,40s22.4,40 50,40s50,-17.9 50,-40S77.6,0 50,0L50,0z"/>
     <path android:fillColor="#FFF573" android:pathData="M50,1c27,0 49,17.5 49,39S77,79 50,79S1,61.5 1,40S23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_y3.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
+    <path android:fillColor="#FFF573" android:pathData="M91.2,0H8.9C4,0 0,3.6 0,8v48.1c0,4.4 4,8 8.9,8h50.4L78.8,80l-2.6,-15.8h14.9c4.9,0 8.9,-3.6 8.9,-8V8C100.1,3.6 96.1,0 91.2,0L91.2,0z"/>
     <path android:fillColor="#FFF573" android:pathData="M91.2,1c2.3,0 4.4,0.9 5.9,2.4C98.4,4.7 99,6.3 99,8v48.2c0,3.9 -3.6,7 -7.9,7H76.2H75l0.2,1.2l2.2,13.2L60,63.3l-0.3,-0.2h-0.4H8.9c-4.4,0 -7.9,-3.1 -7.9,-7V8c0,-3.9 3.6,-7 7.9,-7H91.2"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_y4.xml


+ 1 - 1
src/main/res/drawable/ic_speechbubble_y5.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="81"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
+    <path android:fillColor="#FFF573" android:pathData="M50,0C22.4,0 0,15.5 0,34.6C0,51.8 17.8,66 41.3,68.8c4.9,8.5 13,10.4 18.4,11.2c-6.2,-4.9 -6,-10.8 -6,-10.8C79.6,67.9 100,53 100,34.6C100,15.5 77.6,0 50,0L50,0z"/>
     <path android:fillColor="#FFF573" android:pathData="M50,1c27,0 49,15.1 49,33.6c0,8.5 -4.6,16.6 -13,22.9c-8.5,6.3 -20,10.1 -32.4,10.7h-0.9v0.9c0,0.2 -0.1,4.7 3.9,9.2c-5.1,-1.2 -10.7,-3.7 -14.4,-10.1l-0.3,-0.4l-0.5,-0.1C18,65 1,51.1 1,34.6C1,16.1 23,1 50,1"/>
 </vector>

+ 1 - 1
src/main/res/drawable/ic_speechbubble_y6.xml

@@ -1,5 +1,5 @@
 <vector android:height="24dp" android:viewportHeight="80"
     android:viewportWidth="100" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillColor="#212121" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
+    <path android:fillColor="#FFF573" android:pathData="M50,0C22.4,0 0,15.8 0,35.3s22.4,35.3 50,35.3s50,-15.8 50,-35.3S77.6,0 50,0L50,0zM85.1,64.8c-3.1,0 -5.6,2 -5.6,4.4s2.5,4.4 5.6,4.4s5.6,-2 5.6,-4.4C90.7,66.7 88.2,64.8 85.1,64.8L85.1,64.8zM90.5,74.6c-2,0 -3.7,1.2 -3.7,2.7s1.7,2.7 3.7,2.7s3.7,-1.2 3.7,-2.7C94.2,75.8 92.5,74.6 90.5,74.6L90.5,74.6z"/>
     <path android:fillColor="#FFF573" android:pathData="M50,1c27,0 49,15.4 49,34.3S77,69.6 50,69.6S1,54.2 1,35.3S23,1 50,1M85.1,65.8c2.5,0 4.6,1.5 4.6,3.4s-2.1,3.4 -4.6,3.4s-4.6,-1.5 -4.6,-3.4S82.6,65.8 85.1,65.8M90.5,75.6c1.4,0 2.7,0.8 2.7,1.7c0,0.9 -1.3,1.7 -2.7,1.7s-2.7,-0.8 -2.7,-1.7S89.1,75.6 90.5,75.6"/>
 </vector>

File diff suppressed because it is too large
+ 1 - 1
src/main/res/drawable/ic_speechbubble_y7.xml


+ 10 - 0
src/main/res/drawable/ic_undo.xml

@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+  <path
+      android:pathData="M12.5,8c-2.65,0 -5.05,0.99 -6.9,2.6L2,7v9h9l-3.62,-3.62c1.39,-1.16 3.16,-1.88 5.12,-1.88 3.54,0 6.55,2.31 7.6,5.5l2.37,-0.78C21.08,11.03 17.15,8 12.5,8z"
+      android:fillColor="#FFF"
+      android:fillType="evenOdd"/>
+</vector>

+ 14 - 2
src/main/res/layout/actor_select_view.xml

@@ -21,6 +21,18 @@
             android:textAllCaps="true"
             android:drawableLeft="@drawable/ic_style"
             app:layout_constraintLeft_toLeftOf="parent"/>
+        <Button
+            android:id="@+id/btn_scene"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:textColor="#ffffff"
+            android:background="#212121"
+            android:drawableLeft="@drawable/ic_layer_bg_w"
+            android:text="Scene"
+            android:layout_marginLeft="182dp"
+            app:layout_constraintLeft_toRightOf="@id/btn_choose_theme"
+            app:layout_constraintRight_toLeftOf="@id/btn_character"/>
         <Button
             android:id="@+id/btn_character"
             android:layout_width="wrap_content"
@@ -30,8 +42,8 @@
             android:background="#212121"
             android:drawableLeft="@drawable/ic_character"
             android:text="@string/uikit_edit_character"
-            android:layout_marginLeft="250dp"
-            app:layout_constraintLeft_toRightOf="@id/btn_choose_theme"
+            android:layout_marginLeft="35dp"
+            app:layout_constraintLeft_toRightOf="@id/btn_scene"
             app:layout_constraintRight_toLeftOf="@id/btn_object"/>
         <Button
             android:id="@+id/btn_object"

+ 106 - 37
src/main/res/layout/add_scene_view.xml

@@ -1,41 +1,110 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="136dp"
-    android:orientation="vertical"
-    android:layout_above="@+id/navigation_bar"
-    android:background="#212121">
-        <RelativeLayout
-            android:layout_width="match_parent"
-            android:layout_height="40dp"
-            android:paddingLeft="16dp">
-            <Button
-                android:id="@+id/btn_add_scene_view_choose_theme"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentLeft="true"
-                android:layout_centerVertical="true"
-                android:background="#212121"
-                android:drawableStart="@drawable/ic_style"
-                android:textSize="14sp"
-                android:textColor="#ffecb3"
-                android:text="@string/uikit_edit_choose_theme"/>
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="20sp"
-                android:layout_centerHorizontal="true"
-                android:layout_centerVertical="true"
-                android:textColor="#ffffff"
-                android:textAllCaps="true"
-                android:text="@string/theme_name"/>
-        </RelativeLayout>
-        <android.support.v7.widget.RecyclerView
-            android:id="@+id/new_scene_recycler_view"
-            android:paddingLeft="8dp"
-            android:layout_width="match_parent"
-            android:layout_height="96dp"
-            android:background="#f0ebe1">
-        </android.support.v7.widget.RecyclerView>
+android:layout_width="match_parent"
+android:layout_height="200dp"
+xmlns:app="http://schemas.android.com/apk/res-auto"
+android:orientation="vertical"
+android:layout_above="@+id/navigation_bar"
+android:background="#212121">
+    <android.support.constraint.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="40dp"
+        android:paddingLeft="16dp">
+        <Button
+            android:id="@+id/btn_add_scene_view_choose_theme"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:textColor="#ffecb3"
+            android:background="#212121"
+            android:text="@string/uikit_edit_choose_theme"
+            android:drawableLeft="@drawable/ic_style"
+            app:layout_constraintLeft_toLeftOf="parent"/>
+        <Button
+            android:id="@+id/btn_add_scene_view_scene"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:textColor="#ffffff"
+            android:background="#212121"
+            android:drawableLeft="@drawable/ic_layer_bg_w"
+            android:text="Scene"
+            android:layout_marginLeft="182dp"
+            app:layout_constraintLeft_toRightOf="@id/btn_add_scene_view_choose_theme"
+            app:layout_constraintRight_toLeftOf="@id/btn_add_scene_view_character"/>
+        <Button
+            android:id="@+id/btn_add_scene_view_character"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:textColor="#ffffff"
+            android:background="#212121"
+            android:drawableLeft="@drawable/ic_character"
+            android:text="@string/uikit_edit_character"
+            android:layout_marginLeft="35dp"
+            app:layout_constraintLeft_toRightOf="@id/btn_add_scene_view_scene"
+            app:layout_constraintRight_toLeftOf="@id/btn_add_scene_view_object"/>
+        <Button
+            android:id="@+id/btn_add_scene_view_object"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:textColor="#ffffff"
+            android:background="#212121"
+            android:text="@string/uikit_edit_objects"
+            android:layout_marginLeft="35dp"
+            android:drawableLeft="@drawable/ic_object"
+            app:layout_constraintLeft_toRightOf="@id/btn_add_scene_view_character"/>
+    </android.support.constraint.ConstraintLayout>
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/new_scene_recycler_view"
+        android:paddingLeft="42dp"
+        android:layout_width="match_parent"
+        android:layout_height="160dp"
+        android:background="#f0ebe1">
+    </android.support.v7.widget.RecyclerView>
 </LinearLayout>
 
+
+
+    <!--<?xml version="1.0" encoding="utf-8"?>-->
+    <!--<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="136dp"-->
+    <!--android:orientation="vertical"-->
+    <!--android:layout_above="@+id/navigation_bar"-->
+    <!--android:background="#212121">-->
+    <!--<RelativeLayout-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="40dp"-->
+    <!--android:paddingLeft="16dp">-->
+    <!--<Button-->
+    <!--android:id="@+id/btn_add_scene_view_choose_theme"-->
+    <!--android:layout_width="wrap_content"-->
+    <!--android:layout_height="wrap_content"-->
+    <!--android:layout_alignParentLeft="true"-->
+    <!--android:layout_centerVertical="true"-->
+    <!--android:background="#212121"-->
+    <!--android:drawableStart="@drawable/ic_style"-->
+    <!--android:textSize="14sp"-->
+    <!--android:textColor="#ffecb3"-->
+    <!--android:text="@string/uikit_edit_choose_theme"/>-->
+    <!--<TextView-->
+    <!--android:layout_width="wrap_content"-->
+    <!--android:layout_height="wrap_content"-->
+    <!--android:textSize="20sp"-->
+    <!--android:layout_centerHorizontal="true"-->
+    <!--android:layout_centerVertical="true"-->
+    <!--android:textColor="#ffffff"-->
+    <!--android:textAllCaps="true"-->
+    <!--android:text="@string/theme_name"/>-->
+    <!--</RelativeLayout>-->
+    <!--<android.support.v7.widget.RecyclerView-->
+    <!--android:id="@+id/new_scene_recycler_view"-->
+    <!--android:paddingLeft="8dp"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="96dp"-->
+    <!--android:background="#f0ebe1">-->
+    <!--</android.support.v7.widget.RecyclerView>-->
+    <!--</LinearLayout>-->
+

+ 22 - 1
src/main/res/layout/control_actor_dialog.xml

@@ -26,11 +26,32 @@
             android:text="@string/uikit_edit_duplicate"/>
     </LinearLayout>
     <LinearLayout
-        android:id="@+id/opacity"
+        android:id="@+id/adjustment"
         android:layout_width="160dp"
         android:layout_height="wrap_content"
         app:layout_constraintTop_toBottomOf="@+id/duplicate"
         android:orientation="horizontal">
+        <ImageView
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:layout_marginTop="20dp"
+            android:layout_marginLeft="16dp"
+            android:background="#ffffff"
+            android:src="@drawable/ic_adjustment"/>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="24dp"
+            android:layout_marginTop="20dp"
+            android:layout_marginLeft="16dp"
+            android:background="#ffffff"
+            android:text="@string/uikit_edit_adjustment"/>
+    </LinearLayout>
+    <LinearLayout
+        android:id="@+id/opacity"
+        android:layout_width="160dp"
+        android:layout_height="wrap_content"
+        app:layout_constraintTop_toBottomOf="@+id/adjustment"
+        android:orientation="horizontal">
         <ImageView
             android:layout_width="24dp"
             android:layout_height="24dp"

+ 2 - 2
src/main/res/layout/item_add_scene.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <ImageView
     android:id="@+id/new_scene_image"
-    android:layout_marginTop="12dp"
+    android:layout_marginTop="40dp"
     android:layout_width="144dp"
-    android:layout_height="72dp"
+    android:layout_height="80dp"
     android:layout_marginRight="8dp"
     xmlns:android="http://schemas.android.com/apk/res/android" />
 

+ 2 - 2
src/main/res/layout/navigation_bar_view.xml

@@ -21,7 +21,7 @@
                 android:scaleType="center"
                 android:background="#212121"
                 android:layout_centerHorizontal="true"
-                android:src="@drawable/ic_scene"/>
+                android:src="@drawable/ic_page"/>
             <TextView
                 android:id="@+id/scene_text"
                 android:layout_width="wrap_content"
@@ -44,7 +44,7 @@
                 android:scaleType="center"
                 android:background="#212121"
                 android:layout_centerHorizontal="true"
-                android:src="@drawable/ic_actor"/>
+                android:src="@drawable/ic_scene"/>
             <TextView
                 android:id="@+id/actor_text"
                 android:layout_width="wrap_content"

+ 14 - 0
src/main/res/layout/object_item.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/actor"
+    android:layout_marginTop="40dp"
+    android:paddingRight="42dp"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+    <ImageView
+        android:id="@+id/actor_image"
+        android:scaleType="fitXY"
+        android:layout_width="100dp"
+        android:layout_height="80dp"/>
+</LinearLayout>

+ 14 - 2
src/main/res/layout/object_select_view.xml

@@ -20,6 +20,18 @@
             android:text="@string/uikit_edit_choose_theme"
             android:drawableLeft="@drawable/ic_style"
             app:layout_constraintLeft_toLeftOf="parent"/>
+        <Button
+            android:id="@+id/btn_scene"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="14sp"
+            android:textColor="#ffffff"
+            android:background="#212121"
+            android:drawableLeft="@drawable/ic_layer_bg_w"
+            android:text="Scene"
+            android:layout_marginLeft="182dp"
+            app:layout_constraintLeft_toRightOf="@id/btn_choose_theme"
+            app:layout_constraintRight_toLeftOf="@id/btn_character"/>
         <Button
             android:id="@+id/btn_character"
             android:layout_width="wrap_content"
@@ -29,8 +41,8 @@
             android:background="#212121"
             android:drawableLeft="@drawable/ic_character"
             android:text="@string/uikit_edit_character"
-            android:layout_marginLeft="250dp"
-            app:layout_constraintLeft_toRightOf="@id/btn_choose_theme"
+            android:layout_marginLeft="35dp"
+            app:layout_constraintLeft_toRightOf="@id/btn_scene"
             app:layout_constraintRight_toLeftOf="@id/btn_object"/>
         <Button
             android:id="@+id/btn_object"

+ 74 - 0
src/main/res/layout/popupview_adjustment_dialog.xml

@@ -0,0 +1,74 @@
+<?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"
+    android:layout_width="360dp"
+    android:layout_height="wrap_content"
+    android:background="@drawable/bg_white_card_rounded_8"
+    android:elevation="2dp">
+    <TextView
+        android:id="@+id/tv_adjustment_dialog_hue"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="24dp"
+        android:layout_marginLeft="24dp"
+        android:layout_marginBottom="24dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+    <android.support.v7.widget.AppCompatSeekBar
+        android:id="@+id/sb_adjustment_dialog_hue"
+        android:layout_width="268dp"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp"
+        android:max="360"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_adjustment_dialog_hue"/>
+
+    <TextView
+        android:id="@+id/tv_adjustment_dialog_brightness"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="24dp"
+        android:layout_marginLeft="24dp"
+        android:layout_marginBottom="24dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/sb_adjustment_dialog_saturation"/>
+
+    <android.support.v7.widget.AppCompatSeekBar
+        android:id="@+id/sb_adjustment_dialog_brightness"
+        android:layout_width="268dp"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="10dp"
+        android:max="100"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_adjustment_dialog_brightness"/>
+
+    <TextView
+        android:id="@+id/tv_adjustment_dialog_saturation"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="24dp"
+        android:layout_marginLeft="24dp"
+        android:layout_marginBottom="24dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/sb_adjustment_dialog_hue"/>
+
+    <android.support.v7.widget.AppCompatSeekBar
+        android:id="@+id/sb_adjustment_dialog_saturation"
+        android:layout_width="268dp"
+        android:layout_height="20dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/tv_adjustment_dialog_saturation" />
+
+    <TextView
+        android:id="@+id/tv_adjustment_dialog_done"
+        android:text="@string/uikit_edit_done"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="30dp"
+        android:layout_marginRight="10dp"
+        android:layout_marginBottom="10dp"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/sb_adjustment_dialog_brightness"
+        app:layout_constraintBottom_toBottomOf="parent"/>
+
+</android.support.constraint.ConstraintLayout>

+ 57 - 0
src/main/res/layout/popupview_start_over.xml

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="328dp"
+    android:layout_height="220dp"
+    android:background="@drawable/btn_round_corner_white"
+    android:padding="24dp"
+    android:orientation="vertical">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text = "@string/uikit_edit_start_over"
+        android:textColor="#de000000"
+        android:textSize="20sp"
+        android:paddingBottom="24dp"/>
+    <RadioGroup
+        android:id="@+id/rg_start_over_settings"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+        <RadioButton
+            android:id="@+id/rb_keep"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#4e342e"
+            android:textSize="16sp"
+            android:text="@string/uikit_edit_start_over_keep_objects"
+            android:checked="true"/>
+        <RadioButton
+            android:id="@+id/rb_clear_all"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#4e342e"
+            android:textSize="16sp"
+            android:text="@string/uikit_edit_start_over_clear_all" />
+    </RadioGroup>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="right"
+        android:orientation="horizontal">
+        <TextView
+            android:id="@+id/tv_popup_start_over_cancel"
+            android:text="@string/uikit_edit_cancel"
+            android:textColor="#4e342e"
+            android:textSize="14sp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+        <TextView
+            android:id="@+id/tv_popup_start_over_start_over"
+            android:text="@string/uikit_edit_start_over"
+            android:layout_marginLeft="16dp"
+            android:textColor="#4e342e"
+            android:textSize="14sp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+    </LinearLayout>
+</LinearLayout>

+ 29 - 3
src/main/res/layout/scene_brush_view.xml

@@ -77,7 +77,7 @@
 
     <android.support.v7.widget.AppCompatSeekBar
         android:id="@+id/seek_bar_brush_view_size"
-        android:layout_width="240dp"
+        android:layout_width="180dp"
         android:layout_height="wrap_content"
         android:layout_marginLeft="36dp"
         app:layout_constraintHorizontal_bias="0.5"
@@ -194,12 +194,38 @@
         android:id="@+id/btn_brush_view_tune"
         android:layout_width="30dp"
         android:layout_height="30dp"
-        android:layout_marginLeft="24dp"
-        android:layout_marginRight="24dp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="8dp"
         android:background="#212121"
         android:drawableStart="@drawable/ic_tune"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toRightOf="@+id/iv_brush_view_color5"
+        app:layout_constraintRight_toLeftOf="@+id/btn_brush_view_undo"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <Button
+        android:id="@+id/btn_brush_view_undo"
+        android:layout_width="30dp"
+        android:layout_height="30dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginRight="8dp"
+        android:background="#212121"
+        android:drawableStart="@drawable/ic_undo"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/btn_brush_view_tune"
+        app:layout_constraintRight_toLeftOf="@+id/btn_brush_view_redo"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <Button
+        android:id="@+id/btn_brush_view_redo"
+        android:layout_width="30dp"
+        android:layout_height="30dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginRight="16dp"
+        android:background="#212121"
+        android:drawableStart="@drawable/ic_redo"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toRightOf="@+id/btn_brush_view_undo"
         app:layout_constraintRight_toLeftOf="@+id/btn_brush_view_done"
         app:layout_constraintTop_toTopOf="parent" />
 

+ 14 - 2
src/main/res/layout/scene_control_view.xml

@@ -7,7 +7,7 @@
 
     <android.support.v7.widget.RecyclerView
         android:id="@+id/scene_recycler_view"
-        android:layout_width="800dp"
+        android:layout_width="700dp"
         android:layout_height="120dp"
         android:layout_marginStart="40dp"
         android:layout_marginEnd="20dp"
@@ -32,11 +32,23 @@
         android:layout_width="96dp"
         android:layout_height="64dp"
         android:layout_marginTop="36dp"
-        android:layout_marginEnd="24dp"
         android:background="@null"
         android:drawableTop="@drawable/ic_add_w"
         android:text="@string/new_page"
         android:textColor="@android:color/white"
+        app:layout_constraintRight_toLeftOf="@id/btn_sceneControlView_delete"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <Button
+        android:id="@+id/btn_sceneControlView_delete"
+        android:layout_width="96dp"
+        android:layout_height="64dp"
+        android:layout_marginTop="36dp"
+        android:layout_marginEnd="24dp"
+        android:background="@null"
+        android:drawableTop="@drawable/ic_delete_w"
+        android:text="@string/uikit_home_delete"
+        android:textColor="@android:color/white"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 

+ 2 - 1
src/main/res/layout/view_control_dialogue_dialog.xml

@@ -64,7 +64,8 @@
             android:layout_height="24dp"
             android:layout_marginTop="20dp"
             android:layout_marginLeft="16dp"
-            android:background="#ffffff"/>
+            android:background="#ffffff"
+            android:text="@string/color"/>
     </LinearLayout>
     <LinearLayout
         android:id="@+id/Mirror_dialogue"

+ 4 - 0
src/main/res/values/dimens.xml

@@ -24,4 +24,8 @@
     <dimen name="share_dialog_screenshot_height">72dp</dimen>
 
     <dimen name="popup_view_set_color_height">288dp</dimen>
+
+    <dimen name="popup_view_start_over_width">324dp</dimen>
+    <dimen name="popup_view_start_over_height">220dp</dimen>
+    <dimen name="popup_view_start_over_padding_bottom">146dp</dimen>
 </resources>