commit 3d47b728f77468f90adbb8ca436f1ed74bd7895f Author: ocean <503259349@qq.com> Date: Wed Dec 24 15:40:36 2025 +0800 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..eaf91e2 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..d58d49b --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..8b3f102 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml new file mode 100644 index 0000000..0a53a4a --- /dev/null +++ b/.idea/dbnavigator.xml @@ -0,0 +1,440 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml new file mode 100644 index 0000000..8b208ea --- /dev/null +++ b/.idea/deploymentTargetSelector.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml new file mode 100644 index 0000000..81c3e56 --- /dev/null +++ b/.idea/deviceManager.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..22d9498 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..2a5f53f --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/migrations.xml b/.idea/migrations.xml new file mode 100644 index 0000000..48052b2 --- /dev/null +++ b/.idea/migrations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b2c751a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..5bd6771 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/artisanichelper.jks b/app/artisanichelper.jks new file mode 100644 index 0000000..d566ffd Binary files /dev/null and b/app/artisanichelper.jks differ diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..d4a5cf3 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,108 @@ + +import java.util.Date +import java.text.SimpleDateFormat +plugins { + id("com.android.application") + id ("org.jetbrains.kotlin.android") + id("com.google.gms.google-services") + id("com.google.firebase.crashlytics") +} +val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date()) +android { + namespace = "com.artisanic.helper.test" + compileSdk = 36 + + defaultConfig { + applicationId = "com.artisanic.helper.test" + minSdk = 24 + targetSdk = 36 + versionCode = 2 + versionName = "1.1" + setProperty("archivesBaseName", "ArtisanicHelper_V" + versionName + "(${versionCode})_$timestamp") + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures{ + viewBinding = true + } +} + +dependencies { + implementation("androidx.cardview:cardview:1.0.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("com.google.android.material:material:1.13.0") + implementation("androidx.constraintlayout:constraintlayout:2.1.4") + implementation("androidx.activity:activity:1.12.1") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + + val camerax_version = "1.5.1" + implementation ("androidx.camera:camera-core:${camerax_version}") + implementation ("androidx.camera:camera-camera2:${camerax_version}") + implementation ("androidx.camera:camera-lifecycle:${camerax_version}") + implementation ("androidx.camera:camera-view:${camerax_version}") + implementation ("androidx.camera:camera-extensions:${camerax_version}") + + implementation(files("libs/UpLoadLibrary_12_03_15_13-release.aar")) + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") + implementation("com.google.android.gms:play-services-ads-identifier:18.0.1") + implementation("com.google.android.gms:play-services-location:21.0.1") + implementation("com.google.android.gms:play-services-appset:16.0.1") + // Import the Firebase BoM + implementation(platform("com.google.firebase:firebase-bom:34.6.0")) + implementation("com.google.firebase:firebase-crashlytics-ndk") + implementation("com.google.firebase:firebase-analytics") + // okhttp + implementation ("com.squareup.okhttp3:okhttp:4.12.0") + implementation("com.squareup.okhttp3:logging-interceptor:4.12.0") + + // TradPlus + implementation("com.tradplusad:tradplus:15.1.10.1") +//noinspection GradleCompatible + implementation("androidx.legacy:legacy-support-v4:1.0.0") + implementation("androidx.appcompat:appcompat:1.3.0-alpha02") +// Ironsource + implementation("com.ironsource.sdk:mediationsdk:9.0.0") + implementation("com.tradplusad:tradplus-ironsource:10.15.1.10.1") +// Pangle + implementation("com.tradplusad:tradplus-pangle:19.15.1.10.1") + implementation("com.pangle.global:pag-sdk:7.7.0.2") +// UnityAds + implementation("com.tradplusad:tradplus-unity:5.15.1.10.1") + implementation("com.unity3d.ads:unity-ads:4.16.3") +//optional dependency for better targeting + implementation("androidx.browser:browser:1.8.0") + implementation("com.squareup.picasso:picasso:2.8") + implementation("androidx.viewpager:viewpager:1.0.0") + implementation("androidx.recyclerview:recyclerview:1.2.1") +// Mintegral + implementation("com.tradplusad:tradplus-mintegralx_overseas:18.15.1.10.1") + implementation("androidx.recyclerview:recyclerview:1.1.0") + implementation("com.mbridge.msdk.oversea:mbridge_android_sdk:16.10.11") +// Liftoff + implementation("com.tradplusad:tradplus-vunglex:7.15.1.10.1") + implementation("com.vungle:vungle-ads:7.6.0") +// Cross Promotion + implementation("com.tradplusad:tradplus-crosspromotion:27.15.1.10.1") +// TP Exchange +// 请注意保持与主包版本同步更新 + implementation("com.google.code.gson:gson:2.8.6") + implementation("com.tradplusad:tp_exchange:40.15.1.10.1") +} \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..1c78df5 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "886302196710", + "project_id": "artisanichelper", + "storage_bucket": "artisanichelper.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:886302196710:android:d038fb8c4b50f3d1bb8c27", + "android_client_info": { + "package_name": "com.artisanic.helper.test" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyCOOwEtQKiHPWa9kt1JeTezLi9CMDLnHWM" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/UpLoadLibrary_12_03_15_13-release.aar b/app/libs/UpLoadLibrary_12_03_15_13-release.aar new file mode 100644 index 0000000..a3e30aa Binary files /dev/null and b/app/libs/UpLoadLibrary_12_03_15_13-release.aar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..d7cc8a0 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile + +-keep public class com.tradplus.** { *; } +-keep class com.tradplus.ads.** { *; } +-keep class com.google.gson.** { *; } \ No newline at end of file diff --git a/app/src/androidTest/java/com/artisanic/helper/test/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/artisanic/helper/test/ExampleInstrumentedTest.java new file mode 100644 index 0000000..2db372a --- /dev/null +++ b/app/src/androidTest/java/com/artisanic/helper/test/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.artisanic.helper.test; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.draw.painting.test", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/androidTest/java/com/draw/painting/test/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/draw/painting/test/ExampleInstrumentedTest.java new file mode 100644 index 0000000..6d6b1ff --- /dev/null +++ b/app/src/androidTest/java/com/draw/painting/test/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.draw.painting.test; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.draw.painting.test", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..57a3ae7 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/png_Animals/1.jpg b/app/src/main/assets/png_Animals/1.jpg new file mode 100644 index 0000000..9488c65 Binary files /dev/null and b/app/src/main/assets/png_Animals/1.jpg differ diff --git a/app/src/main/assets/png_Animals/10.jpg b/app/src/main/assets/png_Animals/10.jpg new file mode 100644 index 0000000..78382a4 Binary files /dev/null and b/app/src/main/assets/png_Animals/10.jpg differ diff --git a/app/src/main/assets/png_Animals/11.jpg b/app/src/main/assets/png_Animals/11.jpg new file mode 100644 index 0000000..a4f7512 Binary files /dev/null and b/app/src/main/assets/png_Animals/11.jpg differ diff --git a/app/src/main/assets/png_Animals/12.jpg b/app/src/main/assets/png_Animals/12.jpg new file mode 100644 index 0000000..bab3cff Binary files /dev/null and b/app/src/main/assets/png_Animals/12.jpg differ diff --git a/app/src/main/assets/png_Animals/13.jpg b/app/src/main/assets/png_Animals/13.jpg new file mode 100644 index 0000000..5c3ef19 Binary files /dev/null and b/app/src/main/assets/png_Animals/13.jpg differ diff --git a/app/src/main/assets/png_Animals/14.jpg b/app/src/main/assets/png_Animals/14.jpg new file mode 100644 index 0000000..8b446f2 Binary files /dev/null and b/app/src/main/assets/png_Animals/14.jpg differ diff --git a/app/src/main/assets/png_Animals/15.jpg b/app/src/main/assets/png_Animals/15.jpg new file mode 100644 index 0000000..2f9dc4e Binary files /dev/null and b/app/src/main/assets/png_Animals/15.jpg differ diff --git a/app/src/main/assets/png_Animals/16.jpg b/app/src/main/assets/png_Animals/16.jpg new file mode 100644 index 0000000..aad9788 Binary files /dev/null and b/app/src/main/assets/png_Animals/16.jpg differ diff --git a/app/src/main/assets/png_Animals/17.jpg b/app/src/main/assets/png_Animals/17.jpg new file mode 100644 index 0000000..17c6f07 Binary files /dev/null and b/app/src/main/assets/png_Animals/17.jpg differ diff --git a/app/src/main/assets/png_Animals/18.jpg b/app/src/main/assets/png_Animals/18.jpg new file mode 100644 index 0000000..2ce93a7 Binary files /dev/null and b/app/src/main/assets/png_Animals/18.jpg differ diff --git a/app/src/main/assets/png_Animals/19.jpg b/app/src/main/assets/png_Animals/19.jpg new file mode 100644 index 0000000..2b24f31 Binary files /dev/null and b/app/src/main/assets/png_Animals/19.jpg differ diff --git a/app/src/main/assets/png_Animals/2.jpg b/app/src/main/assets/png_Animals/2.jpg new file mode 100644 index 0000000..0a0c2e7 Binary files /dev/null and b/app/src/main/assets/png_Animals/2.jpg differ diff --git a/app/src/main/assets/png_Animals/20.jpg b/app/src/main/assets/png_Animals/20.jpg new file mode 100644 index 0000000..347cddc Binary files /dev/null and b/app/src/main/assets/png_Animals/20.jpg differ diff --git a/app/src/main/assets/png_Animals/21.jpg b/app/src/main/assets/png_Animals/21.jpg new file mode 100644 index 0000000..5a04764 Binary files /dev/null and b/app/src/main/assets/png_Animals/21.jpg differ diff --git a/app/src/main/assets/png_Animals/22.jpg b/app/src/main/assets/png_Animals/22.jpg new file mode 100644 index 0000000..c18d8ad Binary files /dev/null and b/app/src/main/assets/png_Animals/22.jpg differ diff --git a/app/src/main/assets/png_Animals/23.jpg b/app/src/main/assets/png_Animals/23.jpg new file mode 100644 index 0000000..4270d19 Binary files /dev/null and b/app/src/main/assets/png_Animals/23.jpg differ diff --git a/app/src/main/assets/png_Animals/24.jpg b/app/src/main/assets/png_Animals/24.jpg new file mode 100644 index 0000000..355a944 Binary files /dev/null and b/app/src/main/assets/png_Animals/24.jpg differ diff --git a/app/src/main/assets/png_Animals/25.jpg b/app/src/main/assets/png_Animals/25.jpg new file mode 100644 index 0000000..c670943 Binary files /dev/null and b/app/src/main/assets/png_Animals/25.jpg differ diff --git a/app/src/main/assets/png_Animals/26.jpg b/app/src/main/assets/png_Animals/26.jpg new file mode 100644 index 0000000..4b95b01 Binary files /dev/null and b/app/src/main/assets/png_Animals/26.jpg differ diff --git a/app/src/main/assets/png_Animals/27.jpg b/app/src/main/assets/png_Animals/27.jpg new file mode 100644 index 0000000..87a8c12 Binary files /dev/null and b/app/src/main/assets/png_Animals/27.jpg differ diff --git a/app/src/main/assets/png_Animals/28.jpg b/app/src/main/assets/png_Animals/28.jpg new file mode 100644 index 0000000..770686a Binary files /dev/null and b/app/src/main/assets/png_Animals/28.jpg differ diff --git a/app/src/main/assets/png_Animals/29.jpg b/app/src/main/assets/png_Animals/29.jpg new file mode 100644 index 0000000..7127a11 Binary files /dev/null and b/app/src/main/assets/png_Animals/29.jpg differ diff --git a/app/src/main/assets/png_Animals/3.jpg b/app/src/main/assets/png_Animals/3.jpg new file mode 100644 index 0000000..4bf4897 Binary files /dev/null and b/app/src/main/assets/png_Animals/3.jpg differ diff --git a/app/src/main/assets/png_Animals/30.jpg b/app/src/main/assets/png_Animals/30.jpg new file mode 100644 index 0000000..f1d2047 Binary files /dev/null and b/app/src/main/assets/png_Animals/30.jpg differ diff --git a/app/src/main/assets/png_Animals/31.jpg b/app/src/main/assets/png_Animals/31.jpg new file mode 100644 index 0000000..0d08aa8 Binary files /dev/null and b/app/src/main/assets/png_Animals/31.jpg differ diff --git a/app/src/main/assets/png_Animals/4.jpg b/app/src/main/assets/png_Animals/4.jpg new file mode 100644 index 0000000..838c582 Binary files /dev/null and b/app/src/main/assets/png_Animals/4.jpg differ diff --git a/app/src/main/assets/png_Animals/5.jpg b/app/src/main/assets/png_Animals/5.jpg new file mode 100644 index 0000000..36bd2bf Binary files /dev/null and b/app/src/main/assets/png_Animals/5.jpg differ diff --git a/app/src/main/assets/png_Animals/6.jpg b/app/src/main/assets/png_Animals/6.jpg new file mode 100644 index 0000000..dceb49b Binary files /dev/null and b/app/src/main/assets/png_Animals/6.jpg differ diff --git a/app/src/main/assets/png_Animals/7.jpg b/app/src/main/assets/png_Animals/7.jpg new file mode 100644 index 0000000..ebd4694 Binary files /dev/null and b/app/src/main/assets/png_Animals/7.jpg differ diff --git a/app/src/main/assets/png_Animals/8.jpg b/app/src/main/assets/png_Animals/8.jpg new file mode 100644 index 0000000..e5e3c63 Binary files /dev/null and b/app/src/main/assets/png_Animals/8.jpg differ diff --git a/app/src/main/assets/png_Animals/9.jpg b/app/src/main/assets/png_Animals/9.jpg new file mode 100644 index 0000000..e7a1862 Binary files /dev/null and b/app/src/main/assets/png_Animals/9.jpg differ diff --git a/app/src/main/assets/png_Birds/1.jpg b/app/src/main/assets/png_Birds/1.jpg new file mode 100644 index 0000000..d235225 Binary files /dev/null and b/app/src/main/assets/png_Birds/1.jpg differ diff --git a/app/src/main/assets/png_Birds/10.jpg b/app/src/main/assets/png_Birds/10.jpg new file mode 100644 index 0000000..e348ffe Binary files /dev/null and b/app/src/main/assets/png_Birds/10.jpg differ diff --git a/app/src/main/assets/png_Birds/11.jpg b/app/src/main/assets/png_Birds/11.jpg new file mode 100644 index 0000000..921b5b9 Binary files /dev/null and b/app/src/main/assets/png_Birds/11.jpg differ diff --git a/app/src/main/assets/png_Birds/12.jpg b/app/src/main/assets/png_Birds/12.jpg new file mode 100644 index 0000000..7b4055b Binary files /dev/null and b/app/src/main/assets/png_Birds/12.jpg differ diff --git a/app/src/main/assets/png_Birds/13.jpg b/app/src/main/assets/png_Birds/13.jpg new file mode 100644 index 0000000..021b7a4 Binary files /dev/null and b/app/src/main/assets/png_Birds/13.jpg differ diff --git a/app/src/main/assets/png_Birds/14.jpg b/app/src/main/assets/png_Birds/14.jpg new file mode 100644 index 0000000..2074c6f Binary files /dev/null and b/app/src/main/assets/png_Birds/14.jpg differ diff --git a/app/src/main/assets/png_Birds/15.jpg b/app/src/main/assets/png_Birds/15.jpg new file mode 100644 index 0000000..59b0e47 Binary files /dev/null and b/app/src/main/assets/png_Birds/15.jpg differ diff --git a/app/src/main/assets/png_Birds/16.jpg b/app/src/main/assets/png_Birds/16.jpg new file mode 100644 index 0000000..fe950d1 Binary files /dev/null and b/app/src/main/assets/png_Birds/16.jpg differ diff --git a/app/src/main/assets/png_Birds/17.jpg b/app/src/main/assets/png_Birds/17.jpg new file mode 100644 index 0000000..484f39a Binary files /dev/null and b/app/src/main/assets/png_Birds/17.jpg differ diff --git a/app/src/main/assets/png_Birds/18.jpg b/app/src/main/assets/png_Birds/18.jpg new file mode 100644 index 0000000..2792ed1 Binary files /dev/null and b/app/src/main/assets/png_Birds/18.jpg differ diff --git a/app/src/main/assets/png_Birds/19.jpg b/app/src/main/assets/png_Birds/19.jpg new file mode 100644 index 0000000..9e9bb27 Binary files /dev/null and b/app/src/main/assets/png_Birds/19.jpg differ diff --git a/app/src/main/assets/png_Birds/2.jpg b/app/src/main/assets/png_Birds/2.jpg new file mode 100644 index 0000000..0929272 Binary files /dev/null and b/app/src/main/assets/png_Birds/2.jpg differ diff --git a/app/src/main/assets/png_Birds/3.jpg b/app/src/main/assets/png_Birds/3.jpg new file mode 100644 index 0000000..1376a50 Binary files /dev/null and b/app/src/main/assets/png_Birds/3.jpg differ diff --git a/app/src/main/assets/png_Birds/4.jpg b/app/src/main/assets/png_Birds/4.jpg new file mode 100644 index 0000000..1cd8f9c Binary files /dev/null and b/app/src/main/assets/png_Birds/4.jpg differ diff --git a/app/src/main/assets/png_Birds/5.jpg b/app/src/main/assets/png_Birds/5.jpg new file mode 100644 index 0000000..7637589 Binary files /dev/null and b/app/src/main/assets/png_Birds/5.jpg differ diff --git a/app/src/main/assets/png_Birds/6.jpg b/app/src/main/assets/png_Birds/6.jpg new file mode 100644 index 0000000..3bf16b6 Binary files /dev/null and b/app/src/main/assets/png_Birds/6.jpg differ diff --git a/app/src/main/assets/png_Birds/7.jpg b/app/src/main/assets/png_Birds/7.jpg new file mode 100644 index 0000000..076e51d Binary files /dev/null and b/app/src/main/assets/png_Birds/7.jpg differ diff --git a/app/src/main/assets/png_Birds/8.jpg b/app/src/main/assets/png_Birds/8.jpg new file mode 100644 index 0000000..71f5cf7 Binary files /dev/null and b/app/src/main/assets/png_Birds/8.jpg differ diff --git a/app/src/main/assets/png_Birds/9.jpg b/app/src/main/assets/png_Birds/9.jpg new file mode 100644 index 0000000..8767032 Binary files /dev/null and b/app/src/main/assets/png_Birds/9.jpg differ diff --git a/app/src/main/assets/png_Butterfly/1.jpg b/app/src/main/assets/png_Butterfly/1.jpg new file mode 100644 index 0000000..0d713b7 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/1.jpg differ diff --git a/app/src/main/assets/png_Butterfly/10.jpg b/app/src/main/assets/png_Butterfly/10.jpg new file mode 100644 index 0000000..ae497c8 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/10.jpg differ diff --git a/app/src/main/assets/png_Butterfly/11.jpg b/app/src/main/assets/png_Butterfly/11.jpg new file mode 100644 index 0000000..d2e39ef Binary files /dev/null and b/app/src/main/assets/png_Butterfly/11.jpg differ diff --git a/app/src/main/assets/png_Butterfly/12.jpg b/app/src/main/assets/png_Butterfly/12.jpg new file mode 100644 index 0000000..410af7c Binary files /dev/null and b/app/src/main/assets/png_Butterfly/12.jpg differ diff --git a/app/src/main/assets/png_Butterfly/13.jpg b/app/src/main/assets/png_Butterfly/13.jpg new file mode 100644 index 0000000..233a998 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/13.jpg differ diff --git a/app/src/main/assets/png_Butterfly/14.jpg b/app/src/main/assets/png_Butterfly/14.jpg new file mode 100644 index 0000000..9545c0f Binary files /dev/null and b/app/src/main/assets/png_Butterfly/14.jpg differ diff --git a/app/src/main/assets/png_Butterfly/15.jpg b/app/src/main/assets/png_Butterfly/15.jpg new file mode 100644 index 0000000..aa0da5b Binary files /dev/null and b/app/src/main/assets/png_Butterfly/15.jpg differ diff --git a/app/src/main/assets/png_Butterfly/16.jpg b/app/src/main/assets/png_Butterfly/16.jpg new file mode 100644 index 0000000..4b118cf Binary files /dev/null and b/app/src/main/assets/png_Butterfly/16.jpg differ diff --git a/app/src/main/assets/png_Butterfly/17.jpg b/app/src/main/assets/png_Butterfly/17.jpg new file mode 100644 index 0000000..ebfdc2e Binary files /dev/null and b/app/src/main/assets/png_Butterfly/17.jpg differ diff --git a/app/src/main/assets/png_Butterfly/18.jpg b/app/src/main/assets/png_Butterfly/18.jpg new file mode 100644 index 0000000..7b81ca1 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/18.jpg differ diff --git a/app/src/main/assets/png_Butterfly/19.jpg b/app/src/main/assets/png_Butterfly/19.jpg new file mode 100644 index 0000000..903fd82 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/19.jpg differ diff --git a/app/src/main/assets/png_Butterfly/2.jpg b/app/src/main/assets/png_Butterfly/2.jpg new file mode 100644 index 0000000..f92c438 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/2.jpg differ diff --git a/app/src/main/assets/png_Butterfly/20.jpg b/app/src/main/assets/png_Butterfly/20.jpg new file mode 100644 index 0000000..7d0dc2e Binary files /dev/null and b/app/src/main/assets/png_Butterfly/20.jpg differ diff --git a/app/src/main/assets/png_Butterfly/21.jpg b/app/src/main/assets/png_Butterfly/21.jpg new file mode 100644 index 0000000..ff82d93 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/21.jpg differ diff --git a/app/src/main/assets/png_Butterfly/3.jpg b/app/src/main/assets/png_Butterfly/3.jpg new file mode 100644 index 0000000..5251134 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/3.jpg differ diff --git a/app/src/main/assets/png_Butterfly/4.jpg b/app/src/main/assets/png_Butterfly/4.jpg new file mode 100644 index 0000000..01d5932 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/4.jpg differ diff --git a/app/src/main/assets/png_Butterfly/5.jpg b/app/src/main/assets/png_Butterfly/5.jpg new file mode 100644 index 0000000..cc99ed5 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/5.jpg differ diff --git a/app/src/main/assets/png_Butterfly/6.jpg b/app/src/main/assets/png_Butterfly/6.jpg new file mode 100644 index 0000000..6d02805 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/6.jpg differ diff --git a/app/src/main/assets/png_Butterfly/7.jpg b/app/src/main/assets/png_Butterfly/7.jpg new file mode 100644 index 0000000..dd52dbd Binary files /dev/null and b/app/src/main/assets/png_Butterfly/7.jpg differ diff --git a/app/src/main/assets/png_Butterfly/8.jpg b/app/src/main/assets/png_Butterfly/8.jpg new file mode 100644 index 0000000..d519ca7 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/8.jpg differ diff --git a/app/src/main/assets/png_Butterfly/9.jpg b/app/src/main/assets/png_Butterfly/9.jpg new file mode 100644 index 0000000..0cedb47 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/9.jpg differ diff --git a/app/src/main/assets/png_Cafe/1.jpg b/app/src/main/assets/png_Cafe/1.jpg new file mode 100644 index 0000000..b347b44 Binary files /dev/null and b/app/src/main/assets/png_Cafe/1.jpg differ diff --git a/app/src/main/assets/png_Cafe/10.jpg b/app/src/main/assets/png_Cafe/10.jpg new file mode 100644 index 0000000..3728490 Binary files /dev/null and b/app/src/main/assets/png_Cafe/10.jpg differ diff --git a/app/src/main/assets/png_Cafe/11.jpg b/app/src/main/assets/png_Cafe/11.jpg new file mode 100644 index 0000000..bff21e1 Binary files /dev/null and b/app/src/main/assets/png_Cafe/11.jpg differ diff --git a/app/src/main/assets/png_Cafe/12.jpg b/app/src/main/assets/png_Cafe/12.jpg new file mode 100644 index 0000000..3966d4a Binary files /dev/null and b/app/src/main/assets/png_Cafe/12.jpg differ diff --git a/app/src/main/assets/png_Cafe/13.jpg b/app/src/main/assets/png_Cafe/13.jpg new file mode 100644 index 0000000..8200e12 Binary files /dev/null and b/app/src/main/assets/png_Cafe/13.jpg differ diff --git a/app/src/main/assets/png_Cafe/14.jpg b/app/src/main/assets/png_Cafe/14.jpg new file mode 100644 index 0000000..65ee383 Binary files /dev/null and b/app/src/main/assets/png_Cafe/14.jpg differ diff --git a/app/src/main/assets/png_Cafe/15.jpg b/app/src/main/assets/png_Cafe/15.jpg new file mode 100644 index 0000000..01df5e5 Binary files /dev/null and b/app/src/main/assets/png_Cafe/15.jpg differ diff --git a/app/src/main/assets/png_Cafe/16.jpg b/app/src/main/assets/png_Cafe/16.jpg new file mode 100644 index 0000000..ff679c1 Binary files /dev/null and b/app/src/main/assets/png_Cafe/16.jpg differ diff --git a/app/src/main/assets/png_Cafe/17.jpg b/app/src/main/assets/png_Cafe/17.jpg new file mode 100644 index 0000000..42fdf87 Binary files /dev/null and b/app/src/main/assets/png_Cafe/17.jpg differ diff --git a/app/src/main/assets/png_Cafe/18.jpg b/app/src/main/assets/png_Cafe/18.jpg new file mode 100644 index 0000000..06d300e Binary files /dev/null and b/app/src/main/assets/png_Cafe/18.jpg differ diff --git a/app/src/main/assets/png_Cafe/19.jpg b/app/src/main/assets/png_Cafe/19.jpg new file mode 100644 index 0000000..42aaa2c Binary files /dev/null and b/app/src/main/assets/png_Cafe/19.jpg differ diff --git a/app/src/main/assets/png_Cafe/2.jpg b/app/src/main/assets/png_Cafe/2.jpg new file mode 100644 index 0000000..14d9b25 Binary files /dev/null and b/app/src/main/assets/png_Cafe/2.jpg differ diff --git a/app/src/main/assets/png_Cafe/20.jpg b/app/src/main/assets/png_Cafe/20.jpg new file mode 100644 index 0000000..5dad84c Binary files /dev/null and b/app/src/main/assets/png_Cafe/20.jpg differ diff --git a/app/src/main/assets/png_Cafe/21.jpg b/app/src/main/assets/png_Cafe/21.jpg new file mode 100644 index 0000000..c019faa Binary files /dev/null and b/app/src/main/assets/png_Cafe/21.jpg differ diff --git a/app/src/main/assets/png_Cafe/22.jpg b/app/src/main/assets/png_Cafe/22.jpg new file mode 100644 index 0000000..28cdc4e Binary files /dev/null and b/app/src/main/assets/png_Cafe/22.jpg differ diff --git a/app/src/main/assets/png_Cafe/23.jpg b/app/src/main/assets/png_Cafe/23.jpg new file mode 100644 index 0000000..973a5c2 Binary files /dev/null and b/app/src/main/assets/png_Cafe/23.jpg differ diff --git a/app/src/main/assets/png_Cafe/24.jpg b/app/src/main/assets/png_Cafe/24.jpg new file mode 100644 index 0000000..3c36d8a Binary files /dev/null and b/app/src/main/assets/png_Cafe/24.jpg differ diff --git a/app/src/main/assets/png_Cafe/25.jpg b/app/src/main/assets/png_Cafe/25.jpg new file mode 100644 index 0000000..c7be496 Binary files /dev/null and b/app/src/main/assets/png_Cafe/25.jpg differ diff --git a/app/src/main/assets/png_Cafe/26.jpg b/app/src/main/assets/png_Cafe/26.jpg new file mode 100644 index 0000000..7229696 Binary files /dev/null and b/app/src/main/assets/png_Cafe/26.jpg differ diff --git a/app/src/main/assets/png_Cafe/27.jpg b/app/src/main/assets/png_Cafe/27.jpg new file mode 100644 index 0000000..f857542 Binary files /dev/null and b/app/src/main/assets/png_Cafe/27.jpg differ diff --git a/app/src/main/assets/png_Cafe/28.jpg b/app/src/main/assets/png_Cafe/28.jpg new file mode 100644 index 0000000..8cde6de Binary files /dev/null and b/app/src/main/assets/png_Cafe/28.jpg differ diff --git a/app/src/main/assets/png_Cafe/29.jpg b/app/src/main/assets/png_Cafe/29.jpg new file mode 100644 index 0000000..8affd30 Binary files /dev/null and b/app/src/main/assets/png_Cafe/29.jpg differ diff --git a/app/src/main/assets/png_Cafe/3.jpg b/app/src/main/assets/png_Cafe/3.jpg new file mode 100644 index 0000000..b1c3cfa Binary files /dev/null and b/app/src/main/assets/png_Cafe/3.jpg differ diff --git a/app/src/main/assets/png_Cafe/30.jpg b/app/src/main/assets/png_Cafe/30.jpg new file mode 100644 index 0000000..f71ce84 Binary files /dev/null and b/app/src/main/assets/png_Cafe/30.jpg differ diff --git a/app/src/main/assets/png_Cafe/31.jpg b/app/src/main/assets/png_Cafe/31.jpg new file mode 100644 index 0000000..a5d22ca Binary files /dev/null and b/app/src/main/assets/png_Cafe/31.jpg differ diff --git a/app/src/main/assets/png_Cafe/32.jpg b/app/src/main/assets/png_Cafe/32.jpg new file mode 100644 index 0000000..8513a5e Binary files /dev/null and b/app/src/main/assets/png_Cafe/32.jpg differ diff --git a/app/src/main/assets/png_Cafe/33.jpg b/app/src/main/assets/png_Cafe/33.jpg new file mode 100644 index 0000000..fcdcbcc Binary files /dev/null and b/app/src/main/assets/png_Cafe/33.jpg differ diff --git a/app/src/main/assets/png_Cafe/34.jpg b/app/src/main/assets/png_Cafe/34.jpg new file mode 100644 index 0000000..51bbf4b Binary files /dev/null and b/app/src/main/assets/png_Cafe/34.jpg differ diff --git a/app/src/main/assets/png_Cafe/35.jpg b/app/src/main/assets/png_Cafe/35.jpg new file mode 100644 index 0000000..e1067da Binary files /dev/null and b/app/src/main/assets/png_Cafe/35.jpg differ diff --git a/app/src/main/assets/png_Cafe/36.jpg b/app/src/main/assets/png_Cafe/36.jpg new file mode 100644 index 0000000..181a84a Binary files /dev/null and b/app/src/main/assets/png_Cafe/36.jpg differ diff --git a/app/src/main/assets/png_Cafe/37.jpg b/app/src/main/assets/png_Cafe/37.jpg new file mode 100644 index 0000000..d8ffb00 Binary files /dev/null and b/app/src/main/assets/png_Cafe/37.jpg differ diff --git a/app/src/main/assets/png_Cafe/38.jpg b/app/src/main/assets/png_Cafe/38.jpg new file mode 100644 index 0000000..abdba50 Binary files /dev/null and b/app/src/main/assets/png_Cafe/38.jpg differ diff --git a/app/src/main/assets/png_Cafe/4.jpg b/app/src/main/assets/png_Cafe/4.jpg new file mode 100644 index 0000000..8792f16 Binary files /dev/null and b/app/src/main/assets/png_Cafe/4.jpg differ diff --git a/app/src/main/assets/png_Cafe/5.jpg b/app/src/main/assets/png_Cafe/5.jpg new file mode 100644 index 0000000..89630aa Binary files /dev/null and b/app/src/main/assets/png_Cafe/5.jpg differ diff --git a/app/src/main/assets/png_Cafe/6.jpg b/app/src/main/assets/png_Cafe/6.jpg new file mode 100644 index 0000000..7e6832e Binary files /dev/null and b/app/src/main/assets/png_Cafe/6.jpg differ diff --git a/app/src/main/assets/png_Cafe/7.jpg b/app/src/main/assets/png_Cafe/7.jpg new file mode 100644 index 0000000..f4d2afb Binary files /dev/null and b/app/src/main/assets/png_Cafe/7.jpg differ diff --git a/app/src/main/assets/png_Cafe/8.jpg b/app/src/main/assets/png_Cafe/8.jpg new file mode 100644 index 0000000..78f5ccf Binary files /dev/null and b/app/src/main/assets/png_Cafe/8.jpg differ diff --git a/app/src/main/assets/png_Cafe/9.jpg b/app/src/main/assets/png_Cafe/9.jpg new file mode 100644 index 0000000..4038bb5 Binary files /dev/null and b/app/src/main/assets/png_Cafe/9.jpg differ diff --git a/app/src/main/assets/png_Cartoons/1.jpg b/app/src/main/assets/png_Cartoons/1.jpg new file mode 100644 index 0000000..74bf123 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/1.jpg differ diff --git a/app/src/main/assets/png_Cartoons/10.jpg b/app/src/main/assets/png_Cartoons/10.jpg new file mode 100644 index 0000000..450fa6e Binary files /dev/null and b/app/src/main/assets/png_Cartoons/10.jpg differ diff --git a/app/src/main/assets/png_Cartoons/11.jpg b/app/src/main/assets/png_Cartoons/11.jpg new file mode 100644 index 0000000..1f2a904 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/11.jpg differ diff --git a/app/src/main/assets/png_Cartoons/12.jpg b/app/src/main/assets/png_Cartoons/12.jpg new file mode 100644 index 0000000..86ef206 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/12.jpg differ diff --git a/app/src/main/assets/png_Cartoons/13.jpg b/app/src/main/assets/png_Cartoons/13.jpg new file mode 100644 index 0000000..92e1d75 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/13.jpg differ diff --git a/app/src/main/assets/png_Cartoons/14.jpg b/app/src/main/assets/png_Cartoons/14.jpg new file mode 100644 index 0000000..c82e897 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/14.jpg differ diff --git a/app/src/main/assets/png_Cartoons/15.jpg b/app/src/main/assets/png_Cartoons/15.jpg new file mode 100644 index 0000000..bcd8678 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/15.jpg differ diff --git a/app/src/main/assets/png_Cartoons/16.jpg b/app/src/main/assets/png_Cartoons/16.jpg new file mode 100644 index 0000000..18377bd Binary files /dev/null and b/app/src/main/assets/png_Cartoons/16.jpg differ diff --git a/app/src/main/assets/png_Cartoons/17.jpg b/app/src/main/assets/png_Cartoons/17.jpg new file mode 100644 index 0000000..45aafbb Binary files /dev/null and b/app/src/main/assets/png_Cartoons/17.jpg differ diff --git a/app/src/main/assets/png_Cartoons/18.jpg b/app/src/main/assets/png_Cartoons/18.jpg new file mode 100644 index 0000000..048d253 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/18.jpg differ diff --git a/app/src/main/assets/png_Cartoons/19.jpg b/app/src/main/assets/png_Cartoons/19.jpg new file mode 100644 index 0000000..c2501b2 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/19.jpg differ diff --git a/app/src/main/assets/png_Cartoons/2.jpg b/app/src/main/assets/png_Cartoons/2.jpg new file mode 100644 index 0000000..8baf95b Binary files /dev/null and b/app/src/main/assets/png_Cartoons/2.jpg differ diff --git a/app/src/main/assets/png_Cartoons/20.jpg b/app/src/main/assets/png_Cartoons/20.jpg new file mode 100644 index 0000000..fb7901c Binary files /dev/null and b/app/src/main/assets/png_Cartoons/20.jpg differ diff --git a/app/src/main/assets/png_Cartoons/21.jpg b/app/src/main/assets/png_Cartoons/21.jpg new file mode 100644 index 0000000..ed7104e Binary files /dev/null and b/app/src/main/assets/png_Cartoons/21.jpg differ diff --git a/app/src/main/assets/png_Cartoons/22.jpg b/app/src/main/assets/png_Cartoons/22.jpg new file mode 100644 index 0000000..cd003eb Binary files /dev/null and b/app/src/main/assets/png_Cartoons/22.jpg differ diff --git a/app/src/main/assets/png_Cartoons/23.jpg b/app/src/main/assets/png_Cartoons/23.jpg new file mode 100644 index 0000000..77b49a4 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/23.jpg differ diff --git a/app/src/main/assets/png_Cartoons/24.jpg b/app/src/main/assets/png_Cartoons/24.jpg new file mode 100644 index 0000000..1c7dc65 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/24.jpg differ diff --git a/app/src/main/assets/png_Cartoons/25.jpg b/app/src/main/assets/png_Cartoons/25.jpg new file mode 100644 index 0000000..442aec2 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/25.jpg differ diff --git a/app/src/main/assets/png_Cartoons/26.jpg b/app/src/main/assets/png_Cartoons/26.jpg new file mode 100644 index 0000000..ec4a2ff Binary files /dev/null and b/app/src/main/assets/png_Cartoons/26.jpg differ diff --git a/app/src/main/assets/png_Cartoons/3.jpg b/app/src/main/assets/png_Cartoons/3.jpg new file mode 100644 index 0000000..e099902 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/3.jpg differ diff --git a/app/src/main/assets/png_Cartoons/4.jpg b/app/src/main/assets/png_Cartoons/4.jpg new file mode 100644 index 0000000..a4c69ba Binary files /dev/null and b/app/src/main/assets/png_Cartoons/4.jpg differ diff --git a/app/src/main/assets/png_Cartoons/5.jpg b/app/src/main/assets/png_Cartoons/5.jpg new file mode 100644 index 0000000..b32485d Binary files /dev/null and b/app/src/main/assets/png_Cartoons/5.jpg differ diff --git a/app/src/main/assets/png_Cartoons/6.jpg b/app/src/main/assets/png_Cartoons/6.jpg new file mode 100644 index 0000000..0e0a7ef Binary files /dev/null and b/app/src/main/assets/png_Cartoons/6.jpg differ diff --git a/app/src/main/assets/png_Cartoons/7.jpg b/app/src/main/assets/png_Cartoons/7.jpg new file mode 100644 index 0000000..ecd8dc0 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/7.jpg differ diff --git a/app/src/main/assets/png_Cartoons/8.jpg b/app/src/main/assets/png_Cartoons/8.jpg new file mode 100644 index 0000000..f6ea587 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/8.jpg differ diff --git a/app/src/main/assets/png_Cartoons/9.jpg b/app/src/main/assets/png_Cartoons/9.jpg new file mode 100644 index 0000000..da4c151 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/9.jpg differ diff --git a/app/src/main/assets/png_Christmas/1.jpg b/app/src/main/assets/png_Christmas/1.jpg new file mode 100644 index 0000000..cc1fafb Binary files /dev/null and b/app/src/main/assets/png_Christmas/1.jpg differ diff --git a/app/src/main/assets/png_Christmas/10.jpg b/app/src/main/assets/png_Christmas/10.jpg new file mode 100644 index 0000000..e5e63d6 Binary files /dev/null and b/app/src/main/assets/png_Christmas/10.jpg differ diff --git a/app/src/main/assets/png_Christmas/11.jpg b/app/src/main/assets/png_Christmas/11.jpg new file mode 100644 index 0000000..cae5d66 Binary files /dev/null and b/app/src/main/assets/png_Christmas/11.jpg differ diff --git a/app/src/main/assets/png_Christmas/12.jpg b/app/src/main/assets/png_Christmas/12.jpg new file mode 100644 index 0000000..13fd21f Binary files /dev/null and b/app/src/main/assets/png_Christmas/12.jpg differ diff --git a/app/src/main/assets/png_Christmas/13.jpg b/app/src/main/assets/png_Christmas/13.jpg new file mode 100644 index 0000000..1fa30fe Binary files /dev/null and b/app/src/main/assets/png_Christmas/13.jpg differ diff --git a/app/src/main/assets/png_Christmas/14.jpg b/app/src/main/assets/png_Christmas/14.jpg new file mode 100644 index 0000000..aec6dcf Binary files /dev/null and b/app/src/main/assets/png_Christmas/14.jpg differ diff --git a/app/src/main/assets/png_Christmas/15.jpg b/app/src/main/assets/png_Christmas/15.jpg new file mode 100644 index 0000000..647c8b6 Binary files /dev/null and b/app/src/main/assets/png_Christmas/15.jpg differ diff --git a/app/src/main/assets/png_Christmas/16.jpg b/app/src/main/assets/png_Christmas/16.jpg new file mode 100644 index 0000000..b36a79c Binary files /dev/null and b/app/src/main/assets/png_Christmas/16.jpg differ diff --git a/app/src/main/assets/png_Christmas/17.jpg b/app/src/main/assets/png_Christmas/17.jpg new file mode 100644 index 0000000..2655af2 Binary files /dev/null and b/app/src/main/assets/png_Christmas/17.jpg differ diff --git a/app/src/main/assets/png_Christmas/18.jpg b/app/src/main/assets/png_Christmas/18.jpg new file mode 100644 index 0000000..e784d64 Binary files /dev/null and b/app/src/main/assets/png_Christmas/18.jpg differ diff --git a/app/src/main/assets/png_Christmas/19.jpg b/app/src/main/assets/png_Christmas/19.jpg new file mode 100644 index 0000000..fcf2085 Binary files /dev/null and b/app/src/main/assets/png_Christmas/19.jpg differ diff --git a/app/src/main/assets/png_Christmas/2.jpg b/app/src/main/assets/png_Christmas/2.jpg new file mode 100644 index 0000000..326e86b Binary files /dev/null and b/app/src/main/assets/png_Christmas/2.jpg differ diff --git a/app/src/main/assets/png_Christmas/20.jpg b/app/src/main/assets/png_Christmas/20.jpg new file mode 100644 index 0000000..a9e3c89 Binary files /dev/null and b/app/src/main/assets/png_Christmas/20.jpg differ diff --git a/app/src/main/assets/png_Christmas/21.jpg b/app/src/main/assets/png_Christmas/21.jpg new file mode 100644 index 0000000..71b4150 Binary files /dev/null and b/app/src/main/assets/png_Christmas/21.jpg differ diff --git a/app/src/main/assets/png_Christmas/22.jpg b/app/src/main/assets/png_Christmas/22.jpg new file mode 100644 index 0000000..3c99d0d Binary files /dev/null and b/app/src/main/assets/png_Christmas/22.jpg differ diff --git a/app/src/main/assets/png_Christmas/23.jpg b/app/src/main/assets/png_Christmas/23.jpg new file mode 100644 index 0000000..32c3b03 Binary files /dev/null and b/app/src/main/assets/png_Christmas/23.jpg differ diff --git a/app/src/main/assets/png_Christmas/24.jpg b/app/src/main/assets/png_Christmas/24.jpg new file mode 100644 index 0000000..80fd836 Binary files /dev/null and b/app/src/main/assets/png_Christmas/24.jpg differ diff --git a/app/src/main/assets/png_Christmas/25.jpg b/app/src/main/assets/png_Christmas/25.jpg new file mode 100644 index 0000000..8e2bef6 Binary files /dev/null and b/app/src/main/assets/png_Christmas/25.jpg differ diff --git a/app/src/main/assets/png_Christmas/3.jpg b/app/src/main/assets/png_Christmas/3.jpg new file mode 100644 index 0000000..4c24cd2 Binary files /dev/null and b/app/src/main/assets/png_Christmas/3.jpg differ diff --git a/app/src/main/assets/png_Christmas/4.jpg b/app/src/main/assets/png_Christmas/4.jpg new file mode 100644 index 0000000..28fb1b0 Binary files /dev/null and b/app/src/main/assets/png_Christmas/4.jpg differ diff --git a/app/src/main/assets/png_Christmas/5.jpg b/app/src/main/assets/png_Christmas/5.jpg new file mode 100644 index 0000000..93ad555 Binary files /dev/null and b/app/src/main/assets/png_Christmas/5.jpg differ diff --git a/app/src/main/assets/png_Christmas/6.jpg b/app/src/main/assets/png_Christmas/6.jpg new file mode 100644 index 0000000..02fe302 Binary files /dev/null and b/app/src/main/assets/png_Christmas/6.jpg differ diff --git a/app/src/main/assets/png_Christmas/7.jpg b/app/src/main/assets/png_Christmas/7.jpg new file mode 100644 index 0000000..dc41982 Binary files /dev/null and b/app/src/main/assets/png_Christmas/7.jpg differ diff --git a/app/src/main/assets/png_Christmas/8.jpg b/app/src/main/assets/png_Christmas/8.jpg new file mode 100644 index 0000000..5f13019 Binary files /dev/null and b/app/src/main/assets/png_Christmas/8.jpg differ diff --git a/app/src/main/assets/png_Christmas/9.jpg b/app/src/main/assets/png_Christmas/9.jpg new file mode 100644 index 0000000..e556980 Binary files /dev/null and b/app/src/main/assets/png_Christmas/9.jpg differ diff --git a/app/src/main/assets/png_Festivals/1.jpg b/app/src/main/assets/png_Festivals/1.jpg new file mode 100644 index 0000000..125d632 Binary files /dev/null and b/app/src/main/assets/png_Festivals/1.jpg differ diff --git a/app/src/main/assets/png_Festivals/10.jpg b/app/src/main/assets/png_Festivals/10.jpg new file mode 100644 index 0000000..d17b9f1 Binary files /dev/null and b/app/src/main/assets/png_Festivals/10.jpg differ diff --git a/app/src/main/assets/png_Festivals/11.jpg b/app/src/main/assets/png_Festivals/11.jpg new file mode 100644 index 0000000..702f052 Binary files /dev/null and b/app/src/main/assets/png_Festivals/11.jpg differ diff --git a/app/src/main/assets/png_Festivals/12.jpg b/app/src/main/assets/png_Festivals/12.jpg new file mode 100644 index 0000000..6f231e1 Binary files /dev/null and b/app/src/main/assets/png_Festivals/12.jpg differ diff --git a/app/src/main/assets/png_Festivals/13.jpg b/app/src/main/assets/png_Festivals/13.jpg new file mode 100644 index 0000000..20556a1 Binary files /dev/null and b/app/src/main/assets/png_Festivals/13.jpg differ diff --git a/app/src/main/assets/png_Festivals/14.jpg b/app/src/main/assets/png_Festivals/14.jpg new file mode 100644 index 0000000..fb78127 Binary files /dev/null and b/app/src/main/assets/png_Festivals/14.jpg differ diff --git a/app/src/main/assets/png_Festivals/15.jpg b/app/src/main/assets/png_Festivals/15.jpg new file mode 100644 index 0000000..e74f47e Binary files /dev/null and b/app/src/main/assets/png_Festivals/15.jpg differ diff --git a/app/src/main/assets/png_Festivals/16.jpg b/app/src/main/assets/png_Festivals/16.jpg new file mode 100644 index 0000000..136f6e8 Binary files /dev/null and b/app/src/main/assets/png_Festivals/16.jpg differ diff --git a/app/src/main/assets/png_Festivals/17.jpg b/app/src/main/assets/png_Festivals/17.jpg new file mode 100644 index 0000000..fd50e67 Binary files /dev/null and b/app/src/main/assets/png_Festivals/17.jpg differ diff --git a/app/src/main/assets/png_Festivals/18.jpg b/app/src/main/assets/png_Festivals/18.jpg new file mode 100644 index 0000000..d3f7936 Binary files /dev/null and b/app/src/main/assets/png_Festivals/18.jpg differ diff --git a/app/src/main/assets/png_Festivals/19.jpg b/app/src/main/assets/png_Festivals/19.jpg new file mode 100644 index 0000000..9a4f1b8 Binary files /dev/null and b/app/src/main/assets/png_Festivals/19.jpg differ diff --git a/app/src/main/assets/png_Festivals/2.jpg b/app/src/main/assets/png_Festivals/2.jpg new file mode 100644 index 0000000..84aa31a Binary files /dev/null and b/app/src/main/assets/png_Festivals/2.jpg differ diff --git a/app/src/main/assets/png_Festivals/20.jpg b/app/src/main/assets/png_Festivals/20.jpg new file mode 100644 index 0000000..268c943 Binary files /dev/null and b/app/src/main/assets/png_Festivals/20.jpg differ diff --git a/app/src/main/assets/png_Festivals/21.jpg b/app/src/main/assets/png_Festivals/21.jpg new file mode 100644 index 0000000..614bffd Binary files /dev/null and b/app/src/main/assets/png_Festivals/21.jpg differ diff --git a/app/src/main/assets/png_Festivals/22.jpg b/app/src/main/assets/png_Festivals/22.jpg new file mode 100644 index 0000000..f81eb8d Binary files /dev/null and b/app/src/main/assets/png_Festivals/22.jpg differ diff --git a/app/src/main/assets/png_Festivals/3.jpg b/app/src/main/assets/png_Festivals/3.jpg new file mode 100644 index 0000000..5ca2b11 Binary files /dev/null and b/app/src/main/assets/png_Festivals/3.jpg differ diff --git a/app/src/main/assets/png_Festivals/4.jpg b/app/src/main/assets/png_Festivals/4.jpg new file mode 100644 index 0000000..1f8cc81 Binary files /dev/null and b/app/src/main/assets/png_Festivals/4.jpg differ diff --git a/app/src/main/assets/png_Festivals/5.jpg b/app/src/main/assets/png_Festivals/5.jpg new file mode 100644 index 0000000..7f1bd1a Binary files /dev/null and b/app/src/main/assets/png_Festivals/5.jpg differ diff --git a/app/src/main/assets/png_Festivals/6.jpg b/app/src/main/assets/png_Festivals/6.jpg new file mode 100644 index 0000000..9cf832a Binary files /dev/null and b/app/src/main/assets/png_Festivals/6.jpg differ diff --git a/app/src/main/assets/png_Festivals/7.jpg b/app/src/main/assets/png_Festivals/7.jpg new file mode 100644 index 0000000..dcd83f3 Binary files /dev/null and b/app/src/main/assets/png_Festivals/7.jpg differ diff --git a/app/src/main/assets/png_Festivals/8.jpg b/app/src/main/assets/png_Festivals/8.jpg new file mode 100644 index 0000000..1117f09 Binary files /dev/null and b/app/src/main/assets/png_Festivals/8.jpg differ diff --git a/app/src/main/assets/png_Festivals/9.jpg b/app/src/main/assets/png_Festivals/9.jpg new file mode 100644 index 0000000..39d8467 Binary files /dev/null and b/app/src/main/assets/png_Festivals/9.jpg differ diff --git a/app/src/main/assets/png_Flowers/1.jpg b/app/src/main/assets/png_Flowers/1.jpg new file mode 100644 index 0000000..217d9c8 Binary files /dev/null and b/app/src/main/assets/png_Flowers/1.jpg differ diff --git a/app/src/main/assets/png_Flowers/10.jpg b/app/src/main/assets/png_Flowers/10.jpg new file mode 100644 index 0000000..ba84e61 Binary files /dev/null and b/app/src/main/assets/png_Flowers/10.jpg differ diff --git a/app/src/main/assets/png_Flowers/11.jpg b/app/src/main/assets/png_Flowers/11.jpg new file mode 100644 index 0000000..e579753 Binary files /dev/null and b/app/src/main/assets/png_Flowers/11.jpg differ diff --git a/app/src/main/assets/png_Flowers/12.jpg b/app/src/main/assets/png_Flowers/12.jpg new file mode 100644 index 0000000..26092f9 Binary files /dev/null and b/app/src/main/assets/png_Flowers/12.jpg differ diff --git a/app/src/main/assets/png_Flowers/13.jpg b/app/src/main/assets/png_Flowers/13.jpg new file mode 100644 index 0000000..41d2df3 Binary files /dev/null and b/app/src/main/assets/png_Flowers/13.jpg differ diff --git a/app/src/main/assets/png_Flowers/14.jpg b/app/src/main/assets/png_Flowers/14.jpg new file mode 100644 index 0000000..c44df66 Binary files /dev/null and b/app/src/main/assets/png_Flowers/14.jpg differ diff --git a/app/src/main/assets/png_Flowers/15.jpg b/app/src/main/assets/png_Flowers/15.jpg new file mode 100644 index 0000000..ea34d36 Binary files /dev/null and b/app/src/main/assets/png_Flowers/15.jpg differ diff --git a/app/src/main/assets/png_Flowers/16.jpg b/app/src/main/assets/png_Flowers/16.jpg new file mode 100644 index 0000000..506beb1 Binary files /dev/null and b/app/src/main/assets/png_Flowers/16.jpg differ diff --git a/app/src/main/assets/png_Flowers/17.jpg b/app/src/main/assets/png_Flowers/17.jpg new file mode 100644 index 0000000..3764b21 Binary files /dev/null and b/app/src/main/assets/png_Flowers/17.jpg differ diff --git a/app/src/main/assets/png_Flowers/18.jpg b/app/src/main/assets/png_Flowers/18.jpg new file mode 100644 index 0000000..a759ab6 Binary files /dev/null and b/app/src/main/assets/png_Flowers/18.jpg differ diff --git a/app/src/main/assets/png_Flowers/19.jpg b/app/src/main/assets/png_Flowers/19.jpg new file mode 100644 index 0000000..e8c2a84 Binary files /dev/null and b/app/src/main/assets/png_Flowers/19.jpg differ diff --git a/app/src/main/assets/png_Flowers/2.jpg b/app/src/main/assets/png_Flowers/2.jpg new file mode 100644 index 0000000..fb7e56f Binary files /dev/null and b/app/src/main/assets/png_Flowers/2.jpg differ diff --git a/app/src/main/assets/png_Flowers/20.jpg b/app/src/main/assets/png_Flowers/20.jpg new file mode 100644 index 0000000..93e5408 Binary files /dev/null and b/app/src/main/assets/png_Flowers/20.jpg differ diff --git a/app/src/main/assets/png_Flowers/21.jpg b/app/src/main/assets/png_Flowers/21.jpg new file mode 100644 index 0000000..4fa3a77 Binary files /dev/null and b/app/src/main/assets/png_Flowers/21.jpg differ diff --git a/app/src/main/assets/png_Flowers/22.jpg b/app/src/main/assets/png_Flowers/22.jpg new file mode 100644 index 0000000..6f45df7 Binary files /dev/null and b/app/src/main/assets/png_Flowers/22.jpg differ diff --git a/app/src/main/assets/png_Flowers/23.jpg b/app/src/main/assets/png_Flowers/23.jpg new file mode 100644 index 0000000..46e806d Binary files /dev/null and b/app/src/main/assets/png_Flowers/23.jpg differ diff --git a/app/src/main/assets/png_Flowers/3.jpg b/app/src/main/assets/png_Flowers/3.jpg new file mode 100644 index 0000000..22a741c Binary files /dev/null and b/app/src/main/assets/png_Flowers/3.jpg differ diff --git a/app/src/main/assets/png_Flowers/4.jpg b/app/src/main/assets/png_Flowers/4.jpg new file mode 100644 index 0000000..dd0a30f Binary files /dev/null and b/app/src/main/assets/png_Flowers/4.jpg differ diff --git a/app/src/main/assets/png_Flowers/5.jpg b/app/src/main/assets/png_Flowers/5.jpg new file mode 100644 index 0000000..9dcb4f5 Binary files /dev/null and b/app/src/main/assets/png_Flowers/5.jpg differ diff --git a/app/src/main/assets/png_Flowers/6.jpg b/app/src/main/assets/png_Flowers/6.jpg new file mode 100644 index 0000000..cdf1f65 Binary files /dev/null and b/app/src/main/assets/png_Flowers/6.jpg differ diff --git a/app/src/main/assets/png_Flowers/7.jpg b/app/src/main/assets/png_Flowers/7.jpg new file mode 100644 index 0000000..caab990 Binary files /dev/null and b/app/src/main/assets/png_Flowers/7.jpg differ diff --git a/app/src/main/assets/png_Flowers/8.jpg b/app/src/main/assets/png_Flowers/8.jpg new file mode 100644 index 0000000..c43832b Binary files /dev/null and b/app/src/main/assets/png_Flowers/8.jpg differ diff --git a/app/src/main/assets/png_Flowers/9.jpg b/app/src/main/assets/png_Flowers/9.jpg new file mode 100644 index 0000000..5b78ee1 Binary files /dev/null and b/app/src/main/assets/png_Flowers/9.jpg differ diff --git a/app/src/main/assets/png_Fruits/1.jpg b/app/src/main/assets/png_Fruits/1.jpg new file mode 100644 index 0000000..767c0b4 Binary files /dev/null and b/app/src/main/assets/png_Fruits/1.jpg differ diff --git a/app/src/main/assets/png_Fruits/10.jpg b/app/src/main/assets/png_Fruits/10.jpg new file mode 100644 index 0000000..95bdbca Binary files /dev/null and b/app/src/main/assets/png_Fruits/10.jpg differ diff --git a/app/src/main/assets/png_Fruits/11.jpg b/app/src/main/assets/png_Fruits/11.jpg new file mode 100644 index 0000000..b0bb89a Binary files /dev/null and b/app/src/main/assets/png_Fruits/11.jpg differ diff --git a/app/src/main/assets/png_Fruits/12.jpg b/app/src/main/assets/png_Fruits/12.jpg new file mode 100644 index 0000000..c1d9bad Binary files /dev/null and b/app/src/main/assets/png_Fruits/12.jpg differ diff --git a/app/src/main/assets/png_Fruits/13.jpg b/app/src/main/assets/png_Fruits/13.jpg new file mode 100644 index 0000000..f44fb86 Binary files /dev/null and b/app/src/main/assets/png_Fruits/13.jpg differ diff --git a/app/src/main/assets/png_Fruits/14.jpg b/app/src/main/assets/png_Fruits/14.jpg new file mode 100644 index 0000000..459a60c Binary files /dev/null and b/app/src/main/assets/png_Fruits/14.jpg differ diff --git a/app/src/main/assets/png_Fruits/15.jpg b/app/src/main/assets/png_Fruits/15.jpg new file mode 100644 index 0000000..a4e4abe Binary files /dev/null and b/app/src/main/assets/png_Fruits/15.jpg differ diff --git a/app/src/main/assets/png_Fruits/16.jpg b/app/src/main/assets/png_Fruits/16.jpg new file mode 100644 index 0000000..33a7a9a Binary files /dev/null and b/app/src/main/assets/png_Fruits/16.jpg differ diff --git a/app/src/main/assets/png_Fruits/17.jpg b/app/src/main/assets/png_Fruits/17.jpg new file mode 100644 index 0000000..c193b1e Binary files /dev/null and b/app/src/main/assets/png_Fruits/17.jpg differ diff --git a/app/src/main/assets/png_Fruits/18.jpg b/app/src/main/assets/png_Fruits/18.jpg new file mode 100644 index 0000000..f0ca248 Binary files /dev/null and b/app/src/main/assets/png_Fruits/18.jpg differ diff --git a/app/src/main/assets/png_Fruits/19.jpg b/app/src/main/assets/png_Fruits/19.jpg new file mode 100644 index 0000000..d93dfde Binary files /dev/null and b/app/src/main/assets/png_Fruits/19.jpg differ diff --git a/app/src/main/assets/png_Fruits/2.jpg b/app/src/main/assets/png_Fruits/2.jpg new file mode 100644 index 0000000..b32f9f5 Binary files /dev/null and b/app/src/main/assets/png_Fruits/2.jpg differ diff --git a/app/src/main/assets/png_Fruits/20.jpg b/app/src/main/assets/png_Fruits/20.jpg new file mode 100644 index 0000000..cc3fe93 Binary files /dev/null and b/app/src/main/assets/png_Fruits/20.jpg differ diff --git a/app/src/main/assets/png_Fruits/21.jpg b/app/src/main/assets/png_Fruits/21.jpg new file mode 100644 index 0000000..c1813eb Binary files /dev/null and b/app/src/main/assets/png_Fruits/21.jpg differ diff --git a/app/src/main/assets/png_Fruits/22.jpg b/app/src/main/assets/png_Fruits/22.jpg new file mode 100644 index 0000000..47387e1 Binary files /dev/null and b/app/src/main/assets/png_Fruits/22.jpg differ diff --git a/app/src/main/assets/png_Fruits/23.jpg b/app/src/main/assets/png_Fruits/23.jpg new file mode 100644 index 0000000..7f173ec Binary files /dev/null and b/app/src/main/assets/png_Fruits/23.jpg differ diff --git a/app/src/main/assets/png_Fruits/24.jpg b/app/src/main/assets/png_Fruits/24.jpg new file mode 100644 index 0000000..a7ae235 Binary files /dev/null and b/app/src/main/assets/png_Fruits/24.jpg differ diff --git a/app/src/main/assets/png_Fruits/25.jpg b/app/src/main/assets/png_Fruits/25.jpg new file mode 100644 index 0000000..dd664bb Binary files /dev/null and b/app/src/main/assets/png_Fruits/25.jpg differ diff --git a/app/src/main/assets/png_Fruits/26.jpg b/app/src/main/assets/png_Fruits/26.jpg new file mode 100644 index 0000000..c8e4723 Binary files /dev/null and b/app/src/main/assets/png_Fruits/26.jpg differ diff --git a/app/src/main/assets/png_Fruits/27.jpg b/app/src/main/assets/png_Fruits/27.jpg new file mode 100644 index 0000000..816337d Binary files /dev/null and b/app/src/main/assets/png_Fruits/27.jpg differ diff --git a/app/src/main/assets/png_Fruits/28.jpg b/app/src/main/assets/png_Fruits/28.jpg new file mode 100644 index 0000000..29973d5 Binary files /dev/null and b/app/src/main/assets/png_Fruits/28.jpg differ diff --git a/app/src/main/assets/png_Fruits/29.jpg b/app/src/main/assets/png_Fruits/29.jpg new file mode 100644 index 0000000..4f0750f Binary files /dev/null and b/app/src/main/assets/png_Fruits/29.jpg differ diff --git a/app/src/main/assets/png_Fruits/3.jpg b/app/src/main/assets/png_Fruits/3.jpg new file mode 100644 index 0000000..f57893b Binary files /dev/null and b/app/src/main/assets/png_Fruits/3.jpg differ diff --git a/app/src/main/assets/png_Fruits/30.jpg b/app/src/main/assets/png_Fruits/30.jpg new file mode 100644 index 0000000..cfd117a Binary files /dev/null and b/app/src/main/assets/png_Fruits/30.jpg differ diff --git a/app/src/main/assets/png_Fruits/31.jpg b/app/src/main/assets/png_Fruits/31.jpg new file mode 100644 index 0000000..b59a7c5 Binary files /dev/null and b/app/src/main/assets/png_Fruits/31.jpg differ diff --git a/app/src/main/assets/png_Fruits/32.jpg b/app/src/main/assets/png_Fruits/32.jpg new file mode 100644 index 0000000..8f70790 Binary files /dev/null and b/app/src/main/assets/png_Fruits/32.jpg differ diff --git a/app/src/main/assets/png_Fruits/33.jpg b/app/src/main/assets/png_Fruits/33.jpg new file mode 100644 index 0000000..373b142 Binary files /dev/null and b/app/src/main/assets/png_Fruits/33.jpg differ diff --git a/app/src/main/assets/png_Fruits/34.jpg b/app/src/main/assets/png_Fruits/34.jpg new file mode 100644 index 0000000..c5beb91 Binary files /dev/null and b/app/src/main/assets/png_Fruits/34.jpg differ diff --git a/app/src/main/assets/png_Fruits/35.jpg b/app/src/main/assets/png_Fruits/35.jpg new file mode 100644 index 0000000..79cd667 Binary files /dev/null and b/app/src/main/assets/png_Fruits/35.jpg differ diff --git a/app/src/main/assets/png_Fruits/36.jpg b/app/src/main/assets/png_Fruits/36.jpg new file mode 100644 index 0000000..c0cb185 Binary files /dev/null and b/app/src/main/assets/png_Fruits/36.jpg differ diff --git a/app/src/main/assets/png_Fruits/37.jpg b/app/src/main/assets/png_Fruits/37.jpg new file mode 100644 index 0000000..ba1b245 Binary files /dev/null and b/app/src/main/assets/png_Fruits/37.jpg differ diff --git a/app/src/main/assets/png_Fruits/38.jpg b/app/src/main/assets/png_Fruits/38.jpg new file mode 100644 index 0000000..c7eccb8 Binary files /dev/null and b/app/src/main/assets/png_Fruits/38.jpg differ diff --git a/app/src/main/assets/png_Fruits/39.jpg b/app/src/main/assets/png_Fruits/39.jpg new file mode 100644 index 0000000..bc95aaa Binary files /dev/null and b/app/src/main/assets/png_Fruits/39.jpg differ diff --git a/app/src/main/assets/png_Fruits/4.jpg b/app/src/main/assets/png_Fruits/4.jpg new file mode 100644 index 0000000..2d7465d Binary files /dev/null and b/app/src/main/assets/png_Fruits/4.jpg differ diff --git a/app/src/main/assets/png_Fruits/5.jpg b/app/src/main/assets/png_Fruits/5.jpg new file mode 100644 index 0000000..8ed633f Binary files /dev/null and b/app/src/main/assets/png_Fruits/5.jpg differ diff --git a/app/src/main/assets/png_Fruits/6.jpg b/app/src/main/assets/png_Fruits/6.jpg new file mode 100644 index 0000000..06ce330 Binary files /dev/null and b/app/src/main/assets/png_Fruits/6.jpg differ diff --git a/app/src/main/assets/png_Fruits/7.jpg b/app/src/main/assets/png_Fruits/7.jpg new file mode 100644 index 0000000..6153618 Binary files /dev/null and b/app/src/main/assets/png_Fruits/7.jpg differ diff --git a/app/src/main/assets/png_Fruits/8.jpg b/app/src/main/assets/png_Fruits/8.jpg new file mode 100644 index 0000000..e333f0f Binary files /dev/null and b/app/src/main/assets/png_Fruits/8.jpg differ diff --git a/app/src/main/assets/png_Fruits/9.jpg b/app/src/main/assets/png_Fruits/9.jpg new file mode 100644 index 0000000..d549d15 Binary files /dev/null and b/app/src/main/assets/png_Fruits/9.jpg differ diff --git a/app/src/main/assets/png_General/1.jpg b/app/src/main/assets/png_General/1.jpg new file mode 100644 index 0000000..eb7c14b Binary files /dev/null and b/app/src/main/assets/png_General/1.jpg differ diff --git a/app/src/main/assets/png_General/10.jpg b/app/src/main/assets/png_General/10.jpg new file mode 100644 index 0000000..eacd298 Binary files /dev/null and b/app/src/main/assets/png_General/10.jpg differ diff --git a/app/src/main/assets/png_General/11.jpg b/app/src/main/assets/png_General/11.jpg new file mode 100644 index 0000000..273a876 Binary files /dev/null and b/app/src/main/assets/png_General/11.jpg differ diff --git a/app/src/main/assets/png_General/12.jpg b/app/src/main/assets/png_General/12.jpg new file mode 100644 index 0000000..5d786c5 Binary files /dev/null and b/app/src/main/assets/png_General/12.jpg differ diff --git a/app/src/main/assets/png_General/13.jpg b/app/src/main/assets/png_General/13.jpg new file mode 100644 index 0000000..486441a Binary files /dev/null and b/app/src/main/assets/png_General/13.jpg differ diff --git a/app/src/main/assets/png_General/14.jpg b/app/src/main/assets/png_General/14.jpg new file mode 100644 index 0000000..c36516b Binary files /dev/null and b/app/src/main/assets/png_General/14.jpg differ diff --git a/app/src/main/assets/png_General/15.jpg b/app/src/main/assets/png_General/15.jpg new file mode 100644 index 0000000..9d19fdf Binary files /dev/null and b/app/src/main/assets/png_General/15.jpg differ diff --git a/app/src/main/assets/png_General/2.jpg b/app/src/main/assets/png_General/2.jpg new file mode 100644 index 0000000..090d5d5 Binary files /dev/null and b/app/src/main/assets/png_General/2.jpg differ diff --git a/app/src/main/assets/png_General/3.jpg b/app/src/main/assets/png_General/3.jpg new file mode 100644 index 0000000..a17f1b2 Binary files /dev/null and b/app/src/main/assets/png_General/3.jpg differ diff --git a/app/src/main/assets/png_General/4.jpg b/app/src/main/assets/png_General/4.jpg new file mode 100644 index 0000000..2f4d8a2 Binary files /dev/null and b/app/src/main/assets/png_General/4.jpg differ diff --git a/app/src/main/assets/png_General/5.jpg b/app/src/main/assets/png_General/5.jpg new file mode 100644 index 0000000..8ac1cdb Binary files /dev/null and b/app/src/main/assets/png_General/5.jpg differ diff --git a/app/src/main/assets/png_General/6.jpg b/app/src/main/assets/png_General/6.jpg new file mode 100644 index 0000000..95cc582 Binary files /dev/null and b/app/src/main/assets/png_General/6.jpg differ diff --git a/app/src/main/assets/png_General/7.jpg b/app/src/main/assets/png_General/7.jpg new file mode 100644 index 0000000..91cbcfd Binary files /dev/null and b/app/src/main/assets/png_General/7.jpg differ diff --git a/app/src/main/assets/png_General/8.jpg b/app/src/main/assets/png_General/8.jpg new file mode 100644 index 0000000..af8da73 Binary files /dev/null and b/app/src/main/assets/png_General/8.jpg differ diff --git a/app/src/main/assets/png_General/9.jpg b/app/src/main/assets/png_General/9.jpg new file mode 100644 index 0000000..d5cfb72 Binary files /dev/null and b/app/src/main/assets/png_General/9.jpg differ diff --git a/app/src/main/assets/png_Mehndi/1.jpg b/app/src/main/assets/png_Mehndi/1.jpg new file mode 100644 index 0000000..8dd8843 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/1.jpg differ diff --git a/app/src/main/assets/png_Mehndi/10.jpg b/app/src/main/assets/png_Mehndi/10.jpg new file mode 100644 index 0000000..2432a79 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/10.jpg differ diff --git a/app/src/main/assets/png_Mehndi/11.jpg b/app/src/main/assets/png_Mehndi/11.jpg new file mode 100644 index 0000000..aba85bf Binary files /dev/null and b/app/src/main/assets/png_Mehndi/11.jpg differ diff --git a/app/src/main/assets/png_Mehndi/12.jpg b/app/src/main/assets/png_Mehndi/12.jpg new file mode 100644 index 0000000..f71ae22 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/12.jpg differ diff --git a/app/src/main/assets/png_Mehndi/2.jpg b/app/src/main/assets/png_Mehndi/2.jpg new file mode 100644 index 0000000..0f56bf7 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/2.jpg differ diff --git a/app/src/main/assets/png_Mehndi/3.jpg b/app/src/main/assets/png_Mehndi/3.jpg new file mode 100644 index 0000000..2bc7b69 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/3.jpg differ diff --git a/app/src/main/assets/png_Mehndi/4.jpg b/app/src/main/assets/png_Mehndi/4.jpg new file mode 100644 index 0000000..6fc3f70 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/4.jpg differ diff --git a/app/src/main/assets/png_Mehndi/5.jpg b/app/src/main/assets/png_Mehndi/5.jpg new file mode 100644 index 0000000..dccb5cf Binary files /dev/null and b/app/src/main/assets/png_Mehndi/5.jpg differ diff --git a/app/src/main/assets/png_Mehndi/6.jpg b/app/src/main/assets/png_Mehndi/6.jpg new file mode 100644 index 0000000..4e052dd Binary files /dev/null and b/app/src/main/assets/png_Mehndi/6.jpg differ diff --git a/app/src/main/assets/png_Mehndi/7.jpg b/app/src/main/assets/png_Mehndi/7.jpg new file mode 100644 index 0000000..021e789 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/7.jpg differ diff --git a/app/src/main/assets/png_Mehndi/8.jpg b/app/src/main/assets/png_Mehndi/8.jpg new file mode 100644 index 0000000..dd45b50 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/8.jpg differ diff --git a/app/src/main/assets/png_Mehndi/9.jpg b/app/src/main/assets/png_Mehndi/9.jpg new file mode 100644 index 0000000..6ff2300 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/9.jpg differ diff --git a/app/src/main/assets/png_Nature/1.jpg b/app/src/main/assets/png_Nature/1.jpg new file mode 100644 index 0000000..22c00e3 Binary files /dev/null and b/app/src/main/assets/png_Nature/1.jpg differ diff --git a/app/src/main/assets/png_Nature/10.jpg b/app/src/main/assets/png_Nature/10.jpg new file mode 100644 index 0000000..65aab09 Binary files /dev/null and b/app/src/main/assets/png_Nature/10.jpg differ diff --git a/app/src/main/assets/png_Nature/11.jpg b/app/src/main/assets/png_Nature/11.jpg new file mode 100644 index 0000000..23c6653 Binary files /dev/null and b/app/src/main/assets/png_Nature/11.jpg differ diff --git a/app/src/main/assets/png_Nature/12.jpg b/app/src/main/assets/png_Nature/12.jpg new file mode 100644 index 0000000..36e1835 Binary files /dev/null and b/app/src/main/assets/png_Nature/12.jpg differ diff --git a/app/src/main/assets/png_Nature/13.jpg b/app/src/main/assets/png_Nature/13.jpg new file mode 100644 index 0000000..5816b61 Binary files /dev/null and b/app/src/main/assets/png_Nature/13.jpg differ diff --git a/app/src/main/assets/png_Nature/14.jpg b/app/src/main/assets/png_Nature/14.jpg new file mode 100644 index 0000000..b4e5dc6 Binary files /dev/null and b/app/src/main/assets/png_Nature/14.jpg differ diff --git a/app/src/main/assets/png_Nature/15.jpg b/app/src/main/assets/png_Nature/15.jpg new file mode 100644 index 0000000..5424ac4 Binary files /dev/null and b/app/src/main/assets/png_Nature/15.jpg differ diff --git a/app/src/main/assets/png_Nature/16.jpg b/app/src/main/assets/png_Nature/16.jpg new file mode 100644 index 0000000..fd00791 Binary files /dev/null and b/app/src/main/assets/png_Nature/16.jpg differ diff --git a/app/src/main/assets/png_Nature/17.jpg b/app/src/main/assets/png_Nature/17.jpg new file mode 100644 index 0000000..38410e8 Binary files /dev/null and b/app/src/main/assets/png_Nature/17.jpg differ diff --git a/app/src/main/assets/png_Nature/18.jpg b/app/src/main/assets/png_Nature/18.jpg new file mode 100644 index 0000000..5ae5028 Binary files /dev/null and b/app/src/main/assets/png_Nature/18.jpg differ diff --git a/app/src/main/assets/png_Nature/19.jpg b/app/src/main/assets/png_Nature/19.jpg new file mode 100644 index 0000000..e49b4f1 Binary files /dev/null and b/app/src/main/assets/png_Nature/19.jpg differ diff --git a/app/src/main/assets/png_Nature/2.jpg b/app/src/main/assets/png_Nature/2.jpg new file mode 100644 index 0000000..3b5ec4c Binary files /dev/null and b/app/src/main/assets/png_Nature/2.jpg differ diff --git a/app/src/main/assets/png_Nature/20.jpg b/app/src/main/assets/png_Nature/20.jpg new file mode 100644 index 0000000..cc94724 Binary files /dev/null and b/app/src/main/assets/png_Nature/20.jpg differ diff --git a/app/src/main/assets/png_Nature/21.jpg b/app/src/main/assets/png_Nature/21.jpg new file mode 100644 index 0000000..dfa6c09 Binary files /dev/null and b/app/src/main/assets/png_Nature/21.jpg differ diff --git a/app/src/main/assets/png_Nature/22.jpg b/app/src/main/assets/png_Nature/22.jpg new file mode 100644 index 0000000..c05e638 Binary files /dev/null and b/app/src/main/assets/png_Nature/22.jpg differ diff --git a/app/src/main/assets/png_Nature/23.jpg b/app/src/main/assets/png_Nature/23.jpg new file mode 100644 index 0000000..6f932ec Binary files /dev/null and b/app/src/main/assets/png_Nature/23.jpg differ diff --git a/app/src/main/assets/png_Nature/3.jpg b/app/src/main/assets/png_Nature/3.jpg new file mode 100644 index 0000000..1423546 Binary files /dev/null and b/app/src/main/assets/png_Nature/3.jpg differ diff --git a/app/src/main/assets/png_Nature/4.jpg b/app/src/main/assets/png_Nature/4.jpg new file mode 100644 index 0000000..5499510 Binary files /dev/null and b/app/src/main/assets/png_Nature/4.jpg differ diff --git a/app/src/main/assets/png_Nature/5.jpg b/app/src/main/assets/png_Nature/5.jpg new file mode 100644 index 0000000..434261a Binary files /dev/null and b/app/src/main/assets/png_Nature/5.jpg differ diff --git a/app/src/main/assets/png_Nature/6.jpg b/app/src/main/assets/png_Nature/6.jpg new file mode 100644 index 0000000..f50166b Binary files /dev/null and b/app/src/main/assets/png_Nature/6.jpg differ diff --git a/app/src/main/assets/png_Nature/7.jpg b/app/src/main/assets/png_Nature/7.jpg new file mode 100644 index 0000000..96e178c Binary files /dev/null and b/app/src/main/assets/png_Nature/7.jpg differ diff --git a/app/src/main/assets/png_Nature/8.jpg b/app/src/main/assets/png_Nature/8.jpg new file mode 100644 index 0000000..c68f4f1 Binary files /dev/null and b/app/src/main/assets/png_Nature/8.jpg differ diff --git a/app/src/main/assets/png_Nature/9.jpg b/app/src/main/assets/png_Nature/9.jpg new file mode 100644 index 0000000..6b8ccb4 Binary files /dev/null and b/app/src/main/assets/png_Nature/9.jpg differ diff --git a/app/src/main/assets/png_Properties/1.jpg b/app/src/main/assets/png_Properties/1.jpg new file mode 100644 index 0000000..3289a38 Binary files /dev/null and b/app/src/main/assets/png_Properties/1.jpg differ diff --git a/app/src/main/assets/png_Properties/10.jpg b/app/src/main/assets/png_Properties/10.jpg new file mode 100644 index 0000000..b065539 Binary files /dev/null and b/app/src/main/assets/png_Properties/10.jpg differ diff --git a/app/src/main/assets/png_Properties/11.jpg b/app/src/main/assets/png_Properties/11.jpg new file mode 100644 index 0000000..12d28b1 Binary files /dev/null and b/app/src/main/assets/png_Properties/11.jpg differ diff --git a/app/src/main/assets/png_Properties/12.jpg b/app/src/main/assets/png_Properties/12.jpg new file mode 100644 index 0000000..182879f Binary files /dev/null and b/app/src/main/assets/png_Properties/12.jpg differ diff --git a/app/src/main/assets/png_Properties/13.jpg b/app/src/main/assets/png_Properties/13.jpg new file mode 100644 index 0000000..4263530 Binary files /dev/null and b/app/src/main/assets/png_Properties/13.jpg differ diff --git a/app/src/main/assets/png_Properties/14.jpg b/app/src/main/assets/png_Properties/14.jpg new file mode 100644 index 0000000..42e4ab3 Binary files /dev/null and b/app/src/main/assets/png_Properties/14.jpg differ diff --git a/app/src/main/assets/png_Properties/15.jpg b/app/src/main/assets/png_Properties/15.jpg new file mode 100644 index 0000000..b529436 Binary files /dev/null and b/app/src/main/assets/png_Properties/15.jpg differ diff --git a/app/src/main/assets/png_Properties/16.jpg b/app/src/main/assets/png_Properties/16.jpg new file mode 100644 index 0000000..85caef0 Binary files /dev/null and b/app/src/main/assets/png_Properties/16.jpg differ diff --git a/app/src/main/assets/png_Properties/17.jpg b/app/src/main/assets/png_Properties/17.jpg new file mode 100644 index 0000000..6295f58 Binary files /dev/null and b/app/src/main/assets/png_Properties/17.jpg differ diff --git a/app/src/main/assets/png_Properties/18.jpg b/app/src/main/assets/png_Properties/18.jpg new file mode 100644 index 0000000..f8e4e87 Binary files /dev/null and b/app/src/main/assets/png_Properties/18.jpg differ diff --git a/app/src/main/assets/png_Properties/19.jpg b/app/src/main/assets/png_Properties/19.jpg new file mode 100644 index 0000000..c476493 Binary files /dev/null and b/app/src/main/assets/png_Properties/19.jpg differ diff --git a/app/src/main/assets/png_Properties/2.jpg b/app/src/main/assets/png_Properties/2.jpg new file mode 100644 index 0000000..084fa51 Binary files /dev/null and b/app/src/main/assets/png_Properties/2.jpg differ diff --git a/app/src/main/assets/png_Properties/3.jpg b/app/src/main/assets/png_Properties/3.jpg new file mode 100644 index 0000000..4ee71c4 Binary files /dev/null and b/app/src/main/assets/png_Properties/3.jpg differ diff --git a/app/src/main/assets/png_Properties/4.jpg b/app/src/main/assets/png_Properties/4.jpg new file mode 100644 index 0000000..25912f1 Binary files /dev/null and b/app/src/main/assets/png_Properties/4.jpg differ diff --git a/app/src/main/assets/png_Properties/5.jpg b/app/src/main/assets/png_Properties/5.jpg new file mode 100644 index 0000000..77c2aa8 Binary files /dev/null and b/app/src/main/assets/png_Properties/5.jpg differ diff --git a/app/src/main/assets/png_Properties/6.jpg b/app/src/main/assets/png_Properties/6.jpg new file mode 100644 index 0000000..75b1e32 Binary files /dev/null and b/app/src/main/assets/png_Properties/6.jpg differ diff --git a/app/src/main/assets/png_Properties/7.jpg b/app/src/main/assets/png_Properties/7.jpg new file mode 100644 index 0000000..f059989 Binary files /dev/null and b/app/src/main/assets/png_Properties/7.jpg differ diff --git a/app/src/main/assets/png_Properties/8.jpg b/app/src/main/assets/png_Properties/8.jpg new file mode 100644 index 0000000..6be97eb Binary files /dev/null and b/app/src/main/assets/png_Properties/8.jpg differ diff --git a/app/src/main/assets/png_Properties/9.jpg b/app/src/main/assets/png_Properties/9.jpg new file mode 100644 index 0000000..626cab9 Binary files /dev/null and b/app/src/main/assets/png_Properties/9.jpg differ diff --git a/app/src/main/assets/png_Rangoli/1.jpg b/app/src/main/assets/png_Rangoli/1.jpg new file mode 100644 index 0000000..e628714 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/1.jpg differ diff --git a/app/src/main/assets/png_Rangoli/10.jpg b/app/src/main/assets/png_Rangoli/10.jpg new file mode 100644 index 0000000..f6e9d09 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/10.jpg differ diff --git a/app/src/main/assets/png_Rangoli/13.jpg b/app/src/main/assets/png_Rangoli/13.jpg new file mode 100644 index 0000000..9741d57 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/13.jpg differ diff --git a/app/src/main/assets/png_Rangoli/14.jpg b/app/src/main/assets/png_Rangoli/14.jpg new file mode 100644 index 0000000..3ca4970 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/14.jpg differ diff --git a/app/src/main/assets/png_Rangoli/15.jpg b/app/src/main/assets/png_Rangoli/15.jpg new file mode 100644 index 0000000..98abac3 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/15.jpg differ diff --git a/app/src/main/assets/png_Rangoli/16.jpg b/app/src/main/assets/png_Rangoli/16.jpg new file mode 100644 index 0000000..150dfdc Binary files /dev/null and b/app/src/main/assets/png_Rangoli/16.jpg differ diff --git a/app/src/main/assets/png_Rangoli/17.jpg b/app/src/main/assets/png_Rangoli/17.jpg new file mode 100644 index 0000000..4127115 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/17.jpg differ diff --git a/app/src/main/assets/png_Rangoli/18.jpg b/app/src/main/assets/png_Rangoli/18.jpg new file mode 100644 index 0000000..6ae96e9 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/18.jpg differ diff --git a/app/src/main/assets/png_Rangoli/19.jpg b/app/src/main/assets/png_Rangoli/19.jpg new file mode 100644 index 0000000..ffcbd6a Binary files /dev/null and b/app/src/main/assets/png_Rangoli/19.jpg differ diff --git a/app/src/main/assets/png_Rangoli/2.jpg b/app/src/main/assets/png_Rangoli/2.jpg new file mode 100644 index 0000000..7329109 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/2.jpg differ diff --git a/app/src/main/assets/png_Rangoli/20.jpg b/app/src/main/assets/png_Rangoli/20.jpg new file mode 100644 index 0000000..b7be138 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/20.jpg differ diff --git a/app/src/main/assets/png_Rangoli/21.jpg b/app/src/main/assets/png_Rangoli/21.jpg new file mode 100644 index 0000000..eaa5fdf Binary files /dev/null and b/app/src/main/assets/png_Rangoli/21.jpg differ diff --git a/app/src/main/assets/png_Rangoli/22.jpg b/app/src/main/assets/png_Rangoli/22.jpg new file mode 100644 index 0000000..28aca48 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/22.jpg differ diff --git a/app/src/main/assets/png_Rangoli/23.jpg b/app/src/main/assets/png_Rangoli/23.jpg new file mode 100644 index 0000000..057d2d4 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/23.jpg differ diff --git a/app/src/main/assets/png_Rangoli/24.jpg b/app/src/main/assets/png_Rangoli/24.jpg new file mode 100644 index 0000000..e933061 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/24.jpg differ diff --git a/app/src/main/assets/png_Rangoli/25.jpg b/app/src/main/assets/png_Rangoli/25.jpg new file mode 100644 index 0000000..569a74c Binary files /dev/null and b/app/src/main/assets/png_Rangoli/25.jpg differ diff --git a/app/src/main/assets/png_Rangoli/3.jpg b/app/src/main/assets/png_Rangoli/3.jpg new file mode 100644 index 0000000..569342c Binary files /dev/null and b/app/src/main/assets/png_Rangoli/3.jpg differ diff --git a/app/src/main/assets/png_Rangoli/4.jpg b/app/src/main/assets/png_Rangoli/4.jpg new file mode 100644 index 0000000..7c5d0de Binary files /dev/null and b/app/src/main/assets/png_Rangoli/4.jpg differ diff --git a/app/src/main/assets/png_Rangoli/5.jpg b/app/src/main/assets/png_Rangoli/5.jpg new file mode 100644 index 0000000..5a3228f Binary files /dev/null and b/app/src/main/assets/png_Rangoli/5.jpg differ diff --git a/app/src/main/assets/png_Rangoli/6.jpg b/app/src/main/assets/png_Rangoli/6.jpg new file mode 100644 index 0000000..270f078 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/6.jpg differ diff --git a/app/src/main/assets/png_Rangoli/7.jpg b/app/src/main/assets/png_Rangoli/7.jpg new file mode 100644 index 0000000..241beac Binary files /dev/null and b/app/src/main/assets/png_Rangoli/7.jpg differ diff --git a/app/src/main/assets/png_Rangoli/8.jpg b/app/src/main/assets/png_Rangoli/8.jpg new file mode 100644 index 0000000..c62e0d7 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/8.jpg differ diff --git a/app/src/main/assets/png_Rangoli/9.jpg b/app/src/main/assets/png_Rangoli/9.jpg new file mode 100644 index 0000000..bcd14a7 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/9.jpg differ diff --git a/app/src/main/assets/png_Sports/1.jpg b/app/src/main/assets/png_Sports/1.jpg new file mode 100644 index 0000000..cd1cb09 Binary files /dev/null and b/app/src/main/assets/png_Sports/1.jpg differ diff --git a/app/src/main/assets/png_Sports/10.jpg b/app/src/main/assets/png_Sports/10.jpg new file mode 100644 index 0000000..2ec81a5 Binary files /dev/null and b/app/src/main/assets/png_Sports/10.jpg differ diff --git a/app/src/main/assets/png_Sports/11.jpg b/app/src/main/assets/png_Sports/11.jpg new file mode 100644 index 0000000..f00ecb5 Binary files /dev/null and b/app/src/main/assets/png_Sports/11.jpg differ diff --git a/app/src/main/assets/png_Sports/12.jpg b/app/src/main/assets/png_Sports/12.jpg new file mode 100644 index 0000000..b004929 Binary files /dev/null and b/app/src/main/assets/png_Sports/12.jpg differ diff --git a/app/src/main/assets/png_Sports/13.jpg b/app/src/main/assets/png_Sports/13.jpg new file mode 100644 index 0000000..73fa886 Binary files /dev/null and b/app/src/main/assets/png_Sports/13.jpg differ diff --git a/app/src/main/assets/png_Sports/14.jpg b/app/src/main/assets/png_Sports/14.jpg new file mode 100644 index 0000000..3d9069e Binary files /dev/null and b/app/src/main/assets/png_Sports/14.jpg differ diff --git a/app/src/main/assets/png_Sports/15.jpg b/app/src/main/assets/png_Sports/15.jpg new file mode 100644 index 0000000..a090c83 Binary files /dev/null and b/app/src/main/assets/png_Sports/15.jpg differ diff --git a/app/src/main/assets/png_Sports/16.jpg b/app/src/main/assets/png_Sports/16.jpg new file mode 100644 index 0000000..185d6e3 Binary files /dev/null and b/app/src/main/assets/png_Sports/16.jpg differ diff --git a/app/src/main/assets/png_Sports/17.jpg b/app/src/main/assets/png_Sports/17.jpg new file mode 100644 index 0000000..b8193fa Binary files /dev/null and b/app/src/main/assets/png_Sports/17.jpg differ diff --git a/app/src/main/assets/png_Sports/18.jpg b/app/src/main/assets/png_Sports/18.jpg new file mode 100644 index 0000000..ba4fcea Binary files /dev/null and b/app/src/main/assets/png_Sports/18.jpg differ diff --git a/app/src/main/assets/png_Sports/19.jpg b/app/src/main/assets/png_Sports/19.jpg new file mode 100644 index 0000000..617c2af Binary files /dev/null and b/app/src/main/assets/png_Sports/19.jpg differ diff --git a/app/src/main/assets/png_Sports/2.jpg b/app/src/main/assets/png_Sports/2.jpg new file mode 100644 index 0000000..59890e5 Binary files /dev/null and b/app/src/main/assets/png_Sports/2.jpg differ diff --git a/app/src/main/assets/png_Sports/20.jpg b/app/src/main/assets/png_Sports/20.jpg new file mode 100644 index 0000000..4032ff4 Binary files /dev/null and b/app/src/main/assets/png_Sports/20.jpg differ diff --git a/app/src/main/assets/png_Sports/21.jpg b/app/src/main/assets/png_Sports/21.jpg new file mode 100644 index 0000000..23979ba Binary files /dev/null and b/app/src/main/assets/png_Sports/21.jpg differ diff --git a/app/src/main/assets/png_Sports/22.jpg b/app/src/main/assets/png_Sports/22.jpg new file mode 100644 index 0000000..c61e91e Binary files /dev/null and b/app/src/main/assets/png_Sports/22.jpg differ diff --git a/app/src/main/assets/png_Sports/23.jpg b/app/src/main/assets/png_Sports/23.jpg new file mode 100644 index 0000000..7bf0806 Binary files /dev/null and b/app/src/main/assets/png_Sports/23.jpg differ diff --git a/app/src/main/assets/png_Sports/24.jpg b/app/src/main/assets/png_Sports/24.jpg new file mode 100644 index 0000000..23cbc17 Binary files /dev/null and b/app/src/main/assets/png_Sports/24.jpg differ diff --git a/app/src/main/assets/png_Sports/25.jpg b/app/src/main/assets/png_Sports/25.jpg new file mode 100644 index 0000000..06d992e Binary files /dev/null and b/app/src/main/assets/png_Sports/25.jpg differ diff --git a/app/src/main/assets/png_Sports/26.jpg b/app/src/main/assets/png_Sports/26.jpg new file mode 100644 index 0000000..26af61e Binary files /dev/null and b/app/src/main/assets/png_Sports/26.jpg differ diff --git a/app/src/main/assets/png_Sports/27.jpg b/app/src/main/assets/png_Sports/27.jpg new file mode 100644 index 0000000..91bf104 Binary files /dev/null and b/app/src/main/assets/png_Sports/27.jpg differ diff --git a/app/src/main/assets/png_Sports/28.jpg b/app/src/main/assets/png_Sports/28.jpg new file mode 100644 index 0000000..8c790e7 Binary files /dev/null and b/app/src/main/assets/png_Sports/28.jpg differ diff --git a/app/src/main/assets/png_Sports/3.jpg b/app/src/main/assets/png_Sports/3.jpg new file mode 100644 index 0000000..8315af5 Binary files /dev/null and b/app/src/main/assets/png_Sports/3.jpg differ diff --git a/app/src/main/assets/png_Sports/4.jpg b/app/src/main/assets/png_Sports/4.jpg new file mode 100644 index 0000000..8070e68 Binary files /dev/null and b/app/src/main/assets/png_Sports/4.jpg differ diff --git a/app/src/main/assets/png_Sports/5.jpg b/app/src/main/assets/png_Sports/5.jpg new file mode 100644 index 0000000..5bcb837 Binary files /dev/null and b/app/src/main/assets/png_Sports/5.jpg differ diff --git a/app/src/main/assets/png_Sports/6.jpg b/app/src/main/assets/png_Sports/6.jpg new file mode 100644 index 0000000..038521f Binary files /dev/null and b/app/src/main/assets/png_Sports/6.jpg differ diff --git a/app/src/main/assets/png_Sports/7.jpg b/app/src/main/assets/png_Sports/7.jpg new file mode 100644 index 0000000..73bf0de Binary files /dev/null and b/app/src/main/assets/png_Sports/7.jpg differ diff --git a/app/src/main/assets/png_Sports/8.jpg b/app/src/main/assets/png_Sports/8.jpg new file mode 100644 index 0000000..6c565f8 Binary files /dev/null and b/app/src/main/assets/png_Sports/8.jpg differ diff --git a/app/src/main/assets/png_Sports/9.jpg b/app/src/main/assets/png_Sports/9.jpg new file mode 100644 index 0000000..130cd94 Binary files /dev/null and b/app/src/main/assets/png_Sports/9.jpg differ diff --git a/app/src/main/assets/png_Vehicles/1.jpg b/app/src/main/assets/png_Vehicles/1.jpg new file mode 100644 index 0000000..da449f7 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/1.jpg differ diff --git a/app/src/main/assets/png_Vehicles/10.jpg b/app/src/main/assets/png_Vehicles/10.jpg new file mode 100644 index 0000000..0084613 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/10.jpg differ diff --git a/app/src/main/assets/png_Vehicles/11.jpg b/app/src/main/assets/png_Vehicles/11.jpg new file mode 100644 index 0000000..ba5f4d4 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/11.jpg differ diff --git a/app/src/main/assets/png_Vehicles/12.jpg b/app/src/main/assets/png_Vehicles/12.jpg new file mode 100644 index 0000000..32c7908 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/12.jpg differ diff --git a/app/src/main/assets/png_Vehicles/13.jpg b/app/src/main/assets/png_Vehicles/13.jpg new file mode 100644 index 0000000..dd47e76 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/13.jpg differ diff --git a/app/src/main/assets/png_Vehicles/14.jpg b/app/src/main/assets/png_Vehicles/14.jpg new file mode 100644 index 0000000..8b886e6 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/14.jpg differ diff --git a/app/src/main/assets/png_Vehicles/15.jpg b/app/src/main/assets/png_Vehicles/15.jpg new file mode 100644 index 0000000..cf78752 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/15.jpg differ diff --git a/app/src/main/assets/png_Vehicles/16.jpg b/app/src/main/assets/png_Vehicles/16.jpg new file mode 100644 index 0000000..87f8a19 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/16.jpg differ diff --git a/app/src/main/assets/png_Vehicles/17.jpg b/app/src/main/assets/png_Vehicles/17.jpg new file mode 100644 index 0000000..011b53b Binary files /dev/null and b/app/src/main/assets/png_Vehicles/17.jpg differ diff --git a/app/src/main/assets/png_Vehicles/18.jpg b/app/src/main/assets/png_Vehicles/18.jpg new file mode 100644 index 0000000..c4433c8 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/18.jpg differ diff --git a/app/src/main/assets/png_Vehicles/19.jpg b/app/src/main/assets/png_Vehicles/19.jpg new file mode 100644 index 0000000..b9361f1 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/19.jpg differ diff --git a/app/src/main/assets/png_Vehicles/2.jpg b/app/src/main/assets/png_Vehicles/2.jpg new file mode 100644 index 0000000..ff06675 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/2.jpg differ diff --git a/app/src/main/assets/png_Vehicles/20.jpg b/app/src/main/assets/png_Vehicles/20.jpg new file mode 100644 index 0000000..3e22c5c Binary files /dev/null and b/app/src/main/assets/png_Vehicles/20.jpg differ diff --git a/app/src/main/assets/png_Vehicles/21.jpg b/app/src/main/assets/png_Vehicles/21.jpg new file mode 100644 index 0000000..f93b99a Binary files /dev/null and b/app/src/main/assets/png_Vehicles/21.jpg differ diff --git a/app/src/main/assets/png_Vehicles/22.jpg b/app/src/main/assets/png_Vehicles/22.jpg new file mode 100644 index 0000000..952afa9 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/22.jpg differ diff --git a/app/src/main/assets/png_Vehicles/23.jpg b/app/src/main/assets/png_Vehicles/23.jpg new file mode 100644 index 0000000..a6e1c25 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/23.jpg differ diff --git a/app/src/main/assets/png_Vehicles/24.jpg b/app/src/main/assets/png_Vehicles/24.jpg new file mode 100644 index 0000000..83c706a Binary files /dev/null and b/app/src/main/assets/png_Vehicles/24.jpg differ diff --git a/app/src/main/assets/png_Vehicles/25.jpg b/app/src/main/assets/png_Vehicles/25.jpg new file mode 100644 index 0000000..6ebdbf7 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/25.jpg differ diff --git a/app/src/main/assets/png_Vehicles/26.jpg b/app/src/main/assets/png_Vehicles/26.jpg new file mode 100644 index 0000000..3805357 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/26.jpg differ diff --git a/app/src/main/assets/png_Vehicles/27.jpg b/app/src/main/assets/png_Vehicles/27.jpg new file mode 100644 index 0000000..0849027 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/27.jpg differ diff --git a/app/src/main/assets/png_Vehicles/28.jpg b/app/src/main/assets/png_Vehicles/28.jpg new file mode 100644 index 0000000..019baa9 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/28.jpg differ diff --git a/app/src/main/assets/png_Vehicles/29.jpg b/app/src/main/assets/png_Vehicles/29.jpg new file mode 100644 index 0000000..c7e0d3a Binary files /dev/null and b/app/src/main/assets/png_Vehicles/29.jpg differ diff --git a/app/src/main/assets/png_Vehicles/3.jpg b/app/src/main/assets/png_Vehicles/3.jpg new file mode 100644 index 0000000..eb33365 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/3.jpg differ diff --git a/app/src/main/assets/png_Vehicles/30.jpg b/app/src/main/assets/png_Vehicles/30.jpg new file mode 100644 index 0000000..3820102 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/30.jpg differ diff --git a/app/src/main/assets/png_Vehicles/31.jpg b/app/src/main/assets/png_Vehicles/31.jpg new file mode 100644 index 0000000..bba9999 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/31.jpg differ diff --git a/app/src/main/assets/png_Vehicles/32.jpg b/app/src/main/assets/png_Vehicles/32.jpg new file mode 100644 index 0000000..6d64a3f Binary files /dev/null and b/app/src/main/assets/png_Vehicles/32.jpg differ diff --git a/app/src/main/assets/png_Vehicles/4.jpg b/app/src/main/assets/png_Vehicles/4.jpg new file mode 100644 index 0000000..968f0ad Binary files /dev/null and b/app/src/main/assets/png_Vehicles/4.jpg differ diff --git a/app/src/main/assets/png_Vehicles/5.jpg b/app/src/main/assets/png_Vehicles/5.jpg new file mode 100644 index 0000000..abdd96c Binary files /dev/null and b/app/src/main/assets/png_Vehicles/5.jpg differ diff --git a/app/src/main/assets/png_Vehicles/6.jpg b/app/src/main/assets/png_Vehicles/6.jpg new file mode 100644 index 0000000..7eeb870 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/6.jpg differ diff --git a/app/src/main/assets/png_Vehicles/7.jpg b/app/src/main/assets/png_Vehicles/7.jpg new file mode 100644 index 0000000..c5e6294 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/7.jpg differ diff --git a/app/src/main/assets/png_Vehicles/8.jpg b/app/src/main/assets/png_Vehicles/8.jpg new file mode 100644 index 0000000..6628782 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/8.jpg differ diff --git a/app/src/main/assets/png_Vehicles/9.jpg b/app/src/main/assets/png_Vehicles/9.jpg new file mode 100644 index 0000000..367b772 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/9.jpg differ diff --git a/app/src/main/java/com/artisanic/helper/ArtApp.java b/app/src/main/java/com/artisanic/helper/ArtApp.java new file mode 100644 index 0000000..2c05425 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ArtApp.java @@ -0,0 +1,25 @@ +package com.artisanic.helper; + +import android.app.Application; + +import com.tradplus.ads.open.TradPlusSdk; +import com.up.uploadlibrary.UpLoadManager; + +public class ArtApp extends Application { + + public static String Key_ViewDir = "pre_dir"; + + public static String Key_Camera = "camera_data"; + public static final String Key_ImagePath = "image_path"; + + @Override + public void onCreate() { + super.onCreate(); + UpLoadManager.INSTANCE.init(this, "ocean", (s, s2) -> null); + TradPlusSdk.initSdk(this, "F0A4DC4BA752540ED2ECA9B0F8A74C11"); + } + + + + +} diff --git a/app/src/main/java/com/artisanic/helper/ad/AdInstLoad.kt b/app/src/main/java/com/artisanic/helper/ad/AdInstLoad.kt new file mode 100644 index 0000000..3798169 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/AdInstLoad.kt @@ -0,0 +1,81 @@ +package com.artisanic.helper.ad + +import android.app.Activity +import android.util.Log +import com.tradplus.ads.base.bean.TPAdError +import com.tradplus.ads.base.bean.TPAdInfo +import com.tradplus.ads.open.interstitial.InterstitialAdListener +import com.tradplus.ads.open.interstitial.TPInterstitial + +class AdInstLoad { + private var mPlace: String + private var adLoadListener: LoadListener? = null + private var activity: Activity? = null + + constructor(activity: Activity, place: String, listener: LoadListener?) { + this.mPlace = place + this.adLoadListener = listener + this.activity = activity + init() + } + + constructor(place: String, listener: LoadListener?) { + this.mPlace = place + this.adLoadListener = listener + init() + } + + private fun init() { + val tpInterstitial = TPInterstitial(activity, mPlace) + tpInterstitial.setAdListener(object : InterstitialAdListener { + //广告加载完成 首个广告源加载成功时回调 一次加载流程只会回调一次 + override fun onAdLoaded(tpAdInfo: TPAdInfo?) { + if (tpAdInfo != null) { + Log.d("ocean", "$mPlace 广告load成功,tpAdInfo有值") + InstAdCacheManager.Companion.instance.setAdCache(mPlace, tpInterstitial) + adLoadListener?.loaded(tpAdInfo) + } else { + adLoadListener?.loadFailed("tpAdInfo没有值") + Log.d("ocean", "$mPlace tpAdInfo没有值") + } + } + + // 广告被点击 + override fun onAdClicked(tpAdInfo: TPAdInfo?) { + Log.d("ocean", "$mPlace tradplus onAdClicked") + } + + // 广告成功展示在页面上 + override fun onAdImpression(tpAdInfo: TPAdInfo?) { + Log.d("ocean", "$mPlace tradplus onAdImpression") + } + + // 广告加载失败 + override fun onAdFailed(error: TPAdError?) { + adLoadListener?.loadFailed("code->${error?.errorCode}message->${error?.errorMsg}") + Log.d("ocean", "$mPlace load ad onError->code->${error?.errorCode}message->${error?.errorMsg}") + } + + // 广告被关闭 + override fun onAdClosed(tpAdInfo: TPAdInfo?) { + Log.d("ocean", "$mPlace tradplus onAdClosed") + } + + // 视频播放开始(部分广告源支持) + override fun onAdVideoStart(tpAdInfo: TPAdInfo?) { + Log.d("ocean", "$mPlace tradplus onAdVideoStart") + } + + //视频播放结束(部分广告源支持) + override fun onAdVideoEnd(tpAdInfo: TPAdInfo?) { + Log.d("ocean", "$mPlace tradplus onAdVideoEnd") + } + + //视频播放失败(部分广告源支持) + override fun onAdVideoError(tpAdInfo: TPAdInfo?, error: TPAdError?) { + Log.d("ocean", "$mPlace onAdVideoError code->${error?.errorCode}message->${error?.errorMsg}") + } + }) + tpInterstitial.loadAd() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/ad/AdInstShower.kt b/app/src/main/java/com/artisanic/helper/ad/AdInstShower.kt new file mode 100644 index 0000000..02b9127 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/AdInstShower.kt @@ -0,0 +1,69 @@ +package com.artisanic.helper.ad + +import android.app.Activity +import android.util.Log +import com.tradplus.ads.base.bean.TPAdError +import com.tradplus.ads.base.bean.TPAdInfo +import com.tradplus.ads.open.interstitial.InterstitialAdListener + +class AdInstShower { + private var mPlace: String + private var showListener: ShowListener? = null + private var activity: Activity? = null + + constructor(activity: Activity, place: String, showListener: ShowListener?) { + this.mPlace = place + this.showListener = showListener + this.activity = activity + init() + } + + constructor(place: String, showListener: ShowListener?) { + this.mPlace = place + this.showListener = showListener + init() + } + + private fun init() { + val interstitialAd = InstAdCacheManager.Companion.instance.getAdCache(mPlace) + interstitialAd?.setAdListener(object : InterstitialAdListener { + //广告加载完成 首个广告源加载成功时回调 一次加载流程只会回调一次 + override fun onAdLoaded(tpAdInfo: TPAdInfo?) {} + + // 广告被点击 + override fun onAdClicked(tpAdInfo: TPAdInfo?) { + showListener?.onAdClicked() + Log.d("ocean", "AdInstShower 广告点击回调") + } + + // 广告成功展示在页面上 + override fun onAdImpression(tpAdInfo: TPAdInfo?) { + showListener?.onAdShown(tpAdInfo) + Log.d("ocean", "AdInstShower 广告展示回调") + } + + // 广告加载失败 + override fun onAdFailed(error: TPAdError?) {} + + // 广告被关闭 + override fun onAdClosed(tpAdInfo: TPAdInfo?) { + showListener?.onAdClosed() + Log.d("ocean", "AdInstShower 广告关闭回调") + } + + // 视频播放开始(部分广告源支持) + override fun onAdVideoStart(tpAdInfo: TPAdInfo?) {} + + //视频播放结束(部分广告源支持) + override fun onAdVideoEnd(tpAdInfo: TPAdInfo?) {} + + //视频播放失败(部分广告源支持) + override fun onAdVideoError(tpAdInfo: TPAdInfo?, error: TPAdError?) { + Log.d("ocean", "AdInstShower 视频广告播放失败回调->${error}") + showListener?.onAdShowFailed(AdShowFailed(error?.errorMsg.toString())) + } + }) + interstitialAd?.showAd(activity!!, mPlace) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/ad/AdShowFailed.kt b/app/src/main/java/com/artisanic/helper/ad/AdShowFailed.kt new file mode 100644 index 0000000..93896e9 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/AdShowFailed.kt @@ -0,0 +1,5 @@ +package com.artisanic.helper.ad + +data class AdShowFailed( + val msg: String = "", +) \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/ad/AdsInsUtil.kt b/app/src/main/java/com/artisanic/helper/ad/AdsInsUtil.kt new file mode 100644 index 0000000..924446c --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/AdsInsUtil.kt @@ -0,0 +1,28 @@ +package com.artisanic.helper.ad + +import android.app.Activity + +object AdsInsUtil { + + object Placement { + const val TOP_ON_AD_ONE = "801896DDD45E3B3004043EF828133512" + const val TOP_ON_AD_TOW = "03078FC50CF9C092439E85B445529012" + const val TOP_ON_AD_THREE = "B6B27D8BF5E2C3099548D1EDA0B18F12" + } + + fun loadAd( + act: Activity, + adID: String, + loadListener: LoadListener? + ): AdInstLoad { + return AdInstLoad(act, adID, loadListener) + } + + fun showAd( + act: Activity, + adID: String, + listener: ShowListener? + ): AdInstShower { + return AdInstShower(act, adID, listener) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/ad/InstAdCacheManager.kt b/app/src/main/java/com/artisanic/helper/ad/InstAdCacheManager.kt new file mode 100644 index 0000000..a24a1d3 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/InstAdCacheManager.kt @@ -0,0 +1,35 @@ +package com.artisanic.helper.ad + +import com.tradplus.ads.open.interstitial.TPInterstitial + +class InstAdCacheManager { + private val mAdCacheDict: MutableMap = mutableMapOf() + + companion object { + val instance: InstAdCacheManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + InstAdCacheManager() + } + } + + fun setAdCache(place: String, adCache: TPInterstitial) { + mAdCacheDict[place] = adCache + } + + fun getAdCache(place: String): TPInterstitial? { + return mAdCacheDict[place] + } + + fun getLoadedInstCount(): Int { + var count = 0 + try { + mAdCacheDict.forEach { (key, value) -> + if (value.isReady) { + count += 1 + } + } + } catch (_: Exception) { + + } + return count + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/ad/LoadListener.kt b/app/src/main/java/com/artisanic/helper/ad/LoadListener.kt new file mode 100644 index 0000000..ace428c --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/LoadListener.kt @@ -0,0 +1,8 @@ +package com.artisanic.helper.ad + +import com.tradplus.ads.base.bean.TPAdInfo + +interface LoadListener { + fun loadFailed(error: String) {} + fun loaded(ad: TPAdInfo) {} +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/ad/ShowListener.kt b/app/src/main/java/com/artisanic/helper/ad/ShowListener.kt new file mode 100644 index 0000000..6ffc3c8 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/ad/ShowListener.kt @@ -0,0 +1,10 @@ +package com.artisanic.helper.ad + +import com.tradplus.ads.base.bean.TPAdInfo + +interface ShowListener { + fun onAdShown(ad: TPAdInfo?) {} + fun onAdShowFailed(error: AdShowFailed?) {} + fun onAdClosed() {} + fun onAdClicked() {} +} diff --git a/app/src/main/java/com/artisanic/helper/artadapter/ListAdapter.java b/app/src/main/java/com/artisanic/helper/artadapter/ListAdapter.java new file mode 100644 index 0000000..249afe4 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artadapter/ListAdapter.java @@ -0,0 +1,70 @@ +package com.artisanic.helper.artadapter; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.cardview.widget.CardView; +import androidx.recyclerview.widget.RecyclerView; + +import com.artisanic.helper.ArtApp; +import com.artisanic.helper.artmanager.ArtUtils; +import com.artisanic.helper.artui.ArtCameraActivity; +import com.artisanic.helper.test.R; + +import java.util.List; + +public class ListAdapter extends RecyclerView.Adapter { + + private Context mCon; + private List data; + + public ListAdapter(Context mCon, List bitmapList) { + this.mCon = mCon; + data = bitmapList; + } + + @NonNull + @Override + public HomeVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.adapter_list, parent, false); + return new HomeVH(view); + } + + @Override + public void onBindViewHolder(@NonNull HomeVH holder, int position) { + String imagePath = data.get(position); + Log.d("---------tt","---------name="+imagePath); + Bitmap bitmap = ArtUtils.loadImageFromAssets(mCon, imagePath); + holder.previewIm.setImageBitmap(bitmap); + + // 适配你的 CameraActivity:仅传递 Key_Camera 参数(与你原有逻辑一致) + holder.cardView.setOnClickListener(v -> { + Intent intent = new Intent(mCon, ArtCameraActivity.class); + intent.putExtra(ArtApp.Key_Camera, imagePath); // 传递完整图片路径 + mCon.startActivity(intent); + }); + } + + @Override + public int getItemCount() { + return data.size(); + } + + public static class HomeVH extends RecyclerView.ViewHolder { + private ImageView previewIm; + private CardView cardView; + + public HomeVH(@NonNull View itemView) { + super(itemView); + previewIm = itemView.findViewById(R.id.imPreview); + cardView = itemView.findViewById(R.id.card_view); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artadapter/MainAdapter.java b/app/src/main/java/com/artisanic/helper/artadapter/MainAdapter.java new file mode 100644 index 0000000..abde690 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artadapter/MainAdapter.java @@ -0,0 +1,102 @@ +package com.artisanic.helper.artadapter; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.RectF; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.artisanic.helper.ArtApp; +import com.artisanic.helper.artmanager.ArtKeys; +import com.artisanic.helper.artmanager.ArtUtils; +import com.artisanic.helper.artui.ListActivity; +import com.artisanic.helper.test.R; + +import java.util.List; +import java.util.Random; + +public class MainAdapter extends RecyclerView.Adapter { + + private List nameList = ArtKeys.getAllDir(); + private Context mCon; + private static final int CORNER_RADIUS = 32; + + public MainAdapter(Context mCon) { + this.mCon = mCon; + } + + @NonNull + @Override + public HomeVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.adapter_main, parent, false); + return new HomeVH(view); + } + + @Override + public void onBindViewHolder(@NonNull HomeVH holder, int position) { + String dir = nameList.get(position); + String dirSimpleName = dir.substring(dir.lastIndexOf("_") + 1); + holder.tvName.setText(dirSimpleName); + List imagePaths = ArtUtils.fileExistsInAssets(mCon, dir); + if (!imagePaths.isEmpty()) { + Random random = new Random(); + String randomImagePath = imagePaths.get(random.nextInt(imagePaths.size())); + Bitmap bitmap = ArtUtils.loadImageFromAssets(mCon, randomImagePath); + if (bitmap != null) { + holder.ivCategory.setImageBitmap(getRoundedCornerBitmap(bitmap, CORNER_RADIUS)); + } else { + holder.ivCategory.setImageResource(R.mipmap.ic_launcher); + } + + holder.ivCategory.setOnClickListener(v -> { + Intent intent = new Intent(mCon, ListActivity.class); + intent.putExtra(ArtApp.Key_ViewDir, dir); + mCon.startActivity(intent); + }); + } else { + holder.ivCategory.setImageResource(R.mipmap.ic_launcher); + } + } + private Bitmap getRoundedCornerBitmap(Bitmap bitmap, int cornerRadius) { + Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + final Paint paint = new Paint(); + final RectF rectF = new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight()); + + paint.setAntiAlias(true); + canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint); + + paint.setXfermode(new android.graphics.PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(bitmap, 0, 0, paint); + if (bitmap != output) { + bitmap.recycle(); + } + return output; + } + + @Override + public int getItemCount() { + return nameList.size(); + } + + public static class HomeVH extends RecyclerView.ViewHolder { + private TextView tvName; + private ImageView ivCategory; + + public HomeVH(@NonNull View itemView) { + super(itemView); + tvName = itemView.findViewById(R.id.tv_name); + ivCategory = itemView.findViewById(R.id.iv_category); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artadapter/SearchAdapter.java b/app/src/main/java/com/artisanic/helper/artadapter/SearchAdapter.java new file mode 100644 index 0000000..013b36f --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artadapter/SearchAdapter.java @@ -0,0 +1,70 @@ +package com.artisanic.helper.artadapter; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.view.LayoutInflater; +import android.view.ViewGroup; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import com.artisanic.helper.artui.ArtCameraActivity; +import com.artisanic.helper.ArtApp; // 确保导入该类 +import com.artisanic.helper.test.databinding.ItemSearchImageBinding; +import java.io.IOException; +import java.io.InputStream; +import java.util.List; + +public class SearchAdapter extends RecyclerView.Adapter { + + private final Context mContext; + private List mImagePathList; + + public SearchAdapter(Context context, List imagePathList) { + this.mContext = context; + this.mImagePathList = imagePathList; + } + + public void updateData(List newList) { + this.mImagePathList = newList; + notifyDataSetChanged(); + } + + @NonNull + @Override + public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemSearchImageBinding binding = ItemSearchImageBinding.inflate( + LayoutInflater.from(mContext), parent, false); + return new ImageViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull ImageViewHolder holder, int position) { + String imagePath = mImagePathList.get(position); + try (InputStream is = mContext.getAssets().open(imagePath)) { + Bitmap bitmap = BitmapFactory.decodeStream(is); + holder.binding.ivImage.setImageBitmap(bitmap); + } catch (IOException e) { + e.printStackTrace(); + } + holder.binding.ivImage.setOnClickListener(v -> { + Intent intent = new Intent(mContext, ArtCameraActivity.class); + intent.putExtra(ArtApp.Key_Camera, imagePath); + mContext.startActivity(intent); + }); + } + + @Override + public int getItemCount() { + return mImagePathList == null ? 0 : mImagePathList.size(); + } + + static class ImageViewHolder extends RecyclerView.ViewHolder { + private final ItemSearchImageBinding binding; + + public ImageViewHolder(ItemSearchImageBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artmanager/ArtKeys.java b/app/src/main/java/com/artisanic/helper/artmanager/ArtKeys.java new file mode 100644 index 0000000..a1e4bf4 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artmanager/ArtKeys.java @@ -0,0 +1,48 @@ +package com.artisanic.helper.artmanager; + +import java.util.ArrayList; +import java.util.List; + +public class ArtKeys { + + public static String Class_Animals = "png_Animals"; + public static String Class_birds = "png_Birds"; + public static String Class_butterfly = "png_Butterfly"; + public static String Class_cafe = "png_Cafe"; + public static String Class_cartoons = "png_Cartoons"; + public static String Class_christmas = "png_Christmas"; + public static String Class_festivals = "png_Festivals"; + public static String Class_flowers = "png_Flowers"; + public static String Class_fruits = "png_Fruits"; + public static String Class_general = "png_General"; + + public static String Class_mehndi = "png_Mehndi"; + public static String Class_nature = "png_Nature"; + public static String Class_properties = "png_Properties"; + public static String Class_rangoli = "png_Rangoli"; + public static String Class_sports = "png_Sports"; + public static String Class_vehicles = "png_Vehicles"; + + public static List getAllDir() { + ArrayList list = new ArrayList<>(); + list.add(Class_Animals); + list.add(Class_birds); + list.add(Class_butterfly); + list.add(Class_cafe); + list.add(Class_cartoons); + list.add(Class_christmas); + list.add(Class_festivals); + list.add(Class_flowers); + list.add(Class_fruits); + list.add(Class_general); + list.add(Class_mehndi); + list.add(Class_nature); + list.add(Class_properties); + list.add(Class_rangoli); + list.add(Class_sports); + list.add(Class_vehicles); + return list; + + + } +} diff --git a/app/src/main/java/com/artisanic/helper/artmanager/ArtUtils.java b/app/src/main/java/com/artisanic/helper/artmanager/ArtUtils.java new file mode 100644 index 0000000..b85f211 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artmanager/ArtUtils.java @@ -0,0 +1,118 @@ +package com.artisanic.helper.artmanager; + +import android.app.Activity; +import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.res.AssetManager; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Point; +import android.util.DisplayMetrics; +import android.util.Range; +import android.view.MotionEvent; +import android.view.View; +import android.view.WindowManager; + +import androidx.camera.core.Camera; +import androidx.core.app.ActivityCompat; + +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +public class ArtUtils { + + public static int getRange(Camera camera) { + Range exposureCompensationRange = camera.getCameraInfo().getExposureState().getExposureCompensationRange(); + Integer upper = exposureCompensationRange.getUpper(); + Integer lower = exposureCompensationRange.getLower(); + return upper; + } + + public static void setStatusBarTextColor(Activity activity, boolean dark) { + View decor = activity.getWindow().getDecorView(); + if (dark) { + decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + } else { + decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + } + } + + public static Point getScreen(Context context) { + DisplayMetrics displayMetrics = new DisplayMetrics(); + WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + windowManager.getDefaultDisplay().getMetrics(displayMetrics); + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + Point point = new Point(); + point.x = width; + point.y = height; + return point; + } + public static boolean checkPermission(Context context,String[] permissions) { + boolean result = true; + for (String per : permissions) { + if (ActivityCompat.checkSelfPermission(context, per) != PackageManager.PERMISSION_GRANTED) { + result = false; + } + } + return result; + + } + public static Bitmap loadImageFromAssets(Context context, String fileName) { + Bitmap bitmap = null; + AssetManager assetManager = context.getAssets(); + try (InputStream is = assetManager.open(fileName)) { + bitmap = BitmapFactory.decodeStream(is); + } catch (IOException e) { + return bitmap; + } + + return bitmap; + + } + + public static List fileExistsInAssets(Context context, String dir) { + + List pathList = new ArrayList(); + try { + AssetManager assetManager = context.getAssets(); + String[] files = assetManager.list(dir); + + if (files != null) { + for (String name : files) { + pathList.add(dir + "/" + name); + } + return pathList; + } + } catch (IOException e) { + + return pathList; + } + return pathList; + } + + + public static PackageInfo getInfo(Context context) { + PackageInfo packageInfo; + try { + packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); + } catch (PackageManager.NameNotFoundException exception) { + + return null; + } + return packageInfo; + } + + + public static float getDistance(MotionEvent event) { + float x = event.getX(0) - event.getX(1); + float y = event.getY(0) - event.getY(1); + return (float) Math.sqrt(x * x + y * y); + } + +} diff --git a/app/src/main/java/com/artisanic/helper/artui/ArtCameraActivity.java b/app/src/main/java/com/artisanic/helper/artui/ArtCameraActivity.java new file mode 100644 index 0000000..1e79084 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/ArtCameraActivity.java @@ -0,0 +1,387 @@ +package com.artisanic.helper.artui; + +import android.Manifest; +import android.app.Activity; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.graphics.Point; +import android.graphics.PointF; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.ParcelFileDescriptor; +import android.provider.MediaStore; +import android.util.Log; +import android.view.MotionEvent; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.Toast; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.camera.core.Camera; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.ImageCapture; +import androidx.camera.core.Preview; +import androidx.camera.lifecycle.ProcessCameraProvider; +import androidx.camera.view.PreviewView; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import com.artisanic.helper.ArtApp; +import com.artisanic.helper.ad.AdsInsUtil; +import com.artisanic.helper.ad.LoadListener; +import com.artisanic.helper.ad.ShowListener; +import com.artisanic.helper.artmanager.ArtUtils; +import com.artisanic.helper.test.R; +import com.google.common.util.concurrent.ListenableFuture; +import com.tradplus.ads.base.bean.TPAdInfo; + +import org.jetbrains.annotations.NotNull; + +import java.io.File; +import java.io.IOException; +import java.util.Objects; + +public class ArtCameraActivity extends AppCompatActivity implements View.OnTouchListener, View.OnClickListener { + private CameraSelector cameraSelector; + private String[] permissions; + private int range; + private Camera camera; // 相机实例,需做空判断 + private ImageCapture imageCapture; + private PreviewView previewView; + private ImageView imageView; + private SeekBar seekBar; + + private Double d; + + private int MODE;//当前状态 + public static final int MODE_NONE = 0;//无操作 + public static final int MODE_DRAG = 1;//单指操作 + public static final int MODE_SCALE = 2;//双指操作 + + private Matrix startMatrix; + private Matrix endMatrix = new Matrix();//变化后的矩阵 + private PointF startPointF = new PointF();//初始坐标 + private float distance;//初始距离 + private float scaleMultiple;//缩放倍数 + + private ImageView flashIm, imZoom, imBack; + private ImageView imPhoto; + + private String curBitmapPath; + private boolean hasPermission = false; + private ActivityResultLauncher intentActivityResultLauncher; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setTransparentStatusBarAndFullScreenContent(); + setContentView(R.layout.activity_art_camera); + + AdsInsUtil.INSTANCE.showAd(this, AdsInsUtil.Placement.TOP_ON_AD_THREE, new ShowListener() { + @Override + public void onAdShown(@org.jetbrains.annotations.Nullable TPAdInfo ad) { + loadAd(); + } + + @Override + public void onAdClosed() { + loadAd(); + } + }); + + previewView = findViewById(R.id.preview); + imageView = findViewById(R.id.image); + imBack = findViewById(R.id.back); + seekBar = findViewById(R.id.seekbar); + flashIm = findViewById(R.id.im_flash); + imPhoto = findViewById(R.id.im_photo); + imZoom = findViewById(R.id.im_zoom); + curBitmapPath = getIntent().getStringExtra(ArtApp.Key_Camera); + intentActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { + if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) { + Uri imageUri = result.getData().getData(); + if(imageUri==null){ + Toast.makeText(ArtCameraActivity.this, getString(R.string.Upload_failed), Toast.LENGTH_SHORT).show(); + Log.d("-----tt","---imsgeUri----111---null"); + return; + } + double uriFileSize=getUriFileSize(ArtCameraActivity.this,imageUri); + if(uriFileSize>=4){ + Toast.makeText(ArtCameraActivity.this,getString(R.string.file) , Toast.LENGTH_SHORT).show(); + Log.d("-----tt","---imageUri-222--uriFileSize="+uriFileSize); + return; + } + imageView.setImageURI(imageUri); + } + }); + init(); + initClick(); + } + public static double getUriFileSize(Context context, Uri uri) { + double fileSize = 0.0; + ContentResolver contentResolver = context.getContentResolver(); + if ("file".equals(uri.getScheme())) { + File file = new File(Objects.requireNonNull(uri.getPath())); + if (file.exists()) { + fileSize = (double) file.length(); + } + } else { + ParcelFileDescriptor pfd = null; + try { + pfd = contentResolver.openFileDescriptor(uri, "r"); + if (pfd != null) { + fileSize = (double) pfd.getStatSize(); + } + } catch (Exception e) { + Log.e("UriUtils", "Error while retrieving file size: " + e.getMessage(), e); + } finally { + if (pfd != null) { + try { + pfd.close(); + } catch (IOException e) { + // ignore + } + } + } + } + return fileSize / 1048576.0; + } + + private void setTransparentStatusBarAndFullScreenContent() { + supportRequestWindowFeature(Window.FEATURE_NO_TITLE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + getWindow().setStatusBarColor(ContextCompat.getColor(this, android.R.color.transparent)); + getWindow().getDecorView().setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + ); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + } + + private void onInitIm(float imW, float imH) { + Point screen = ArtUtils.getScreen(this); + float newX = screen.x / 2f - imW / 2; + float newY = screen.y / 2f - imH / 2; + startMatrix = new Matrix(); + startMatrix.postTranslate(newX, newY); + imageView.setImageMatrix(startMatrix); + } + + @Override + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction() & event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + + startMatrix.set(imageView.getImageMatrix()); + endMatrix.set(imageView.getImageMatrix()); + + startPointF.set(event.getX(), event.getY()); + + Log.d("---------------tt", "------ACTION_DOWN-----x=" + event.getX() + "------y=" + event.getY()); + + MODE = MODE_DRAG; + + break; + case MotionEvent.ACTION_POINTER_DOWN: + + startMatrix.set(endMatrix); + + distance = ArtUtils.getDistance(event); + + MODE = MODE_SCALE; + + break; + case MotionEvent.ACTION_MOVE://滑动(单+双) + if (MODE == MODE_DRAG) {//单指滑动时 + + endMatrix.set(startMatrix); + endMatrix.postTranslate(event.getX() - startPointF.x, event.getY() - startPointF.y); + Log.d("---------------tt", "------ACTION_MOVE-----x=" + event.getX() + "------y=" + event.getY()); + } else if (MODE == MODE_SCALE) {//双指滑动时 + scaleMultiple = ArtUtils.getDistance(event) / distance; + endMatrix.set(startMatrix); + endMatrix.postScale(scaleMultiple, scaleMultiple, startPointF.x, startPointF.y); + } + break; + case MotionEvent.ACTION_UP://单指离开 + case MotionEvent.ACTION_POINTER_UP://双指离开 + MODE = MODE_NONE; + + break; + } + imageView.setImageMatrix(endMatrix); + return true; + } + + @Override + public void onClick(View v) { + if (v.equals(imBack)) { + finish(); + } else { + if (!hasPermission) { + showNoPermission(); + return; + } + if (v.equals(flashIm)) { + boolean selected = flashIm.isSelected(); + if (camera == null) { + return; + } + try { + flashIm.setSelected(!selected); + camera.getCameraControl().enableTorch(!selected); + } catch (Exception e) { + e.printStackTrace(); + flashIm.setSelected(selected); + } + } else if (v.equals(imPhoto)) { + Intent intent = new Intent(Intent.ACTION_PICK); + intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*"); + intentActivityResultLauncher.launch(intent); + } else if (v.equals(imZoom)) { + boolean isSeekBarVisible = seekBar.getVisibility() == View.VISIBLE; + if (isSeekBarVisible) { + seekBar.setVisibility(View.GONE); + imZoom.setSelected(false); + } else { + seekBar.setVisibility(View.VISIBLE); + imZoom.setSelected(true); + } + } + } + } + + private void initClick() { + imBack.setOnClickListener(this); + flashIm.setOnClickListener(this); + imPhoto.setOnClickListener(this); + imZoom.setOnClickListener(this); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + float v = (seekBar.getMax() - progress) / 10.0f; + imageView.setAlpha(v); + + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); + } + + private void init() { + cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA; + permissions = new String[]{Manifest.permission.CAMERA}; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES}; + } else { + permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + } + if (!checkPermission()) { + hasPermission = false; + imageView.setOnTouchListener(null); + ActivityCompat.requestPermissions(this, permissions, 0); + } else { + hasPermission = true; + imageView.setOnTouchListener(this); + startCamera(); + } + } + + private void startCamera() { + ListenableFuture future = ProcessCameraProvider.getInstance(this); + future.addListener(() -> { + try { + ProcessCameraProvider cameraProvider = future.get(); + + Preview preview = new Preview.Builder().build(); + cameraProvider.unbindAll(); + ImageCapture.Builder builder1 = new ImageCapture.Builder(); + imageCapture = builder1.build(); + camera = null; + camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageCapture); + range = ArtUtils.getRange(camera); + preview.setSurfaceProvider(previewView.getSurfaceProvider()); + + if (curBitmapPath != null) { + Bitmap bitmap = ArtUtils.loadImageFromAssets(this, curBitmapPath); + imageView.setImageBitmap(bitmap); + int width = bitmap.getWidth(); + int height = bitmap.getHeight(); + onInitIm(width, height); + } + + } catch (Exception e) { + e.printStackTrace(); + camera = null; + } + }, ContextCompat.getMainExecutor(this)); + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == 0) { + if (checkPermission()) { + hasPermission = true; + imageView.setOnTouchListener(this); + startCamera(); + } else { + hasPermission = false; + imageView.setOnTouchListener(null); + camera = null; + } + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + camera = null; + } + + private boolean checkPermission() { + boolean result = true; + for (String per : permissions) { + if (ActivityCompat.checkSelfPermission(this, per) != PackageManager.PERMISSION_GRANTED) { + result = false; + } + } + return result; + } + + private void showNoPermission() { + Toast.makeText(this, getString(R.string.permission_fail), Toast.LENGTH_SHORT).show(); + } + + private void loadAd(){ + AdsInsUtil.INSTANCE.loadAd(this, AdsInsUtil.Placement.TOP_ON_AD_THREE, new LoadListener() { + @Override + public void loadFailed(@NotNull String error) { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/BaseActivity.kt b/app/src/main/java/com/artisanic/helper/artui/BaseActivity.kt new file mode 100644 index 0000000..b6b064f --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/BaseActivity.kt @@ -0,0 +1,36 @@ +package com.artisanic.helper.artui + +import android.os.Bundle +import androidx.activity.OnBackPressedCallback +import androidx.appcompat.app.AppCompatActivity + +open class BaseActivity: AppCompatActivity() { + protected var backPressedCallback: OnBackPressedCallback? = null + /** 子类是否需要拦截返回 */ + protected open fun shouldInterceptBackPress(): Boolean = false + + /** 子类定义拦截后的操作(例如弹窗) */ + protected open fun onInterceptBackPressed() {} + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setupBackPressedCallback()//初始化back事件 + } + private fun setupBackPressedCallback() { + backPressedCallback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + if (shouldInterceptBackPress()) { + // 由子类处理拦截动作 + onInterceptBackPressed() + } else { + // 不拦截:关闭自己 + isEnabled = false + onBackPressedDispatcher.onBackPressed() + } + } + } + + onBackPressedDispatcher.addCallback(this, backPressedCallback!!) + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/ListActivity.java b/app/src/main/java/com/artisanic/helper/artui/ListActivity.java new file mode 100644 index 0000000..3e8379c --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/ListActivity.java @@ -0,0 +1,83 @@ +package com.artisanic.helper.artui; + +import android.os.Bundle; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.GridLayoutManager; + +import com.artisanic.helper.ArtApp; +import com.artisanic.helper.ad.AdsInsUtil; +import com.artisanic.helper.ad.LoadListener; +import com.artisanic.helper.ad.ShowListener; +import com.artisanic.helper.artadapter.ListAdapter; +import com.artisanic.helper.artmanager.ArtUtils; +import com.artisanic.helper.test.databinding.ActivityListBinding; +import com.tradplus.ads.base.bean.TPAdInfo; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class ListActivity extends BaseActivity { + + private ActivityListBinding preViewBinding; + private String dirStr; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + preViewBinding = ActivityListBinding.inflate(getLayoutInflater()); + setContentView(preViewBinding.getRoot()); + ArtUtils.setStatusBarTextColor(this,true); + dirStr = getIntent().getStringExtra(ArtApp.Key_ViewDir); + preViewBinding.categoryName.setText(dirStr.substring(dirStr.lastIndexOf("_")+1)); + onInitList(); + onInitClick(); + } + + private void onInitList() { + List list = ArtUtils.fileExistsInAssets(this, dirStr); + ListAdapter preViewAdapter = new ListAdapter(this, list); + preViewBinding.recyclerview.setAdapter(preViewAdapter); + preViewBinding.recyclerview.setLayoutManager(new GridLayoutManager(this, 2)); + } + + private void onInitClick() { + preViewBinding.back.setOnClickListener(v ->onInterceptBackPressed()); + } + + + @Override + protected boolean shouldInterceptBackPress() { + return true; + } + + @Override + protected void onInterceptBackPressed() { + AdsInsUtil.INSTANCE.showAd(this, AdsInsUtil.Placement.TOP_ON_AD_TOW, new ShowListener() { + @Override + public void onAdShown(@Nullable TPAdInfo ad) { + loadAd(); + } + + @Override + public void onAdClosed() { + loadAd(); + } + }); + if (getBackPressedCallback() != null) { + getBackPressedCallback().setEnabled(false); + } + getOnBackPressedDispatcher().onBackPressed(); + } + + private void loadAd(){ + AdsInsUtil.INSTANCE.loadAd(this, AdsInsUtil.Placement.TOP_ON_AD_TOW, new LoadListener() { + @Override + public void loadFailed(@NotNull String error) { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/MainActivity.java b/app/src/main/java/com/artisanic/helper/artui/MainActivity.java new file mode 100644 index 0000000..9b236ba --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/MainActivity.java @@ -0,0 +1,194 @@ +package com.artisanic.helper.artui; + +import android.Manifest; +import android.content.Intent; +import android.os.Build; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.activity.EdgeToEdge; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; +import androidx.fragment.app.Fragment; +import androidx.viewpager2.adapter.FragmentStateAdapter; +import androidx.viewpager2.widget.ViewPager2; + +import com.artisanic.helper.ad.AdsInsUtil; +import com.artisanic.helper.ad.LoadListener; +import com.artisanic.helper.artmanager.ArtUtils; +import com.artisanic.helper.test.R; +import com.artisanic.helper.test.databinding.MainLayoutBinding; +import com.google.android.material.tabs.TabLayout; +import com.tradplus.ads.base.bean.TPAdInfo; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class MainActivity extends AppCompatActivity { + + private MainLayoutBinding binding; + private List listFragment = new ArrayList<>(); + private String[] permissions; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + binding = MainLayoutBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + + binding.imSearch.setOnClickListener(v -> { + Intent intent = new Intent(MainActivity.this, SearchActivity.class); + startActivity(intent); + }); + + listFragment.add(MainFragment.newInstance()); + listFragment.add(SettingFragment.newInstance()); + onTabInit(); + binding.viewPager2.setAdapter(new FragmentStateAdapter(this) { + @NonNull + @Override + public Fragment createFragment(int position) { + return listFragment.get(position); + } + + @Override + public int getItemCount() { + return listFragment.size(); + } + }); + bingTabVp(); + updateSearchBtnVisibility(0); + onInitPermission(); + } + + private void updateSearchBtnVisibility(int position) { + if (position == 0) { + binding.imSearch.setVisibility(View.VISIBLE); + } else { + binding.imSearch.setVisibility(View.GONE); + } + } + + private void onInitPermission() { + permissions = new String[]{Manifest.permission.CAMERA}; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES}; + } else { + permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; + } + if (!ArtUtils.checkPermission(this, permissions)) { + ActivityCompat.requestPermissions(this, permissions, 0); + } + } + + private void bingTabVp() { + binding.tab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { + @Override + public void onTabSelected(TabLayout.Tab tab) { + ImageView icon = Objects.requireNonNull(tab.getCustomView()).findViewById(R.id.im_icon); + icon.setSelected(true); + binding.viewPager2.setCurrentItem(tab.getPosition()); + updateSearchBtnVisibility(tab.getPosition()); + } + + @Override + public void onTabUnselected(TabLayout.Tab tab) { + ImageView icon = Objects.requireNonNull(tab.getCustomView()).findViewById(R.id.im_icon); + icon.setSelected(false); + } + + @Override + public void onTabReselected(TabLayout.Tab tab) { + + } + }); + binding.viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + super.onPageSelected(position); + Objects.requireNonNull(binding.tab.getTabAt(position)).select(); + updateSearchBtnVisibility(position); + } + }); + } + + private void onTabInit() { + for (int i = 0; i < listFragment.size(); i++) { + TabLayout.Tab tab = binding.tab.newTab(); + View inflate = LayoutInflater.from(this).inflate(R.layout.item_tab_custom_view, null, false); + ImageView icon = inflate.findViewById(R.id.im_icon); + TextView textView = inflate.findViewById(R.id.textView); + if (i == 0) { + textView.setText(getString(R.string.tab_draw)); + icon.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.tab_home)); + } else { + textView.setText(getString(R.string.tab_set)); + icon.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.tab_setting)); + } + tab.setCustomView(inflate); + binding.tab.addTab(tab); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == 0) { + if (ArtUtils.checkPermission(this, permissions)) { + Toast.makeText(this, getString(R.string.Permission), Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(this, getString(R.string.permission_fail), Toast.LENGTH_SHORT).show(); + } + } + } + + @Override + protected void onResume() { + super.onResume(); + loadAd(); + } + + private void loadAd() { + AdsInsUtil.INSTANCE.loadAd(this, AdsInsUtil.Placement.TOP_ON_AD_THREE, new LoadListener() { + @Override + public void loaded(@NotNull TPAdInfo ad) { + + } + + @Override + public void loadFailed(@NotNull String error) { + + } + }); + AdsInsUtil.INSTANCE.loadAd(this, AdsInsUtil.Placement.TOP_ON_AD_TOW, new LoadListener() { + @Override + public void loaded(@NotNull TPAdInfo ad) { + + } + + @Override + public void loadFailed(@NotNull String error) { + + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/MainFragment.java b/app/src/main/java/com/artisanic/helper/artui/MainFragment.java new file mode 100644 index 0000000..725ccf0 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/MainFragment.java @@ -0,0 +1,40 @@ +package com.artisanic.helper.artui; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; + +import com.artisanic.helper.artadapter.MainAdapter; +import com.artisanic.helper.test.databinding.FragmentMainBinding; + +public class MainFragment extends Fragment { + private FragmentMainBinding fragmentHomeBinding; + + public MainFragment() {} + + public static MainFragment newInstance() { + MainFragment fragment = new MainFragment(); + Bundle args = new Bundle(); + fragment.setArguments(args); + return fragment; + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + fragmentHomeBinding = FragmentMainBinding.inflate(getLayoutInflater()); + onInitRecycler(); + return fragmentHomeBinding.getRoot(); + } + + private void onInitRecycler() { + MainAdapter homeAdapter = new MainAdapter(requireContext()); + fragmentHomeBinding.recyclerview.setAdapter(homeAdapter); + GridLayoutManager gridLayoutManager = new GridLayoutManager(requireContext(), 2); + fragmentHomeBinding.recyclerview.setLayoutManager(gridLayoutManager); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/SearchActivity.java b/app/src/main/java/com/artisanic/helper/artui/SearchActivity.java new file mode 100644 index 0000000..1e0e1ac --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/SearchActivity.java @@ -0,0 +1,119 @@ +package com.artisanic.helper.artui; + +import android.os.Bundle; +import android.view.View; +import android.view.inputmethod.EditorInfo; +import android.widget.Toast; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import com.artisanic.helper.artadapter.SearchAdapter; +import com.artisanic.helper.test.R; +import com.artisanic.helper.test.databinding.SearchLayoutBinding; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +public class SearchActivity extends AppCompatActivity { + + private SearchLayoutBinding binding; + private SearchAdapter mAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = SearchLayoutBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + EdgeToEdge.enable(this); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.search), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + initRecyclerView(); + bindEvents(); + } + + private void initRecyclerView() { + GridLayoutManager layoutManager = new GridLayoutManager(this, 2); + binding.rvSearchResult.setLayoutManager(layoutManager); + mAdapter = new SearchAdapter(this, new ArrayList<>()); + binding.rvSearchResult.setAdapter(mAdapter); + } + private void bindEvents() { + binding.imageviewBack.setOnClickListener(v -> finish()); + binding.btnSearch.setOnClickListener(v -> performSearch()); + binding.etSearch.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_SEARCH) { + performSearch(); + return true; + } + return false; + }); + } + private void performSearch() { + // 1. 获取输入的分类名称 + String category = binding.etSearch.getText().toString().trim(); + if (category.isEmpty()) { + Toast.makeText(this, getString(R.string.please_input_keyword), Toast.LENGTH_SHORT).show(); + return; + } + + binding.searchPb.setVisibility(View.VISIBLE); + binding.emptyLayout.setVisibility(View.GONE); + binding.rvSearchResult.setVisibility(View.GONE); + new Thread(() -> { + List imagePathList = getAssetsImageList(category); + runOnUiThread(() -> { + binding.searchPb.setVisibility(View.GONE); + if (imagePathList.isEmpty()) { + binding.emptyLayout.setVisibility(View.VISIBLE); + Toast.makeText(this, getString(R.string.no_search_result), Toast.LENGTH_SHORT).show(); + } else { + binding.rvSearchResult.setVisibility(View.VISIBLE); + mAdapter.updateData(imagePathList); + } + }); + }).start(); + } + private List getAssetsImageList(String inputCategory) { + List imageList = new ArrayList<>(); + try { + String[] allAssetDirs = getAssets().list(""); + if (allAssetDirs == null || allAssetDirs.length == 0) { + return imageList; + } + String targetDir = null; + String lowerInput = inputCategory.toLowerCase(); + for (String dir : allAssetDirs) { + String dirSuffix = dir.replaceFirst("^png_", "").toLowerCase(); + if (dirSuffix.equals(lowerInput)) { + targetDir = dir; + break; + } + } + + if (targetDir == null) { + return imageList; + } + + String[] files = getAssets().list(targetDir); + if (files != null && files.length > 0) { + for (String fileName : files) { + String lowerFileName = fileName.toLowerCase(); + if (lowerFileName.endsWith(".png") || lowerFileName.endsWith(".jpg") + || lowerFileName.endsWith(".jpeg") || lowerFileName.endsWith(".webp")) { + imageList.add(targetDir + "/" + fileName); + } + } + } + } catch (IOException e) { + e.printStackTrace(); + runOnUiThread(() -> Toast.makeText(this, getString(R.string.Assets), Toast.LENGTH_SHORT).show()); + } + return imageList; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/SettingFragment.java b/app/src/main/java/com/artisanic/helper/artui/SettingFragment.java new file mode 100644 index 0000000..3c38949 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/SettingFragment.java @@ -0,0 +1,61 @@ +package com.artisanic.helper.artui; + +import android.content.pm.PackageInfo; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.fragment.app.Fragment; + +import com.artisanic.helper.artmanager.ArtUtils; +import com.artisanic.helper.test.R; +import com.artisanic.helper.test.databinding.FragmentSettingBinding; + +public class SettingFragment extends Fragment { + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + + private String mParam1; + private String mParam2; + private FragmentSettingBinding fragmentSettingBinding; + + public SettingFragment() { + + } + public static SettingFragment newInstance() { + SettingFragment fragment = new SettingFragment(); + Bundle args = new Bundle(); + + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + fragmentSettingBinding = FragmentSettingBinding.inflate(getLayoutInflater()); + onInit(); + return fragmentSettingBinding.getRoot(); + } + + private void onInit(){ + String version = "1.0"; + PackageInfo info = ArtUtils.getInfo(requireContext()); + if(info!=null){ + version = info.versionName; + } + String format = String.format(getString(R.string.version_code), version); + fragmentSettingBinding.textAppVersion.setText(format); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/artisanic/helper/artui/SplashActivity.kt b/app/src/main/java/com/artisanic/helper/artui/SplashActivity.kt new file mode 100644 index 0000000..dca9431 --- /dev/null +++ b/app/src/main/java/com/artisanic/helper/artui/SplashActivity.kt @@ -0,0 +1,171 @@ +package com.artisanic.helper.artui + +import android.annotation.SuppressLint +import android.content.Intent +import android.os.Bundle +import android.os.CountDownTimer +import android.widget.Toast +import androidx.core.view.ViewCompat +import androidx.core.view.WindowCompat +import androidx.core.view.WindowInsetsCompat +import com.artisanic.helper.ad.AdShowFailed +import com.artisanic.helper.ad.AdsInsUtil +import com.artisanic.helper.ad.LoadListener +import com.artisanic.helper.ad.ShowListener +import com.artisanic.helper.test.R +import com.artisanic.helper.test.databinding.ActivityFirstBinding +import com.tradplus.ads.base.bean.TPAdInfo + +class SplashActivity : BaseActivity() { + + private var countDownTimer: CountDownTimer? = null + private lateinit var vb: ActivityFirstBinding + + private val tickInterval = 100L + private val totalTime = 15_000L + + /** + * 总 tick 次数 15次 + */ + private val totalTicks = totalTime / tickInterval + + /** + * 每 tick 增加的进度 0.6666~ + */ + private val normalStep = 100f / totalTicks + private val fastStep = normalStep * 4 // 加速倍率 + private var currentStep = normalStep + + // 进度控制 + private var progress = 0f + + // 广告状态 + private var adAvailable = false + private var hasNavigated = false + + @SuppressLint("MissingInflatedId") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + vb = ActivityFirstBinding.inflate(layoutInflater) + setContentView(vb.root) + + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> + val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) + insets + } + val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) + windowInsetsController.isAppearanceLightStatusBars = true//状态栏文字颜色 + + // 1. 进来就 load 广告 + loadSplashAd() + + // 2. 启动进度条(只启动一次) + startProgressTimer() + } + + private fun startProgressTimer() { + countDownTimer?.cancel() + + countDownTimer = object : CountDownTimer(totalTime, tickInterval) { + + override fun onTick(millisUntilFinished: Long) { + progress += currentStep + if (progress >= 100f) { + progress = 100f + vb.progressBar.progress = 100 + cancel() + onProgressFinished() + } else { + vb.progressBar.progress = progress.toInt() + } + } + + override fun onFinish() { + // 不使用 + } + }.start() + } + + + // 进度走完后的统一出口 + private fun onProgressFinished() { + if (hasNavigated) return + + if (adAvailable) { + showSplashAd() + } else { + navigateToNext() + } + } + + private fun loadSplashAd() { + AdsInsUtil.loadAd( + act = this, + adID = AdsInsUtil.Placement.TOP_ON_AD_ONE, + loadListener = object : LoadListener { + + override fun loaded(ad: TPAdInfo) { + adAvailable = true + accelerateProgress() + } + + override fun loadFailed(error: String) { + adAvailable = false + accelerateProgress() + } + } + ) + } + + // 广告 load 完 → 加速 + private fun accelerateProgress() { + currentStep = fastStep + } + + private fun showSplashAd() { + AdsInsUtil.showAd( + act = this, + adID = AdsInsUtil.Placement.TOP_ON_AD_ONE, + listener = object : ShowListener { + + override fun onAdShown(ad: TPAdInfo?) {} + + override fun onAdShowFailed(error: AdShowFailed?) { + navigateToNext() + } + + override fun onAdClosed() { + navigateToNext() + } + } + ) + } + + private fun navigateToNext() { + if (hasNavigated) return + hasNavigated = true + navigateToMainActivity() + } + + override fun shouldInterceptBackPress(): Boolean = true + override fun onInterceptBackPressed() {} + + @SuppressLint("QueryPermissionsNeeded") + private fun navigateToMainActivity() { + try { + startActivity(Intent(this, MainActivity::class.java)) + finish() + } catch (e: Exception) { + Toast.makeText(this, "跳转失败", Toast.LENGTH_SHORT).show() + e.printStackTrace() + finish() + } + } + + override fun onDestroy() { + super.onDestroy() + countDownTimer?.cancel() + countDownTimer = null + } +} diff --git a/app/src/main/logo-playstore.png b/app/src/main/logo-playstore.png new file mode 100644 index 0000000..141462e Binary files /dev/null and b/app/src/main/logo-playstore.png differ diff --git a/app/src/main/logo_art-playstore.png b/app/src/main/logo_art-playstore.png new file mode 100644 index 0000000..2195d72 Binary files /dev/null and b/app/src/main/logo_art-playstore.png differ diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/image_black_back.xml b/app/src/main/res/drawable/image_black_back.xml new file mode 100644 index 0000000..e3e6cc4 --- /dev/null +++ b/app/src/main/res/drawable/image_black_back.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/image_search_black.xml b/app/src/main/res/drawable/image_search_black.xml new file mode 100644 index 0000000..55778e8 --- /dev/null +++ b/app/src/main/res/drawable/image_search_black.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/image_search_white.xml b/app/src/main/res/drawable/image_search_white.xml new file mode 100644 index 0000000..55778e8 --- /dev/null +++ b/app/src/main/res/drawable/image_search_white.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/img_empty_result.xml b/app/src/main/res/drawable/img_empty_result.xml new file mode 100644 index 0000000..ce1b51e --- /dev/null +++ b/app/src/main/res/drawable/img_empty_result.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/app/src/main/res/drawable/logo_art.webp b/app/src/main/res/drawable/logo_art.webp new file mode 100644 index 0000000..fbed66e Binary files /dev/null and b/app/src/main/res/drawable/logo_art.webp differ diff --git a/app/src/main/res/drawable/oval.xml b/app/src/main/res/drawable/oval.xml new file mode 100644 index 0000000..24a8750 --- /dev/null +++ b/app/src/main/res/drawable/oval.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/rect_stoke_16.xml b/app/src/main/res/drawable/rect_stoke_16.xml new file mode 100644 index 0000000..73bf2ad --- /dev/null +++ b/app/src/main/res/drawable/rect_stoke_16.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/seek_art.xml b/app/src/main/res/drawable/seek_art.xml new file mode 100644 index 0000000..4574c79 --- /dev/null +++ b/app/src/main/res/drawable/seek_art.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/seekbar_progress.xml b/app/src/main/res/drawable/seekbar_progress.xml new file mode 100644 index 0000000..249436e --- /dev/null +++ b/app/src/main/res/drawable/seekbar_progress.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/seekbar_thumb.xml b/app/src/main/res/drawable/seekbar_thumb.xml new file mode 100644 index 0000000..a1a4d0d --- /dev/null +++ b/app/src/main/res/drawable/seekbar_thumb.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_flash.xml b/app/src/main/res/drawable/selector_flash.xml new file mode 100644 index 0000000..7463f0a --- /dev/null +++ b/app/src/main/res/drawable/selector_flash.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/set_cicrl_bg.xml b/app/src/main/res/drawable/set_cicrl_bg.xml new file mode 100644 index 0000000..f004720 --- /dev/null +++ b/app/src/main/res/drawable/set_cicrl_bg.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_home.xml b/app/src/main/res/drawable/tab_home.xml new file mode 100644 index 0000000..0c693a5 --- /dev/null +++ b/app/src/main/res/drawable/tab_home.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/tab_setting.xml b/app/src/main/res/drawable/tab_setting.xml new file mode 100644 index 0000000..9211a81 --- /dev/null +++ b/app/src/main/res/drawable/tab_setting.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/tool_bar_shape.xml b/app/src/main/res/drawable/tool_bar_shape.xml new file mode 100644 index 0000000..55e7516 --- /dev/null +++ b/app/src/main/res/drawable/tool_bar_shape.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_art_camera.xml b/app/src/main/res/layout/activity_art_camera.xml new file mode 100644 index 0000000..9000341 --- /dev/null +++ b/app/src/main/res/layout/activity_art_camera.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_first.xml b/app/src/main/res/layout/activity_first.xml new file mode 100644 index 0000000..90a0fb5 --- /dev/null +++ b/app/src/main/res/layout/activity_first.xml @@ -0,0 +1,46 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_list.xml b/app/src/main/res/layout/activity_list.xml new file mode 100644 index 0000000..3d066ea --- /dev/null +++ b/app/src/main/res/layout/activity_list.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_list.xml b/app/src/main/res/layout/adapter_list.xml new file mode 100644 index 0000000..1a9ca41 --- /dev/null +++ b/app/src/main/res/layout/adapter_list.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_main.xml b/app/src/main/res/layout/adapter_main.xml new file mode 100644 index 0000000..5f91753 --- /dev/null +++ b/app/src/main/res/layout/adapter_main.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_main_child.xml b/app/src/main/res/layout/adapter_main_child.xml new file mode 100644 index 0000000..ca16432 --- /dev/null +++ b/app/src/main/res/layout/adapter_main_child.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml new file mode 100644 index 0000000..439e971 --- /dev/null +++ b/app/src/main/res/layout/fragment_main.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ 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 new file mode 100644 index 0000000..b606663 --- /dev/null +++ b/app/src/main/res/layout/fragment_setting.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_search_image.xml b/app/src/main/res/layout/item_search_image.xml new file mode 100644 index 0000000..bef668a --- /dev/null +++ b/app/src/main/res/layout/item_search_image.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_tab_custom_view.xml b/app/src/main/res/layout/item_tab_custom_view.xml new file mode 100644 index 0000000..610543a --- /dev/null +++ b/app/src/main/res/layout/item_tab_custom_view.xml @@ -0,0 +1,23 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_layout.xml b/app/src/main/res/layout/main_layout.xml new file mode 100644 index 0000000..4d50e86 --- /dev/null +++ b/app/src/main/res/layout/main_layout.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/search_layout.xml b/app/src/main/res/layout/search_layout.xml new file mode 100644 index 0000000..5f46679 --- /dev/null +++ b/app/src/main/res/layout/search_layout.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/logo_art.xml b/app/src/main/res/mipmap-anydpi-v26/logo_art.xml new file mode 100644 index 0000000..4a58dd4 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/logo_art.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/logo_art_round.xml b/app/src/main/res/mipmap-anydpi-v26/logo_art_round.xml new file mode 100644 index 0000000..4a58dd4 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/logo_art_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/draw_off.png b/app/src/main/res/mipmap-hdpi/draw_off.png new file mode 100644 index 0000000..d8bd8c9 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/draw_off.png differ diff --git a/app/src/main/res/mipmap-hdpi/draw_on.png b/app/src/main/res/mipmap-hdpi/draw_on.png new file mode 100644 index 0000000..b74b02b Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/draw_on.png differ diff --git a/app/src/main/res/mipmap-hdpi/flash_off.png b/app/src/main/res/mipmap-hdpi/flash_off.png new file mode 100644 index 0000000..a36062c Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/flash_off.png differ diff --git a/app/src/main/res/mipmap-hdpi/flash_on.png b/app/src/main/res/mipmap-hdpi/flash_on.png new file mode 100644 index 0000000..e7fcda3 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/flash_on.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-hdpi/icon_photo.png b/app/src/main/res/mipmap-hdpi/icon_photo.png new file mode 100644 index 0000000..bb1fce1 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icon_photo.png differ diff --git a/app/src/main/res/mipmap-hdpi/logo_art.webp b/app/src/main/res/mipmap-hdpi/logo_art.webp new file mode 100644 index 0000000..226a776 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/logo_art.webp differ diff --git a/app/src/main/res/mipmap-hdpi/logo_art_foreground.webp b/app/src/main/res/mipmap-hdpi/logo_art_foreground.webp new file mode 100644 index 0000000..4061dac Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/logo_art_foreground.webp differ diff --git a/app/src/main/res/mipmap-hdpi/logo_art_round.webp b/app/src/main/res/mipmap-hdpi/logo_art_round.webp new file mode 100644 index 0000000..2d76fc8 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/logo_art_round.webp differ diff --git a/app/src/main/res/mipmap-hdpi/seek_off.png b/app/src/main/res/mipmap-hdpi/seek_off.png new file mode 100644 index 0000000..dc8c00f Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/seek_off.png differ diff --git a/app/src/main/res/mipmap-hdpi/seek_on.png b/app/src/main/res/mipmap-hdpi/seek_on.png new file mode 100644 index 0000000..d18af5e Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/seek_on.png differ diff --git a/app/src/main/res/mipmap-hdpi/set_off.png b/app/src/main/res/mipmap-hdpi/set_off.png new file mode 100644 index 0000000..777ffdb Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/set_off.png differ diff --git a/app/src/main/res/mipmap-hdpi/set_on.png b/app/src/main/res/mipmap-hdpi/set_on.png new file mode 100644 index 0000000..b413d4a Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/set_on.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/logo_art.webp b/app/src/main/res/mipmap-mdpi/logo_art.webp new file mode 100644 index 0000000..8655dff Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/logo_art.webp differ diff --git a/app/src/main/res/mipmap-mdpi/logo_art_foreground.webp b/app/src/main/res/mipmap-mdpi/logo_art_foreground.webp new file mode 100644 index 0000000..9ff7a3c Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/logo_art_foreground.webp differ diff --git a/app/src/main/res/mipmap-mdpi/logo_art_round.webp b/app/src/main/res/mipmap-mdpi/logo_art_round.webp new file mode 100644 index 0000000..d218f73 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/logo_art_round.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..e69de29 diff --git a/app/src/main/res/mipmap-xhdpi/logo_art.webp b/app/src/main/res/mipmap-xhdpi/logo_art.webp new file mode 100644 index 0000000..67e7d40 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/logo_art.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/logo_art_foreground.webp b/app/src/main/res/mipmap-xhdpi/logo_art_foreground.webp new file mode 100644 index 0000000..582db94 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/logo_art_foreground.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/logo_art_round.webp b/app/src/main/res/mipmap-xhdpi/logo_art_round.webp new file mode 100644 index 0000000..ce01bbe Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/logo_art_round.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..e69de29 diff --git a/app/src/main/res/mipmap-xxhdpi/logo_art.webp b/app/src/main/res/mipmap-xxhdpi/logo_art.webp new file mode 100644 index 0000000..8e8c6ee Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/logo_art.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/logo_art_foreground.webp b/app/src/main/res/mipmap-xxhdpi/logo_art_foreground.webp new file mode 100644 index 0000000..46f4896 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/logo_art_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/logo_art_round.webp b/app/src/main/res/mipmap-xxhdpi/logo_art_round.webp new file mode 100644 index 0000000..753c3ce Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/logo_art_round.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/arrow_lef.png b/app/src/main/res/mipmap-xxxhdpi/arrow_lef.png new file mode 100644 index 0000000..99593a4 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/arrow_lef.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/arrow_left_white.png b/app/src/main/res/mipmap-xxxhdpi/arrow_left_white.png new file mode 100644 index 0000000..01d12db Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/arrow_left_white.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..e69de29 diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_about.png b/app/src/main/res/mipmap-xxxhdpi/icon_about.png new file mode 100644 index 0000000..80c1d52 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icon_about.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/logo_art.webp b/app/src/main/res/mipmap-xxxhdpi/logo_art.webp new file mode 100644 index 0000000..fbed66e Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/logo_art.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/logo_art_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/logo_art_foreground.webp new file mode 100644 index 0000000..0f02dcb Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/logo_art_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/logo_art_round.webp b/app/src/main/res/mipmap-xxxhdpi/logo_art_round.webp new file mode 100644 index 0000000..b2257c6 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/logo_art_round.webp differ diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..71efee4 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml new file mode 100644 index 0000000..6d070c2 --- /dev/null +++ b/app/src/main/res/values/attrs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..ead2942 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,18 @@ + + + #FF000000 + #FFFFFFFF + #EDEEF7 + #87CEEB + #3A3938 + #343332 + #E2E2FC + #7F49DD + #E0E0E0 + #80777777 + #999999 + #FFFFFF + #999999 + #FEA7F5 + #33FFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/logo_art_background.xml b/app/src/main/res/values/logo_art_background.xml new file mode 100644 index 0000000..e934d03 --- /dev/null +++ b/app/src/main/res/values/logo_art_background.xml @@ -0,0 +1,4 @@ + + + #FCFCFC + \ No newline at end of file diff --git a/app/src/main/res/values/logo_background.xml b/app/src/main/res/values/logo_background.xml new file mode 100644 index 0000000..6ab9a11 --- /dev/null +++ b/app/src/main/res/values/logo_background.xml @@ -0,0 +1,4 @@ + + + #FCFCFC + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..14cf950 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,16 @@ + + ArtisanicHelper + Please enter a keyword + No search results + Trace&Draw + More Settings + Permission request successful + Sketch Categories + Settings + Version + V%s + Please grant the relevant permissions and try again. + Upload failed + The file should not exceed 4MB. + Failed to load Assets + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..8b76734 --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,10 @@ + + + + +