diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8bc8302..2f66b2f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -5,6 +5,7 @@ plugins { alias(libs.plugins.jetbrains.kotlin.android) id("com.google.gms.google-services") id("com.google.firebase.crashlytics") + kotlin("kapt") } val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) @@ -14,7 +15,7 @@ android { defaultConfig { //com.sunny.tools.app.soft - applicationId = "com.sunny.tools.app.soft" + applicationId = "com.sunny.tools.app.soft.test" minSdk = 23 targetSdk = 34 versionCode = 5 @@ -58,9 +59,12 @@ dependencies { implementation("com.geyifeng.immersionbar:immersionbar-ktx:3.2.2") implementation ("com.google.code.gson:gson:2.10.1") - implementation ("com.github.bumptech.glide:glide:4.12.0") - annotationProcessor ("com.github.bumptech.glide:compiler:4.12.0") + implementation ("com.github.bumptech.glide:glide:4.16.0") + annotationProcessor ("com.github.bumptech.glide:compiler:4.16.0") + val room_version = "2.6.1" + implementation ("androidx.room:room-runtime:$room_version") + kapt("androidx.room:room-compiler:$room_version") implementation(platform("com.google.firebase:firebase-bom:32.3.1")) diff --git a/app/google-services.json b/app/google-services.json index 6b54dbe..7f3f9d3 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -9,7 +9,7 @@ "client_info": { "mobilesdk_app_id": "1:894189375933:android:0409bb4d16339f3a5082d4", "android_client_info": { - "package_name": "com.sunny.tools.app.soft" + "package_name": "com.sunny.tools.app.soft.test" } }, "oauth_client": [], diff --git a/app/src/main/assets/Abstract.json b/app/src/main/assets/Abstract.json index 3866795..4efcd60 100644 --- a/app/src/main/assets/Abstract.json +++ b/app/src/main/assets/Abstract.json @@ -2,12 +2,12 @@ "ID": 24055, "version": "3.3.4", "name": "Abstract", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24055_89_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24055_89_44_1654593252.png", "backgrounds": [{ "ID": 24057, "version": "3.3.4", "skinNumber": 1101, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24057_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24057_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24057_91_44_1698326473.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 24058, "version": "3.3.4", "skinNumber": 1102, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24058_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24058_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24058_91_44_1654593252.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 24059, "version": "3.3.4", "skinNumber": 1103, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24059_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24059_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24059_91_44_1698326473.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 24060, "version": "3.3.4", "skinNumber": 1104, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24060_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24060_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24060_91_44_1698326473.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1104", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 24061, "version": "3.3.4", "skinNumber": 1105, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24061_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24061_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24061_91_44_1698326473.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1105", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 24062, "version": "3.3.6", "skinNumber": 1106, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24062_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24062_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24062_91_44_1698326473.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1106", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 24063, "version": "3.3.4", "skinNumber": 1107, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24063_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24063_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24063_91_44_1698326473.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1107", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 24064, "version": "3.3.4", "skinNumber": 1108, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24064_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24064_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24064_91_44_1654593252.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1108", "videoCount": 0 @@ -71,7 +71,7 @@ "ID": 24065, "version": "3.3.4", "skinNumber": 1109, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24065_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24065_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24065_91_44_1698326473.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1109", "videoCount": 2 @@ -79,7 +79,7 @@ "ID": 24066, "version": "3.3.4", "skinNumber": 1110, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24066_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24066_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24066_91_44_1698326473.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1110", "videoCount": 2 @@ -87,7 +87,7 @@ "ID": 24067, "version": "3.3.4", "skinNumber": 1111, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24067_90_44_1654593252.png", + "coverPath": "file:///android_asset/Abstract/photo_24067_90_44_1654593252.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24067_91_44_1698847414.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground1111", "videoCount": 2 diff --git a/app/src/main/assets/Abstract/photo_24055_89_44_1654593252.png b/app/src/main/assets/Abstract/photo_24055_89_44_1654593252.png new file mode 100644 index 0000000..8324af3 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24055_89_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24057_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24057_90_44_1654593252.png new file mode 100644 index 0000000..b18c5ad Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24057_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24058_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24058_90_44_1654593252.png new file mode 100644 index 0000000..75bfd89 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24058_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24059_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24059_90_44_1654593252.png new file mode 100644 index 0000000..619311c Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24059_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24060_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24060_90_44_1654593252.png new file mode 100644 index 0000000..4f04954 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24060_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24061_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24061_90_44_1654593252.png new file mode 100644 index 0000000..560c6d8 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24061_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24062_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24062_90_44_1654593252.png new file mode 100644 index 0000000..4d0a955 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24062_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24063_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24063_90_44_1654593252.png new file mode 100644 index 0000000..a456169 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24063_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24064_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24064_90_44_1654593252.png new file mode 100644 index 0000000..2f2bd2d Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24064_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24065_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24065_90_44_1654593252.png new file mode 100644 index 0000000..940437f Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24065_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24066_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24066_90_44_1654593252.png new file mode 100644 index 0000000..251eb79 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24066_90_44_1654593252.png differ diff --git a/app/src/main/assets/Abstract/photo_24067_90_44_1654593252.png b/app/src/main/assets/Abstract/photo_24067_90_44_1654593252.png new file mode 100644 index 0000000..e18ed52 Binary files /dev/null and b/app/src/main/assets/Abstract/photo_24067_90_44_1654593252.png differ diff --git a/app/src/main/assets/Chinese.json b/app/src/main/assets/Chinese.json index 5b352b8..0a709c9 100644 --- a/app/src/main/assets/Chinese.json +++ b/app/src/main/assets/Chinese.json @@ -2,12 +2,12 @@ "ID": 23847, "version": "3.0", "name": "Chinese New Year", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23847_89_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23847_89_44_1642593030.png", "backgrounds": [{ "ID": 23848, "version": "3.0", "skinNumber": 9001, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23848_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23848_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23848_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 23849, "version": "3.0", "skinNumber": 9002, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23849_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23849_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23849_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 23850, "version": "3.0", "skinNumber": 9003, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23850_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23850_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23850_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 23851, "version": "3.0", "skinNumber": 9004, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23851_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23851_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23851_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 23852, "version": "3.0", "skinNumber": 9005, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23852_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23852_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23852_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 23853, "version": "3.0", "skinNumber": 9006, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23853_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23853_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23853_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 23854, "version": "3.0", "skinNumber": 9007, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23854_90_44_1642593030.png", + "coverPath": "file:///android_asset/Chinese/photo_23854_90_44_1642593030.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23854_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 23856, "version": "3.0", "skinNumber": 9008, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23856_90_44_1642604696.png", + "coverPath": "file:///android_asset/Chinese/photo_23856_90_44_1642604696.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23856_91_44_1698849995.zip", "inappString": "", "videoCount": 0 diff --git a/app/src/main/assets/Chinese/photo_23847_89_44_1642593030.png b/app/src/main/assets/Chinese/photo_23847_89_44_1642593030.png new file mode 100644 index 0000000..546928d Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23847_89_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23848_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23848_90_44_1642593030.png new file mode 100644 index 0000000..260f10c Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23848_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23849_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23849_90_44_1642593030.png new file mode 100644 index 0000000..747408c Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23849_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23850_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23850_90_44_1642593030.png new file mode 100644 index 0000000..fd73bba Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23850_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23851_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23851_90_44_1642593030.png new file mode 100644 index 0000000..76d1c56 Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23851_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23852_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23852_90_44_1642593030.png new file mode 100644 index 0000000..fc604ee Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23852_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23853_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23853_90_44_1642593030.png new file mode 100644 index 0000000..629a2fd Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23853_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23854_90_44_1642593030.png b/app/src/main/assets/Chinese/photo_23854_90_44_1642593030.png new file mode 100644 index 0000000..acfb28a Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23854_90_44_1642593030.png differ diff --git a/app/src/main/assets/Chinese/photo_23856_90_44_1642604696.png b/app/src/main/assets/Chinese/photo_23856_90_44_1642604696.png new file mode 100644 index 0000000..92e22da Binary files /dev/null and b/app/src/main/assets/Chinese/photo_23856_90_44_1642604696.png differ diff --git a/app/src/main/assets/Christmas.json b/app/src/main/assets/Christmas.json index 8dc3cbb..88c8793 100644 --- a/app/src/main/assets/Christmas.json +++ b/app/src/main/assets/Christmas.json @@ -2,12 +2,12 @@ "ID": 21854, "version": "3.0", "name": "Christmas", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21854_89_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_21854_89_44_1638354842.png", "backgrounds": [{ "ID": 23708, "version": "3.3", "skinNumber": 8001, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23708_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23708_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23708_91_44_1698849477.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 23709, "version": "3.3", "skinNumber": 8002, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23709_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23709_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23709_91_44_1698849477.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 23710, "version": "3.3", "skinNumber": 8003, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23710_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23710_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23710_91_44_1698849477.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 23711, "version": "3.3", "skinNumber": 8004, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23711_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23711_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23711_91_44_1698849477.zip", "inappString": "", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 23712, "version": "3.3", "skinNumber": 8005, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23712_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23712_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23712_91_44_1698849477.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.1", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 23713, "version": "3.3", "skinNumber": 8006, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23713_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23713_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23713_91_44_1698849477.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.2", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 23714, "version": "3.3", "skinNumber": 8007, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23714_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23714_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23714_91_44_1698849477.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.3", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 23715, "version": "3.3", "skinNumber": 8008, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_23715_90_44_1638354842.png", + "coverPath": "file:///android_asset/Christmas/photo_23715_90_44_1638354842.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_23715_91_44_1698849477.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.4", "videoCount": 0 @@ -71,7 +71,7 @@ "ID": 21855, "version": "3.0", "skinNumber": 65, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21855_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21855_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21855_91_44_1698328754.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.5", "videoCount": 0 @@ -79,7 +79,7 @@ "ID": 21856, "version": "3.0", "skinNumber": 66, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21856_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21856_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21856_91_44_1698328754.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.7", "videoCount": 0 @@ -87,7 +87,7 @@ "ID": 21857, "version": "3.0", "skinNumber": 67, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21857_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21857_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21857_91_44_1698328754.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.8", "videoCount": 0 @@ -95,7 +95,7 @@ "ID": 21858, "version": "3.0", "skinNumber": 68, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21858_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21858_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21858_91_44_1607879233.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.9", "videoCount": 0 @@ -103,7 +103,7 @@ "ID": 21859, "version": "3.0", "skinNumber": 69, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21859_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21859_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21859_91_44_1698849995.zip", "inappString": "", "videoCount": 0 @@ -111,7 +111,7 @@ "ID": 21860, "version": "3.0", "skinNumber": 70, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21860_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21860_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21860_91_44_1607879233.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.10", "videoCount": 0 @@ -119,7 +119,7 @@ "ID": 21861, "version": "3.0", "skinNumber": 71, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21861_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21861_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21861_91_44_1607881055.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.11", "videoCount": 0 @@ -127,7 +127,7 @@ "ID": 21862, "version": "3.0", "skinNumber": 72, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21862_90_44_1607879233.png", + "coverPath": "file:///android_asset/Christmas/photo_21862_90_44_1607879233.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21862_91_44_1698849995.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground.21854.12", "videoCount": 0 diff --git a/app/src/main/assets/Christmas/photo_21854_89_44_1638354842.png b/app/src/main/assets/Christmas/photo_21854_89_44_1638354842.png new file mode 100644 index 0000000..718efdf Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21854_89_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_21855_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21855_90_44_1607879233.png new file mode 100644 index 0000000..061992f Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21855_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21856_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21856_90_44_1607879233.png new file mode 100644 index 0000000..5e3bbce Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21856_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21857_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21857_90_44_1607879233.png new file mode 100644 index 0000000..59bc193 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21857_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21858_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21858_90_44_1607879233.png new file mode 100644 index 0000000..c14b18f Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21858_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21859_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21859_90_44_1607879233.png new file mode 100644 index 0000000..a8527dc Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21859_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21860_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21860_90_44_1607879233.png new file mode 100644 index 0000000..124c6d3 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21860_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21861_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21861_90_44_1607879233.png new file mode 100644 index 0000000..bb17b39 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21861_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_21862_90_44_1607879233.png b/app/src/main/assets/Christmas/photo_21862_90_44_1607879233.png new file mode 100644 index 0000000..b6d6779 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_21862_90_44_1607879233.png differ diff --git a/app/src/main/assets/Christmas/photo_23708_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23708_90_44_1638354842.png new file mode 100644 index 0000000..d21d275 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23708_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23709_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23709_90_44_1638354842.png new file mode 100644 index 0000000..82e6f3f Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23709_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23710_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23710_90_44_1638354842.png new file mode 100644 index 0000000..bf74cd3 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23710_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23711_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23711_90_44_1638354842.png new file mode 100644 index 0000000..ba6d3ea Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23711_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23712_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23712_90_44_1638354842.png new file mode 100644 index 0000000..70ea62e Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23712_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23713_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23713_90_44_1638354842.png new file mode 100644 index 0000000..c4c71dd Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23713_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23714_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23714_90_44_1638354842.png new file mode 100644 index 0000000..b2c505e Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23714_90_44_1638354842.png differ diff --git a/app/src/main/assets/Christmas/photo_23715_90_44_1638354842.png b/app/src/main/assets/Christmas/photo_23715_90_44_1638354842.png new file mode 100644 index 0000000..d605361 Binary files /dev/null and b/app/src/main/assets/Christmas/photo_23715_90_44_1638354842.png differ diff --git a/app/src/main/assets/Glitter.json b/app/src/main/assets/Glitter.json index 093d489..1c759c7 100644 --- a/app/src/main/assets/Glitter.json +++ b/app/src/main/assets/Glitter.json @@ -2,12 +2,12 @@ "ID": 20456, "version": "3.0", "name": "Glitter", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20456_89_44_1577098648.png", + "coverPath": "file:///android_asset/Glitter/photo_20456_89_44_1577098648.png", "backgrounds": [{ "ID": 20457, "version": "3.0", "skinNumber": 17, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20457_90_44_1577097049.png", + "coverPath": "file:///android_asset/Glitter/photo_20457_90_44_1577097049.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20457_91_44_1577097049.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 20503, "version": "3.0", "skinNumber": 18, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20503_90_44_1577181185.png", + "coverPath": "file:///android_asset/Glitter/photo_20503_90_44_1577181185.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20503_91_44_1577181185.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 20496, "version": "3.0", "skinNumber": 19, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20496_90_44_1577106813.png", + "coverPath": "file:///android_asset/Glitter/photo_20496_90_44_1577106813.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20496_91_44_1577106813.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 20504, "version": "3.0", "skinNumber": 20, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20504_90_44_1577181209.png", + "coverPath": "file:///android_asset/Glitter/photo_20504_90_44_1577181209.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20504_91_44_1577181209.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground20", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 20461, "version": "3.0", "skinNumber": 21, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20461_90_44_1577097239.png", + "coverPath": "file:///android_asset/Glitter/photo_20461_90_44_1577097239.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20461_91_44_1577097239.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground21", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 20462, "version": "3.0", "skinNumber": 22, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20462_90_44_1577097347.png", + "coverPath": "file:///android_asset/Glitter/photo_20462_90_44_1577097347.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20462_91_44_1577097347.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground22", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 20505, "version": "3.0", "skinNumber": 23, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20505_90_44_1577181309.png", + "coverPath": "file:///android_asset/Glitter/photo_20505_90_44_1577181309.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20505_91_44_1577181309.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground23", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 20464, "version": "3.0", "skinNumber": 24, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20464_90_44_1577097441.png", + "coverPath": "file:///android_asset/Glitter/photo_20464_90_44_1577097441.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20464_91_44_1577097441.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground24", "videoCount": 0 @@ -71,7 +71,7 @@ "ID": 22151, "version": "3.3", "skinNumber": 3001, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22151_90_44_1623938500.png", + "coverPath": "file:///android_asset/Glitter/photo_22151_90_44_1623938500.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22151_91_44_1698327307.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground3001", "videoCount": 3 @@ -79,7 +79,7 @@ "ID": 22147, "version": "3.3", "skinNumber": 3002, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22147_90_44_1623929654.png", + "coverPath": "file:///android_asset/Glitter/photo_22147_90_44_1623929654.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22147_91_44_1624457460.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground3002", "videoCount": 3 @@ -87,7 +87,7 @@ "ID": 22148, "version": "3.3", "skinNumber": 3003, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22148_90_44_1623931308.png", + "coverPath": "file:///android_asset/Glitter/photo_22148_90_44_1623931308.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22148_91_44_1698327307.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground3003", "videoCount": 3 diff --git a/app/src/main/assets/Glitter/photo_20456_89_44_1577098648.png b/app/src/main/assets/Glitter/photo_20456_89_44_1577098648.png new file mode 100644 index 0000000..3eaf8c6 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20456_89_44_1577098648.png differ diff --git a/app/src/main/assets/Glitter/photo_20457_90_44_1577097049.png b/app/src/main/assets/Glitter/photo_20457_90_44_1577097049.png new file mode 100644 index 0000000..c182753 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20457_90_44_1577097049.png differ diff --git a/app/src/main/assets/Glitter/photo_20461_90_44_1577097239.png b/app/src/main/assets/Glitter/photo_20461_90_44_1577097239.png new file mode 100644 index 0000000..1462e4e Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20461_90_44_1577097239.png differ diff --git a/app/src/main/assets/Glitter/photo_20462_90_44_1577097347.png b/app/src/main/assets/Glitter/photo_20462_90_44_1577097347.png new file mode 100644 index 0000000..bbdc943 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20462_90_44_1577097347.png differ diff --git a/app/src/main/assets/Glitter/photo_20464_90_44_1577097441.png b/app/src/main/assets/Glitter/photo_20464_90_44_1577097441.png new file mode 100644 index 0000000..4f0606e Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20464_90_44_1577097441.png differ diff --git a/app/src/main/assets/Glitter/photo_20496_90_44_1577106813.png b/app/src/main/assets/Glitter/photo_20496_90_44_1577106813.png new file mode 100644 index 0000000..4f8b61a Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20496_90_44_1577106813.png differ diff --git a/app/src/main/assets/Glitter/photo_20503_90_44_1577181185.png b/app/src/main/assets/Glitter/photo_20503_90_44_1577181185.png new file mode 100644 index 0000000..b9373e6 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20503_90_44_1577181185.png differ diff --git a/app/src/main/assets/Glitter/photo_20504_90_44_1577181209.png b/app/src/main/assets/Glitter/photo_20504_90_44_1577181209.png new file mode 100644 index 0000000..83de984 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20504_90_44_1577181209.png differ diff --git a/app/src/main/assets/Glitter/photo_20505_90_44_1577181309.png b/app/src/main/assets/Glitter/photo_20505_90_44_1577181309.png new file mode 100644 index 0000000..24dbd91 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_20505_90_44_1577181309.png differ diff --git a/app/src/main/assets/Glitter/photo_22147_90_44_1623929654.png b/app/src/main/assets/Glitter/photo_22147_90_44_1623929654.png new file mode 100644 index 0000000..493078a Binary files /dev/null and b/app/src/main/assets/Glitter/photo_22147_90_44_1623929654.png differ diff --git a/app/src/main/assets/Glitter/photo_22148_90_44_1623931308.png b/app/src/main/assets/Glitter/photo_22148_90_44_1623931308.png new file mode 100644 index 0000000..968f0de Binary files /dev/null and b/app/src/main/assets/Glitter/photo_22148_90_44_1623931308.png differ diff --git a/app/src/main/assets/Glitter/photo_22151_90_44_1623938500.png b/app/src/main/assets/Glitter/photo_22151_90_44_1623938500.png new file mode 100644 index 0000000..d2c5e41 Binary files /dev/null and b/app/src/main/assets/Glitter/photo_22151_90_44_1623938500.png differ diff --git a/app/src/main/assets/Halloween.json b/app/src/main/assets/Halloween.json index 127bc89..4385c46 100644 --- a/app/src/main/assets/Halloween.json +++ b/app/src/main/assets/Halloween.json @@ -2,12 +2,12 @@ "ID": 24187, "version": "3.3.4", "name": "Halloween", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24187_89_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24187_89_44_1666095894.png", "backgrounds": [{ "ID": 24188, "version": "3.3.4", "skinNumber": 1123, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24188_90_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24188_90_44_1666095894.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24188_91_44_1698848177.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 24189, "version": "3.3.4", "skinNumber": 1124, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24189_90_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24189_90_44_1666095894.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24189_91_44_1666095894.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 24190, "version": "3.3.4", "skinNumber": 1125, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24190_90_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24190_90_44_1666095894.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24190_91_44_1666095894.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 24191, "version": "3.3.4", "skinNumber": 1126, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24191_90_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24191_90_44_1666095894.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24191_91_44_1698848177.zip", "inappString": "", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 24192, "version": "3.3.4", "skinNumber": 1127, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24192_90_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24192_90_44_1666095894.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24192_91_44_1698848177.zip", "inappString": "", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 24193, "version": "3.3.4", "skinNumber": 1128, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24193_90_44_1666095894.png", + "coverPath": "file:///android_asset/Halloween/photo_24193_90_44_1666095894.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24193_91_44_1698848177.zip", "inappString": "", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 24194, "version": "3.3.4", "skinNumber": 1129, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24194_90_44_1666341686.png", + "coverPath": "file:///android_asset/Halloween/photo_24194_90_44_1666341686.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24194_91_44_1666780655.zip", "inappString": "", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 24195, "version": "3.3.4", "skinNumber": 1130, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_24195_90_44_1666780501.png", + "coverPath": "file:///android_asset/Halloween/photo_24195_90_44_1666780501.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_24195_91_44_1698848177.zip", "inappString": "", "videoCount": 0 diff --git a/app/src/main/assets/Halloween/photo_24187_89_44_1666095894.png b/app/src/main/assets/Halloween/photo_24187_89_44_1666095894.png new file mode 100644 index 0000000..fe19c94 Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24187_89_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24188_90_44_1666095894.png b/app/src/main/assets/Halloween/photo_24188_90_44_1666095894.png new file mode 100644 index 0000000..2ece594 Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24188_90_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24189_90_44_1666095894.png b/app/src/main/assets/Halloween/photo_24189_90_44_1666095894.png new file mode 100644 index 0000000..e32338f Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24189_90_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24190_90_44_1666095894.png b/app/src/main/assets/Halloween/photo_24190_90_44_1666095894.png new file mode 100644 index 0000000..b245912 Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24190_90_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24191_90_44_1666095894.png b/app/src/main/assets/Halloween/photo_24191_90_44_1666095894.png new file mode 100644 index 0000000..64e1231 Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24191_90_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24192_90_44_1666095894.png b/app/src/main/assets/Halloween/photo_24192_90_44_1666095894.png new file mode 100644 index 0000000..5160daa Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24192_90_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24193_90_44_1666095894.png b/app/src/main/assets/Halloween/photo_24193_90_44_1666095894.png new file mode 100644 index 0000000..0cb1fb9 Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24193_90_44_1666095894.png differ diff --git a/app/src/main/assets/Halloween/photo_24194_90_44_1666341686.png b/app/src/main/assets/Halloween/photo_24194_90_44_1666341686.png new file mode 100644 index 0000000..500561b Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24194_90_44_1666341686.png differ diff --git a/app/src/main/assets/Halloween/photo_24195_90_44_1666780501.png b/app/src/main/assets/Halloween/photo_24195_90_44_1666780501.png new file mode 100644 index 0000000..7c307b2 Binary files /dev/null and b/app/src/main/assets/Halloween/photo_24195_90_44_1666780501.png differ diff --git a/app/src/main/assets/Pastel.json b/app/src/main/assets/Pastel.json index 16bf310..0cc6def 100644 --- a/app/src/main/assets/Pastel.json +++ b/app/src/main/assets/Pastel.json @@ -2,12 +2,12 @@ "ID": 21737, "version": "3.2.1", "name": "Pastel", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21737_89_44_1603799588.png", + "coverPath": "file:///android_asset/Pastel/photo_21737_89_44_1603799588.png", "backgrounds": [{ "ID": 21738, "version": "3.2.1", "skinNumber": 57, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21738_90_44_1625666113.png", + "coverPath": "file:///android_asset/Pastel/photo_21738_90_44_1625666113.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21738_91_44_1698326102.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 21739, "version": "3.2.1", "skinNumber": 58, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21739_90_44_1625665750.png", + "coverPath": "file:///android_asset/Pastel/photo_21739_90_44_1625665750.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21739_91_44_1625664575.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 21740, "version": "3.2.1", "skinNumber": 59, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21740_90_44_1604052582.png", + "coverPath": "file:///android_asset/Pastel/photo_21740_90_44_1604052582.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21740_91_44_1625664628.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 21741, "version": "3.2.1", "skinNumber": 60, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21741_90_44_1604052649.png", + "coverPath": "file:///android_asset/Pastel/photo_21741_90_44_1604052649.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21741_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground60", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 21742, "version": "3.2.1", "skinNumber": 61, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21742_90_44_1604576855.png", + "coverPath": "file:///android_asset/Pastel/photo_21742_90_44_1604576855.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21742_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground61", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 21743, "version": "3.2.1", "skinNumber": 62, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21743_90_44_1604052836.png", + "coverPath": "file:///android_asset/Pastel/photo_21743_90_44_1604052836.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21743_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground62", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 21744, "version": "3.2.1", "skinNumber": 63, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21744_90_44_1604052934.png", + "coverPath": "file:///android_asset/Pastel/photo_21744_90_44_1604052934.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21744_91_44_1625664848.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground63", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 21745, "version": "3.2.1", "skinNumber": 64, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_21745_90_44_1604576826.png", + "coverPath": "file:///android_asset/Pastel/photo_21745_90_44_1604576826.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_21745_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground64", "videoCount": 0 @@ -71,7 +71,7 @@ "ID": 22142, "version": "3.3", "skinNumber": 7001, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22142_90_44_1623758837.png", + "coverPath": "file:///android_asset/Pastel/photo_22142_90_44_1623758837.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22142_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground7001", "videoCount": 3 @@ -79,7 +79,7 @@ "ID": 22141, "version": "3.3", "skinNumber": 7002, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22141_90_44_1623756868.png", + "coverPath": "file:///android_asset/Pastel/photo_22141_90_44_1623756868.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22141_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground7002", "videoCount": 3 @@ -87,7 +87,7 @@ "ID": 22145, "version": "3.3", "skinNumber": 7003, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22145_90_44_1623764512.png", + "coverPath": "file:///android_asset/Pastel/photo_22145_90_44_1623764512.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22145_91_44_1698326102.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground7003", "videoCount": 3 diff --git a/app/src/main/assets/Pastel/photo_21737_89_44_1603799588.png b/app/src/main/assets/Pastel/photo_21737_89_44_1603799588.png new file mode 100644 index 0000000..d7cf2c4 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21737_89_44_1603799588.png differ diff --git a/app/src/main/assets/Pastel/photo_21738_90_44_1625666113.png b/app/src/main/assets/Pastel/photo_21738_90_44_1625666113.png new file mode 100644 index 0000000..735009f Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21738_90_44_1625666113.png differ diff --git a/app/src/main/assets/Pastel/photo_21739_90_44_1625665750.png b/app/src/main/assets/Pastel/photo_21739_90_44_1625665750.png new file mode 100644 index 0000000..6ac4651 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21739_90_44_1625665750.png differ diff --git a/app/src/main/assets/Pastel/photo_21740_90_44_1604052582.png b/app/src/main/assets/Pastel/photo_21740_90_44_1604052582.png new file mode 100644 index 0000000..3e80a97 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21740_90_44_1604052582.png differ diff --git a/app/src/main/assets/Pastel/photo_21741_90_44_1604052649.png b/app/src/main/assets/Pastel/photo_21741_90_44_1604052649.png new file mode 100644 index 0000000..81cf8c2 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21741_90_44_1604052649.png differ diff --git a/app/src/main/assets/Pastel/photo_21742_90_44_1604576855.png b/app/src/main/assets/Pastel/photo_21742_90_44_1604576855.png new file mode 100644 index 0000000..47fe123 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21742_90_44_1604576855.png differ diff --git a/app/src/main/assets/Pastel/photo_21743_90_44_1604052836.png b/app/src/main/assets/Pastel/photo_21743_90_44_1604052836.png new file mode 100644 index 0000000..d81f73d Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21743_90_44_1604052836.png differ diff --git a/app/src/main/assets/Pastel/photo_21744_90_44_1604052934.png b/app/src/main/assets/Pastel/photo_21744_90_44_1604052934.png new file mode 100644 index 0000000..8924a9f Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21744_90_44_1604052934.png differ diff --git a/app/src/main/assets/Pastel/photo_21745_90_44_1604576826.png b/app/src/main/assets/Pastel/photo_21745_90_44_1604576826.png new file mode 100644 index 0000000..c033aa1 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_21745_90_44_1604576826.png differ diff --git a/app/src/main/assets/Pastel/photo_22141_90_44_1623756868.png b/app/src/main/assets/Pastel/photo_22141_90_44_1623756868.png new file mode 100644 index 0000000..dc00fab Binary files /dev/null and b/app/src/main/assets/Pastel/photo_22141_90_44_1623756868.png differ diff --git a/app/src/main/assets/Pastel/photo_22142_90_44_1623758837.png b/app/src/main/assets/Pastel/photo_22142_90_44_1623758837.png new file mode 100644 index 0000000..9540fa1 Binary files /dev/null and b/app/src/main/assets/Pastel/photo_22142_90_44_1623758837.png differ diff --git a/app/src/main/assets/Pastel/photo_22145_90_44_1623764512.png b/app/src/main/assets/Pastel/photo_22145_90_44_1623764512.png new file mode 100644 index 0000000..e275c8d Binary files /dev/null and b/app/src/main/assets/Pastel/photo_22145_90_44_1623764512.png differ diff --git a/app/src/main/assets/Unicorn.json b/app/src/main/assets/Unicorn.json index cb9d5f2..109ba6c 100644 --- a/app/src/main/assets/Unicorn.json +++ b/app/src/main/assets/Unicorn.json @@ -2,12 +2,12 @@ "ID": 20447, "version": "3.0", "name": "Unicorn", - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20447_89_44_1577098636.png", + "coverPath": "file:///android_asset/Unicorn/photo_20447_89_44_1577098636.png", "backgrounds": [{ "ID": 20448, "version": "3.0", "skinNumber": 9, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20448_90_44_1577096586.png", + "coverPath": "file:///android_asset/Unicorn/photo_20448_90_44_1577096586.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20448_91_44_1577096586.zip", "inappString": "", "videoCount": 0 @@ -15,7 +15,7 @@ "ID": 20449, "version": "3.0", "skinNumber": 10, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20449_90_44_1577096612.png", + "coverPath": "file:///android_asset/Unicorn/photo_20449_90_44_1577096612.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20449_91_44_1577096612.zip", "inappString": "", "videoCount": 0 @@ -23,7 +23,7 @@ "ID": 20497, "version": "3.0", "skinNumber": 11, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20497_90_44_1577107523.png", + "coverPath": "file:///android_asset/Unicorn/photo_20497_90_44_1577107523.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20497_91_44_1577107523.zip", "inappString": "", "videoCount": 0 @@ -31,7 +31,7 @@ "ID": 20451, "version": "3.0", "skinNumber": 12, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20451_90_44_1577096666.png", + "coverPath": "file:///android_asset/Unicorn/photo_20451_90_44_1577096666.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20451_91_44_1577096666.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground12", "videoCount": 0 @@ -39,7 +39,7 @@ "ID": 20452, "version": "3.0", "skinNumber": 13, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20452_90_44_1577096876.png", + "coverPath": "file:///android_asset/Unicorn/photo_20452_90_44_1577096876.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20452_91_44_1577096876.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground13", "videoCount": 0 @@ -47,7 +47,7 @@ "ID": 20453, "version": "3.0", "skinNumber": 14, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20453_90_44_1577096909.png", + "coverPath": "file:///android_asset/Unicorn/photo_20453_90_44_1577096909.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20453_91_44_1577096909.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground14", "videoCount": 0 @@ -55,7 +55,7 @@ "ID": 20502, "version": "3.0", "skinNumber": 15, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20502_90_44_1577181135.png", + "coverPath": "file:///android_asset/Unicorn/photo_20502_90_44_1577181135.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20502_91_44_1577181135.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground15", "videoCount": 0 @@ -63,7 +63,7 @@ "ID": 20455, "version": "3.0", "skinNumber": 16, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_20455_90_44_1577096966.png", + "coverPath": "file:///android_asset/Unicorn/photo_20455_90_44_1577096966.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_20455_91_44_1577096966.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground16", "videoCount": 0 @@ -71,7 +71,7 @@ "ID": 22159, "version": "3.3", "skinNumber": 2001, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22159_90_44_1624619080.png", + "coverPath": "file:///android_asset/Unicorn/photo_22159_90_44_1624619080.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22159_91_44_1624619080.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground2001", "videoCount": 3 @@ -79,7 +79,7 @@ "ID": 22160, "version": "3.3", "skinNumber": 2002, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22160_90_44_1624625621.png", + "coverPath": "file:///android_asset/Unicorn/photo_22160_90_44_1624625621.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22160_91_44_1624625621.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground2002", "videoCount": 3 @@ -87,7 +87,7 @@ "ID": 22152, "version": "3.3", "skinNumber": 2003, - "coverPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/pictures\/photo_22152_90_44_1624358800.png", + "coverPath": "file:///android_asset/Unicorn/photo_22152_90_44_1624358800.png", "contentPath": "https:\/\/milenica.info\/AppSetUp\/SetUp\/files\/file_22152_91_44_1698326756.zip", "inappString": "milicapetrovic.emojikeyboard.colorkeyboard.UnlockBackground2003", "videoCount": 3 diff --git a/app/src/main/assets/Unicorn/photo_20447_89_44_1577098636.png b/app/src/main/assets/Unicorn/photo_20447_89_44_1577098636.png new file mode 100644 index 0000000..c6b8bb0 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20447_89_44_1577098636.png differ diff --git a/app/src/main/assets/Unicorn/photo_20448_90_44_1577096586.png b/app/src/main/assets/Unicorn/photo_20448_90_44_1577096586.png new file mode 100644 index 0000000..9cd0914 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20448_90_44_1577096586.png differ diff --git a/app/src/main/assets/Unicorn/photo_20449_90_44_1577096612.png b/app/src/main/assets/Unicorn/photo_20449_90_44_1577096612.png new file mode 100644 index 0000000..7213513 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20449_90_44_1577096612.png differ diff --git a/app/src/main/assets/Unicorn/photo_20451_90_44_1577096666.png b/app/src/main/assets/Unicorn/photo_20451_90_44_1577096666.png new file mode 100644 index 0000000..accf648 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20451_90_44_1577096666.png differ diff --git a/app/src/main/assets/Unicorn/photo_20452_90_44_1577096876.png b/app/src/main/assets/Unicorn/photo_20452_90_44_1577096876.png new file mode 100644 index 0000000..f50f1fe Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20452_90_44_1577096876.png differ diff --git a/app/src/main/assets/Unicorn/photo_20453_90_44_1577096909.png b/app/src/main/assets/Unicorn/photo_20453_90_44_1577096909.png new file mode 100644 index 0000000..ac95b48 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20453_90_44_1577096909.png differ diff --git a/app/src/main/assets/Unicorn/photo_20455_90_44_1577096966.png b/app/src/main/assets/Unicorn/photo_20455_90_44_1577096966.png new file mode 100644 index 0000000..017a724 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20455_90_44_1577096966.png differ diff --git a/app/src/main/assets/Unicorn/photo_20497_90_44_1577107523.png b/app/src/main/assets/Unicorn/photo_20497_90_44_1577107523.png new file mode 100644 index 0000000..8cc32b3 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20497_90_44_1577107523.png differ diff --git a/app/src/main/assets/Unicorn/photo_20502_90_44_1577181135.png b/app/src/main/assets/Unicorn/photo_20502_90_44_1577181135.png new file mode 100644 index 0000000..f367231 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_20502_90_44_1577181135.png differ diff --git a/app/src/main/assets/Unicorn/photo_22152_90_44_1624358800.png b/app/src/main/assets/Unicorn/photo_22152_90_44_1624358800.png new file mode 100644 index 0000000..9d9e663 Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_22152_90_44_1624358800.png differ diff --git a/app/src/main/assets/Unicorn/photo_22159_90_44_1624619080.png b/app/src/main/assets/Unicorn/photo_22159_90_44_1624619080.png new file mode 100644 index 0000000..95a83ff Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_22159_90_44_1624619080.png differ diff --git a/app/src/main/assets/Unicorn/photo_22160_90_44_1624625621.png b/app/src/main/assets/Unicorn/photo_22160_90_44_1624625621.png new file mode 100644 index 0000000..9592d0d Binary files /dev/null and b/app/src/main/assets/Unicorn/photo_22160_90_44_1624625621.png differ diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/App.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/App.kt index 4cb0beb..4226ac7 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/App.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/App.kt @@ -6,14 +6,25 @@ import android.util.Log import com.anythink.core.api.ATSDK import com.anythink.core.api.NetTrafficeCallback import com.anythink.debug.api.ATDebuggerUITest +import com.sunny.app.soft.timberkeyboardnew.data.DataManager +import com.sunny.app.soft.timberkeyboardnew.room.MyDatabase + import com.sunny.app.soft.timberkeyboardnew.topon.AdManager +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch class App : Application() { companion object { lateinit var appContext: Context - const val TAG ="=============" + const val TAG = "=============" + + const val ROOM_NAME = "My_Keyboard" + const val ROOM_VERSION = 1 + const val TABle_name_1 = "category" + const val TABle_name_2 = "keyboard" } private val debugKey = "5a963ac260793c4ffdf9580cd63743d4ce258e51" private val appId = "h669e2559e94df" @@ -23,6 +34,21 @@ class App : Application() { super.onCreate() appContext = this initTopOn() + CoroutineScope(Dispatchers.IO).launch { + Log.d(TAG, " 协程start") + val list = MyDatabase.myDatabase.CategoryEntityDao().queryAllData() + if(list.size<=0){ + DataManager.getCategoryEntity("Abstract.json") + DataManager.getCategoryEntity("Chinese.json") + DataManager.getCategoryEntity("Christmas.json") + DataManager.getCategoryEntity("Glitter.json") + DataManager.getCategoryEntity("Halloween.json") + DataManager.getCategoryEntity("Pastel.json") + DataManager.getCategoryEntity("Unicorn.json") + } + Log.d(TAG, " 协程end") + } + } @@ -41,11 +67,11 @@ class App : Application() { } }) - ATSDK.init( this, appId, appKey) + ATSDK.init(this, appId, appKey) // ATSDK.setNetworkLogDebug(true) - AdManager.loadAllAd() + AdManager.loadAllAd() //测试工具 - //ATDebuggerUITest.showDebuggerUI(this,debugKey) + //ATDebuggerUITest.showDebuggerUI(this,debugKey) } } \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/DataManager.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/DataManager.kt index 5f4f1bc..8f2a93d 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/DataManager.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/DataManager.kt @@ -1,37 +1,61 @@ package com.sunny.app.soft.timberkeyboardnew.data +import android.util.Log import com.google.gson.Gson -import com.google.gson.JsonArray -import com.google.gson.JsonObject import com.sunny.app.soft.timberkeyboardnew.App +import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity import com.sunny.app.soft.timberkeyboardnew.data.entity.CategoryEntity +import com.sunny.app.soft.timberkeyboardnew.room.MyDatabase +import org.json.JSONObject import java.io.InputStream import java.io.InputStreamReader -class DataManager { - - private fun parseJsonFile(jsonInputStream: InputStream): CategoryEntity { +object DataManager { + private fun parseJsonFile(jsonInputStream: InputStream) { val reader = InputStreamReader(jsonInputStream) val jsonString = reader.readText() - val gson = Gson() - val json = gson.fromJson(jsonString, JsonObject::class.java) - val entity: CategoryEntity = gson.fromJson(json.toString(), CategoryEntity::class.java) - return entity + + val jsonObject = JSONObject(jsonString) + val categoryName = jsonObject.getString("name") + val covert = jsonObject.getString("coverPath") + + val cateId = MyDatabase.myDatabase.CategoryEntityDao() + .insertData(CategoryEntity(name = categoryName, coverPath = covert)) + + Log.d(App.TAG, " categoryName=${categoryName} cateId=${cateId}") + val jsonArray = jsonObject.getJSONArray("backgrounds") + for (i in 0 until jsonArray.length()) { + val json1 = jsonArray.getJSONObject(i) + val keyboardCovert = json1.getString("coverPath") + val zipPath = json1.getString("contentPath") + val skinNumber = json1.getInt("skinNumber") + + MyDatabase.myDatabase.BackgroundEntityDao() + .insertData( + BackgroundEntity( + categoryId = cateId, + coverPath = keyboardCovert, + contentPath = zipPath, + skinNumber = skinNumber, + like = false + ) + ) + } +// val gson = Gson() +// val json = gson.fromJson(jsonString, JsonObject::class.java) +// val entity: CategoryEntity = gson.fromJson(json.toString(), CategoryEntity::class.java) + } - private fun getCategoryEntity(uil: String): CategoryEntity { + fun getCategoryEntity(uil: String) { return parseJsonFile(App.appContext.assets.open(uil)) } fun getModelList(): List { val modelList = mutableListOf() - modelList.add(getCategoryEntity("Abstract.json")) - modelList.add(getCategoryEntity("Chinese.json")) - modelList.add(getCategoryEntity("Christmas.json")) - modelList.add(getCategoryEntity("Glitter.json")) - modelList.add(getCategoryEntity("Halloween.json")) - modelList.add(getCategoryEntity("Pastel.json")) - modelList.add(getCategoryEntity("Unicorn.json")) + + + return modelList } diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/BackgroundEntity.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/BackgroundEntity.kt index ed90d62..bb0e874 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/BackgroundEntity.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/BackgroundEntity.kt @@ -1,13 +1,30 @@ package com.sunny.app.soft.timberkeyboardnew.data.entity +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.Index +import androidx.room.PrimaryKey +import com.sunny.app.soft.timberkeyboardnew.App import java.io.Serializable -data class BackgroundEntity( - val id: Int, - val version: String, - val skinNumber: Int, - val coverPath: String, - val contentPath: String, - val inappString: String, - val videoCount: Int +@Entity( + tableName = App.TABle_name_2, foreignKeys = arrayOf( + ForeignKey( + entity = CategoryEntity::class, + parentColumns = arrayOf("id"), + childColumns = arrayOf("categoryId"), + onDelete = ForeignKey.CASCADE + ) + ), + indices = [Index(value = ["id"], unique = true), Index(value = ["categoryId"])] +) + class BackgroundEntity( + + @PrimaryKey(autoGenerate = true) + var id: Long = 0, + var categoryId: Long, + var coverPath: String, + var contentPath: String, + var skinNumber:Int, + var like: Boolean = false ) : Serializable \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/CategoryEntity.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/CategoryEntity.kt index 24605f7..043ad89 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/CategoryEntity.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/data/entity/CategoryEntity.kt @@ -1,11 +1,14 @@ package com.sunny.app.soft.timberkeyboardnew.data.entity +import androidx.room.Entity +import androidx.room.PrimaryKey +import com.sunny.app.soft.timberkeyboardnew.App import java.io.Serializable -data class CategoryEntity( - val id: Int, - val version: String, - val name: String, - val coverPath: String, - val backgrounds: List +@Entity(tableName = App.TABle_name_1) +class CategoryEntity( + @PrimaryKey(autoGenerate = true) + var id: Long = 0, + var name: String, + var coverPath: String, ) : Serializable \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/BackgroundDao.java b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/BackgroundDao.java new file mode 100644 index 0000000..96b4be2 --- /dev/null +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/BackgroundDao.java @@ -0,0 +1,35 @@ +package com.sunny.app.soft.timberkeyboardnew.room; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; +import androidx.room.Update; + +import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity; + +import java.util.List; + +@Dao +public interface BackgroundDao { + + @Insert(onConflict = OnConflictStrategy.IGNORE) + long insertData(BackgroundEntity data); + + + @Query("select * from keyboard order by id desc") + LiveData> queryAll(); + + @Query("select * from keyboard where categoryId = :cateId") + LiveData> queryCateId(long cateId); + + + @Query("select * from keyboard where `like` = :collect") + LiveData> queryCollect(boolean collect); + + @Update() + void updateCollect(BackgroundEntity entity); + + +} diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/CategoryDao.java b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/CategoryDao.java new file mode 100644 index 0000000..cd790c1 --- /dev/null +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/CategoryDao.java @@ -0,0 +1,30 @@ +package com.sunny.app.soft.timberkeyboardnew.room; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; + +import com.sunny.app.soft.timberkeyboardnew.data.entity.CategoryEntity; + +import java.util.List; + +@Dao +public interface CategoryDao { + + @Insert(onConflict = OnConflictStrategy.IGNORE) + long insertData(CategoryEntity data); + + + @Query("select * from category order by id desc") + LiveData> queryAll(); + + @Query("select * from category where name = :mtitle") + CategoryEntity queryCateId(String mtitle); + + @Query("select * from category order by id desc") + List queryAllData(); + + +} diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/MyDatabase.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/MyDatabase.kt new file mode 100644 index 0000000..7c3d2fc --- /dev/null +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/room/MyDatabase.kt @@ -0,0 +1,31 @@ +package com.sunny.app.soft.timberkeyboardnew.room + +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import com.sunny.app.soft.timberkeyboardnew.App +import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity +import com.sunny.app.soft.timberkeyboardnew.data.entity.CategoryEntity + + +@Database( + entities = [CategoryEntity::class, BackgroundEntity::class], + version = App.ROOM_VERSION, + exportSchema = false +) +abstract class MyDatabase : RoomDatabase() { + + abstract fun CategoryEntityDao(): CategoryDao + abstract fun BackgroundEntityDao(): BackgroundDao + + + companion object { + val myDatabase: MyDatabase by lazy { + Room.databaseBuilder( + App.appContext, MyDatabase::class.java, + App.ROOM_NAME + ).build() + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/AppConstant.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/AppConstant.kt index 1508629..5ede48b 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/AppConstant.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/AppConstant.kt @@ -9,9 +9,10 @@ object AppConstant { const val SHARE_NAME = "sp_name" const val SHIFT_NUMBER = -300 const val SHIFT_SYMBOL = -301 - const val KEY_CUR_Path = "all_path" + const val KEY_CODE_SPACE=32 + const val KEY_CUR_Skin_Number = "cur_skin_number" const val KEY_CUR_STYLE = "cur_style" - const val KEY_CUR_Path_img = "all_path_img" + const val KEY_CUR_Bg = "cur_bg" const val xml0 = 24 const val xml1 = 25 const val xml2 = 26 @@ -49,5 +50,8 @@ object AppConstant { fun getnormalBg(id: String,style:Int=1) = String.format(App.appContext.getString(R.string.normal_res), id,style) + //skin_8001_space_arrows_shadows.9 + fun getSpaceBg(id: String) = String.format(App.appContext.getString(R.string.space_res), id) + fun getTextColor(id: String,style:Int=1) = String.format(App.appContext.getString(R.string.correct_text_color), id,style) } \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/ZipTools.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/ZipTools.kt index d686c59..9e285fa 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/ZipTools.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/tools/ZipTools.kt @@ -1,5 +1,9 @@ package com.sunny.app.soft.timberkeyboardnew.tools +import android.util.Log +import com.sunny.app.soft.timberkeyboardnew.App +import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity +import com.sunny.app.soft.timberkeyboardnew.ui.listener.ApplyListener import java.io.BufferedOutputStream import java.io.File import java.io.FileInputStream @@ -8,24 +12,32 @@ import java.io.IOException import java.util.zip.ZipInputStream object ZipTools { - fun unzip(zipFilePath: String?, destDirectory: String) { - val destDir = File(destDirectory) + fun unzip(zipFilePath: String?, destDirectory: String, listener: ApplyListener) { + var destDir = File(destDirectory) if (!destDir.exists()) { - destDir.mkdir() + destDir.mkdirs() } + var test = "${App.appContext.cacheDir}" val zipIn = ZipInputStream(FileInputStream(zipFilePath)) var entry = zipIn.nextEntry + + var unzipDir = "" while (entry != null) { - val filePath = destDirectory + File.separator + entry.name + val filePath = test + File.separator + entry.name if (!entry.isDirectory) { extractFile(zipIn, filePath) } else { val dir = File(filePath) dir.mkdir() + // /data/user/0/com.sunny.tools.app.soft.test/cache/9/skin_9/ + unzipDir = filePath } zipIn.closeEntry() entry = zipIn.nextEntry } + val replaceAfterLast = unzipDir.substring(0, unzipDir.length-1) + Log.d(App.TAG, "--new unzip=$replaceAfterLast") + listener.applyListener(true,replaceAfterLast) zipIn.close() } @@ -38,4 +50,11 @@ object ZipTools { } bos.close() } + + fun getUnzipPath(skinNumber: String): String { + val s = "${App.appContext.cacheDir}/skin_${skinNumber}" + return s + } + + } diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdListener.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdListener.kt index c65410b..b14f5d8 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdListener.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdListener.kt @@ -1,6 +1,8 @@ package com.sunny.app.soft.timberkeyboardnew.topon interface AdListener { + + fun loadFail(placeId: String) fun showSuccess() fun showFail() diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdManager.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdManager.kt index f69e80a..6c3d5de 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdManager.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/AdManager.kt @@ -11,6 +11,7 @@ import com.sunny.app.soft.timberkeyboardnew.App object AdManager { + const val type_no_cache = 0 const val type_has_cache = 1 const val type_show_success = 2 @@ -18,15 +19,23 @@ object AdManager { const val type_show_fail = 4 /** - * 广告id: n669e25a626d80 - * n669e25a65c060 - * n669e25a707130 + 广告id: n669e25a626d80 + n669e25a65c060 + n669e25a707130 */ + const val place1Id = "n669e25a626d80" const val place2Id = "n669e25a65c060" const val place3Id = "n669e25a707130" + + var place1LoadFail = false + var place2LoadFail = false + var place3LoadFail = false + val list = mutableListOf() + + @JvmStatic fun loadAllAd() { if (list.size <= 0) { @@ -39,8 +48,19 @@ object AdManager { } for (ad in list) { if (!ad.isAdReady) { - Log.d(App.TAG,"--------------start--load ad=${ad.mPlacementId}") - setCallBack(ad,object :AdListener{ + setCallBack(ad, object : AdListener { + override fun loadFail(placeId: String) { + if (placeId == place1Id) { + place1LoadFail = true + } + if (placeId == place2Id) { + place2LoadFail = true + } + if (placeId == place3Id) { + place3LoadFail = true + } + } + override fun showSuccess() { } @@ -54,32 +74,40 @@ object AdManager { } }) - ad.load() +// ad.load() } } } + @JvmStatic fun getReadyAd(): ATInterstitial? { list.shuffle() for (ad in list) { if (ad.isAdReady) { + Log.d(App.TAG, "-has AD------------") return ad } } + Log.d(App.TAG, "-NO AD-----------") return null } @JvmStatic - fun showWelcomeAd(activity: Activity,totalTim: Long, goMain: () -> Unit): CountDownTimer { + fun showWelcomeAd( + activity: Activity, + totalTim: Long, + countAction: (millisUntilFinished: Long) -> Unit, + goMain: () -> Unit + ): CountDownTimer { var alreadyShow = false var timer = object : CountDownTimer(totalTim, 100) { override fun onTick(millisUntilFinished: Long) { + countAction.invoke(millisUntilFinished) if (!alreadyShow) { showAD(activity) { - Log.d(App.TAG, "------------showAD:${it} ") if (it == type_has_cache) { alreadyShow = true } @@ -89,12 +117,12 @@ object AdManager { } } + } override fun onFinish() { if (!alreadyShow) { showAD(activity) { - Log.d(App.TAG, "------------onFinish:${it} ") if (it == type_show_close || it == type_show_fail || it == type_no_cache) { goMain.invoke() } @@ -113,7 +141,7 @@ object AdManager { } override fun onInterstitialAdLoadFail(p0: AdError?) { - Log.d(App.TAG, "LoadFail:${p0?.code} ${p0?.fullErrorInfo}") + Log.d(App.TAG, "LoadFail:${p0?.code} ${p0?.desc}") } override fun onInterstitialAdClicked(p0: ATAdInfo?) { @@ -121,7 +149,6 @@ object AdManager { } override fun onInterstitialAdShow(p0: ATAdInfo?) { - Log.d(App.TAG, "AdShow ${p0?.showId} ") listener.showSuccess() ad.load() } @@ -147,14 +174,19 @@ object AdManager { @JvmStatic - fun showAD(activity: Activity, action: (type: Int) -> Unit) { + private fun showAD(activity: Activity, action: (type: Int) -> Unit) { val readyAd = getReadyAd() - if (readyAd!= null) { + if (readyAd != null) { Log.d(App.TAG, "readyAd ${readyAd.mPlacementId} ") action.invoke(type_has_cache) - setCallBack(readyAd,object : AdListener { + setCallBack(readyAd, object : AdListener { + override fun loadFail(placeId: String) { + + } + override fun showSuccess() { action.invoke(type_show_success) + } override fun showFail() { @@ -173,5 +205,12 @@ object AdManager { } } - + @JvmStatic + fun showTopOn(activity: Activity, listener: onActionListener) { + showAD(activity) { type -> + if (type == type_no_cache || type == type_show_close || type == type_show_fail) { + listener.onAction() + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/onActionListener.java b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/onActionListener.java new file mode 100644 index 0000000..b0952aa --- /dev/null +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/topon/onActionListener.java @@ -0,0 +1,6 @@ +package com.sunny.app.soft.timberkeyboardnew.topon; + +public interface onActionListener { + + void onAction(); +} diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/DownloadActivity.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/DownloadActivity.kt index a362a9c..ce8bd81 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/DownloadActivity.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/DownloadActivity.kt @@ -3,31 +3,32 @@ package com.sunny.app.soft.timberkeyboardnew.ui.activity import android.content.Context import android.content.Intent import android.content.SharedPreferences -import android.graphics.BitmapFactory -import android.graphics.drawable.BitmapDrawable import android.util.Log import android.view.View import android.widget.Toast -import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import com.bumptech.glide.load.DataSource +import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.GlideException import com.bumptech.glide.request.RequestListener import com.bumptech.glide.request.target.Target +import com.sunny.app.soft.timberkeyboardnew.App import com.sunny.app.soft.timberkeyboardnew.R import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity import com.sunny.app.soft.timberkeyboardnew.databinding.ActivityDownloadBinding +import com.sunny.app.soft.timberkeyboardnew.room.MyDatabase import com.sunny.app.soft.timberkeyboardnew.tools.AppConstant import com.sunny.app.soft.timberkeyboardnew.tools.KeyboardManager import com.sunny.app.soft.timberkeyboardnew.tools.ZipTools import com.sunny.app.soft.timberkeyboardnew.topon.AdManager import com.sunny.app.soft.timberkeyboardnew.ui.adapter.KeyAdapter import com.sunny.app.soft.timberkeyboardnew.ui.listener.ApplyListener +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import java.io.ByteArrayOutputStream import java.io.File -import java.io.FileInputStream import java.io.FileOutputStream import java.io.InputStream @@ -40,7 +41,6 @@ class DownloadActivity : private lateinit var backgroundEntity: BackgroundEntity - private lateinit var zipPath: String private lateinit var unzipPath: String @@ -57,27 +57,12 @@ class DownloadActivity : super.initView() binding.downloadProgress.visibility = View.VISIBLE backgroundEntity = intent.getSerializableExtra(AppConstant.KEY_EXTRA) as BackgroundEntity - sp = getSharedPreferences( - AppConstant.SHARE_NAME, Context.MODE_PRIVATE - ) - - val path = - sp.getString("${AppConstant.KEY_CUR_Path_img}_${backgroundEntity.skinNumber}", "") - val file = File(path) - if (file.exists()) { - val bitmapDrawable = - BitmapDrawable(resources, BitmapFactory.decodeFile(path)) - binding.downloadImg.setImageDrawable(bitmapDrawable) - - Log.d("----------", "exists") - } else { - initImg() - } - - //187df1496820a65c01b38bc74333cc1bae249226b337397125f7c6367023e86c.0 - unzipPath = "$cacheDir/${backgroundEntity.skinNumber}/skin_${backgroundEntity.skinNumber}" - + sp = getSharedPreferences(AppConstant.SHARE_NAME, Context.MODE_PRIVATE) + initImg() + // unzipPath = /data/user/0/com.sunny.tools.app.soft.test/cache/skin_9 + unzipPath = ZipTools.getUnzipPath(backgroundEntity.skinNumber.toString()) + Log.d(App.TAG, "-------unzipPath=${unzipPath}") initDownload() initButton() initTitle() @@ -88,10 +73,6 @@ class DownloadActivity : } private fun initDownload() { - val cacheDir = cacheDir - val dataUrl = backgroundEntity.contentPath - zipPath = "$cacheDir/$dataUrl" - val zipFile = File(unzipPath) if (!zipFile.exists()) { getZipData( @@ -100,26 +81,26 @@ class DownloadActivity : this@DownloadActivity, this ) - }else{ + } else { binding.downloadProgress.visibility = View.GONE - initList() + initStyleList() } } - private fun initList(){ + private fun initStyleList() { val listOf = mutableListOf() backgroundEntity.skinNumber.let { - val unzipPath = "${cacheDir}/${it}/skin_${it}/" - for(i in 0 until 5){ - val plus = unzipPath.plus(AppConstant.getnormalBg(it.toString(), i + 1)) - if(File(plus).exists()){ + for (i in 0 until 5) { + val plus = unzipPath + "/" + AppConstant.getnormalBg(it.toString(), i + 1) + Log.d(App.TAG, "-------plus=${plus}") + if (File(plus).exists()) { listOf.add(plus) } } } - + Log.d(App.TAG, "-------initList=${listOf.size}") val keyAdapter = KeyAdapter(this, listOf) { - selectedStyle = it+1 + selectedStyle = it + 1 } binding.listRecycler.run { adapter = keyAdapter @@ -127,15 +108,12 @@ class DownloadActivity : orientation = LinearLayoutManager.HORIZONTAL } } - - } private fun onShowAd() { - AdManager.showAD(this) { - if (it == AdManager.type_show_fail || it == AdManager.type_no_cache || it == AdManager.type_show_close) { - startSetSkin() - } + AdManager.showTopOn(this) { + startSetSkin() + } @@ -144,59 +122,20 @@ class DownloadActivity : private fun initButton() { binding.downloadBack.setOnClickListener(this) binding.btnDownload.setOnClickListener(this) + binding.imLike.setOnClickListener(this) } private fun initImg() { + binding.imLike.isSelected = backgroundEntity.like try { Glide .with(this) - .downloadOnly() + .asDrawable() .load(backgroundEntity.coverPath) -// .apply( -// RequestOptions().placeholder(R.drawable.png_loading) -// ) -// .diskCacheStrategy(DiskCacheStrategy.ALL) - .addListener(object : RequestListener { - override fun onLoadFailed( - e: GlideException?, - model: Any?, - target: Target?, - isFirstResource: Boolean - ): Boolean { - Log.d( - "----------", - "onLoadFailed backgroundEntity.coverPath=${backgroundEntity.coverPath} e=${e?.message} " - ) - return false - } - - override fun onResourceReady( - resource: File?, - model: Any?, - target: Target?, - dataSource: DataSource?, - isFirstResource: Boolean - ): Boolean { - resource?.let { - Log.d("----------", "it.absolutePath=${it.absolutePath}") - val edit = sp.edit() - edit.run { - putString( - "${AppConstant.KEY_CUR_Path_img}_${backgroundEntity.skinNumber}", - it.absolutePath - ) - apply() - } - - val bitmapDrawable = - BitmapDrawable(resources, BitmapFactory.decodeFile(it.absolutePath)) - binding.downloadImg.setImageDrawable(bitmapDrawable) - } - - return false - } - - }).preload() + .thumbnail(0.1f) + .diskCacheStrategy(DiskCacheStrategy.ALL) + .skipMemoryCache(true) + .into(binding.downloadImg) } catch (e: Exception) { e.printStackTrace() @@ -209,27 +148,35 @@ class DownloadActivity : binding.btnDownload -> { applySkin() } + + binding.imLike -> { + binding.imLike.isSelected = !binding.imLike.isSelected + } + } + } + + override fun onPause() { + super.onPause() + CoroutineScope(Dispatchers.IO).launch { + MyDatabase.myDatabase.BackgroundEntityDao().updateCollect(backgroundEntity.apply { + like = binding.imLike.isSelected + }) + Log.d(App.TAG, "-------updateCollect= ${backgroundEntity.skinNumber} ${binding.imLike.isSelected}") } } private fun applySkin() { - - if (!KeyboardManager.isChoose() || !KeyboardManager.isEnable()) { Toast.makeText(this, getString(R.string.unEnable), Toast.LENGTH_SHORT).show() val intent = Intent(this, SetKeyboardActivity::class.java) startActivity(intent) return } - onShowAd() - - } private fun startSetSkin() { binding.downloadProgress.visibility = View.VISIBLE - val zipFile = File(unzipPath) if (zipFile.exists()) { apply() @@ -239,18 +186,16 @@ class DownloadActivity : private fun apply() { val edit = sp.edit() edit.run { - putString(AppConstant.KEY_CUR_Path, backgroundEntity.skinNumber.toString()) - putInt(AppConstant.KEY_CUR_STYLE,selectedStyle) + putString(AppConstant.KEY_CUR_Skin_Number, backgroundEntity.skinNumber.toString()) + putInt(AppConstant.KEY_CUR_STYLE, selectedStyle) + putString(AppConstant.KEY_CUR_Bg,backgroundEntity.coverPath) apply() } - binding.downloadProgress.visibility = View.GONE Toast.makeText(this, getString(R.string.succ_apply), Toast.LENGTH_LONG).show() finish() } - - private fun getZipData( skinNumber: Int, contentPath: String, @@ -261,7 +206,7 @@ class DownloadActivity : override fun onLoadFailed( e: GlideException?, model: Any?, - target: Target?, + target: Target, isFirstResource: Boolean ): Boolean { listener.applyListener(false, "") @@ -269,14 +214,14 @@ class DownloadActivity : } override fun onResourceReady( - resource: File?, - model: Any?, + resource: File, + model: Any, target: Target?, - dataSource: DataSource?, + dataSource: DataSource, isFirstResource: Boolean ): Boolean { - val fileInputStream = FileInputStream(resource) - saveFile(skinNumber, contentPath, fileInputStream, listener) + Log.d(App.TAG, "-------zipFilepath=${resource.absolutePath}") + saveFile(resource.absolutePath, listener) return false } @@ -284,22 +229,10 @@ class DownloadActivity : } private fun saveFile( - skinNumber: Int, - contentPath: String, - fileInputStream: FileInputStream, + zipFilepath: String, listener: ApplyListener ) { - val zipPath = "${cacheDir}/${skinNumber}_zip" - val unZipPath = "${cacheDir}/${skinNumber}" - val b = writeNewFile(fileInputStream, zipPath) - if (b) { - ZipTools.unzip(zipPath, unZipPath) - if (unZipPath.isNotEmpty()) { - listener.applyListener(true, unZipPath) - } else { - listener.applyListener(false, "") - } - } + ZipTools.unzip(zipFilepath, unzipPath, listener) } @@ -334,10 +267,11 @@ class DownloadActivity : } override fun applyListener(isSuccess: Boolean, str: String) { + unzipPath = str binding.downloadProgress.visibility = View.GONE if (isSuccess) { - Log.d("-------","=----true") - initList() + Log.d(App.TAG, "----解压-true") + initStyleList() } else { Toast.makeText(this, getString(R.string.reenter), Toast.LENGTH_LONG).show() } diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/LoadingActivity.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/LoadingActivity.kt index 6c36e48..7d896e2 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/LoadingActivity.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/LoadingActivity.kt @@ -5,14 +5,15 @@ import android.os.CountDownTimer import android.view.View import com.sunny.app.soft.timberkeyboardnew.databinding.ActivityLoadingBinding import com.sunny.app.soft.timberkeyboardnew.topon.AdManager +import kotlin.math.roundToInt class LoadingActivity : BaseActivity() { private lateinit var binding: ActivityLoadingBinding - private lateinit var timer: CountDownTimer + private var countDownTimer: CountDownTimer?= null - private val time = 12000L + private val time = 1000L override fun loadAd(): Boolean = false override fun setRootView(): View { @@ -22,16 +23,24 @@ class LoadingActivity : BaseActivity() { override fun onDestroy() { super.onDestroy() - timer.cancel() + countDownTimer?.cancel() } override fun initView() { super.initView() - timer = AdManager.showWelcomeAd(this@LoadingActivity,time) { + countDownTimer = AdManager.showWelcomeAd(this@LoadingActivity, time, { millisUntilFinished -> + val percentage: Float = 100 - millisUntilFinished.toFloat() / time * 100 + val round = percentage.roundToInt() + binding.progressbar.progress = round + if (AdManager.place1LoadFail && AdManager.place2LoadFail && AdManager.place3LoadFail) { + countDownTimer?.cancel() + intoMainActivity() + } + }, { intoMainActivity() - } - timer.start() + }) + countDownTimer?.start() } diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/MainActivity.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/MainActivity.kt index 67afc28..1dd152d 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/MainActivity.kt @@ -7,6 +7,7 @@ import com.sunny.app.soft.timberkeyboardnew.R import com.sunny.app.soft.timberkeyboardnew.databinding.ActivityMainBinding import com.sunny.app.soft.timberkeyboardnew.topon.AdManager import com.sunny.app.soft.timberkeyboardnew.ui.adapter.MainViewPagerAdapter +import com.sunny.app.soft.timberkeyboardnew.ui.fragment.CollectFragment import com.sunny.app.soft.timberkeyboardnew.ui.fragment.HomeFragment import com.sunny.app.soft.timberkeyboardnew.ui.fragment.SettingFragment @@ -33,11 +34,13 @@ class MainActivity : private fun initTabButton() { binding.mainTabHome.setOnClickListener(this) binding.mainTabSet.setOnClickListener(this) + binding.mainTabCollect.setOnClickListener(this) } private fun initViewPager() { fragmentList = mutableListOf() fragmentList.add(HomeFragment()) + fragmentList.add(CollectFragment()) fragmentList.add(SettingFragment()) binding.mainViewpager.apply { adapter = MainViewPagerAdapter(fragmentList, supportFragmentManager) @@ -51,15 +54,24 @@ class MainActivity : when (i) { 0 -> { binding.mainTabHome.isSelected = true + binding.mainTabCollect.isSelected = false binding.mainTabSet.isSelected = false binding.mainViewpager.currentItem = 0 } 1 -> { binding.mainTabHome.isSelected = false - binding.mainTabSet.isSelected = true + binding.mainTabCollect.isSelected = true + binding.mainTabSet.isSelected = false binding.mainViewpager.currentItem = 1 } + + 2 -> { + binding.mainTabHome.isSelected = false + binding.mainTabCollect.isSelected = false + binding.mainTabSet.isSelected = true + binding.mainViewpager.currentItem = 2 + } } } @@ -68,10 +80,12 @@ class MainActivity : binding.mainTabHome -> { setTabSelect(0) } - - binding.mainTabSet -> { + binding.mainTabCollect -> { setTabSelect(1) } + binding.mainTabSet -> { + setTabSelect(2) + } } } diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/SelectActivity.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/SelectActivity.kt index e082c72..4570227 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/SelectActivity.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/activity/SelectActivity.kt @@ -4,9 +4,11 @@ import android.content.Intent import android.util.Log import android.view.View import androidx.recyclerview.widget.GridLayoutManager +import com.sunny.app.soft.timberkeyboardnew.App import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity import com.sunny.app.soft.timberkeyboardnew.data.entity.CategoryEntity import com.sunny.app.soft.timberkeyboardnew.databinding.ActivitySelectBinding +import com.sunny.app.soft.timberkeyboardnew.room.MyDatabase import com.sunny.app.soft.timberkeyboardnew.tools.AppConstant import com.sunny.app.soft.timberkeyboardnew.ui.adapter.SelectAdapter import com.sunny.app.soft.timberkeyboardnew.ui.listener.OnBgItemClickListener @@ -29,9 +31,8 @@ class SelectActivity : BaseActivity(), View.OnClickListener { } private fun initRecyclerView() { - binding.selectRecyclerView.apply { - layoutManager = GridLayoutManager(this@SelectActivity, 1) - adapter = SelectAdapter(context, categoryEntity.backgrounds, object : OnBgItemClickListener { + val selectAdapter = + SelectAdapter(this, object : OnBgItemClickListener { override fun onItemClick(position: Int, backgroundEntity: BackgroundEntity) { val intent = Intent(this@SelectActivity, DownloadActivity::class.java) intent.putExtra(AppConstant.KEY_EXTRA, backgroundEntity) @@ -39,6 +40,15 @@ class SelectActivity : BaseActivity(), View.OnClickListener { Log.e("TAG", "onItemClick: $backgroundEntity") } }) + + MyDatabase.myDatabase.BackgroundEntityDao().queryCateId(categoryEntity.id).observe(this){ + selectAdapter.updateData(it) + Log.d(App.TAG, "selectAdapter "+it.size) + } + + binding.selectRecyclerView.apply { + layoutManager = GridLayoutManager(this@SelectActivity, 1) + adapter = selectAdapter } } override fun loadAd(): Boolean = true diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/HomeViewAdapter.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/HomeViewAdapter.kt index d069c62..0b63c88 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/HomeViewAdapter.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/HomeViewAdapter.kt @@ -1,6 +1,7 @@ package com.sunny.app.soft.timberkeyboardnew.ui.adapter import android.content.Context +import android.graphics.Bitmap import android.graphics.drawable.Drawable import android.view.LayoutInflater import android.view.View @@ -27,10 +28,17 @@ import com.sunny.app.soft.timberkeyboardnew.ui.listener.OnItemClickListener class HomeViewAdapter( private val context: Context, - private val modelList: List, + private val listener: OnItemClickListener ) : RecyclerView.Adapter() { + private var modelList: List = emptyList() + + fun updateData(list: List) { + modelList = list + notifyDataSetChanged() + } + inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) { @@ -48,37 +56,36 @@ class HomeViewAdapter( try { Glide .with(context) + .asDrawable() .load(url) - .thumbnail(0.5f) + .thumbnail(0.1f) .diskCacheStrategy(DiskCacheStrategy.ALL) + .skipMemoryCache(true) .listener(object : RequestListener { + + override fun onLoadFailed( e: GlideException?, model: Any?, - target: Target?, + target: Target, isFirstResource: Boolean ): Boolean { - pd.visibility = View.INVISIBLE return false } override fun onResourceReady( - resource: Drawable?, - model: Any?, + resource: Drawable, + model: Any, target: Target?, - dataSource: DataSource?, + dataSource: DataSource, isFirstResource: Boolean ): Boolean { - pd.visibility = View.INVISIBLE return false } }) -// .apply( -// RequestOptions().placeholder(R.drawable.png_loading) -// ) .transition(DrawableTransitionOptions.withCrossFade()) .into(img) } catch (e: Exception) { @@ -101,7 +108,7 @@ class HomeViewAdapter( override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { val category = modelList[position] - holder.view.isVisible = position == modelList.size-1 + holder.view.isVisible = position == modelList.size - 1 holder.loadImg(context, category.coverPath, holder.imgItemView) diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/KeyAdapter.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/KeyAdapter.kt index e1882b7..433b683 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/KeyAdapter.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/KeyAdapter.kt @@ -48,7 +48,7 @@ class KeyAdapter( override fun onLoadFailed( e: GlideException?, model: Any?, - target: Target?, + target: Target, isFirstResource: Boolean ): Boolean { @@ -57,10 +57,10 @@ class KeyAdapter( } override fun onResourceReady( - resource: Drawable?, - model: Any?, + resource: Drawable, + model: Any, target: Target?, - dataSource: DataSource?, + dataSource: DataSource, isFirstResource: Boolean ): Boolean { diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/SelectAdapter.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/SelectAdapter.kt index 94fc7b8..4432967 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/SelectAdapter.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/adapter/SelectAdapter.kt @@ -24,10 +24,15 @@ import com.sunny.app.soft.timberkeyboardnew.ui.listener.OnBgItemClickListener class SelectAdapter( private val context: Context, - private val backgroundEntityList: List, + private val listener: OnBgItemClickListener ) : RecyclerView.Adapter() { + private var backgroundEntityList: List = emptyList() + fun updateData(list:List ){ + backgroundEntityList = list + notifyDataSetChanged() + } inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val imgItemView: ImageView = itemView.findViewById(R.id.item_img) @@ -46,7 +51,7 @@ class SelectAdapter( override fun onLoadFailed( e: GlideException?, model: Any?, - target: Target?, + target: Target, isFirstResource: Boolean ): Boolean { @@ -55,10 +60,10 @@ class SelectAdapter( } override fun onResourceReady( - resource: Drawable?, - model: Any?, + resource: Drawable, + model: Any, target: Target?, - dataSource: DataSource?, + dataSource: DataSource, isFirstResource: Boolean ): Boolean { diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/CollectFragment.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/CollectFragment.kt new file mode 100644 index 0000000..ec80a23 --- /dev/null +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/CollectFragment.kt @@ -0,0 +1,89 @@ +package com.sunny.app.soft.timberkeyboardnew.ui.fragment + +import android.content.Intent +import android.util.Log +import android.view.View +import androidx.core.view.isVisible +import androidx.recyclerview.widget.LinearLayoutManager +import com.sunny.app.soft.timberkeyboardnew.App +import com.sunny.app.soft.timberkeyboardnew.R +import com.sunny.app.soft.timberkeyboardnew.data.DataManager +import com.sunny.app.soft.timberkeyboardnew.data.entity.BackgroundEntity +import com.sunny.app.soft.timberkeyboardnew.data.entity.CategoryEntity +import com.sunny.app.soft.timberkeyboardnew.databinding.FragmentCollectBinding +import com.sunny.app.soft.timberkeyboardnew.databinding.FragmentHomeBinding +import com.sunny.app.soft.timberkeyboardnew.room.MyDatabase +import com.sunny.app.soft.timberkeyboardnew.tools.AppConstant +import com.sunny.app.soft.timberkeyboardnew.topon.AdManager +import com.sunny.app.soft.timberkeyboardnew.ui.activity.DownloadActivity +import com.sunny.app.soft.timberkeyboardnew.ui.activity.SelectActivity +import com.sunny.app.soft.timberkeyboardnew.ui.adapter.HomeViewAdapter +import com.sunny.app.soft.timberkeyboardnew.ui.adapter.SelectAdapter +import com.sunny.app.soft.timberkeyboardnew.ui.listener.OnBgItemClickListener +import com.sunny.app.soft.timberkeyboardnew.ui.listener.OnItemClickListener + +class CollectFragment : + BaseFragment() { + + private lateinit var binding: FragmentCollectBinding + + private lateinit var data: CategoryEntity + override fun setRootView(): View { + binding = FragmentCollectBinding.inflate(layoutInflater) + return binding.root + } + + override fun initView() { + super.initView() + // TODO: loadAd + initViewPager() + } + + private fun initViewPager() { + val homeViewAdapter = SelectAdapter(requireContext(), object : OnBgItemClickListener { + override fun onItemClick(position: Int, backgroundEntity: BackgroundEntity) { + val intent = Intent(requireActivity(), DownloadActivity::class.java) + intent.putExtra(AppConstant.KEY_EXTRA, backgroundEntity) + startActivity(intent) + } + + }) + MyDatabase.myDatabase.BackgroundEntityDao().queryCollect(true).observe(requireActivity()){ + homeViewAdapter.updateData(it) + if(it.size>0){ + binding.collectionRecyclerView.isVisible = true + binding.empty.isVisible = false + }else{ + binding.collectionRecyclerView.isVisible = false + binding.empty.isVisible = true + } + Log.d(App.TAG, "collect update "+it.size) + } + + binding.collectionRecyclerView.apply { + layoutManager = LinearLayoutManager(requireContext()).apply { + orientation = LinearLayoutManager.VERTICAL + } + adapter = homeViewAdapter + } + + } + + private fun enterList() { + val intent = Intent(requireContext(), SelectActivity::class.java) + intent.putExtra(AppConstant.KEY_EXTRA, data) + startActivity(intent) + } + + + fun onShowAd() { + AdManager.showTopOn(requireActivity()) { + enterList() + + } + + + } + + +} \ No newline at end of file diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/HomeFragment.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/HomeFragment.kt index c1636f0..ba2bbd8 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/HomeFragment.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/fragment/HomeFragment.kt @@ -1,6 +1,7 @@ package com.sunny.app.soft.timberkeyboardnew.ui.fragment import android.content.Intent +import android.util.Log import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import com.sunny.app.soft.timberkeyboardnew.App @@ -8,6 +9,7 @@ import com.sunny.app.soft.timberkeyboardnew.R import com.sunny.app.soft.timberkeyboardnew.data.DataManager import com.sunny.app.soft.timberkeyboardnew.data.entity.CategoryEntity import com.sunny.app.soft.timberkeyboardnew.databinding.FragmentHomeBinding +import com.sunny.app.soft.timberkeyboardnew.room.MyDatabase import com.sunny.app.soft.timberkeyboardnew.tools.AppConstant import com.sunny.app.soft.timberkeyboardnew.topon.AdManager import com.sunny.app.soft.timberkeyboardnew.ui.activity.SelectActivity @@ -33,22 +35,24 @@ class HomeFragment : } private fun initViewPager() { + val homeViewAdapter = HomeViewAdapter(requireContext(), object : OnItemClickListener { + override fun onItemClick(position: Int, categoryEntity: CategoryEntity) { + data = categoryEntity + onShowAd() - val categoryEntityList = DataManager().getModelList() + + } + }) + MyDatabase.myDatabase.CategoryEntityDao().queryAll().observe(requireActivity()){ + homeViewAdapter.updateData(it) + Log.d(App.TAG, "CategoryEntityDao "+it.size) + } binding.homeRecyclerView.apply { layoutManager = LinearLayoutManager(requireContext()).apply { orientation = LinearLayoutManager.VERTICAL } - adapter = - HomeViewAdapter(requireContext(), categoryEntityList, object : OnItemClickListener { - override fun onItemClick(position: Int, categoryEntity: CategoryEntity) { - data = categoryEntity - onShowAd() - - - } - }) + adapter = homeViewAdapter } } @@ -61,10 +65,10 @@ class HomeFragment : fun onShowAd() { - AdManager.showAD(requireActivity()) { - if (it == AdManager.type_show_fail || it == AdManager.type_no_cache || it == AdManager.type_show_close) { + AdManager.showTopOn(requireActivity()) { + enterList() - } + } diff --git a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/view/MyKeyboardView.kt b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/view/MyKeyboardView.kt index c403632..c3d9420 100644 --- a/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/view/MyKeyboardView.kt +++ b/app/src/main/java/com/sunny/app/soft/timberkeyboardnew/ui/view/MyKeyboardView.kt @@ -15,14 +15,17 @@ import android.inputmethodservice.Keyboard import android.inputmethodservice.KeyboardView import android.util.AttributeSet import android.util.Log -import android.util.Xml import androidx.core.content.ContextCompat -import com.anythink.debug.util.b +import com.bumptech.glide.Glide +import com.bumptech.glide.load.DataSource +import com.bumptech.glide.load.engine.GlideException +import com.bumptech.glide.request.RequestListener +import com.bumptech.glide.request.target.Target +import com.sunny.app.soft.timberkeyboardnew.App import com.sunny.app.soft.timberkeyboardnew.R import com.sunny.app.soft.timberkeyboardnew.tools.AppConstant -import org.xmlpull.v1.XmlPullParser +import com.sunny.app.soft.timberkeyboardnew.tools.ZipTools import java.io.File -import java.io.StringReader @Suppress("DEPRECATION") @@ -80,10 +83,7 @@ class MyKeyboardView @JvmOverloads constructor( keycolor = Color.rgb(red, green, blue) } - - } - init { val default = ContextCompat.getDrawable(context, R.drawable.png_keybg) @@ -102,44 +102,54 @@ class MyKeyboardView @JvmOverloads constructor( } fun updateConfig(con: Context) { - sp.getString(AppConstant.KEY_CUR_Path, "")?.let { Entity_ID -> - - val unzipPath = "${con.cacheDir}/${Entity_ID}/skin_${Entity_ID}/" - + sp.getString(AppConstant.KEY_CUR_Skin_Number, "")?.let { skin_Number -> + val unzipPath = ZipTools.getUnzipPath(skin_Number)+"/" val style = sp.getInt(AppConstant.KEY_CUR_STYLE, 1) + Log.d(App.TAG,"------update="+ unzipPath.plus(AppConstant.getnormalBg(skin_Number,style))) - gettextcolornew(unzipPath.plus(AppConstant.getTextColor(Entity_ID,style))) + gettextcolornew(unzipPath.plus(AppConstant.getTextColor(skin_Number,style))) getbgic( con, - unzipPath.plus(AppConstant.getnormalBg(Entity_ID,style)) + unzipPath.plus(AppConstant.getnormalBg(skin_Number,style)) )?.let { drawBG -> normalBackgroundDraw = getStatus(drawBG, drawBG) - } - - - - - - getbgic(con, unzipPath.plus(AppConstant.getnormalBg(Entity_ID,style)))?.let { drawBG -> - + getbgic(con, unzipPath.plus(AppConstant.getSpaceBg(skin_Number)))?.let { drawBG -> spBackgroundDraw = getStatus(drawBG, drawBG) - - } + sp.getString(AppConstant.KEY_CUR_Bg, "")?.run { + Glide.with(App.appContext).asDrawable().load(this).listener(object :RequestListener{ + override fun onLoadFailed( + e: GlideException?, + model: Any?, + target: Target, + isFirstResource: Boolean + ): Boolean { + return false + } + override fun onResourceReady( + resource: Drawable, + model: Any, + target: Target?, + dataSource: DataSource, + isFirstResource: Boolean + ): Boolean { + allBg = resource + return false + } + + }).preload() - getbgic(con, sp.getString("${AppConstant.KEY_CUR_Path_img}_${Entity_ID}", "")!!)?.run { - allBg = this } // ok getbgic( con, - unzipPath.plus(AppConstant.getnormalBg(Entity_ID,style)) + unzipPath.plus(AppConstant.getnormalBg(skin_Number,style)) )?.let { drawBG -> functionBackgroundDraw = getStatus(drawBG, drawBG) @@ -148,7 +158,7 @@ class MyKeyboardView @JvmOverloads constructor( // ok - getbgic(con, unzipPath.plus(AppConstant.getCaps(Entity_ID)))?.let { + getbgic(con, unzipPath.plus(AppConstant.getCaps(skin_Number)))?.let { icSshift = it icBshift = it } @@ -156,13 +166,13 @@ class MyKeyboardView @JvmOverloads constructor( getbgic( con, - unzipPath.plus(AppConstant.getDeleteRes(Entity_ID)) + unzipPath.plus(AppConstant.getDeleteRes(skin_Number)) )?.let { drawBG -> icDel = getStatus(drawBG, drawBG) } - getbgic(con, unzipPath.plus(AppConstant.getCapsenable(Entity_ID)))?.let { + getbgic(con, unzipPath.plus(AppConstant.getCapsenable(skin_Number)))?.let { icShittLock = it } @@ -293,6 +303,11 @@ class MyKeyboardView @JvmOverloads constructor( ) } + AppConstant.KEY_CODE_SPACE-> { + andDraw(it, config.spBackgroundDraw, null, canvas) + } + + else -> { andDraw(it, config.normalBackgroundDraw, null, canvas) } diff --git a/app/src/main/res/drawable/im_category_false.xml b/app/src/main/res/drawable/im_category_false.xml new file mode 100644 index 0000000..57cd474 --- /dev/null +++ b/app/src/main/res/drawable/im_category_false.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/im_category_true.xml b/app/src/main/res/drawable/im_category_true.xml new file mode 100644 index 0000000..050ba06 --- /dev/null +++ b/app/src/main/res/drawable/im_category_true.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/im_collect_false.xml b/app/src/main/res/drawable/im_collect_false.xml new file mode 100644 index 0000000..d10e968 --- /dev/null +++ b/app/src/main/res/drawable/im_collect_false.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/im_collect_true.xml b/app/src/main/res/drawable/im_collect_true.xml new file mode 100644 index 0000000..cac4fc1 --- /dev/null +++ b/app/src/main/res/drawable/im_collect_true.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/im_like_false.xml b/app/src/main/res/drawable/im_like_false.xml new file mode 100644 index 0000000..aea7510 --- /dev/null +++ b/app/src/main/res/drawable/im_like_false.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/im_like_true.xml b/app/src/main/res/drawable/im_like_true.xml new file mode 100644 index 0000000..de36423 --- /dev/null +++ b/app/src/main/res/drawable/im_like_true.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/im_set_false.xml b/app/src/main/res/drawable/im_set_false.xml new file mode 100644 index 0000000..a90964b --- /dev/null +++ b/app/src/main/res/drawable/im_set_false.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/im_set_true.xml b/app/src/main/res/drawable/im_set_true.xml new file mode 100644 index 0000000..3ce0ac1 --- /dev/null +++ b/app/src/main/res/drawable/im_set_true.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/png_setting_off.png b/app/src/main/res/drawable/png_setting_off.png deleted file mode 100644 index a15d337..0000000 Binary files a/app/src/main/res/drawable/png_setting_off.png and /dev/null differ diff --git a/app/src/main/res/drawable/png_setting_on.png b/app/src/main/res/drawable/png_setting_on.png deleted file mode 100644 index 6b06042..0000000 Binary files a/app/src/main/res/drawable/png_setting_on.png and /dev/null differ diff --git a/app/src/main/res/drawable/progressbar.xml b/app/src/main/res/drawable/progressbar.xml new file mode 100644 index 0000000..2a52770 --- /dev/null +++ b/app/src/main/res/drawable/progressbar.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/selector_collect.xml b/app/src/main/res/drawable/selector_collect.xml new file mode 100644 index 0000000..7fd5068 --- /dev/null +++ b/app/src/main/res/drawable/selector_collect.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_like.xml b/app/src/main/res/drawable/selector_like.xml new file mode 100644 index 0000000..2393556 --- /dev/null +++ b/app/src/main/res/drawable/selector_like.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_menu.xml b/app/src/main/res/drawable/selector_menu.xml index 021bcfb..afbe8e1 100644 --- a/app/src/main/res/drawable/selector_menu.xml +++ b/app/src/main/res/drawable/selector_menu.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_setting.xml b/app/src/main/res/drawable/selector_setting.xml index 79ecfd5..fbeaeb7 100644 --- a/app/src/main/res/drawable/selector_setting.xml +++ b/app/src/main/res/drawable/selector_setting.xml @@ -1,7 +1,7 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/svg_menu_off.xml b/app/src/main/res/drawable/svg_menu_off.xml deleted file mode 100644 index 9de1584..0000000 --- a/app/src/main/res/drawable/svg_menu_off.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/svg_menu_on.xml b/app/src/main/res/drawable/svg_menu_on.xml deleted file mode 100644 index d411c50..0000000 --- a/app/src/main/res/drawable/svg_menu_on.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/layout/activity_download.xml b/app/src/main/res/layout/activity_download.xml index 333a94c..ae56434 100644 --- a/app/src/main/res/layout/activity_download.xml +++ b/app/src/main/res/layout/activity_download.xml @@ -43,11 +43,15 @@ android:textColor="@color/black" android:textSize="18sp" /> - + android:paddingStart="5dp" + android:paddingEnd="15dp" + android:paddingTop="5dp" + android:id="@+id/im_like" + android:paddingBottom="5dp" + android:src="@drawable/selector_like" /> diff --git a/app/src/main/res/layout/activity_loading.xml b/app/src/main/res/layout/activity_loading.xml index 0f0842b..86c18f8 100644 --- a/app/src/main/res/layout/activity_loading.xml +++ b/app/src/main/res/layout/activity_loading.xml @@ -1,5 +1,5 @@ - + android:id="@+id/progressbar" + style="?android:attr/progressBarStyleHorizontal" + android:layout_width="match_parent" + android:layout_height="10dp" + android:layout_alignParentBottom="true" + android:layout_marginStart="33dp" + android:layout_marginEnd="33dp" + android:layout_marginBottom="40dp" + android:progress="10" + android:progressDrawable="@drawable/progressbar" + app:layout_constraintBottom_toBottomOf="parent" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7d53e95..247af27 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -45,7 +45,21 @@ android:src="@drawable/selector_menu" /> + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml index 8efd5a0..0ceee7b 100644 --- a/app/src/main/res/layout/fragment_setting.xml +++ b/app/src/main/res/layout/fragment_setting.xml @@ -100,7 +100,7 @@ android:layout_width="24dp" android:layout_height="24dp" android:layout_marginStart="25dp" - android:src="@drawable/png_setting_off" /> + android:src="@drawable/im_set_false" /> #FFFFFFFF #FFFF7530 #FFFED480 - + #737373 + #F19B70 + #FFFF7530 #55000000 #80FFFFFF #00FFFFFF + #000000 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 31c6548..99b9e5d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,6 +3,7 @@ Home Setting + Collection Rate Us Share App Set Keyboard @@ -23,6 +24,7 @@ skin_%s_caps_enabled.png skin_%s_caps_disabled.png skin_%s_style_%s_btn.9.png + skin_%s_space_arrows_shadows.9.png skin_%s_style_%s_autocorrect_text_color.png - + No data yet. Come add your favorite keyboard skins. \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index b34af3b..8755018 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,4 +4,5 @@ plugins { alias(libs.plugins.jetbrains.kotlin.android) apply false id("com.google.gms.google-services") version "4.3.15" apply false id ("com.google.firebase.crashlytics") version "2.9.2" apply false + kotlin("kapt") version "2.0.0" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1d75877..6a60731 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Jul 23 09:54:02 CST 2024 +#Fri Aug 16 14:51:43 CST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/keystore.properties b/keystore.properties new file mode 100644 index 0000000..0349d0b --- /dev/null +++ b/keystore.properties @@ -0,0 +1,6 @@ +app_name=Custom Keyboard +package_name=com.sunny.tools.app.soft +keystoreFile=app/CustomKeyboard.jks +key_alias=CustomKeyboardkey0 +key_store_password=CustomKeyboard +key_password=CustomKeyboard \ No newline at end of file