diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6e72fc9..2e1811c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@ patch-level version changes can be found in [commit messages](../../commits/mast
- Update navbar theme (dark/light rather than the app accent colour)
- Update dependencies
- Update tutorial location to [Tutorials](/documentation/tutorials)
+- Update tutorial
## 20220128 - 2022/01/28
diff --git a/README.md b/README.md
index 044428b..22271d1 100644
--- a/README.md
+++ b/README.md
@@ -117,7 +117,7 @@ Android SDK. Additional information can be found at
1. Open the F-Droid app
2. Search for EweSticker
-**Or**
+or
[
](https://f-droid.org/en/packages/com.fredhappyface.ewesticker/)
@@ -130,7 +130,7 @@ then download/ install
1. Open the Google Play app
2. Search for EweSticker
-**Or**
+or
[
](https://play.google.com/store/apps/details?id=com.fredhappyface.ewesticker)
@@ -144,7 +144,7 @@ then download/ install
2. Select the debug or release APK depending on your preference. Note that the
filenames are in the form: com.fredhappyface.ewesticker-(version)-(debug|release).apk
-**Or**
+or
[
](../../releases)
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 22a25ff..13802eb 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -13,6 +13,7 @@ tasks.dokkaGfm.configure {
skipEmptyPackages.set(true)
sourceRoots.from(file("src/main/java"))
suppressInheritedMembers.set(true)
+ includeNonPublic.set(true)
}
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8d395da..8f90376 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -8,7 +8,9 @@
android:label="@string/app_name"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning"
- android:dataExtractionRules="@xml/data_extraction_rules" tools:targetApi="s">
+ android:dataExtractionRules="@xml/data_extraction_rules"
+ android:fullBackupContent="@xml/full_backup_content"
+ tools:targetApi="s">
-
\ No newline at end of file
+
diff --git a/app/src/main/res/xml/full_backup_content.xml b/app/src/main/res/xml/full_backup_content.xml
new file mode 100644
index 0000000..f67701f
--- /dev/null
+++ b/app/src/main/res/xml/full_backup_content.xml
@@ -0,0 +1,2 @@
+
+
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-cache/data.md b/documentation/reference/app/com.fredhappyface.ewesticker/-cache/data.md
new file mode 100644
index 0000000..846bab2
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-cache/data.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[Cache](index.md)/[data](data.md)
+
+# data
+
+[androidJvm]\
+private var [data](data.md): [LinkedList](https://developer.android.com/reference/kotlin/java/util/LinkedList.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-cache/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-cache/index.md
index 8e3074c..75ee8a2 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-cache/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-cache/index.md
@@ -22,3 +22,10 @@ Basically this behaved like an ordered set with some maximum capacity. When this
| [get](get.md) | [androidJvm]
fun [get](get.md)(idx: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html))
Get an element |
| [toFiles](to-files.md) | [androidJvm]
fun [toFiles](to-files.md)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[File](https://developer.android.com/reference/kotlin/java/io/File.html)>
convert this to a array of files |
| [toSharedPref](to-shared-pref.md) | [androidJvm]
fun [toSharedPref](to-shared-pref.md)(): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
convert this to a string to write to shared-pref |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [data](data.md) | [androidJvm]
private var [data](data.md): [LinkedList](https://developer.android.com/reference/kotlin/java/util/LinkedList.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)> |
+| [size](size.md) | [androidJvm]
private val [size](size.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 30 |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-cache/size.md b/documentation/reference/app/com.fredhappyface.ewesticker/-cache/size.md
new file mode 100644
index 0000000..1cff797
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-cache/size.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[Cache](index.md)/[size](size.md)
+
+# size
+
+[androidJvm]\
+private val [size](size.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 30
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/active-pack.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/active-pack.md
new file mode 100644
index 0000000..46a7c8e
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/active-pack.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[activePack](active-pack.md)
+
+# activePack
+
+[androidJvm]\
+private var [activePack](active-pack.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/add-pack-button.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/add-pack-button.md
new file mode 100644
index 0000000..3c83839
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/add-pack-button.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[addPackButton](add-pack-button.md)
+
+# addPackButton
+
+[androidJvm]\
+private fun [addPackButton](add-pack-button.md)(tag: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)): [ImageButton](https://developer.android.com/reference/kotlin/android/widget/ImageButton.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/compat-cache.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/compat-cache.md
new file mode 100644
index 0000000..70f9210
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/compat-cache.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[compatCache](compat-cache.md)
+
+# compatCache
+
+[androidJvm]\
+private var [compatCache](compat-cache.md): [Cache](../-cache/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-pack-icons.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-pack-icons.md
new file mode 100644
index 0000000..1b8d967
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-pack-icons.md
@@ -0,0 +1,8 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[createPackIcons](create-pack-icons.md)
+
+# createPackIcons
+
+[androidJvm]\
+private fun [createPackIcons](create-pack-icons.md)()
+
+Create the pack icons (image buttons) that when tapped switch the pack (switchPackLayout)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-pack-layout.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-pack-layout.md
new file mode 100644
index 0000000..d4c95ba
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-pack-layout.md
@@ -0,0 +1,16 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[createPackLayout](create-pack-layout.md)
+
+# createPackLayout
+
+[androidJvm]\
+private fun [createPackLayout](create-pack-layout.md)(stickers: [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[File](https://developer.android.com/reference/kotlin/java/io/File.html)>): [FrameLayout](https://developer.android.com/reference/kotlin/android/widget/FrameLayout.html)
+
+Create the pack layout (called by switchPackLayout if the FrameLayout is not cached)
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| stickers | |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-partial-pack-layout.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-partial-pack-layout.md
new file mode 100644
index 0000000..6d6a497
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/create-partial-pack-layout.md
@@ -0,0 +1,12 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[createPartialPackLayout](create-partial-pack-layout.md)
+
+# createPartialPackLayout
+
+[androidJvm]\
+private fun [createPartialPackLayout](create-partial-pack-layout.md)(): [Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)<[FrameLayout](https://developer.android.com/reference/kotlin/android/widget/FrameLayout.html), [GridLayout](https://developer.android.com/reference/kotlin/androidx/gridlayout/widget/GridLayout.html)>
+
+Create the initial pack layout (the pack container and the grid)
+
+#### Return
+
+Pair packContainer to pack
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/full-icon-size.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/full-icon-size.md
new file mode 100644
index 0000000..c660e3b
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/full-icon-size.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[fullIconSize](full-icon-size.md)
+
+# fullIconSize
+
+[androidJvm]\
+private var [fullIconSize](full-icon-size.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/icon-size.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/icon-size.md
new file mode 100644
index 0000000..d249047
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/icon-size.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[iconSize](icon-size.md)
+
+# iconSize
+
+[androidJvm]\
+private var [iconSize](icon-size.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/icons-per-x.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/icons-per-x.md
new file mode 100644
index 0000000..6330e9b
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/icons-per-x.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[iconsPerX](icons-per-x.md)
+
+# iconsPerX
+
+[androidJvm]\
+private var [iconsPerX](icons-per-x.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/image-container-cache.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/image-container-cache.md
new file mode 100644
index 0000000..d695f62
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/image-container-cache.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[imageContainerCache](image-container-cache.md)
+
+# imageContainerCache
+
+[androidJvm]\
+private var [imageContainerCache](image-container-cache.md): [HashMap](https://developer.android.com/reference/kotlin/java/util/HashMap.html)<[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), [FrameLayout](https://developer.android.com/reference/kotlin/android/widget/FrameLayout.html)>
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/index.md
index 527bf94..0e58293 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/index.md
@@ -17,8 +17,36 @@ ImageKeyboard class inherits from the InputMethodService class - provides the ke
| Name | Summary |
|---|---|
+| [addPackButton](add-pack-button.md) | [androidJvm]
private fun [addPackButton](add-pack-button.md)(tag: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)): [ImageButton](https://developer.android.com/reference/kotlin/android/widget/ImageButton.html) |
+| [createPackIcons](create-pack-icons.md) | [androidJvm]
private fun [createPackIcons](create-pack-icons.md)()
Create the pack icons (image buttons) that when tapped switch the pack (switchPackLayout) |
+| [createPackLayout](create-pack-layout.md) | [androidJvm]
private fun [createPackLayout](create-pack-layout.md)(stickers: [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[File](https://developer.android.com/reference/kotlin/java/io/File.html)>): [FrameLayout](https://developer.android.com/reference/kotlin/android/widget/FrameLayout.html)
Create the pack layout (called by switchPackLayout if the FrameLayout is not cached) |
+| [createPartialPackLayout](create-partial-pack-layout.md) | [androidJvm]
private fun [createPartialPackLayout](create-partial-pack-layout.md)(): [Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)<[FrameLayout](https://developer.android.com/reference/kotlin/android/widget/FrameLayout.html), [GridLayout](https://developer.android.com/reference/kotlin/androidx/gridlayout/widget/GridLayout.html)>
Create the initial pack layout (the pack container and the grid) |
| [onCreate](on-create.md) | [androidJvm]
open override fun [onCreate](on-create.md)()
When the activity is created... |
| [onCreateInputView](on-create-input-view.md) | [androidJvm]
open override fun [onCreateInputView](on-create-input-view.md)(): [View](https://developer.android.com/reference/kotlin/android/view/View.html)
When the keyboard is first drawn... |
| [onEvaluateFullscreenMode](on-evaluate-fullscreen-mode.md) | [androidJvm]
open override fun [onEvaluateFullscreenMode](on-evaluate-fullscreen-mode.md)(): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
Disable full-screen mode as content will likely be hidden by the IME. |
| [onFinishInput](on-finish-input.md) | [androidJvm]
open override fun [onFinishInput](on-finish-input.md)()
When leaving some input field update the caches |
| [onStartInput](on-start-input.md) | [androidJvm]
open override fun [onStartInput](on-start-input.md)(info: [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?, restarting: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
When entering some input field update the list of supported-mimes |
+| [switchPackLayout](switch-pack-layout.md) | [androidJvm]
private fun [switchPackLayout](switch-pack-layout.md)(packName: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
Swap the pack layout every time a pack is selected. If already cached use that otherwise create the pack layout |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [activePack](active-pack.md) | [androidJvm]
private var [activePack](active-pack.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [compatCache](compat-cache.md) | [androidJvm]
private var [compatCache](compat-cache.md): [Cache](../-cache/index.md) |
+| [fullIconSize](full-icon-size.md) | [androidJvm]
private var [fullIconSize](full-icon-size.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
+| [iconSize](icon-size.md) | [androidJvm]
private var [iconSize](icon-size.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
+| [iconsPerX](icons-per-x.md) | [androidJvm]
private var [iconsPerX](icons-per-x.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
+| [imageContainerCache](image-container-cache.md) | [androidJvm]
private var [imageContainerCache](image-container-cache.md): [HashMap](https://developer.android.com/reference/kotlin/java/util/HashMap.html)<[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), [FrameLayout](https://developer.android.com/reference/kotlin/android/widget/FrameLayout.html)> |
+| [internalDir](internal-dir.md) | [androidJvm]
private lateinit var [internalDir](internal-dir.md): [File](https://developer.android.com/reference/kotlin/java/io/File.html) |
+| [keyboardHeight](keyboard-height.md) | [androidJvm]
private var [keyboardHeight](keyboard-height.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
+| [keyboardRoot](keyboard-root.md) | [androidJvm]
private lateinit var [keyboardRoot](keyboard-root.md): [ViewGroup](https://developer.android.com/reference/kotlin/android/view/ViewGroup.html) |
+| [loadedPacks](loaded-packs.md) | [androidJvm]
private lateinit var [loadedPacks](loaded-packs.md): [HashMap](https://developer.android.com/reference/kotlin/java/util/HashMap.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), [StickerPack](../-sticker-pack/index.md)> |
+| [packContent](pack-content.md) | [androidJvm]
private lateinit var [packContent](pack-content.md): [ViewGroup](https://developer.android.com/reference/kotlin/android/view/ViewGroup.html) |
+| [packsList](packs-list.md) | [androidJvm]
private lateinit var [packsList](packs-list.md): [ViewGroup](https://developer.android.com/reference/kotlin/android/view/ViewGroup.html) |
+| [recentCache](recent-cache.md) | [androidJvm]
private var [recentCache](recent-cache.md): [Cache](../-cache/index.md) |
+| [sharedPreferences](shared-preferences.md) | [androidJvm]
private lateinit var [sharedPreferences](shared-preferences.md): [SharedPreferences](https://developer.android.com/reference/kotlin/android/content/SharedPreferences.html) |
+| [stickerSender](sticker-sender.md) | [androidJvm]
private lateinit var [stickerSender](sticker-sender.md): [StickerSender](../-sticker-sender/index.md) |
+| [toaster](toaster.md) | [androidJvm]
private lateinit var [toaster](toaster.md): [Toaster](../-toaster/index.md) |
+| [totalIconPadding](total-icon-padding.md) | [androidJvm]
private var [totalIconPadding](total-icon-padding.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
+| [vertical](vertical.md) | [androidJvm]
private var [vertical](vertical.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = false |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/internal-dir.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/internal-dir.md
new file mode 100644
index 0000000..563d9ff
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/internal-dir.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[internalDir](internal-dir.md)
+
+# internalDir
+
+[androidJvm]\
+private lateinit var [internalDir](internal-dir.md): [File](https://developer.android.com/reference/kotlin/java/io/File.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/keyboard-height.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/keyboard-height.md
new file mode 100644
index 0000000..b9248de
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/keyboard-height.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[keyboardHeight](keyboard-height.md)
+
+# keyboardHeight
+
+[androidJvm]\
+private var [keyboardHeight](keyboard-height.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/keyboard-root.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/keyboard-root.md
new file mode 100644
index 0000000..5f46511
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/keyboard-root.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[keyboardRoot](keyboard-root.md)
+
+# keyboardRoot
+
+[androidJvm]\
+private lateinit var [keyboardRoot](keyboard-root.md): [ViewGroup](https://developer.android.com/reference/kotlin/android/view/ViewGroup.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/loaded-packs.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/loaded-packs.md
new file mode 100644
index 0000000..800354f
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/loaded-packs.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[loadedPacks](loaded-packs.md)
+
+# loadedPacks
+
+[androidJvm]\
+private lateinit var [loadedPacks](loaded-packs.md): [HashMap](https://developer.android.com/reference/kotlin/java/util/HashMap.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), [StickerPack](../-sticker-pack/index.md)>
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/pack-content.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/pack-content.md
new file mode 100644
index 0000000..4b5da2a
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/pack-content.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[packContent](pack-content.md)
+
+# packContent
+
+[androidJvm]\
+private lateinit var [packContent](pack-content.md): [ViewGroup](https://developer.android.com/reference/kotlin/android/view/ViewGroup.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/packs-list.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/packs-list.md
new file mode 100644
index 0000000..40c50a1
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/packs-list.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[packsList](packs-list.md)
+
+# packsList
+
+[androidJvm]\
+private lateinit var [packsList](packs-list.md): [ViewGroup](https://developer.android.com/reference/kotlin/android/view/ViewGroup.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/recent-cache.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/recent-cache.md
new file mode 100644
index 0000000..7263ede
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/recent-cache.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[recentCache](recent-cache.md)
+
+# recentCache
+
+[androidJvm]\
+private var [recentCache](recent-cache.md): [Cache](../-cache/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/shared-preferences.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/shared-preferences.md
new file mode 100644
index 0000000..3032c5f
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/shared-preferences.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[sharedPreferences](shared-preferences.md)
+
+# sharedPreferences
+
+[androidJvm]\
+private lateinit var [sharedPreferences](shared-preferences.md): [SharedPreferences](https://developer.android.com/reference/kotlin/android/content/SharedPreferences.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/sticker-sender.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/sticker-sender.md
new file mode 100644
index 0000000..4a02472
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/sticker-sender.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[stickerSender](sticker-sender.md)
+
+# stickerSender
+
+[androidJvm]\
+private lateinit var [stickerSender](sticker-sender.md): [StickerSender](../-sticker-sender/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/switch-pack-layout.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/switch-pack-layout.md
new file mode 100644
index 0000000..1c1840c
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/switch-pack-layout.md
@@ -0,0 +1,16 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[switchPackLayout](switch-pack-layout.md)
+
+# switchPackLayout
+
+[androidJvm]\
+private fun [switchPackLayout](switch-pack-layout.md)(packName: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
+
+Swap the pack layout every time a pack is selected. If already cached use that otherwise create the pack layout
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| packName | String |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/toaster.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/toaster.md
new file mode 100644
index 0000000..685cd4a
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/toaster.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[toaster](toaster.md)
+
+# toaster
+
+[androidJvm]\
+private lateinit var [toaster](toaster.md): [Toaster](../-toaster/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/total-icon-padding.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/total-icon-padding.md
new file mode 100644
index 0000000..f868827
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/total-icon-padding.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[totalIconPadding](total-icon-padding.md)
+
+# totalIconPadding
+
+[androidJvm]\
+private var [totalIconPadding](total-icon-padding.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/vertical.md b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/vertical.md
new file mode 100644
index 0000000..ff74ac6
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-image-keyboard/vertical.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[ImageKeyboard](index.md)/[vertical](vertical.md)
+
+# vertical
+
+[androidJvm]\
+private var [vertical](vertical.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = false
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-m-a-x_-f-i-l-e-s.md b/documentation/reference/app/com.fredhappyface.ewesticker/-m-a-x_-f-i-l-e-s.md
new file mode 100644
index 0000000..9e6b89e
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-m-a-x_-f-i-l-e-s.md
@@ -0,0 +1,6 @@
+//[app](../../index.md)/[com.fredhappyface.ewesticker](index.md)/[MAX_FILES](-m-a-x_-f-i-l-e-s.md)
+
+# MAX_FILES
+
+[androidJvm]\
+private const val [MAX_FILES](-m-a-x_-f-i-l-e-s.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 4096
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-m-a-x_-p-a-c-k_-s-i-z-e.md b/documentation/reference/app/com.fredhappyface.ewesticker/-m-a-x_-p-a-c-k_-s-i-z-e.md
new file mode 100644
index 0000000..4c446de
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-m-a-x_-p-a-c-k_-s-i-z-e.md
@@ -0,0 +1,6 @@
+//[app](../../index.md)/[com.fredhappyface.ewesticker](index.md)/[MAX_PACK_SIZE](-m-a-x_-p-a-c-k_-s-i-z-e.md)
+
+# MAX_PACK_SIZE
+
+[androidJvm]\
+private const val [MAX_PACK_SIZE](-m-a-x_-p-a-c-k_-s-i-z-e.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 128
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/choose-dir-result-launcher.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/choose-dir-result-launcher.md
new file mode 100644
index 0000000..022df77
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/choose-dir-result-launcher.md
@@ -0,0 +1,8 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[chooseDirResultLauncher](choose-dir-result-launcher.md)
+
+# chooseDirResultLauncher
+
+[androidJvm]\
+private val [chooseDirResultLauncher](choose-dir-result-launcher.md): [ActivityResultLauncher](https://developer.android.com/reference/kotlin/androidx/activity/result/ActivityResultLauncher.html)<[Intent](https://developer.android.com/reference/kotlin/android/content/Intent.html)>
+
+Handles ACTION_OPEN_DOCUMENT_TREE result and adds stickerDirPath, lastUpdateDate to this.sharedPreferences and resets recentCache, compatCache
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/context-view.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/context-view.md
new file mode 100644
index 0000000..03c977f
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/context-view.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[contextView](context-view.md)
+
+# contextView
+
+[androidJvm]\
+private lateinit var [contextView](context-view.md): [View](https://developer.android.com/reference/kotlin/android/view/View.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/import-stickers.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/import-stickers.md
new file mode 100644
index 0000000..4a33d30
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/import-stickers.md
@@ -0,0 +1,8 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[importStickers](import-stickers.md)
+
+# importStickers
+
+[androidJvm]\
+private fun [importStickers](import-stickers.md)(stickerDirPath: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
+
+Import files from storage to internal directory
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/index.md
index 5e840a0..2834e9b 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/index.md
@@ -19,3 +19,18 @@ MainActivity class inherits from the AppCompatActivity class - provides the sett
|---|---|
| [chooseDir](choose-dir.md) | [androidJvm]
fun [chooseDir](choose-dir.md)(view: [View](https://developer.android.com/reference/kotlin/android/view/View.html))
Called on button press to choose a new directory |
| [enableKeyboard](enable-keyboard.md) | [androidJvm]
fun [enableKeyboard](enable-keyboard.md)(view: [View](https://developer.android.com/reference/kotlin/android/view/View.html))
Called on button press to launch settings |
+| [importStickers](import-stickers.md) | [androidJvm]
private fun [importStickers](import-stickers.md)(stickerDirPath: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
Import files from storage to internal directory |
+| [onCreate](on-create.md) | [androidJvm]
protected open override fun [onCreate](on-create.md)(savedInstanceState: [Bundle](https://developer.android.com/reference/kotlin/android/os/Bundle.html)?)
Sets up content view, shared prefs, etc. |
+| [refreshStickerDirPath](refresh-sticker-dir-path.md) | [androidJvm]
private fun [refreshStickerDirPath](refresh-sticker-dir-path.md)()
Reads saved sticker dir path from preferences |
+| [seekBar](seek-bar.md) | [androidJvm]
private fun [seekBar](seek-bar.md)(seekBar: [SeekBar](https://developer.android.com/reference/kotlin/android/widget/SeekBar.html), seekBarLabel: [TextView](https://developer.android.com/reference/kotlin/android/widget/TextView.html), sharedPrefKey: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), sharedPrefDefault: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), multiplier: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 1)
Add seekbar logic for each seekbar in the layout |
+| [showChangedPrefText](show-changed-pref-text.md) | [androidJvm]
internal fun [showChangedPrefText](show-changed-pref-text.md)()
Reusable function to warn about changing preferences |
+| [toggle](toggle.md) | [androidJvm]
private fun [toggle](toggle.md)(compoundButton: [CompoundButton](https://developer.android.com/reference/kotlin/android/widget/CompoundButton.html), sharedPrefKey: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), sharedPrefDefault: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = false, callback: ([Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)) -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html))
Add toggle logic for each toggle/ checkbox in the layout |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [chooseDirResultLauncher](choose-dir-result-launcher.md) | [androidJvm]
private val [chooseDirResultLauncher](choose-dir-result-launcher.md): [ActivityResultLauncher](https://developer.android.com/reference/kotlin/androidx/activity/result/ActivityResultLauncher.html)<[Intent](https://developer.android.com/reference/kotlin/android/content/Intent.html)>
Handles ACTION_OPEN_DOCUMENT_TREE result and adds stickerDirPath, lastUpdateDate to this.sharedPreferences and resets recentCache, compatCache |
+| [contextView](context-view.md) | [androidJvm]
private lateinit var [contextView](context-view.md): [View](https://developer.android.com/reference/kotlin/android/view/View.html) |
+| [sharedPreferences](shared-preferences.md) | [androidJvm]
private lateinit var [sharedPreferences](shared-preferences.md): [SharedPreferences](https://developer.android.com/reference/kotlin/android/content/SharedPreferences.html) |
+| [toaster](toaster.md) | [androidJvm]
private lateinit var [toaster](toaster.md): [Toaster](../-toaster/index.md) |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/on-create.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/on-create.md
new file mode 100644
index 0000000..7ecd329
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/on-create.md
@@ -0,0 +1,16 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[onCreate](on-create.md)
+
+# onCreate
+
+[androidJvm]\
+protected open override fun [onCreate](on-create.md)(savedInstanceState: [Bundle](https://developer.android.com/reference/kotlin/android/os/Bundle.html)?)
+
+Sets up content view, shared prefs, etc.
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| savedInstanceState | saved state |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/refresh-sticker-dir-path.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/refresh-sticker-dir-path.md
new file mode 100644
index 0000000..ca42b8e
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/refresh-sticker-dir-path.md
@@ -0,0 +1,8 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[refreshStickerDirPath](refresh-sticker-dir-path.md)
+
+# refreshStickerDirPath
+
+[androidJvm]\
+private fun [refreshStickerDirPath](refresh-sticker-dir-path.md)()
+
+Reads saved sticker dir path from preferences
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/seek-bar.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/seek-bar.md
new file mode 100644
index 0000000..42d089c
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/seek-bar.md
@@ -0,0 +1,20 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[seekBar](seek-bar.md)
+
+# seekBar
+
+[androidJvm]\
+private fun [seekBar](seek-bar.md)(seekBar: [SeekBar](https://developer.android.com/reference/kotlin/android/widget/SeekBar.html), seekBarLabel: [TextView](https://developer.android.com/reference/kotlin/android/widget/TextView.html), sharedPrefKey: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), sharedPrefDefault: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), multiplier: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 1)
+
+Add seekbar logic for each seekbar in the layout
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| seekBar | SeekBar |
+| seekBarLabel | TextView - the label with a value updated when the progress is changed |
+| sharedPrefKey | String - Id/Key of the SharedPreferences to update |
+| sharedPrefDefault | Int - default value |
+| multiplier | Int - multiplier (used to update SharedPreferences and set the seekBarLabel) |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/shared-preferences.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/shared-preferences.md
new file mode 100644
index 0000000..5b350a6
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/shared-preferences.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[sharedPreferences](shared-preferences.md)
+
+# sharedPreferences
+
+[androidJvm]\
+private lateinit var [sharedPreferences](shared-preferences.md): [SharedPreferences](https://developer.android.com/reference/kotlin/android/content/SharedPreferences.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/show-changed-pref-text.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/show-changed-pref-text.md
new file mode 100644
index 0000000..dbb1827
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/show-changed-pref-text.md
@@ -0,0 +1,8 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[showChangedPrefText](show-changed-pref-text.md)
+
+# showChangedPrefText
+
+[androidJvm]\
+internal fun [showChangedPrefText](show-changed-pref-text.md)()
+
+Reusable function to warn about changing preferences
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/toaster.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/toaster.md
new file mode 100644
index 0000000..912aa96
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/toaster.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[toaster](toaster.md)
+
+# toaster
+
+[androidJvm]\
+private lateinit var [toaster](toaster.md): [Toaster](../-toaster/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/toggle.md b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/toggle.md
new file mode 100644
index 0000000..739e37b
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-main-activity/toggle.md
@@ -0,0 +1,19 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[MainActivity](index.md)/[toggle](toggle.md)
+
+# toggle
+
+[androidJvm]\
+private fun [toggle](toggle.md)(compoundButton: [CompoundButton](https://developer.android.com/reference/kotlin/android/widget/CompoundButton.html), sharedPrefKey: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), sharedPrefDefault: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) = false, callback: ([Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)) -> [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html))
+
+Add toggle logic for each toggle/ checkbox in the layout
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| compoundButton | CompoundButton |
+| sharedPrefKey | String - Id/Key of the SharedPreferences to update |
+| sharedPrefDefault | Boolean - default value (default=false) |
+| callback | (Boolean) -> Unit - Add custom behaviour with a callback - for instance to disable some options |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/context.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/context.md
new file mode 100644
index 0000000..d0dd55f
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/context.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[context](context.md)
+
+# context
+
+[androidJvm]\
+private val [context](context.md): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/file-walk.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/file-walk.md
new file mode 100644
index 0000000..f635cb2
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/file-walk.md
@@ -0,0 +1,20 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[fileWalk](file-walk.md)
+
+# fileWalk
+
+[androidJvm]\
+private fun [fileWalk](file-walk.md)(rootNode: [DocumentFile](https://developer.android.com/reference/kotlin/androidx/documentfile/provider/DocumentFile.html)?): [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)<[DocumentFile](https://developer.android.com/reference/kotlin/androidx/documentfile/provider/DocumentFile.html)>
+
+Get a MutableSet of DocumentFiles from a root node
+
+#### Return
+
+MutableSet set of files
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| rootNode | parent dir to get all files from |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/files-left.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/files-left.md
new file mode 100644
index 0000000..f02eea4
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/files-left.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[filesLeft](files-left.md)
+
+# filesLeft
+
+[androidJvm]\
+private var [filesLeft](files-left.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-sticker.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-sticker.md
new file mode 100644
index 0000000..3fb6905
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-sticker.md
@@ -0,0 +1,20 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[importSticker](import-sticker.md)
+
+# importSticker
+
+[androidJvm]\
+private fun [importSticker](import-sticker.md)(sticker: [DocumentFile](https://developer.android.com/reference/kotlin/androidx/documentfile/provider/DocumentFile.html))
+
+Copies stickers from source to internal storage
+
+#### Return
+
+1 if sticker imported successfully else 0
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| sticker | sticker to copy over |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-stickers.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-stickers.md
index fa7559f..6aa2798 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-stickers.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/import-stickers.md
@@ -5,7 +5,7 @@
[androidJvm]\
fun [importStickers](import-stickers.md)(stickerDirPath: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
-TODO
+Used by the ACTION_OPEN_DOCUMENT_TREE handler function to copy stickers from a stickerDirPath to the appplication internal storage for access later on by the keyboard
## Parameters
@@ -13,4 +13,4 @@ androidJvm
| | |
|---|---|
-| stickerDirPath | |
+| stickerDirPath | a URI to the stikers directory to import into EweSticker |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/index.md
index 0ae47d3..b13e23c 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/index.md
@@ -5,7 +5,7 @@
[androidJvm]\
class [StickerImporter](index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), toaster: [Toaster](../-toaster/index.md))
-TODO
+The StickerImporter class includes a helper function to import stickers from a user-selected stickerDirPath (see importStickers). The class requires the application baseContext and an instance of Toaster (in turn requiring the application baseContext)
## Constructors
@@ -17,4 +17,17 @@ TODO
| Name | Summary |
|---|---|
-| [importStickers](import-stickers.md) | [androidJvm]
fun [importStickers](import-stickers.md)(stickerDirPath: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
TODO |
+| [fileWalk](file-walk.md) | [androidJvm]
private fun [fileWalk](file-walk.md)(rootNode: [DocumentFile](https://developer.android.com/reference/kotlin/androidx/documentfile/provider/DocumentFile.html)?): [MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)<[DocumentFile](https://developer.android.com/reference/kotlin/androidx/documentfile/provider/DocumentFile.html)>
Get a MutableSet of DocumentFiles from a root node |
+| [importSticker](import-sticker.md) | [androidJvm]
private fun [importSticker](import-sticker.md)(sticker: [DocumentFile](https://developer.android.com/reference/kotlin/androidx/documentfile/provider/DocumentFile.html))
Copies stickers from source to internal storage |
+| [importStickers](import-stickers.md) | [androidJvm]
fun [importStickers](import-stickers.md)(stickerDirPath: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
Used by the ACTION_OPEN_DOCUMENT_TREE handler function to copy stickers from a stickerDirPath to the appplication internal storage for access later on by the keyboard |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [context](context.md) | [androidJvm]
private val [context](context.md): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)
: application baseContext |
+| [filesLeft](files-left.md) | [androidJvm]
private var [filesLeft](files-left.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| [packSizes](pack-sizes.md) | [androidJvm]
private var [packSizes](pack-sizes.md): [MutableMap](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)> |
+| [supportedMimes](supported-mimes.md) | [androidJvm]
private val [supportedMimes](supported-mimes.md): [MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)> |
+| [toaster](toaster.md) | [androidJvm]
private val [toaster](toaster.md): [Toaster](../-toaster/index.md)
: an instance of Toaster (used to store an error state for later reporting to the user) |
+| [totalStickers](total-stickers.md) | [androidJvm]
private var [totalStickers](total-stickers.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/pack-sizes.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/pack-sizes.md
new file mode 100644
index 0000000..9c4efb7
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/pack-sizes.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[packSizes](pack-sizes.md)
+
+# packSizes
+
+[androidJvm]\
+private var [packSizes](pack-sizes.md): [MutableMap](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)>
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/supported-mimes.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/supported-mimes.md
new file mode 100644
index 0000000..467e498
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/supported-mimes.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[supportedMimes](supported-mimes.md)
+
+# supportedMimes
+
+[androidJvm]\
+private val [supportedMimes](supported-mimes.md): [MutableList](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/toaster.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/toaster.md
new file mode 100644
index 0000000..e6fb58d
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/toaster.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[toaster](toaster.md)
+
+# toaster
+
+[androidJvm]\
+private val [toaster](toaster.md): [Toaster](../-toaster/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/total-stickers.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/total-stickers.md
new file mode 100644
index 0000000..cfb5f0f
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-importer/total-stickers.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerImporter](index.md)/[totalStickers](total-stickers.md)
+
+# totalStickers
+
+[androidJvm]\
+private var [totalStickers](total-stickers.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/index.md
index a082527..e46d976 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/index.md
@@ -17,5 +17,7 @@ Helper class to provide pack-related information A "Pack" is informally represen
| Name | Summary |
|---|---|
+| [name](name.md) | [androidJvm]
internal val [name](name.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
Get the pack name (name of the pack directory) |
| [stickerList](sticker-list.md) | [androidJvm]
val [stickerList](sticker-list.md): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[File](https://developer.android.com/reference/kotlin/java/io/File.html)>
Note: When MainActivity copies files over, it filters out all non-supported files (i.e. any file that is not supported as well as directories). Because of this there is no extra filter in this function. The exception is the base directory, which is handled in the constructor. |
+| [stickers](stickers.md) | [androidJvm]
private val [stickers](stickers.md): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[File](https://developer.android.com/reference/kotlin/java/io/File.html)>? |
| [thumbSticker](thumb-sticker.md) | [androidJvm]
val [thumbSticker](thumb-sticker.md): [File](https://developer.android.com/reference/kotlin/java/io/File.html)
Provides a sticker to use as the pack-nav container thumbnail. Currently just takes the first element, but could theoretically include any selection logic. |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/name.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/name.md
new file mode 100644
index 0000000..1ebbcc8
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/name.md
@@ -0,0 +1,8 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerPack](index.md)/[name](name.md)
+
+# name
+
+[androidJvm]\
+internal val [name](name.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
+
+Get the pack name (name of the pack directory)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/stickers.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/stickers.md
new file mode 100644
index 0000000..98324f3
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-pack/stickers.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerPack](index.md)/[stickers](stickers.md)
+
+# stickers
+
+[androidJvm]\
+private val [stickers](stickers.md): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[File](https://developer.android.com/reference/kotlin/java/io/File.html)>?
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/compat-cache.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/compat-cache.md
new file mode 100644
index 0000000..ce86b01
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/compat-cache.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[compatCache](compat-cache.md)
+
+# compatCache
+
+[androidJvm]\
+private val [compatCache](compat-cache.md): [Cache](../-cache/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/context.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/context.md
new file mode 100644
index 0000000..662cc25
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/context.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[context](context.md)
+
+# context
+
+[androidJvm]\
+private val [context](context.md): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/current-input-connection.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/current-input-connection.md
new file mode 100644
index 0000000..877674a
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/current-input-connection.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[currentInputConnection](current-input-connection.md)
+
+# currentInputConnection
+
+[androidJvm]\
+private val [currentInputConnection](current-input-connection.md): [InputConnection](https://developer.android.com/reference/kotlin/android/view/inputmethod/InputConnection.html)?
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/current-input-editor-info.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/current-input-editor-info.md
new file mode 100644
index 0000000..102afd2
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/current-input-editor-info.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[currentInputEditorInfo](current-input-editor-info.md)
+
+# currentInputEditorInfo
+
+[androidJvm]\
+private val [currentInputEditorInfo](current-input-editor-info.md): [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/do-commit-content.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/do-commit-content.md
new file mode 100644
index 0000000..5b27ff6
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/do-commit-content.md
@@ -0,0 +1,17 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[doCommitContent](do-commit-content.md)
+
+# doCommitContent
+
+[androidJvm]\
+private fun [doCommitContent](do-commit-content.md)(mimeType: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), file: [File](https://developer.android.com/reference/kotlin/java/io/File.html))
+
+Send a sticker file to a InputConnectionCompat
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| mimeType | String |
+| file | File |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/do-fallback-commit-content.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/do-fallback-commit-content.md
new file mode 100644
index 0000000..6421d1d
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/do-fallback-commit-content.md
@@ -0,0 +1,16 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[doFallbackCommitContent](do-fallback-commit-content.md)
+
+# doFallbackCommitContent
+
+[androidJvm]\
+private suspend fun [doFallbackCommitContent](do-fallback-commit-content.md)(file: [File](https://developer.android.com/reference/kotlin/java/io/File.html))
+
+In the event that a mimetype is unsupported by a InputConnectionCompat (looking at you, Signal) create a temporary png and send that. In the event that png is not supported, alert the user.
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| file | : File |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/image-loader.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/image-loader.md
new file mode 100644
index 0000000..621692a
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/image-loader.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[imageLoader](image-loader.md)
+
+# imageLoader
+
+[androidJvm]\
+private val [imageLoader](image-loader.md): ImageLoader
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/index.md
index 4dc2dbe..1b401a0 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/index.md
@@ -5,7 +5,7 @@
[androidJvm]\
class [StickerSender](index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), toaster: [Toaster](../-toaster/index.md), internalDir: [File](https://developer.android.com/reference/kotlin/java/io/File.html), currentInputConnection: [InputConnection](https://developer.android.com/reference/kotlin/android/view/inputmethod/InputConnection.html)?, currentInputEditorInfo: [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?, compatCache: [Cache](../-cache/index.md), imageLoader: ImageLoader)
-TODO
+The StickerSender Class used to contain all of the methods used for sending a sticker to an InputConnection
## Constructors
@@ -17,4 +17,20 @@ TODO
| Name | Summary |
|---|---|
+| [doCommitContent](do-commit-content.md) | [androidJvm]
private fun [doCommitContent](do-commit-content.md)(mimeType: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), file: [File](https://developer.android.com/reference/kotlin/java/io/File.html))
Send a sticker file to a InputConnectionCompat |
+| [doFallbackCommitContent](do-fallback-commit-content.md) | [androidJvm]
private suspend fun [doFallbackCommitContent](do-fallback-commit-content.md)(file: [File](https://developer.android.com/reference/kotlin/java/io/File.html))
In the event that a mimetype is unsupported by a InputConnectionCompat (looking at you, Signal) create a temporary png and send that. In the event that png is not supported, alert the user. |
+| [isCommitContentSupported](is-commit-content-supported.md) | [androidJvm]
private fun [isCommitContentSupported](is-commit-content-supported.md)(editorInfo: [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?, mimeType: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
Check if the sticker is supported by the receiver |
| [sendSticker](send-sticker.md) | [androidJvm]
fun [sendSticker](send-sticker.md)(file: [File](https://developer.android.com/reference/kotlin/java/io/File.html))
TODO |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [compatCache](compat-cache.md) | [androidJvm]
private val [compatCache](compat-cache.md): [Cache](../-cache/index.md)
: used to track previous x converted compat stickers |
+| [context](context.md) | [androidJvm]
private val [context](context.md): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)
: application baseContext |
+| [currentInputConnection](current-input-connection.md) | [androidJvm]
private val [currentInputConnection](current-input-connection.md): [InputConnection](https://developer.android.com/reference/kotlin/android/view/inputmethod/InputConnection.html)?
: the currentInputConnection. i.e. the input field that the keyboard is going to send a sticker to |
+| [currentInputEditorInfo](current-input-editor-info.md) | [androidJvm]
private val [currentInputEditorInfo](current-input-editor-info.md): [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?
: currentInputEditorInfo. i.e. info on the input field that the keyboard is going to send a sticker to |
+| [imageLoader](image-loader.md) | [androidJvm]
private val [imageLoader](image-loader.md): ImageLoader
: coil imageLoader object used to convert a sticker file to a drawable ready for writing to a compat sticker |
+| [internalDir](internal-dir.md) | [androidJvm]
private val [internalDir](internal-dir.md): [File](https://developer.android.com/reference/kotlin/java/io/File.html)
: the internal /stickers directory used when creating a compat sticker |
+| [supportedMimes](supported-mimes.md) | [androidJvm]
private val [supportedMimes](supported-mimes.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)> |
+| [toaster](toaster.md) | [androidJvm]
private val [toaster](toaster.md): [Toaster](../-toaster/index.md)
: an instance of Toaster (used to store an error state for later reporting to the user) |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/internal-dir.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/internal-dir.md
new file mode 100644
index 0000000..fe3fc1f
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/internal-dir.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[internalDir](internal-dir.md)
+
+# internalDir
+
+[androidJvm]\
+private val [internalDir](internal-dir.md): [File](https://developer.android.com/reference/kotlin/java/io/File.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/is-commit-content-supported.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/is-commit-content-supported.md
new file mode 100644
index 0000000..094a274
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/is-commit-content-supported.md
@@ -0,0 +1,21 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[isCommitContentSupported](is-commit-content-supported.md)
+
+# isCommitContentSupported
+
+[androidJvm]\
+private fun [isCommitContentSupported](is-commit-content-supported.md)(editorInfo: [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?, mimeType: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
+
+Check if the sticker is supported by the receiver
+
+#### Return
+
+boolean - is the mimetype supported?
+
+## Parameters
+
+androidJvm
+
+| | |
+|---|---|
+| editorInfo | : EditorInfo - the editor/ receiver |
+| mimeType | : String - the image mimetype |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/supported-mimes.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/supported-mimes.md
new file mode 100644
index 0000000..d42e737
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/supported-mimes.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[supportedMimes](supported-mimes.md)
+
+# supportedMimes
+
+[androidJvm]\
+private val [supportedMimes](supported-mimes.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/toaster.md b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/toaster.md
new file mode 100644
index 0000000..90fc8fc
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-sticker-sender/toaster.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[StickerSender](index.md)/[toaster](toaster.md)
+
+# toaster
+
+[androidJvm]\
+private val [toaster](toaster.md): [Toaster](../-toaster/index.md)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/context.md b/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/context.md
new file mode 100644
index 0000000..626decd
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/context.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[Toaster](index.md)/[context](context.md)
+
+# context
+
+[androidJvm]\
+private val [context](context.md): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/index.md
index 3a6ddc6..814f9df 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/index.md
@@ -20,3 +20,10 @@ The Toaster class provides a simplified interface to android.widget.Toast. Pass
| [setState](set-state.md) | [androidJvm]
fun [setState](set-state.md)(state: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html))
Set the state to some integer value |
| [toast](toast.md) | [androidJvm]
fun [toast](toast.md)(string: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
Call toaster.toast with some string to always create a toast notification. Context is set when Toaster is instantiated. Duration is determined based on text length |
| [toastOnState](toast-on-state.md) | [androidJvm]
fun [toastOnState](toast-on-state.md)(strings: [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>)
Call toaster.toastOnState with an array of messages to create a toast notification. Context is set when Toaster is instantiated. Duration is determined based on text length. The message is selected based on the state (which can be set in a callback function or elsewhere |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [context](context.md) | [androidJvm]
private val [context](context.md): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)
: android.content.Context. e.g. baseContext |
+| [state](state.md) | [androidJvm]
private var [state](state.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0 |
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/state.md b/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/state.md
new file mode 100644
index 0000000..656f22c
--- /dev/null
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/-toaster/state.md
@@ -0,0 +1,6 @@
+//[app](../../../index.md)/[com.fredhappyface.ewesticker](../index.md)/[Toaster](index.md)/[state](state.md)
+
+# state
+
+[androidJvm]\
+private var [state](state.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
diff --git a/documentation/reference/app/com.fredhappyface.ewesticker/index.md b/documentation/reference/app/com.fredhappyface.ewesticker/index.md
index 1136994..643005b 100644
--- a/documentation/reference/app/com.fredhappyface.ewesticker/index.md
+++ b/documentation/reference/app/com.fredhappyface.ewesticker/index.md
@@ -9,8 +9,15 @@
| [Cache](-cache/index.md) | [androidJvm]
class [Cache](-cache/index.md)(size: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html))
Basically this behaved like an ordered set with some maximum capacity. When this capacity is exceeded an element is removed from the start |
| [ImageKeyboard](-image-keyboard/index.md) | [androidJvm]
class [ImageKeyboard](-image-keyboard/index.md) : [InputMethodService](https://developer.android.com/reference/kotlin/android/inputmethodservice/InputMethodService.html)
ImageKeyboard class inherits from the InputMethodService class - provides the keyboard functionality |
| [MainActivity](-main-activity/index.md) | [androidJvm]
class [MainActivity](-main-activity/index.md) : [AppCompatActivity](https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity.html)
MainActivity class inherits from the AppCompatActivity class - provides the settings view |
-| [StickerImporter](-sticker-importer/index.md) | [androidJvm]
class [StickerImporter](-sticker-importer/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), toaster: [Toaster](-toaster/index.md))
TODO |
+| [StickerImporter](-sticker-importer/index.md) | [androidJvm]
class [StickerImporter](-sticker-importer/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), toaster: [Toaster](-toaster/index.md))
The StickerImporter class includes a helper function to import stickers from a user-selected stickerDirPath (see importStickers). The class requires the application baseContext and an instance of Toaster (in turn requiring the application baseContext) |
| [StickerPack](-sticker-pack/index.md) | [androidJvm]
class [StickerPack](-sticker-pack/index.md)(packDir: [File](https://developer.android.com/reference/kotlin/java/io/File.html))
Helper class to provide pack-related information A "Pack" is informally represented as a File |
-| [StickerSender](-sticker-sender/index.md) | [androidJvm]
class [StickerSender](-sticker-sender/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), toaster: [Toaster](-toaster/index.md), internalDir: [File](https://developer.android.com/reference/kotlin/java/io/File.html), currentInputConnection: [InputConnection](https://developer.android.com/reference/kotlin/android/view/inputmethod/InputConnection.html)?, currentInputEditorInfo: [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?, compatCache: [Cache](-cache/index.md), imageLoader: ImageLoader)
TODO |
+| [StickerSender](-sticker-sender/index.md) | [androidJvm]
class [StickerSender](-sticker-sender/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), toaster: [Toaster](-toaster/index.md), internalDir: [File](https://developer.android.com/reference/kotlin/java/io/File.html), currentInputConnection: [InputConnection](https://developer.android.com/reference/kotlin/android/view/inputmethod/InputConnection.html)?, currentInputEditorInfo: [EditorInfo](https://developer.android.com/reference/kotlin/android/view/inputmethod/EditorInfo.html)?, compatCache: [Cache](-cache/index.md), imageLoader: ImageLoader)
The StickerSender Class used to contain all of the methods used for sending a sticker to an InputConnection |
| [Toaster](-toaster/index.md) | [androidJvm]
class [Toaster](-toaster/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html))
The Toaster class provides a simplified interface to android.widget.Toast. Pass in the android.content.Context to the constructor and call the 'toast' function (others as below) toaster.state keeps track of an error state or similar. |
| [Utils](-utils/index.md) | [androidJvm]
object [Utils](-utils/index.md)
Class to provide utils that are shared across ewesticker. |
+
+## Properties
+
+| Name | Summary |
+|---|---|
+| [MAX_FILES](-m-a-x_-f-i-l-e-s.md) | [androidJvm]
private const val [MAX_FILES](-m-a-x_-f-i-l-e-s.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 4096 |
+| [MAX_PACK_SIZE](-m-a-x_-p-a-c-k_-s-i-z-e.md) | [androidJvm]
private const val [MAX_PACK_SIZE](-m-a-x_-p-a-c-k_-s-i-z-e.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 128 |
diff --git a/documentation/tutorials/README.md b/documentation/tutorials/README.md
index bb02cbe..380c3e7 100644
--- a/documentation/tutorials/README.md
+++ b/documentation/tutorials/README.md
@@ -9,8 +9,8 @@ sticker collection.
- [Get it on F-Droid](#get-it-on-f-droid)
- [Get it on Google Play](#get-it-on-google-play)
- [Download the APK](#download-the-apk)
-- [Step 3 - Select Directory with EweSticker (and wait...)](#step-3---select-directory-with-ewesticker-and-wait)
-- [Step 4 - Activate the keyboard](#step-4---activate-the-keyboard)
+- [Step 3 - Activate the keyboard](#step-3---activate-the-keyboard)
+- [Step 4 - Select Directory with EweSticker (and wait...)](#step-4---select-directory-with-ewesticker-and-wait)
- [Step 5 - Send Stickers in your favourite apps](#step-5---send-stickers-in-your-favourite-apps)
## Step 1 - Create Sticker Directory (and transfer to device)
@@ -42,7 +42,7 @@ is **4096**
1. Open the F-Droid app
2. Search for EweSticker
-**Or**
+or
[
](https://f-droid.org/en/packages/com.fredhappyface.ewesticker/)
@@ -55,7 +55,7 @@ then download/ install
1. Open the Google Play app
2. Search for EweSticker
-**Or**
+or
[
](https://play.google.com/store/apps/details?id=com.fredhappyface.ewesticker)
@@ -69,36 +69,39 @@ then download/ install
2. Select the debug or release APK depending on your preference. Note that the
filenames are in the form: com.fredhappyface.ewesticker-(version)-(debug|release).apk
-**Or**
+or
[
](../../releases)
Navigate to the releases page by clicking on the badge above.
-## Step 3 - Select Directory with EweSticker (and wait...)
+## Step 3 - Activate the keyboard
+
+1. Click the "LAUNCH SETTINGS" button
+
+
+
+2. Toggle EweSticker on
+
+
+
+## Step 4 - Select Directory with EweSticker (and wait...)
1. Click the "CHOOSE STICKER SOURCE DIRECTORY" button
-
+
2. Select the sticker directory created in step 1
-
-
-## Step 4 - Activate the keyboard
-
-- Search 'keyboard' in settings and select 'On-screen keyboard', then '+ Manage
- on-screen keyboards' and toggle EweSticker on.
-
-
+
## Step 5 - Send Stickers in your favourite apps
1. Tap the keyboard switcher icon and select EweSticker
-
+
2. Find and send a sticker of your choosing
-
+
diff --git a/documentation/tutorials/assets/screenshot-1.png b/documentation/tutorials/assets/screenshot-1.png
new file mode 100644
index 0000000..b0407d6
Binary files /dev/null and b/documentation/tutorials/assets/screenshot-1.png differ
diff --git a/documentation/tutorials/assets/screenshot-2.png b/documentation/tutorials/assets/screenshot-2.png
new file mode 100644
index 0000000..0f10909
Binary files /dev/null and b/documentation/tutorials/assets/screenshot-2.png differ
diff --git a/documentation/tutorials/assets/screenshot-3.png b/documentation/tutorials/assets/screenshot-3.png
new file mode 100644
index 0000000..9a495f2
Binary files /dev/null and b/documentation/tutorials/assets/screenshot-3.png differ
diff --git a/documentation/tutorials/assets/screenshot-4.png b/documentation/tutorials/assets/screenshot-4.png
new file mode 100644
index 0000000..a327072
Binary files /dev/null and b/documentation/tutorials/assets/screenshot-4.png differ
diff --git a/documentation/tutorials/assets/step1.png b/documentation/tutorials/assets/step1.png
index b916639..dc35820 100644
Binary files a/documentation/tutorials/assets/step1.png and b/documentation/tutorials/assets/step1.png differ
diff --git a/documentation/tutorials/assets/step3.png b/documentation/tutorials/assets/step3.png
index 327af43..da32efb 100644
Binary files a/documentation/tutorials/assets/step3.png and b/documentation/tutorials/assets/step3.png differ
diff --git a/documentation/tutorials/assets/step3_2.png b/documentation/tutorials/assets/step3_2.png
deleted file mode 100644
index 69de0d6..0000000
Binary files a/documentation/tutorials/assets/step3_2.png and /dev/null differ
diff --git a/documentation/tutorials/assets/step4.png b/documentation/tutorials/assets/step4.png
deleted file mode 100644
index ec9a382..0000000
Binary files a/documentation/tutorials/assets/step4.png and /dev/null differ
diff --git a/documentation/tutorials/assets/step5.png b/documentation/tutorials/assets/step5.png
deleted file mode 100644
index 5c07119..0000000
Binary files a/documentation/tutorials/assets/step5.png and /dev/null differ
diff --git a/documentation/tutorials/assets/step5_2.png b/documentation/tutorials/assets/step5_2.png
deleted file mode 100644
index a0b98ea..0000000
Binary files a/documentation/tutorials/assets/step5_2.png and /dev/null differ