diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
deleted file mode 100644
index af25281..0000000
--- a/.github/workflows/android.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Android CI
-
-on:
- push:
- branches: [ main ]
- pull_request:
- branches: [ main ]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: set up JDK 11
- uses: actions/setup-java@v2
- with:
- java-version: '11'
- distribution: 'adopt'
- cache: gradle
-
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
- - name: Build with Gradle
- run: ./gradlew build
diff --git a/.gitignore b/.gitignore
index 48ca741..3080a21 100644
--- a/.gitignore
+++ b/.gitignore
@@ -102,4 +102,7 @@ lint/tmp/
# Android Profiling
*.hprof
+.github
+.gradle
+.idea
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index b3405b3..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-My Application
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 659bf43..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 79f8ffc..0000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 2fde434..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/render.experimental.xml b/.idea/render.experimental.xml
deleted file mode 100644
index 8ec256a..0000000
--- a/.idea/render.experimental.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/5/05efc8b1657769a27696d478ded1e95f38737233 b/.idea/sonarlint/issuestore/0/5/05efc8b1657769a27696d478ded1e95f38737233
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/0/7/0712df971a99ac4d2fccb8e0fb19f377f3374cca b/.idea/sonarlint/issuestore/0/7/0712df971a99ac4d2fccb8e0fb19f377f3374cca
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/0/b/0bbca1fce58c1574d151410dedc43bd8845e570a b/.idea/sonarlint/issuestore/0/b/0bbca1fce58c1574d151410dedc43bd8845e570a
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/0/e/0ea912a2dd24155bafaca6ab0ba9523d285bd9b0 b/.idea/sonarlint/issuestore/0/e/0ea912a2dd24155bafaca6ab0ba9523d285bd9b0
deleted file mode 100644
index fc8636c..0000000
--- a/.idea/sonarlint/issuestore/0/e/0ea912a2dd24155bafaca6ab0ba9523d285bd9b0
+++ /dev/null
@@ -1,24 +0,0 @@
-
-l
-java:S1450#"VRemove the "binding" field and declare it as a local variable in the relevant methods.(
-y
-java:S1450""cRemove the "mAppBarConfiguration" field and declare it as a local variable in the relevant methods.(
-V java:S125$""
-java:S1604E"(Make this anonymous inner class a lambda(ف
-X
-java:S2259}"BA "NullPointerException" could be thrown; "data" is nullable here.(Nj
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/3/139d6f77a700c717c531cd2a91a203e046e4580f b/.idea/sonarlint/issuestore/1/3/139d6f77a700c717c531cd2a91a203e046e4580f
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/1/4/14da63fecc3ad2d75320fdbf2e7e60609130896c b/.idea/sonarlint/issuestore/1/4/14da63fecc3ad2d75320fdbf2e7e60609130896c
deleted file mode 100644
index 5a2b820..0000000
--- a/.idea/sonarlint/issuestore/1/4/14da63fecc3ad2d75320fdbf2e7e60609130896c
+++ /dev/null
@@ -1,19 +0,0 @@
-
-e java:S116("PRename this field "_this" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(հ
-V java:S125-"
-java:S1604J"(Make this anonymous inner class a lambda(ľ
-C
-java:S1604R"(Make this anonymous inner class a lambda(ԉ
->
-java:S1604h"(Make this anonymous inner class a lambda(
->
-java:S1604p"(Make this anonymous inner class a lambda(
-D
-java:S1604"(Make this anonymous inner class a lambda(п
-t java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(Ȝ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/a/1a18a1607bcd16c4a665de98665c909bd5239579 b/.idea/sonarlint/issuestore/1/a/1a18a1607bcd16c4a665de98665c909bd5239579
deleted file mode 100644
index 2c8e51e..0000000
--- a/.idea/sonarlint/issuestore/1/a/1a18a1607bcd16c4a665de98665c909bd5239579
+++ /dev/null
@@ -1,6 +0,0 @@
-
-e java:S116."PRename this field "Image" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Щ
-d java:S116/"ORename this field "Name" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ɸ
-t
-java:S1488"^Immediately return this expression instead of assigning it to the temporary variable "holder".(
-t java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/b/1b33e08024daf5453641a3d53e46e2d5f6b8aa08 b/.idea/sonarlint/issuestore/1/b/1b33e08024daf5453641a3d53e46e2d5f6b8aa08
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/2/0/200ce018dd283f7e24213be1a9b45836adcded59 b/.idea/sonarlint/issuestore/2/0/200ce018dd283f7e24213be1a9b45836adcded59
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/2/7/27131eceab8a4ea5bf0952a2f198d34125ef409f b/.idea/sonarlint/issuestore/2/7/27131eceab8a4ea5bf0952a2f198d34125ef409f
deleted file mode 100644
index 3ad64d6..0000000
--- a/.idea/sonarlint/issuestore/2/7/27131eceab8a4ea5bf0952a2f198d34125ef409f
+++ /dev/null
@@ -1,4 +0,0 @@
-
-U
-java:S1118":Add a private constructor to hide the implicit public one.(
-t java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ߓ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/a/2afbb999f001938c88fa43fc2ef52abf0f8213e4 b/.idea/sonarlint/issuestore/2/a/2afbb999f001938c88fa43fc2ef52abf0f8213e4
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/2/b/2b31c6718b25f4d68b835ab56e279670da563e5c b/.idea/sonarlint/issuestore/2/b/2b31c6718b25f4d68b835ab56e279670da563e5c
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/3/7/37061ddf9e78d1e57372c6e196bc7d8775492686 b/.idea/sonarlint/issuestore/3/7/37061ddf9e78d1e57372c6e196bc7d8775492686
deleted file mode 100644
index fd7fb60..0000000
--- a/.idea/sonarlint/issuestore/3/7/37061ddf9e78d1e57372c6e196bc7d8775492686
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-java:S1186"Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ث
-o
-java:S2293"YReplace the type specification in this constructor call with the diamond operator ("<>").(
-o
-java:S2293+"YReplace the type specification in this constructor call with the diamond operator ("<>").(
-o
-java:S2293="YReplace the type specification in this constructor call with the diamond operator ("<>").(
-o
-java:S2293O"YReplace the type specification in this constructor call with the diamond operator ("<>").(
-o
-java:S2293a"YReplace the type specification in this constructor call with the diamond operator ("<>").(
-o
-java:S2293s"YReplace the type specification in this constructor call with the diamond operator ("<>").(
-i java:S100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(͈
-\
-java:S1192 "FDefine a constant instead of duplicating this literal "image" 6 times.(
-f java:S117 "QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-f java:S1170"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-f java:S117B"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-f java:S117T"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-f java:S117f"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-f java:S117x"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-o java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(տ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/b/3bcd8948f9b3e5414c803e71417afd3a3b60ac12 b/.idea/sonarlint/issuestore/3/b/3bcd8948f9b3e5414c803e71417afd3a3b60ac12
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/4/8/4854119de32242a488335cbb0e07fdc8d6fa9416 b/.idea/sonarlint/issuestore/4/8/4854119de32242a488335cbb0e07fdc8d6fa9416
deleted file mode 100644
index d8be1b6..0000000
--- a/.idea/sonarlint/issuestore/4/8/4854119de32242a488335cbb0e07fdc8d6fa9416
+++ /dev/null
@@ -1,5 +0,0 @@
-
->kotlin:S125"Remove this commented out code.(ء8ҷԻ/
-mkotlin:S1871"MThis branch's code block is the same as the block for the branch on line 208.(8Ի/
-rkotlin:S3776"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(8Ի/
-tkotlin:S117"QRename this parameter to match the regular expression "^`?[_a-z][a-zA-Z0-9]*`?$".(8Ի/
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/4/c/4c38ac75e1f6fe535d5e10d88743a95943ff2ebc b/.idea/sonarlint/issuestore/4/c/4c38ac75e1f6fe535d5e10d88743a95943ff2ebc
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/5/7/575a6e111f1d2495aa76d549ae7962be3af225e1 b/.idea/sonarlint/issuestore/5/7/575a6e111f1d2495aa76d549ae7962be3af225e1
deleted file mode 100644
index 3f42cef..0000000
--- a/.idea/sonarlint/issuestore/5/7/575a6e111f1d2495aa76d549ae7962be3af225e1
+++ /dev/null
@@ -1,67 +0,0 @@
-
-v java:S116&"\Rename this field "ColorizedImageUri" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-j java:S116'"PRename this field "_this" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-P java:S125:"
-java:S16044"(Make this anonymous inner class a lambda(彚
->
-java:S1604C"(Make this anonymous inner class a lambda(
-D
-java:S1604"(Make this anonymous inner class a lambda(
-?
-java:S1604"(Make this anonymous inner class a lambda(Ք
-?
-java:S1604"(Make this anonymous inner class a lambda(
-?
-java:S1604"(Make this anonymous inner class a lambda(ݎ
-D
-java:S1604"(Make this anonymous inner class a lambda(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/6/5/650cf1d4607eb972ef8aae9c988291baedfff89a b/.idea/sonarlint/issuestore/6/5/650cf1d4607eb972ef8aae9c988291baedfff89a
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/7/1/71c8a3b40ad8217cf0741be9a74959fe1b5f8447 b/.idea/sonarlint/issuestore/7/1/71c8a3b40ad8217cf0741be9a74959fe1b5f8447
deleted file mode 100644
index ca6b065..0000000
--- a/.idea/sonarlint/issuestore/7/1/71c8a3b40ad8217cf0741be9a74959fe1b5f8447
+++ /dev/null
@@ -1,25 +0,0 @@
-
-x java:S116"cRename this field "ImageLayer1_Right_Bitmap" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ќ
-x java:S116"cRename this field "ImageLayer2_Right_Bitmap" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-x java:S116"^Rename this field "Right_Bitmap_Source" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(
-Q java:S125#"
-java:S1905"(Remove this unnecessary cast to "float".(喼
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/0/c05b3fd56054fe5cfc2b6809bfc47b79696afade b/.idea/sonarlint/issuestore/c/0/c05b3fd56054fe5cfc2b6809bfc47b79696afade
deleted file mode 100644
index ef85ccd..0000000
--- a/.idea/sonarlint/issuestore/c/0/c05b3fd56054fe5cfc2b6809bfc47b79696afade
+++ /dev/null
@@ -1,32 +0,0 @@
-
-w java:S116,"[Rename this field "imageLayer1_Left" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8ͪ/
-x java:S116,"\Rename this field "imageLayer2_Right" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8ͪ/
-q java:S1162"PRename this field "_this" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(8ͪ/
-L
-java:S1659,"/Declare "imageLayer2_Right" on a separate line.(8ͪ/
-] java:S125y"
-java:S1604"(Make this anonymous inner class a lambda(î
-o java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(Ή٣
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/e/f/ef6ccde8e7fa2b78385ed5198e60d947b8d81cf0 b/.idea/sonarlint/issuestore/e/f/ef6ccde8e7fa2b78385ed5198e60d947b8d81cf0
deleted file mode 100644
index 6ab56d2..0000000
--- a/.idea/sonarlint/issuestore/e/f/ef6ccde8e7fa2b78385ed5198e60d947b8d81cf0
+++ /dev/null
@@ -1,2 +0,0 @@
-
-o java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/e/f/efe9c47951c71a6e800c12a630112a62300c63e7 b/.idea/sonarlint/issuestore/e/f/efe9c47951c71a6e800c12a630112a62300c63e7
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/f/2/f2bc4af40b8605453a29b2bb575e64d10e8ee6f4 b/.idea/sonarlint/issuestore/f/2/f2bc4af40b8605453a29b2bb575e64d10e8ee6f4
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/f/6/f676dd1c094e16d3013166b61befdfba0c8897ee b/.idea/sonarlint/issuestore/f/6/f676dd1c094e16d3013166b61befdfba0c8897ee
deleted file mode 100644
index 3535eaa..0000000
--- a/.idea/sonarlint/issuestore/f/6/f676dd1c094e16d3013166b61befdfba0c8897ee
+++ /dev/null
@@ -1,5 +0,0 @@
-
-7kotlin:S125"Remove this commented out code.(ء
-fkotlin:S1871"MThis branch's code block is the same as the block for the branch on line 212.(
-kkotlin:S3776"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(
-mkotlin:S117#"QRename this parameter to match the regular expression "^`?[_a-z][a-zA-Z0-9]*`?$".(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/7/f7d2124b097a4fe8d23dbb70b710daecffd200e0 b/.idea/sonarlint/issuestore/f/7/f7d2124b097a4fe8d23dbb70b710daecffd200e0
deleted file mode 100644
index 9ce1beb..0000000
--- a/.idea/sonarlint/issuestore/f/7/f7d2124b097a4fe8d23dbb70b710daecffd200e0
+++ /dev/null
@@ -1,3 +0,0 @@
-
-Fkotlin:S108")Either remove or fill this block of code.(ߝ
-jkotlin:S3776"RRefactor this method to reduce its Cognitive Complexity from 24 to the 15 allowed.(
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/8/f896eef244dde91f95e9b488db64b7fb2ce6f771 b/.idea/sonarlint/issuestore/f/8/f896eef244dde91f95e9b488db64b7fb2ce6f771
deleted file mode 100644
index e69de29..0000000
diff --git a/.idea/sonarlint/issuestore/f/8/f8ff55332c4a1e6be14e6ec8d11db039ec4aa823 b/.idea/sonarlint/issuestore/f/8/f8ff55332c4a1e6be14e6ec8d11db039ec4aa823
deleted file mode 100644
index 321db0b..0000000
--- a/.idea/sonarlint/issuestore/f/8/f8ff55332c4a1e6be14e6ec8d11db039ec4aa823
+++ /dev/null
@@ -1,2 +0,0 @@
-
-t java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(Ą
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/9/f98ac8c0a346127fc26db98bcd74cff16f49b38b b/.idea/sonarlint/issuestore/f/9/f98ac8c0a346127fc26db98bcd74cff16f49b38b
deleted file mode 100644
index 293bf2f..0000000
--- a/.idea/sonarlint/issuestore/f/9/f98ac8c0a346127fc26db98bcd74cff16f49b38b
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-java:S1186-"Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ԃ8Ž/
-
-java:S11867"Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(8Ž/
-X java:S125<"