commit 71d4b68c7bb506dde29102d47887b1130890264e Author: litingting Date: Wed Sep 10 14:18:08 2025 +0800 init 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/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/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..50217c7 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,85 @@ +import java.text.SimpleDateFormat +import java.util.Date + +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + id("kotlin-kapt") + id("kotlin-parcelize") +} + +android { + val timeStamp: String = SimpleDateFormat("MM_dd_HH_mm").format(Date()) + namespace = "com.apps.quicksketchtrace" + compileSdk = 35 + + defaultConfig { + applicationId = "com.apps.quicksketchtrace" + minSdk = 24 + targetSdk = 35 + versionCode = 1 + versionName = "1.0" + setProperty( + "archivesBaseName", + "QuickSketch Trace_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_11 + targetCompatibility = JavaVersion.VERSION_11 + } + buildFeatures{ + viewBinding=true + } + kotlinOptions { + jvmTarget = "11" + } +} + +dependencies { + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + implementation(libs.androidx.activity) + implementation(libs.androidx.constraintlayout) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + // Room components + implementation(libs.androidx.room.runtime) + kapt(libs.androidx.room.compiler) + //noinspection GradleDependency + implementation(libs.androidx.room.ktx) + + // Lifecycle components + implementation(libs.androidx.lifecycle.viewmodel.ktx) + //noinspection GradleDependency + implementation(libs.androidx.lifecycle.livedata.ktx) + + // Activity KTX (for ViewModel) + //noinspection GradleDependency + implementation(libs.androidx.activity.ktx) + + // Glide + implementation(libs.glide) + implementation(libs.androidsvg) + + // CameraX 相关依赖 (最新稳定版) + implementation(libs.androidx.camera.core) + implementation(libs.androidx.camera.camera2) + implementation(libs.androidx.camera.lifecycle) + implementation(libs.androidx.camera.view) + implementation(libs.androidx.camera.extensions) +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# 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 \ No newline at end of file diff --git a/app/src/androidTest/java/com/apps/quicksketchtrace/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/apps/quicksketchtrace/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..5c38b4b --- /dev/null +++ b/app/src/androidTest/java/com/apps/quicksketchtrace/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.apps.quicksketchtrace + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.apps.quicksketchtrace", appContext.packageName) + } +} \ 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..d091f07 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/local_Aesthetic/1.svg b/app/src/main/assets/local_Aesthetic/1.svg new file mode 100644 index 0000000..d84a3de --- /dev/null +++ b/app/src/main/assets/local_Aesthetic/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Aesthetic/2.svg b/app/src/main/assets/local_Aesthetic/2.svg new file mode 100644 index 0000000..4de87b1 --- /dev/null +++ b/app/src/main/assets/local_Aesthetic/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Aesthetic/3.svg b/app/src/main/assets/local_Aesthetic/3.svg new file mode 100644 index 0000000..f6ff239 --- /dev/null +++ b/app/src/main/assets/local_Aesthetic/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Aesthetic/4.svg b/app/src/main/assets/local_Aesthetic/4.svg new file mode 100644 index 0000000..175e805 --- /dev/null +++ b/app/src/main/assets/local_Aesthetic/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Aesthetic/5.svg b/app/src/main/assets/local_Aesthetic/5.svg new file mode 100644 index 0000000..28328bf --- /dev/null +++ b/app/src/main/assets/local_Aesthetic/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Aesthetic/6.svg b/app/src/main/assets/local_Aesthetic/6.svg new file mode 100644 index 0000000..e13eaf5 --- /dev/null +++ b/app/src/main/assets/local_Aesthetic/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/1.jpg b/app/src/main/assets/local_Animals/1.jpg new file mode 100644 index 0000000..9488c65 Binary files /dev/null and b/app/src/main/assets/local_Animals/1.jpg differ diff --git a/app/src/main/assets/local_Animals/1.svg b/app/src/main/assets/local_Animals/1.svg new file mode 100644 index 0000000..1f4d83e --- /dev/null +++ b/app/src/main/assets/local_Animals/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/10.jpg b/app/src/main/assets/local_Animals/10.jpg new file mode 100644 index 0000000..78382a4 Binary files /dev/null and b/app/src/main/assets/local_Animals/10.jpg differ diff --git a/app/src/main/assets/local_Animals/11.jpg b/app/src/main/assets/local_Animals/11.jpg new file mode 100644 index 0000000..a4f7512 Binary files /dev/null and b/app/src/main/assets/local_Animals/11.jpg differ diff --git a/app/src/main/assets/local_Animals/12.jpg b/app/src/main/assets/local_Animals/12.jpg new file mode 100644 index 0000000..bab3cff Binary files /dev/null and b/app/src/main/assets/local_Animals/12.jpg differ diff --git a/app/src/main/assets/local_Animals/13.jpg b/app/src/main/assets/local_Animals/13.jpg new file mode 100644 index 0000000..5c3ef19 Binary files /dev/null and b/app/src/main/assets/local_Animals/13.jpg differ diff --git a/app/src/main/assets/local_Animals/14.jpg b/app/src/main/assets/local_Animals/14.jpg new file mode 100644 index 0000000..8b446f2 Binary files /dev/null and b/app/src/main/assets/local_Animals/14.jpg differ diff --git a/app/src/main/assets/local_Animals/15.jpg b/app/src/main/assets/local_Animals/15.jpg new file mode 100644 index 0000000..2f9dc4e Binary files /dev/null and b/app/src/main/assets/local_Animals/15.jpg differ diff --git a/app/src/main/assets/local_Animals/16.jpg b/app/src/main/assets/local_Animals/16.jpg new file mode 100644 index 0000000..aad9788 Binary files /dev/null and b/app/src/main/assets/local_Animals/16.jpg differ diff --git a/app/src/main/assets/local_Animals/17.jpg b/app/src/main/assets/local_Animals/17.jpg new file mode 100644 index 0000000..17c6f07 Binary files /dev/null and b/app/src/main/assets/local_Animals/17.jpg differ diff --git a/app/src/main/assets/local_Animals/18.jpg b/app/src/main/assets/local_Animals/18.jpg new file mode 100644 index 0000000..2ce93a7 Binary files /dev/null and b/app/src/main/assets/local_Animals/18.jpg differ diff --git a/app/src/main/assets/local_Animals/19.jpg b/app/src/main/assets/local_Animals/19.jpg new file mode 100644 index 0000000..2b24f31 Binary files /dev/null and b/app/src/main/assets/local_Animals/19.jpg differ diff --git a/app/src/main/assets/local_Animals/2.jpg b/app/src/main/assets/local_Animals/2.jpg new file mode 100644 index 0000000..0a0c2e7 Binary files /dev/null and b/app/src/main/assets/local_Animals/2.jpg differ diff --git a/app/src/main/assets/local_Animals/2.svg b/app/src/main/assets/local_Animals/2.svg new file mode 100644 index 0000000..458df24 --- /dev/null +++ b/app/src/main/assets/local_Animals/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/20.jpg b/app/src/main/assets/local_Animals/20.jpg new file mode 100644 index 0000000..347cddc Binary files /dev/null and b/app/src/main/assets/local_Animals/20.jpg differ diff --git a/app/src/main/assets/local_Animals/21.jpg b/app/src/main/assets/local_Animals/21.jpg new file mode 100644 index 0000000..5a04764 Binary files /dev/null and b/app/src/main/assets/local_Animals/21.jpg differ diff --git a/app/src/main/assets/local_Animals/22.jpg b/app/src/main/assets/local_Animals/22.jpg new file mode 100644 index 0000000..c18d8ad Binary files /dev/null and b/app/src/main/assets/local_Animals/22.jpg differ diff --git a/app/src/main/assets/local_Animals/23.jpg b/app/src/main/assets/local_Animals/23.jpg new file mode 100644 index 0000000..4270d19 Binary files /dev/null and b/app/src/main/assets/local_Animals/23.jpg differ diff --git a/app/src/main/assets/local_Animals/24.jpg b/app/src/main/assets/local_Animals/24.jpg new file mode 100644 index 0000000..355a944 Binary files /dev/null and b/app/src/main/assets/local_Animals/24.jpg differ diff --git a/app/src/main/assets/local_Animals/25.jpg b/app/src/main/assets/local_Animals/25.jpg new file mode 100644 index 0000000..c670943 Binary files /dev/null and b/app/src/main/assets/local_Animals/25.jpg differ diff --git a/app/src/main/assets/local_Animals/26.jpg b/app/src/main/assets/local_Animals/26.jpg new file mode 100644 index 0000000..4b95b01 Binary files /dev/null and b/app/src/main/assets/local_Animals/26.jpg differ diff --git a/app/src/main/assets/local_Animals/27.jpg b/app/src/main/assets/local_Animals/27.jpg new file mode 100644 index 0000000..87a8c12 Binary files /dev/null and b/app/src/main/assets/local_Animals/27.jpg differ diff --git a/app/src/main/assets/local_Animals/28.jpg b/app/src/main/assets/local_Animals/28.jpg new file mode 100644 index 0000000..770686a Binary files /dev/null and b/app/src/main/assets/local_Animals/28.jpg differ diff --git a/app/src/main/assets/local_Animals/29.jpg b/app/src/main/assets/local_Animals/29.jpg new file mode 100644 index 0000000..7127a11 Binary files /dev/null and b/app/src/main/assets/local_Animals/29.jpg differ diff --git a/app/src/main/assets/local_Animals/3.jpg b/app/src/main/assets/local_Animals/3.jpg new file mode 100644 index 0000000..4bf4897 Binary files /dev/null and b/app/src/main/assets/local_Animals/3.jpg differ diff --git a/app/src/main/assets/local_Animals/3.svg b/app/src/main/assets/local_Animals/3.svg new file mode 100644 index 0000000..eb900fb --- /dev/null +++ b/app/src/main/assets/local_Animals/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/30.jpg b/app/src/main/assets/local_Animals/30.jpg new file mode 100644 index 0000000..f1d2047 Binary files /dev/null and b/app/src/main/assets/local_Animals/30.jpg differ diff --git a/app/src/main/assets/local_Animals/31.jpg b/app/src/main/assets/local_Animals/31.jpg new file mode 100644 index 0000000..0d08aa8 Binary files /dev/null and b/app/src/main/assets/local_Animals/31.jpg differ diff --git a/app/src/main/assets/local_Animals/4.jpg b/app/src/main/assets/local_Animals/4.jpg new file mode 100644 index 0000000..838c582 Binary files /dev/null and b/app/src/main/assets/local_Animals/4.jpg differ diff --git a/app/src/main/assets/local_Animals/4.svg b/app/src/main/assets/local_Animals/4.svg new file mode 100644 index 0000000..393b125 --- /dev/null +++ b/app/src/main/assets/local_Animals/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/5.jpg b/app/src/main/assets/local_Animals/5.jpg new file mode 100644 index 0000000..36bd2bf Binary files /dev/null and b/app/src/main/assets/local_Animals/5.jpg differ diff --git a/app/src/main/assets/local_Animals/5.svg b/app/src/main/assets/local_Animals/5.svg new file mode 100644 index 0000000..a96450e --- /dev/null +++ b/app/src/main/assets/local_Animals/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/6.jpg b/app/src/main/assets/local_Animals/6.jpg new file mode 100644 index 0000000..dceb49b Binary files /dev/null and b/app/src/main/assets/local_Animals/6.jpg differ diff --git a/app/src/main/assets/local_Animals/6.svg b/app/src/main/assets/local_Animals/6.svg new file mode 100644 index 0000000..5f7c304 --- /dev/null +++ b/app/src/main/assets/local_Animals/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/7.jpg b/app/src/main/assets/local_Animals/7.jpg new file mode 100644 index 0000000..ebd4694 Binary files /dev/null and b/app/src/main/assets/local_Animals/7.jpg differ diff --git a/app/src/main/assets/local_Animals/7.svg b/app/src/main/assets/local_Animals/7.svg new file mode 100644 index 0000000..73bf445 --- /dev/null +++ b/app/src/main/assets/local_Animals/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Animals/8.jpg b/app/src/main/assets/local_Animals/8.jpg new file mode 100644 index 0000000..e5e3c63 Binary files /dev/null and b/app/src/main/assets/local_Animals/8.jpg differ diff --git a/app/src/main/assets/local_Animals/9.jpg b/app/src/main/assets/local_Animals/9.jpg new file mode 100644 index 0000000..e7a1862 Binary files /dev/null and b/app/src/main/assets/local_Animals/9.jpg differ diff --git a/app/src/main/assets/local_Architectures/1.jpg b/app/src/main/assets/local_Architectures/1.jpg new file mode 100644 index 0000000..3289a38 Binary files /dev/null and b/app/src/main/assets/local_Architectures/1.jpg differ diff --git a/app/src/main/assets/local_Architectures/1.svg b/app/src/main/assets/local_Architectures/1.svg new file mode 100644 index 0000000..6c6684d --- /dev/null +++ b/app/src/main/assets/local_Architectures/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Architectures/10.jpg b/app/src/main/assets/local_Architectures/10.jpg new file mode 100644 index 0000000..b065539 Binary files /dev/null and b/app/src/main/assets/local_Architectures/10.jpg differ diff --git a/app/src/main/assets/local_Architectures/11.jpg b/app/src/main/assets/local_Architectures/11.jpg new file mode 100644 index 0000000..12d28b1 Binary files /dev/null and b/app/src/main/assets/local_Architectures/11.jpg differ diff --git a/app/src/main/assets/local_Architectures/12.jpg b/app/src/main/assets/local_Architectures/12.jpg new file mode 100644 index 0000000..182879f Binary files /dev/null and b/app/src/main/assets/local_Architectures/12.jpg differ diff --git a/app/src/main/assets/local_Architectures/13.jpg b/app/src/main/assets/local_Architectures/13.jpg new file mode 100644 index 0000000..4263530 Binary files /dev/null and b/app/src/main/assets/local_Architectures/13.jpg differ diff --git a/app/src/main/assets/local_Architectures/14.jpg b/app/src/main/assets/local_Architectures/14.jpg new file mode 100644 index 0000000..42e4ab3 Binary files /dev/null and b/app/src/main/assets/local_Architectures/14.jpg differ diff --git a/app/src/main/assets/local_Architectures/15.jpg b/app/src/main/assets/local_Architectures/15.jpg new file mode 100644 index 0000000..b529436 Binary files /dev/null and b/app/src/main/assets/local_Architectures/15.jpg differ diff --git a/app/src/main/assets/local_Architectures/16.jpg b/app/src/main/assets/local_Architectures/16.jpg new file mode 100644 index 0000000..85caef0 Binary files /dev/null and b/app/src/main/assets/local_Architectures/16.jpg differ diff --git a/app/src/main/assets/local_Architectures/17.jpg b/app/src/main/assets/local_Architectures/17.jpg new file mode 100644 index 0000000..6295f58 Binary files /dev/null and b/app/src/main/assets/local_Architectures/17.jpg differ diff --git a/app/src/main/assets/local_Architectures/18.jpg b/app/src/main/assets/local_Architectures/18.jpg new file mode 100644 index 0000000..f8e4e87 Binary files /dev/null and b/app/src/main/assets/local_Architectures/18.jpg differ diff --git a/app/src/main/assets/local_Architectures/19.jpg b/app/src/main/assets/local_Architectures/19.jpg new file mode 100644 index 0000000..c476493 Binary files /dev/null and b/app/src/main/assets/local_Architectures/19.jpg differ diff --git a/app/src/main/assets/local_Architectures/2.jpg b/app/src/main/assets/local_Architectures/2.jpg new file mode 100644 index 0000000..084fa51 Binary files /dev/null and b/app/src/main/assets/local_Architectures/2.jpg differ diff --git a/app/src/main/assets/local_Architectures/2.svg b/app/src/main/assets/local_Architectures/2.svg new file mode 100644 index 0000000..157f11c --- /dev/null +++ b/app/src/main/assets/local_Architectures/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Architectures/3.jpg b/app/src/main/assets/local_Architectures/3.jpg new file mode 100644 index 0000000..4ee71c4 Binary files /dev/null and b/app/src/main/assets/local_Architectures/3.jpg differ diff --git a/app/src/main/assets/local_Architectures/3.svg b/app/src/main/assets/local_Architectures/3.svg new file mode 100644 index 0000000..97372b2 --- /dev/null +++ b/app/src/main/assets/local_Architectures/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Architectures/4.jpg b/app/src/main/assets/local_Architectures/4.jpg new file mode 100644 index 0000000..25912f1 Binary files /dev/null and b/app/src/main/assets/local_Architectures/4.jpg differ diff --git a/app/src/main/assets/local_Architectures/4.svg b/app/src/main/assets/local_Architectures/4.svg new file mode 100644 index 0000000..87dc6bf --- /dev/null +++ b/app/src/main/assets/local_Architectures/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Architectures/5.jpg b/app/src/main/assets/local_Architectures/5.jpg new file mode 100644 index 0000000..77c2aa8 Binary files /dev/null and b/app/src/main/assets/local_Architectures/5.jpg differ diff --git a/app/src/main/assets/local_Architectures/5.svg b/app/src/main/assets/local_Architectures/5.svg new file mode 100644 index 0000000..ba13de0 --- /dev/null +++ b/app/src/main/assets/local_Architectures/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Architectures/6.jpg b/app/src/main/assets/local_Architectures/6.jpg new file mode 100644 index 0000000..75b1e32 Binary files /dev/null and b/app/src/main/assets/local_Architectures/6.jpg differ diff --git a/app/src/main/assets/local_Architectures/6.svg b/app/src/main/assets/local_Architectures/6.svg new file mode 100644 index 0000000..72e8195 --- /dev/null +++ b/app/src/main/assets/local_Architectures/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Architectures/7.jpg b/app/src/main/assets/local_Architectures/7.jpg new file mode 100644 index 0000000..f059989 Binary files /dev/null and b/app/src/main/assets/local_Architectures/7.jpg differ diff --git a/app/src/main/assets/local_Architectures/8.jpg b/app/src/main/assets/local_Architectures/8.jpg new file mode 100644 index 0000000..6be97eb Binary files /dev/null and b/app/src/main/assets/local_Architectures/8.jpg differ diff --git a/app/src/main/assets/local_Architectures/9.jpg b/app/src/main/assets/local_Architectures/9.jpg new file mode 100644 index 0000000..626cab9 Binary files /dev/null and b/app/src/main/assets/local_Architectures/9.jpg differ diff --git a/app/src/main/assets/local_Birds/1.jpg b/app/src/main/assets/local_Birds/1.jpg new file mode 100644 index 0000000..d235225 Binary files /dev/null and b/app/src/main/assets/local_Birds/1.jpg differ diff --git a/app/src/main/assets/local_Birds/10.jpg b/app/src/main/assets/local_Birds/10.jpg new file mode 100644 index 0000000..e348ffe Binary files /dev/null and b/app/src/main/assets/local_Birds/10.jpg differ diff --git a/app/src/main/assets/local_Birds/11.jpg b/app/src/main/assets/local_Birds/11.jpg new file mode 100644 index 0000000..921b5b9 Binary files /dev/null and b/app/src/main/assets/local_Birds/11.jpg differ diff --git a/app/src/main/assets/local_Birds/12.jpg b/app/src/main/assets/local_Birds/12.jpg new file mode 100644 index 0000000..7b4055b Binary files /dev/null and b/app/src/main/assets/local_Birds/12.jpg differ diff --git a/app/src/main/assets/local_Birds/13.jpg b/app/src/main/assets/local_Birds/13.jpg new file mode 100644 index 0000000..021b7a4 Binary files /dev/null and b/app/src/main/assets/local_Birds/13.jpg differ diff --git a/app/src/main/assets/local_Birds/14.jpg b/app/src/main/assets/local_Birds/14.jpg new file mode 100644 index 0000000..2074c6f Binary files /dev/null and b/app/src/main/assets/local_Birds/14.jpg differ diff --git a/app/src/main/assets/local_Birds/15.jpg b/app/src/main/assets/local_Birds/15.jpg new file mode 100644 index 0000000..59b0e47 Binary files /dev/null and b/app/src/main/assets/local_Birds/15.jpg differ diff --git a/app/src/main/assets/local_Birds/16.jpg b/app/src/main/assets/local_Birds/16.jpg new file mode 100644 index 0000000..fe950d1 Binary files /dev/null and b/app/src/main/assets/local_Birds/16.jpg differ diff --git a/app/src/main/assets/local_Birds/17.jpg b/app/src/main/assets/local_Birds/17.jpg new file mode 100644 index 0000000..484f39a Binary files /dev/null and b/app/src/main/assets/local_Birds/17.jpg differ diff --git a/app/src/main/assets/local_Birds/18.jpg b/app/src/main/assets/local_Birds/18.jpg new file mode 100644 index 0000000..2792ed1 Binary files /dev/null and b/app/src/main/assets/local_Birds/18.jpg differ diff --git a/app/src/main/assets/local_Birds/19.jpg b/app/src/main/assets/local_Birds/19.jpg new file mode 100644 index 0000000..9e9bb27 Binary files /dev/null and b/app/src/main/assets/local_Birds/19.jpg differ diff --git a/app/src/main/assets/local_Birds/2.jpg b/app/src/main/assets/local_Birds/2.jpg new file mode 100644 index 0000000..0929272 Binary files /dev/null and b/app/src/main/assets/local_Birds/2.jpg differ diff --git a/app/src/main/assets/local_Birds/3.jpg b/app/src/main/assets/local_Birds/3.jpg new file mode 100644 index 0000000..1376a50 Binary files /dev/null and b/app/src/main/assets/local_Birds/3.jpg differ diff --git a/app/src/main/assets/local_Birds/4.jpg b/app/src/main/assets/local_Birds/4.jpg new file mode 100644 index 0000000..1cd8f9c Binary files /dev/null and b/app/src/main/assets/local_Birds/4.jpg differ diff --git a/app/src/main/assets/local_Birds/5.jpg b/app/src/main/assets/local_Birds/5.jpg new file mode 100644 index 0000000..7637589 Binary files /dev/null and b/app/src/main/assets/local_Birds/5.jpg differ diff --git a/app/src/main/assets/local_Birds/6.jpg b/app/src/main/assets/local_Birds/6.jpg new file mode 100644 index 0000000..3bf16b6 Binary files /dev/null and b/app/src/main/assets/local_Birds/6.jpg differ diff --git a/app/src/main/assets/local_Birds/7.jpg b/app/src/main/assets/local_Birds/7.jpg new file mode 100644 index 0000000..076e51d Binary files /dev/null and b/app/src/main/assets/local_Birds/7.jpg differ diff --git a/app/src/main/assets/local_Birds/8.jpg b/app/src/main/assets/local_Birds/8.jpg new file mode 100644 index 0000000..71f5cf7 Binary files /dev/null and b/app/src/main/assets/local_Birds/8.jpg differ diff --git a/app/src/main/assets/local_Birds/9.jpg b/app/src/main/assets/local_Birds/9.jpg new file mode 100644 index 0000000..8767032 Binary files /dev/null and b/app/src/main/assets/local_Birds/9.jpg differ diff --git a/app/src/main/assets/local_Butterfly/1.jpg b/app/src/main/assets/local_Butterfly/1.jpg new file mode 100644 index 0000000..0d713b7 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/1.jpg differ diff --git a/app/src/main/assets/local_Butterfly/10.jpg b/app/src/main/assets/local_Butterfly/10.jpg new file mode 100644 index 0000000..ae497c8 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/10.jpg differ diff --git a/app/src/main/assets/local_Butterfly/11.jpg b/app/src/main/assets/local_Butterfly/11.jpg new file mode 100644 index 0000000..d2e39ef Binary files /dev/null and b/app/src/main/assets/local_Butterfly/11.jpg differ diff --git a/app/src/main/assets/local_Butterfly/12.jpg b/app/src/main/assets/local_Butterfly/12.jpg new file mode 100644 index 0000000..410af7c Binary files /dev/null and b/app/src/main/assets/local_Butterfly/12.jpg differ diff --git a/app/src/main/assets/local_Butterfly/13.jpg b/app/src/main/assets/local_Butterfly/13.jpg new file mode 100644 index 0000000..233a998 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/13.jpg differ diff --git a/app/src/main/assets/local_Butterfly/14.jpg b/app/src/main/assets/local_Butterfly/14.jpg new file mode 100644 index 0000000..9545c0f Binary files /dev/null and b/app/src/main/assets/local_Butterfly/14.jpg differ diff --git a/app/src/main/assets/local_Butterfly/15.jpg b/app/src/main/assets/local_Butterfly/15.jpg new file mode 100644 index 0000000..aa0da5b Binary files /dev/null and b/app/src/main/assets/local_Butterfly/15.jpg differ diff --git a/app/src/main/assets/local_Butterfly/16.jpg b/app/src/main/assets/local_Butterfly/16.jpg new file mode 100644 index 0000000..4b118cf Binary files /dev/null and b/app/src/main/assets/local_Butterfly/16.jpg differ diff --git a/app/src/main/assets/local_Butterfly/17.jpg b/app/src/main/assets/local_Butterfly/17.jpg new file mode 100644 index 0000000..ebfdc2e Binary files /dev/null and b/app/src/main/assets/local_Butterfly/17.jpg differ diff --git a/app/src/main/assets/local_Butterfly/18.jpg b/app/src/main/assets/local_Butterfly/18.jpg new file mode 100644 index 0000000..7b81ca1 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/18.jpg differ diff --git a/app/src/main/assets/local_Butterfly/19.jpg b/app/src/main/assets/local_Butterfly/19.jpg new file mode 100644 index 0000000..903fd82 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/19.jpg differ diff --git a/app/src/main/assets/local_Butterfly/2.jpg b/app/src/main/assets/local_Butterfly/2.jpg new file mode 100644 index 0000000..f92c438 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/2.jpg differ diff --git a/app/src/main/assets/local_Butterfly/20.jpg b/app/src/main/assets/local_Butterfly/20.jpg new file mode 100644 index 0000000..7d0dc2e Binary files /dev/null and b/app/src/main/assets/local_Butterfly/20.jpg differ diff --git a/app/src/main/assets/local_Butterfly/21.jpg b/app/src/main/assets/local_Butterfly/21.jpg new file mode 100644 index 0000000..ff82d93 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/21.jpg differ diff --git a/app/src/main/assets/local_Butterfly/3.jpg b/app/src/main/assets/local_Butterfly/3.jpg new file mode 100644 index 0000000..5251134 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/3.jpg differ diff --git a/app/src/main/assets/local_Butterfly/4.jpg b/app/src/main/assets/local_Butterfly/4.jpg new file mode 100644 index 0000000..01d5932 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/4.jpg differ diff --git a/app/src/main/assets/local_Butterfly/5.jpg b/app/src/main/assets/local_Butterfly/5.jpg new file mode 100644 index 0000000..cc99ed5 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/5.jpg differ diff --git a/app/src/main/assets/local_Butterfly/6.jpg b/app/src/main/assets/local_Butterfly/6.jpg new file mode 100644 index 0000000..6d02805 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/6.jpg differ diff --git a/app/src/main/assets/local_Butterfly/7.jpg b/app/src/main/assets/local_Butterfly/7.jpg new file mode 100644 index 0000000..dd52dbd Binary files /dev/null and b/app/src/main/assets/local_Butterfly/7.jpg differ diff --git a/app/src/main/assets/local_Butterfly/8.jpg b/app/src/main/assets/local_Butterfly/8.jpg new file mode 100644 index 0000000..d519ca7 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/8.jpg differ diff --git a/app/src/main/assets/local_Butterfly/9.jpg b/app/src/main/assets/local_Butterfly/9.jpg new file mode 100644 index 0000000..0cedb47 Binary files /dev/null and b/app/src/main/assets/local_Butterfly/9.jpg differ diff --git a/app/src/main/assets/local_Car/1.jpg b/app/src/main/assets/local_Car/1.jpg new file mode 100644 index 0000000..da449f7 Binary files /dev/null and b/app/src/main/assets/local_Car/1.jpg differ diff --git a/app/src/main/assets/local_Car/1.svg b/app/src/main/assets/local_Car/1.svg new file mode 100644 index 0000000..1b2faba --- /dev/null +++ b/app/src/main/assets/local_Car/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/10.jpg b/app/src/main/assets/local_Car/10.jpg new file mode 100644 index 0000000..0084613 Binary files /dev/null and b/app/src/main/assets/local_Car/10.jpg differ diff --git a/app/src/main/assets/local_Car/11.jpg b/app/src/main/assets/local_Car/11.jpg new file mode 100644 index 0000000..ba5f4d4 Binary files /dev/null and b/app/src/main/assets/local_Car/11.jpg differ diff --git a/app/src/main/assets/local_Car/12.jpg b/app/src/main/assets/local_Car/12.jpg new file mode 100644 index 0000000..32c7908 Binary files /dev/null and b/app/src/main/assets/local_Car/12.jpg differ diff --git a/app/src/main/assets/local_Car/13.jpg b/app/src/main/assets/local_Car/13.jpg new file mode 100644 index 0000000..dd47e76 Binary files /dev/null and b/app/src/main/assets/local_Car/13.jpg differ diff --git a/app/src/main/assets/local_Car/14.jpg b/app/src/main/assets/local_Car/14.jpg new file mode 100644 index 0000000..8b886e6 Binary files /dev/null and b/app/src/main/assets/local_Car/14.jpg differ diff --git a/app/src/main/assets/local_Car/15.jpg b/app/src/main/assets/local_Car/15.jpg new file mode 100644 index 0000000..cf78752 Binary files /dev/null and b/app/src/main/assets/local_Car/15.jpg differ diff --git a/app/src/main/assets/local_Car/16.jpg b/app/src/main/assets/local_Car/16.jpg new file mode 100644 index 0000000..87f8a19 Binary files /dev/null and b/app/src/main/assets/local_Car/16.jpg differ diff --git a/app/src/main/assets/local_Car/17.jpg b/app/src/main/assets/local_Car/17.jpg new file mode 100644 index 0000000..011b53b Binary files /dev/null and b/app/src/main/assets/local_Car/17.jpg differ diff --git a/app/src/main/assets/local_Car/18.jpg b/app/src/main/assets/local_Car/18.jpg new file mode 100644 index 0000000..c4433c8 Binary files /dev/null and b/app/src/main/assets/local_Car/18.jpg differ diff --git a/app/src/main/assets/local_Car/19.jpg b/app/src/main/assets/local_Car/19.jpg new file mode 100644 index 0000000..b9361f1 Binary files /dev/null and b/app/src/main/assets/local_Car/19.jpg differ diff --git a/app/src/main/assets/local_Car/2.jpg b/app/src/main/assets/local_Car/2.jpg new file mode 100644 index 0000000..ff06675 Binary files /dev/null and b/app/src/main/assets/local_Car/2.jpg differ diff --git a/app/src/main/assets/local_Car/2.svg b/app/src/main/assets/local_Car/2.svg new file mode 100644 index 0000000..951f018 --- /dev/null +++ b/app/src/main/assets/local_Car/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/20.jpg b/app/src/main/assets/local_Car/20.jpg new file mode 100644 index 0000000..3e22c5c Binary files /dev/null and b/app/src/main/assets/local_Car/20.jpg differ diff --git a/app/src/main/assets/local_Car/21.jpg b/app/src/main/assets/local_Car/21.jpg new file mode 100644 index 0000000..f93b99a Binary files /dev/null and b/app/src/main/assets/local_Car/21.jpg differ diff --git a/app/src/main/assets/local_Car/22.jpg b/app/src/main/assets/local_Car/22.jpg new file mode 100644 index 0000000..952afa9 Binary files /dev/null and b/app/src/main/assets/local_Car/22.jpg differ diff --git a/app/src/main/assets/local_Car/23.jpg b/app/src/main/assets/local_Car/23.jpg new file mode 100644 index 0000000..a6e1c25 Binary files /dev/null and b/app/src/main/assets/local_Car/23.jpg differ diff --git a/app/src/main/assets/local_Car/24.jpg b/app/src/main/assets/local_Car/24.jpg new file mode 100644 index 0000000..83c706a Binary files /dev/null and b/app/src/main/assets/local_Car/24.jpg differ diff --git a/app/src/main/assets/local_Car/25.jpg b/app/src/main/assets/local_Car/25.jpg new file mode 100644 index 0000000..6ebdbf7 Binary files /dev/null and b/app/src/main/assets/local_Car/25.jpg differ diff --git a/app/src/main/assets/local_Car/26.jpg b/app/src/main/assets/local_Car/26.jpg new file mode 100644 index 0000000..3805357 Binary files /dev/null and b/app/src/main/assets/local_Car/26.jpg differ diff --git a/app/src/main/assets/local_Car/27.jpg b/app/src/main/assets/local_Car/27.jpg new file mode 100644 index 0000000..0849027 Binary files /dev/null and b/app/src/main/assets/local_Car/27.jpg differ diff --git a/app/src/main/assets/local_Car/28.jpg b/app/src/main/assets/local_Car/28.jpg new file mode 100644 index 0000000..019baa9 Binary files /dev/null and b/app/src/main/assets/local_Car/28.jpg differ diff --git a/app/src/main/assets/local_Car/29.jpg b/app/src/main/assets/local_Car/29.jpg new file mode 100644 index 0000000..c7e0d3a Binary files /dev/null and b/app/src/main/assets/local_Car/29.jpg differ diff --git a/app/src/main/assets/local_Car/3.jpg b/app/src/main/assets/local_Car/3.jpg new file mode 100644 index 0000000..eb33365 Binary files /dev/null and b/app/src/main/assets/local_Car/3.jpg differ diff --git a/app/src/main/assets/local_Car/3.svg b/app/src/main/assets/local_Car/3.svg new file mode 100644 index 0000000..a8c1079 --- /dev/null +++ b/app/src/main/assets/local_Car/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/30.jpg b/app/src/main/assets/local_Car/30.jpg new file mode 100644 index 0000000..3820102 Binary files /dev/null and b/app/src/main/assets/local_Car/30.jpg differ diff --git a/app/src/main/assets/local_Car/31.jpg b/app/src/main/assets/local_Car/31.jpg new file mode 100644 index 0000000..bba9999 Binary files /dev/null and b/app/src/main/assets/local_Car/31.jpg differ diff --git a/app/src/main/assets/local_Car/32.jpg b/app/src/main/assets/local_Car/32.jpg new file mode 100644 index 0000000..6d64a3f Binary files /dev/null and b/app/src/main/assets/local_Car/32.jpg differ diff --git a/app/src/main/assets/local_Car/4.jpg b/app/src/main/assets/local_Car/4.jpg new file mode 100644 index 0000000..968f0ad Binary files /dev/null and b/app/src/main/assets/local_Car/4.jpg differ diff --git a/app/src/main/assets/local_Car/4.svg b/app/src/main/assets/local_Car/4.svg new file mode 100644 index 0000000..826753c --- /dev/null +++ b/app/src/main/assets/local_Car/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/5.jpg b/app/src/main/assets/local_Car/5.jpg new file mode 100644 index 0000000..abdd96c Binary files /dev/null and b/app/src/main/assets/local_Car/5.jpg differ diff --git a/app/src/main/assets/local_Car/5.svg b/app/src/main/assets/local_Car/5.svg new file mode 100644 index 0000000..1116db9 --- /dev/null +++ b/app/src/main/assets/local_Car/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/6.jpg b/app/src/main/assets/local_Car/6.jpg new file mode 100644 index 0000000..7eeb870 Binary files /dev/null and b/app/src/main/assets/local_Car/6.jpg differ diff --git a/app/src/main/assets/local_Car/6.svg b/app/src/main/assets/local_Car/6.svg new file mode 100644 index 0000000..8e973c9 --- /dev/null +++ b/app/src/main/assets/local_Car/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/7.jpg b/app/src/main/assets/local_Car/7.jpg new file mode 100644 index 0000000..c5e6294 Binary files /dev/null and b/app/src/main/assets/local_Car/7.jpg differ diff --git a/app/src/main/assets/local_Car/7.svg b/app/src/main/assets/local_Car/7.svg new file mode 100644 index 0000000..3178a0e --- /dev/null +++ b/app/src/main/assets/local_Car/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Car/8.jpg b/app/src/main/assets/local_Car/8.jpg new file mode 100644 index 0000000..6628782 Binary files /dev/null and b/app/src/main/assets/local_Car/8.jpg differ diff --git a/app/src/main/assets/local_Car/9.jpg b/app/src/main/assets/local_Car/9.jpg new file mode 100644 index 0000000..367b772 Binary files /dev/null and b/app/src/main/assets/local_Car/9.jpg differ diff --git a/app/src/main/assets/local_Cartoons/1.jpg b/app/src/main/assets/local_Cartoons/1.jpg new file mode 100644 index 0000000..74bf123 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/1.jpg differ diff --git a/app/src/main/assets/local_Cartoons/1.svg b/app/src/main/assets/local_Cartoons/1.svg new file mode 100644 index 0000000..43ef9b7 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/10.svg b/app/src/main/assets/local_Cartoons/10.svg new file mode 100644 index 0000000..1c51093 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/10.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/11.jpg b/app/src/main/assets/local_Cartoons/11.jpg new file mode 100644 index 0000000..1f2a904 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/11.jpg differ diff --git a/app/src/main/assets/local_Cartoons/11.svg b/app/src/main/assets/local_Cartoons/11.svg new file mode 100644 index 0000000..ab02ad1 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/11.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/12.svg b/app/src/main/assets/local_Cartoons/12.svg new file mode 100644 index 0000000..5594ba5 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/12.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/13.jpg b/app/src/main/assets/local_Cartoons/13.jpg new file mode 100644 index 0000000..92e1d75 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/13.jpg differ diff --git a/app/src/main/assets/local_Cartoons/13.svg b/app/src/main/assets/local_Cartoons/13.svg new file mode 100644 index 0000000..5980a0e --- /dev/null +++ b/app/src/main/assets/local_Cartoons/13.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/14.jpg b/app/src/main/assets/local_Cartoons/14.jpg new file mode 100644 index 0000000..c82e897 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/14.jpg differ diff --git a/app/src/main/assets/local_Cartoons/14.svg b/app/src/main/assets/local_Cartoons/14.svg new file mode 100644 index 0000000..d626cbe --- /dev/null +++ b/app/src/main/assets/local_Cartoons/14.svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/assets/local_Cartoons/15.jpg b/app/src/main/assets/local_Cartoons/15.jpg new file mode 100644 index 0000000..bcd8678 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/15.jpg differ diff --git a/app/src/main/assets/local_Cartoons/15.svg b/app/src/main/assets/local_Cartoons/15.svg new file mode 100644 index 0000000..bc5a8a7 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/15.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/17.jpg b/app/src/main/assets/local_Cartoons/17.jpg new file mode 100644 index 0000000..45aafbb Binary files /dev/null and b/app/src/main/assets/local_Cartoons/17.jpg differ diff --git a/app/src/main/assets/local_Cartoons/18.jpg b/app/src/main/assets/local_Cartoons/18.jpg new file mode 100644 index 0000000..048d253 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/18.jpg differ diff --git a/app/src/main/assets/local_Cartoons/19.jpg b/app/src/main/assets/local_Cartoons/19.jpg new file mode 100644 index 0000000..c2501b2 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/19.jpg differ diff --git a/app/src/main/assets/local_Cartoons/2.svg b/app/src/main/assets/local_Cartoons/2.svg new file mode 100644 index 0000000..d07f46c --- /dev/null +++ b/app/src/main/assets/local_Cartoons/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/20.jpg b/app/src/main/assets/local_Cartoons/20.jpg new file mode 100644 index 0000000..fb7901c Binary files /dev/null and b/app/src/main/assets/local_Cartoons/20.jpg differ diff --git a/app/src/main/assets/local_Cartoons/21.jpg b/app/src/main/assets/local_Cartoons/21.jpg new file mode 100644 index 0000000..ed7104e Binary files /dev/null and b/app/src/main/assets/local_Cartoons/21.jpg differ diff --git a/app/src/main/assets/local_Cartoons/22.jpg b/app/src/main/assets/local_Cartoons/22.jpg new file mode 100644 index 0000000..cd003eb Binary files /dev/null and b/app/src/main/assets/local_Cartoons/22.jpg differ diff --git a/app/src/main/assets/local_Cartoons/23.jpg b/app/src/main/assets/local_Cartoons/23.jpg new file mode 100644 index 0000000..77b49a4 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/23.jpg differ diff --git a/app/src/main/assets/local_Cartoons/24.jpg b/app/src/main/assets/local_Cartoons/24.jpg new file mode 100644 index 0000000..1c7dc65 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/24.jpg differ diff --git a/app/src/main/assets/local_Cartoons/25.jpg b/app/src/main/assets/local_Cartoons/25.jpg new file mode 100644 index 0000000..442aec2 Binary files /dev/null and b/app/src/main/assets/local_Cartoons/25.jpg differ diff --git a/app/src/main/assets/local_Cartoons/26.jpg b/app/src/main/assets/local_Cartoons/26.jpg new file mode 100644 index 0000000..ec4a2ff Binary files /dev/null and b/app/src/main/assets/local_Cartoons/26.jpg differ diff --git a/app/src/main/assets/local_Cartoons/3.svg b/app/src/main/assets/local_Cartoons/3.svg new file mode 100644 index 0000000..6904e0b --- /dev/null +++ b/app/src/main/assets/local_Cartoons/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/4.svg b/app/src/main/assets/local_Cartoons/4.svg new file mode 100644 index 0000000..3b2121d --- /dev/null +++ b/app/src/main/assets/local_Cartoons/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/5.svg b/app/src/main/assets/local_Cartoons/5.svg new file mode 100644 index 0000000..bfc105e --- /dev/null +++ b/app/src/main/assets/local_Cartoons/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/6.svg b/app/src/main/assets/local_Cartoons/6.svg new file mode 100644 index 0000000..aa2b33d --- /dev/null +++ b/app/src/main/assets/local_Cartoons/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/7.svg b/app/src/main/assets/local_Cartoons/7.svg new file mode 100644 index 0000000..5a82c05 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Cartoons/8.svg b/app/src/main/assets/local_Cartoons/8.svg new file mode 100644 index 0000000..ddb2131 --- /dev/null +++ b/app/src/main/assets/local_Cartoons/8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Christmas/1.jpg b/app/src/main/assets/local_Christmas/1.jpg new file mode 100644 index 0000000..cc1fafb Binary files /dev/null and b/app/src/main/assets/local_Christmas/1.jpg differ diff --git a/app/src/main/assets/local_Christmas/10.jpg b/app/src/main/assets/local_Christmas/10.jpg new file mode 100644 index 0000000..e5e63d6 Binary files /dev/null and b/app/src/main/assets/local_Christmas/10.jpg differ diff --git a/app/src/main/assets/local_Christmas/11.jpg b/app/src/main/assets/local_Christmas/11.jpg new file mode 100644 index 0000000..cae5d66 Binary files /dev/null and b/app/src/main/assets/local_Christmas/11.jpg differ diff --git a/app/src/main/assets/local_Christmas/12.jpg b/app/src/main/assets/local_Christmas/12.jpg new file mode 100644 index 0000000..13fd21f Binary files /dev/null and b/app/src/main/assets/local_Christmas/12.jpg differ diff --git a/app/src/main/assets/local_Christmas/13.jpg b/app/src/main/assets/local_Christmas/13.jpg new file mode 100644 index 0000000..1fa30fe Binary files /dev/null and b/app/src/main/assets/local_Christmas/13.jpg differ diff --git a/app/src/main/assets/local_Christmas/14.jpg b/app/src/main/assets/local_Christmas/14.jpg new file mode 100644 index 0000000..aec6dcf Binary files /dev/null and b/app/src/main/assets/local_Christmas/14.jpg differ diff --git a/app/src/main/assets/local_Christmas/15.jpg b/app/src/main/assets/local_Christmas/15.jpg new file mode 100644 index 0000000..647c8b6 Binary files /dev/null and b/app/src/main/assets/local_Christmas/15.jpg differ diff --git a/app/src/main/assets/local_Christmas/16.jpg b/app/src/main/assets/local_Christmas/16.jpg new file mode 100644 index 0000000..b36a79c Binary files /dev/null and b/app/src/main/assets/local_Christmas/16.jpg differ diff --git a/app/src/main/assets/local_Christmas/17.jpg b/app/src/main/assets/local_Christmas/17.jpg new file mode 100644 index 0000000..2655af2 Binary files /dev/null and b/app/src/main/assets/local_Christmas/17.jpg differ diff --git a/app/src/main/assets/local_Christmas/18.jpg b/app/src/main/assets/local_Christmas/18.jpg new file mode 100644 index 0000000..e784d64 Binary files /dev/null and b/app/src/main/assets/local_Christmas/18.jpg differ diff --git a/app/src/main/assets/local_Christmas/19.jpg b/app/src/main/assets/local_Christmas/19.jpg new file mode 100644 index 0000000..fcf2085 Binary files /dev/null and b/app/src/main/assets/local_Christmas/19.jpg differ diff --git a/app/src/main/assets/local_Christmas/2.jpg b/app/src/main/assets/local_Christmas/2.jpg new file mode 100644 index 0000000..326e86b Binary files /dev/null and b/app/src/main/assets/local_Christmas/2.jpg differ diff --git a/app/src/main/assets/local_Christmas/20.jpg b/app/src/main/assets/local_Christmas/20.jpg new file mode 100644 index 0000000..a9e3c89 Binary files /dev/null and b/app/src/main/assets/local_Christmas/20.jpg differ diff --git a/app/src/main/assets/local_Christmas/21.jpg b/app/src/main/assets/local_Christmas/21.jpg new file mode 100644 index 0000000..71b4150 Binary files /dev/null and b/app/src/main/assets/local_Christmas/21.jpg differ diff --git a/app/src/main/assets/local_Christmas/22.jpg b/app/src/main/assets/local_Christmas/22.jpg new file mode 100644 index 0000000..3c99d0d Binary files /dev/null and b/app/src/main/assets/local_Christmas/22.jpg differ diff --git a/app/src/main/assets/local_Christmas/23.jpg b/app/src/main/assets/local_Christmas/23.jpg new file mode 100644 index 0000000..32c3b03 Binary files /dev/null and b/app/src/main/assets/local_Christmas/23.jpg differ diff --git a/app/src/main/assets/local_Christmas/24.jpg b/app/src/main/assets/local_Christmas/24.jpg new file mode 100644 index 0000000..80fd836 Binary files /dev/null and b/app/src/main/assets/local_Christmas/24.jpg differ diff --git a/app/src/main/assets/local_Christmas/25.jpg b/app/src/main/assets/local_Christmas/25.jpg new file mode 100644 index 0000000..8e2bef6 Binary files /dev/null and b/app/src/main/assets/local_Christmas/25.jpg differ diff --git a/app/src/main/assets/local_Christmas/3.jpg b/app/src/main/assets/local_Christmas/3.jpg new file mode 100644 index 0000000..4c24cd2 Binary files /dev/null and b/app/src/main/assets/local_Christmas/3.jpg differ diff --git a/app/src/main/assets/local_Christmas/4.jpg b/app/src/main/assets/local_Christmas/4.jpg new file mode 100644 index 0000000..28fb1b0 Binary files /dev/null and b/app/src/main/assets/local_Christmas/4.jpg differ diff --git a/app/src/main/assets/local_Christmas/5.jpg b/app/src/main/assets/local_Christmas/5.jpg new file mode 100644 index 0000000..93ad555 Binary files /dev/null and b/app/src/main/assets/local_Christmas/5.jpg differ diff --git a/app/src/main/assets/local_Christmas/6.jpg b/app/src/main/assets/local_Christmas/6.jpg new file mode 100644 index 0000000..02fe302 Binary files /dev/null and b/app/src/main/assets/local_Christmas/6.jpg differ diff --git a/app/src/main/assets/local_Christmas/7.jpg b/app/src/main/assets/local_Christmas/7.jpg new file mode 100644 index 0000000..dc41982 Binary files /dev/null and b/app/src/main/assets/local_Christmas/7.jpg differ diff --git a/app/src/main/assets/local_Christmas/8.jpg b/app/src/main/assets/local_Christmas/8.jpg new file mode 100644 index 0000000..5f13019 Binary files /dev/null and b/app/src/main/assets/local_Christmas/8.jpg differ diff --git a/app/src/main/assets/local_Christmas/9.jpg b/app/src/main/assets/local_Christmas/9.jpg new file mode 100644 index 0000000..e556980 Binary files /dev/null and b/app/src/main/assets/local_Christmas/9.jpg differ diff --git a/app/src/main/assets/local_Festivals/1.jpg b/app/src/main/assets/local_Festivals/1.jpg new file mode 100644 index 0000000..125d632 Binary files /dev/null and b/app/src/main/assets/local_Festivals/1.jpg differ diff --git a/app/src/main/assets/local_Festivals/10.jpg b/app/src/main/assets/local_Festivals/10.jpg new file mode 100644 index 0000000..d17b9f1 Binary files /dev/null and b/app/src/main/assets/local_Festivals/10.jpg differ diff --git a/app/src/main/assets/local_Festivals/11.jpg b/app/src/main/assets/local_Festivals/11.jpg new file mode 100644 index 0000000..702f052 Binary files /dev/null and b/app/src/main/assets/local_Festivals/11.jpg differ diff --git a/app/src/main/assets/local_Festivals/12.jpg b/app/src/main/assets/local_Festivals/12.jpg new file mode 100644 index 0000000..6f231e1 Binary files /dev/null and b/app/src/main/assets/local_Festivals/12.jpg differ diff --git a/app/src/main/assets/local_Festivals/13.jpg b/app/src/main/assets/local_Festivals/13.jpg new file mode 100644 index 0000000..20556a1 Binary files /dev/null and b/app/src/main/assets/local_Festivals/13.jpg differ diff --git a/app/src/main/assets/local_Festivals/14.jpg b/app/src/main/assets/local_Festivals/14.jpg new file mode 100644 index 0000000..fb78127 Binary files /dev/null and b/app/src/main/assets/local_Festivals/14.jpg differ diff --git a/app/src/main/assets/local_Festivals/15.jpg b/app/src/main/assets/local_Festivals/15.jpg new file mode 100644 index 0000000..e74f47e Binary files /dev/null and b/app/src/main/assets/local_Festivals/15.jpg differ diff --git a/app/src/main/assets/local_Festivals/16.jpg b/app/src/main/assets/local_Festivals/16.jpg new file mode 100644 index 0000000..136f6e8 Binary files /dev/null and b/app/src/main/assets/local_Festivals/16.jpg differ diff --git a/app/src/main/assets/local_Festivals/17.jpg b/app/src/main/assets/local_Festivals/17.jpg new file mode 100644 index 0000000..fd50e67 Binary files /dev/null and b/app/src/main/assets/local_Festivals/17.jpg differ diff --git a/app/src/main/assets/local_Festivals/18.jpg b/app/src/main/assets/local_Festivals/18.jpg new file mode 100644 index 0000000..d3f7936 Binary files /dev/null and b/app/src/main/assets/local_Festivals/18.jpg differ diff --git a/app/src/main/assets/local_Festivals/19.jpg b/app/src/main/assets/local_Festivals/19.jpg new file mode 100644 index 0000000..9a4f1b8 Binary files /dev/null and b/app/src/main/assets/local_Festivals/19.jpg differ diff --git a/app/src/main/assets/local_Festivals/2.jpg b/app/src/main/assets/local_Festivals/2.jpg new file mode 100644 index 0000000..84aa31a Binary files /dev/null and b/app/src/main/assets/local_Festivals/2.jpg differ diff --git a/app/src/main/assets/local_Festivals/20.jpg b/app/src/main/assets/local_Festivals/20.jpg new file mode 100644 index 0000000..268c943 Binary files /dev/null and b/app/src/main/assets/local_Festivals/20.jpg differ diff --git a/app/src/main/assets/local_Festivals/21.jpg b/app/src/main/assets/local_Festivals/21.jpg new file mode 100644 index 0000000..614bffd Binary files /dev/null and b/app/src/main/assets/local_Festivals/21.jpg differ diff --git a/app/src/main/assets/local_Festivals/22.jpg b/app/src/main/assets/local_Festivals/22.jpg new file mode 100644 index 0000000..f81eb8d Binary files /dev/null and b/app/src/main/assets/local_Festivals/22.jpg differ diff --git a/app/src/main/assets/local_Festivals/3.jpg b/app/src/main/assets/local_Festivals/3.jpg new file mode 100644 index 0000000..5ca2b11 Binary files /dev/null and b/app/src/main/assets/local_Festivals/3.jpg differ diff --git a/app/src/main/assets/local_Festivals/4.jpg b/app/src/main/assets/local_Festivals/4.jpg new file mode 100644 index 0000000..1f8cc81 Binary files /dev/null and b/app/src/main/assets/local_Festivals/4.jpg differ diff --git a/app/src/main/assets/local_Festivals/5.jpg b/app/src/main/assets/local_Festivals/5.jpg new file mode 100644 index 0000000..7f1bd1a Binary files /dev/null and b/app/src/main/assets/local_Festivals/5.jpg differ diff --git a/app/src/main/assets/local_Festivals/6.jpg b/app/src/main/assets/local_Festivals/6.jpg new file mode 100644 index 0000000..9cf832a Binary files /dev/null and b/app/src/main/assets/local_Festivals/6.jpg differ diff --git a/app/src/main/assets/local_Festivals/7.jpg b/app/src/main/assets/local_Festivals/7.jpg new file mode 100644 index 0000000..dcd83f3 Binary files /dev/null and b/app/src/main/assets/local_Festivals/7.jpg differ diff --git a/app/src/main/assets/local_Festivals/8.jpg b/app/src/main/assets/local_Festivals/8.jpg new file mode 100644 index 0000000..1117f09 Binary files /dev/null and b/app/src/main/assets/local_Festivals/8.jpg differ diff --git a/app/src/main/assets/local_Festivals/9.jpg b/app/src/main/assets/local_Festivals/9.jpg new file mode 100644 index 0000000..39d8467 Binary files /dev/null and b/app/src/main/assets/local_Festivals/9.jpg differ diff --git a/app/src/main/assets/local_Flowers/1.jpg b/app/src/main/assets/local_Flowers/1.jpg new file mode 100644 index 0000000..217d9c8 Binary files /dev/null and b/app/src/main/assets/local_Flowers/1.jpg differ diff --git a/app/src/main/assets/local_Flowers/1.svg b/app/src/main/assets/local_Flowers/1.svg new file mode 100644 index 0000000..d8d4e2c --- /dev/null +++ b/app/src/main/assets/local_Flowers/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/10.jpg b/app/src/main/assets/local_Flowers/10.jpg new file mode 100644 index 0000000..ba84e61 Binary files /dev/null and b/app/src/main/assets/local_Flowers/10.jpg differ diff --git a/app/src/main/assets/local_Flowers/11.jpg b/app/src/main/assets/local_Flowers/11.jpg new file mode 100644 index 0000000..e579753 Binary files /dev/null and b/app/src/main/assets/local_Flowers/11.jpg differ diff --git a/app/src/main/assets/local_Flowers/12.jpg b/app/src/main/assets/local_Flowers/12.jpg new file mode 100644 index 0000000..26092f9 Binary files /dev/null and b/app/src/main/assets/local_Flowers/12.jpg differ diff --git a/app/src/main/assets/local_Flowers/13.jpg b/app/src/main/assets/local_Flowers/13.jpg new file mode 100644 index 0000000..41d2df3 Binary files /dev/null and b/app/src/main/assets/local_Flowers/13.jpg differ diff --git a/app/src/main/assets/local_Flowers/14.jpg b/app/src/main/assets/local_Flowers/14.jpg new file mode 100644 index 0000000..c44df66 Binary files /dev/null and b/app/src/main/assets/local_Flowers/14.jpg differ diff --git a/app/src/main/assets/local_Flowers/15.jpg b/app/src/main/assets/local_Flowers/15.jpg new file mode 100644 index 0000000..ea34d36 Binary files /dev/null and b/app/src/main/assets/local_Flowers/15.jpg differ diff --git a/app/src/main/assets/local_Flowers/16.jpg b/app/src/main/assets/local_Flowers/16.jpg new file mode 100644 index 0000000..506beb1 Binary files /dev/null and b/app/src/main/assets/local_Flowers/16.jpg differ diff --git a/app/src/main/assets/local_Flowers/17.jpg b/app/src/main/assets/local_Flowers/17.jpg new file mode 100644 index 0000000..3764b21 Binary files /dev/null and b/app/src/main/assets/local_Flowers/17.jpg differ diff --git a/app/src/main/assets/local_Flowers/18.jpg b/app/src/main/assets/local_Flowers/18.jpg new file mode 100644 index 0000000..a759ab6 Binary files /dev/null and b/app/src/main/assets/local_Flowers/18.jpg differ diff --git a/app/src/main/assets/local_Flowers/19.jpg b/app/src/main/assets/local_Flowers/19.jpg new file mode 100644 index 0000000..e8c2a84 Binary files /dev/null and b/app/src/main/assets/local_Flowers/19.jpg differ diff --git a/app/src/main/assets/local_Flowers/2.jpg b/app/src/main/assets/local_Flowers/2.jpg new file mode 100644 index 0000000..fb7e56f Binary files /dev/null and b/app/src/main/assets/local_Flowers/2.jpg differ diff --git a/app/src/main/assets/local_Flowers/2.svg b/app/src/main/assets/local_Flowers/2.svg new file mode 100644 index 0000000..23b8266 --- /dev/null +++ b/app/src/main/assets/local_Flowers/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/20.jpg b/app/src/main/assets/local_Flowers/20.jpg new file mode 100644 index 0000000..93e5408 Binary files /dev/null and b/app/src/main/assets/local_Flowers/20.jpg differ diff --git a/app/src/main/assets/local_Flowers/21.jpg b/app/src/main/assets/local_Flowers/21.jpg new file mode 100644 index 0000000..4fa3a77 Binary files /dev/null and b/app/src/main/assets/local_Flowers/21.jpg differ diff --git a/app/src/main/assets/local_Flowers/22.jpg b/app/src/main/assets/local_Flowers/22.jpg new file mode 100644 index 0000000..6f45df7 Binary files /dev/null and b/app/src/main/assets/local_Flowers/22.jpg differ diff --git a/app/src/main/assets/local_Flowers/23.jpg b/app/src/main/assets/local_Flowers/23.jpg new file mode 100644 index 0000000..46e806d Binary files /dev/null and b/app/src/main/assets/local_Flowers/23.jpg differ diff --git a/app/src/main/assets/local_Flowers/3.jpg b/app/src/main/assets/local_Flowers/3.jpg new file mode 100644 index 0000000..22a741c Binary files /dev/null and b/app/src/main/assets/local_Flowers/3.jpg differ diff --git a/app/src/main/assets/local_Flowers/3.svg b/app/src/main/assets/local_Flowers/3.svg new file mode 100644 index 0000000..6808e64 --- /dev/null +++ b/app/src/main/assets/local_Flowers/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/4.jpg b/app/src/main/assets/local_Flowers/4.jpg new file mode 100644 index 0000000..dd0a30f Binary files /dev/null and b/app/src/main/assets/local_Flowers/4.jpg differ diff --git a/app/src/main/assets/local_Flowers/4.svg b/app/src/main/assets/local_Flowers/4.svg new file mode 100644 index 0000000..191d15a --- /dev/null +++ b/app/src/main/assets/local_Flowers/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/5.jpg b/app/src/main/assets/local_Flowers/5.jpg new file mode 100644 index 0000000..9dcb4f5 Binary files /dev/null and b/app/src/main/assets/local_Flowers/5.jpg differ diff --git a/app/src/main/assets/local_Flowers/5.svg b/app/src/main/assets/local_Flowers/5.svg new file mode 100644 index 0000000..8e5167a --- /dev/null +++ b/app/src/main/assets/local_Flowers/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/6.jpg b/app/src/main/assets/local_Flowers/6.jpg new file mode 100644 index 0000000..cdf1f65 Binary files /dev/null and b/app/src/main/assets/local_Flowers/6.jpg differ diff --git a/app/src/main/assets/local_Flowers/6.svg b/app/src/main/assets/local_Flowers/6.svg new file mode 100644 index 0000000..4be81c1 --- /dev/null +++ b/app/src/main/assets/local_Flowers/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/7.jpg b/app/src/main/assets/local_Flowers/7.jpg new file mode 100644 index 0000000..caab990 Binary files /dev/null and b/app/src/main/assets/local_Flowers/7.jpg differ diff --git a/app/src/main/assets/local_Flowers/7.svg b/app/src/main/assets/local_Flowers/7.svg new file mode 100644 index 0000000..813388e --- /dev/null +++ b/app/src/main/assets/local_Flowers/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Flowers/8.jpg b/app/src/main/assets/local_Flowers/8.jpg new file mode 100644 index 0000000..c43832b Binary files /dev/null and b/app/src/main/assets/local_Flowers/8.jpg differ diff --git a/app/src/main/assets/local_Flowers/9.jpg b/app/src/main/assets/local_Flowers/9.jpg new file mode 100644 index 0000000..5b78ee1 Binary files /dev/null and b/app/src/main/assets/local_Flowers/9.jpg differ diff --git a/app/src/main/assets/local_Food/1.jpg b/app/src/main/assets/local_Food/1.jpg new file mode 100644 index 0000000..b347b44 Binary files /dev/null and b/app/src/main/assets/local_Food/1.jpg differ diff --git a/app/src/main/assets/local_Food/1.svg b/app/src/main/assets/local_Food/1.svg new file mode 100644 index 0000000..f4028b7 --- /dev/null +++ b/app/src/main/assets/local_Food/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/10.jpg b/app/src/main/assets/local_Food/10.jpg new file mode 100644 index 0000000..3728490 Binary files /dev/null and b/app/src/main/assets/local_Food/10.jpg differ diff --git a/app/src/main/assets/local_Food/11.jpg b/app/src/main/assets/local_Food/11.jpg new file mode 100644 index 0000000..bff21e1 Binary files /dev/null and b/app/src/main/assets/local_Food/11.jpg differ diff --git a/app/src/main/assets/local_Food/12.jpg b/app/src/main/assets/local_Food/12.jpg new file mode 100644 index 0000000..3966d4a Binary files /dev/null and b/app/src/main/assets/local_Food/12.jpg differ diff --git a/app/src/main/assets/local_Food/13.jpg b/app/src/main/assets/local_Food/13.jpg new file mode 100644 index 0000000..8200e12 Binary files /dev/null and b/app/src/main/assets/local_Food/13.jpg differ diff --git a/app/src/main/assets/local_Food/14.jpg b/app/src/main/assets/local_Food/14.jpg new file mode 100644 index 0000000..65ee383 Binary files /dev/null and b/app/src/main/assets/local_Food/14.jpg differ diff --git a/app/src/main/assets/local_Food/15.jpg b/app/src/main/assets/local_Food/15.jpg new file mode 100644 index 0000000..01df5e5 Binary files /dev/null and b/app/src/main/assets/local_Food/15.jpg differ diff --git a/app/src/main/assets/local_Food/16.jpg b/app/src/main/assets/local_Food/16.jpg new file mode 100644 index 0000000..ff679c1 Binary files /dev/null and b/app/src/main/assets/local_Food/16.jpg differ diff --git a/app/src/main/assets/local_Food/17.jpg b/app/src/main/assets/local_Food/17.jpg new file mode 100644 index 0000000..42fdf87 Binary files /dev/null and b/app/src/main/assets/local_Food/17.jpg differ diff --git a/app/src/main/assets/local_Food/18.jpg b/app/src/main/assets/local_Food/18.jpg new file mode 100644 index 0000000..06d300e Binary files /dev/null and b/app/src/main/assets/local_Food/18.jpg differ diff --git a/app/src/main/assets/local_Food/19.jpg b/app/src/main/assets/local_Food/19.jpg new file mode 100644 index 0000000..42aaa2c Binary files /dev/null and b/app/src/main/assets/local_Food/19.jpg differ diff --git a/app/src/main/assets/local_Food/2.jpg b/app/src/main/assets/local_Food/2.jpg new file mode 100644 index 0000000..14d9b25 Binary files /dev/null and b/app/src/main/assets/local_Food/2.jpg differ diff --git a/app/src/main/assets/local_Food/2.svg b/app/src/main/assets/local_Food/2.svg new file mode 100644 index 0000000..0dc8110 --- /dev/null +++ b/app/src/main/assets/local_Food/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/20.jpg b/app/src/main/assets/local_Food/20.jpg new file mode 100644 index 0000000..5dad84c Binary files /dev/null and b/app/src/main/assets/local_Food/20.jpg differ diff --git a/app/src/main/assets/local_Food/21.jpg b/app/src/main/assets/local_Food/21.jpg new file mode 100644 index 0000000..c019faa Binary files /dev/null and b/app/src/main/assets/local_Food/21.jpg differ diff --git a/app/src/main/assets/local_Food/22.jpg b/app/src/main/assets/local_Food/22.jpg new file mode 100644 index 0000000..28cdc4e Binary files /dev/null and b/app/src/main/assets/local_Food/22.jpg differ diff --git a/app/src/main/assets/local_Food/23.jpg b/app/src/main/assets/local_Food/23.jpg new file mode 100644 index 0000000..973a5c2 Binary files /dev/null and b/app/src/main/assets/local_Food/23.jpg differ diff --git a/app/src/main/assets/local_Food/24.jpg b/app/src/main/assets/local_Food/24.jpg new file mode 100644 index 0000000..3c36d8a Binary files /dev/null and b/app/src/main/assets/local_Food/24.jpg differ diff --git a/app/src/main/assets/local_Food/25.jpg b/app/src/main/assets/local_Food/25.jpg new file mode 100644 index 0000000..c7be496 Binary files /dev/null and b/app/src/main/assets/local_Food/25.jpg differ diff --git a/app/src/main/assets/local_Food/26.jpg b/app/src/main/assets/local_Food/26.jpg new file mode 100644 index 0000000..7229696 Binary files /dev/null and b/app/src/main/assets/local_Food/26.jpg differ diff --git a/app/src/main/assets/local_Food/27.jpg b/app/src/main/assets/local_Food/27.jpg new file mode 100644 index 0000000..f857542 Binary files /dev/null and b/app/src/main/assets/local_Food/27.jpg differ diff --git a/app/src/main/assets/local_Food/28.jpg b/app/src/main/assets/local_Food/28.jpg new file mode 100644 index 0000000..8cde6de Binary files /dev/null and b/app/src/main/assets/local_Food/28.jpg differ diff --git a/app/src/main/assets/local_Food/29.jpg b/app/src/main/assets/local_Food/29.jpg new file mode 100644 index 0000000..8affd30 Binary files /dev/null and b/app/src/main/assets/local_Food/29.jpg differ diff --git a/app/src/main/assets/local_Food/3.jpg b/app/src/main/assets/local_Food/3.jpg new file mode 100644 index 0000000..b1c3cfa Binary files /dev/null and b/app/src/main/assets/local_Food/3.jpg differ diff --git a/app/src/main/assets/local_Food/3.svg b/app/src/main/assets/local_Food/3.svg new file mode 100644 index 0000000..7a2be89 --- /dev/null +++ b/app/src/main/assets/local_Food/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/30.jpg b/app/src/main/assets/local_Food/30.jpg new file mode 100644 index 0000000..f71ce84 Binary files /dev/null and b/app/src/main/assets/local_Food/30.jpg differ diff --git a/app/src/main/assets/local_Food/31.jpg b/app/src/main/assets/local_Food/31.jpg new file mode 100644 index 0000000..a5d22ca Binary files /dev/null and b/app/src/main/assets/local_Food/31.jpg differ diff --git a/app/src/main/assets/local_Food/32.jpg b/app/src/main/assets/local_Food/32.jpg new file mode 100644 index 0000000..8513a5e Binary files /dev/null and b/app/src/main/assets/local_Food/32.jpg differ diff --git a/app/src/main/assets/local_Food/33.jpg b/app/src/main/assets/local_Food/33.jpg new file mode 100644 index 0000000..fcdcbcc Binary files /dev/null and b/app/src/main/assets/local_Food/33.jpg differ diff --git a/app/src/main/assets/local_Food/34.jpg b/app/src/main/assets/local_Food/34.jpg new file mode 100644 index 0000000..51bbf4b Binary files /dev/null and b/app/src/main/assets/local_Food/34.jpg differ diff --git a/app/src/main/assets/local_Food/35.jpg b/app/src/main/assets/local_Food/35.jpg new file mode 100644 index 0000000..e1067da Binary files /dev/null and b/app/src/main/assets/local_Food/35.jpg differ diff --git a/app/src/main/assets/local_Food/36.jpg b/app/src/main/assets/local_Food/36.jpg new file mode 100644 index 0000000..181a84a Binary files /dev/null and b/app/src/main/assets/local_Food/36.jpg differ diff --git a/app/src/main/assets/local_Food/37.jpg b/app/src/main/assets/local_Food/37.jpg new file mode 100644 index 0000000..d8ffb00 Binary files /dev/null and b/app/src/main/assets/local_Food/37.jpg differ diff --git a/app/src/main/assets/local_Food/38.jpg b/app/src/main/assets/local_Food/38.jpg new file mode 100644 index 0000000..abdba50 Binary files /dev/null and b/app/src/main/assets/local_Food/38.jpg differ diff --git a/app/src/main/assets/local_Food/4.jpg b/app/src/main/assets/local_Food/4.jpg new file mode 100644 index 0000000..8792f16 Binary files /dev/null and b/app/src/main/assets/local_Food/4.jpg differ diff --git a/app/src/main/assets/local_Food/4.svg b/app/src/main/assets/local_Food/4.svg new file mode 100644 index 0000000..93fd3ed --- /dev/null +++ b/app/src/main/assets/local_Food/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/5.jpg b/app/src/main/assets/local_Food/5.jpg new file mode 100644 index 0000000..89630aa Binary files /dev/null and b/app/src/main/assets/local_Food/5.jpg differ diff --git a/app/src/main/assets/local_Food/5.svg b/app/src/main/assets/local_Food/5.svg new file mode 100644 index 0000000..6ad410d --- /dev/null +++ b/app/src/main/assets/local_Food/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/6.jpg b/app/src/main/assets/local_Food/6.jpg new file mode 100644 index 0000000..7e6832e Binary files /dev/null and b/app/src/main/assets/local_Food/6.jpg differ diff --git a/app/src/main/assets/local_Food/6.svg b/app/src/main/assets/local_Food/6.svg new file mode 100644 index 0000000..2b35e16 --- /dev/null +++ b/app/src/main/assets/local_Food/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/7.jpg b/app/src/main/assets/local_Food/7.jpg new file mode 100644 index 0000000..f4d2afb Binary files /dev/null and b/app/src/main/assets/local_Food/7.jpg differ diff --git a/app/src/main/assets/local_Food/7.svg b/app/src/main/assets/local_Food/7.svg new file mode 100644 index 0000000..4a28d16 --- /dev/null +++ b/app/src/main/assets/local_Food/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Food/8.jpg b/app/src/main/assets/local_Food/8.jpg new file mode 100644 index 0000000..78f5ccf Binary files /dev/null and b/app/src/main/assets/local_Food/8.jpg differ diff --git a/app/src/main/assets/local_Food/9.jpg b/app/src/main/assets/local_Food/9.jpg new file mode 100644 index 0000000..4038bb5 Binary files /dev/null and b/app/src/main/assets/local_Food/9.jpg differ diff --git a/app/src/main/assets/local_Fruits/1.jpg b/app/src/main/assets/local_Fruits/1.jpg new file mode 100644 index 0000000..767c0b4 Binary files /dev/null and b/app/src/main/assets/local_Fruits/1.jpg differ diff --git a/app/src/main/assets/local_Fruits/10.jpg b/app/src/main/assets/local_Fruits/10.jpg new file mode 100644 index 0000000..95bdbca Binary files /dev/null and b/app/src/main/assets/local_Fruits/10.jpg differ diff --git a/app/src/main/assets/local_Fruits/11.jpg b/app/src/main/assets/local_Fruits/11.jpg new file mode 100644 index 0000000..b0bb89a Binary files /dev/null and b/app/src/main/assets/local_Fruits/11.jpg differ diff --git a/app/src/main/assets/local_Fruits/12.jpg b/app/src/main/assets/local_Fruits/12.jpg new file mode 100644 index 0000000..c1d9bad Binary files /dev/null and b/app/src/main/assets/local_Fruits/12.jpg differ diff --git a/app/src/main/assets/local_Fruits/13.jpg b/app/src/main/assets/local_Fruits/13.jpg new file mode 100644 index 0000000..f44fb86 Binary files /dev/null and b/app/src/main/assets/local_Fruits/13.jpg differ diff --git a/app/src/main/assets/local_Fruits/14.jpg b/app/src/main/assets/local_Fruits/14.jpg new file mode 100644 index 0000000..459a60c Binary files /dev/null and b/app/src/main/assets/local_Fruits/14.jpg differ diff --git a/app/src/main/assets/local_Fruits/15.jpg b/app/src/main/assets/local_Fruits/15.jpg new file mode 100644 index 0000000..a4e4abe Binary files /dev/null and b/app/src/main/assets/local_Fruits/15.jpg differ diff --git a/app/src/main/assets/local_Fruits/16.jpg b/app/src/main/assets/local_Fruits/16.jpg new file mode 100644 index 0000000..33a7a9a Binary files /dev/null and b/app/src/main/assets/local_Fruits/16.jpg differ diff --git a/app/src/main/assets/local_Fruits/17.jpg b/app/src/main/assets/local_Fruits/17.jpg new file mode 100644 index 0000000..c193b1e Binary files /dev/null and b/app/src/main/assets/local_Fruits/17.jpg differ diff --git a/app/src/main/assets/local_Fruits/18.jpg b/app/src/main/assets/local_Fruits/18.jpg new file mode 100644 index 0000000..f0ca248 Binary files /dev/null and b/app/src/main/assets/local_Fruits/18.jpg differ diff --git a/app/src/main/assets/local_Fruits/19.jpg b/app/src/main/assets/local_Fruits/19.jpg new file mode 100644 index 0000000..d93dfde Binary files /dev/null and b/app/src/main/assets/local_Fruits/19.jpg differ diff --git a/app/src/main/assets/local_Fruits/2.jpg b/app/src/main/assets/local_Fruits/2.jpg new file mode 100644 index 0000000..b32f9f5 Binary files /dev/null and b/app/src/main/assets/local_Fruits/2.jpg differ diff --git a/app/src/main/assets/local_Fruits/20.jpg b/app/src/main/assets/local_Fruits/20.jpg new file mode 100644 index 0000000..cc3fe93 Binary files /dev/null and b/app/src/main/assets/local_Fruits/20.jpg differ diff --git a/app/src/main/assets/local_Fruits/21.jpg b/app/src/main/assets/local_Fruits/21.jpg new file mode 100644 index 0000000..c1813eb Binary files /dev/null and b/app/src/main/assets/local_Fruits/21.jpg differ diff --git a/app/src/main/assets/local_Fruits/22.jpg b/app/src/main/assets/local_Fruits/22.jpg new file mode 100644 index 0000000..47387e1 Binary files /dev/null and b/app/src/main/assets/local_Fruits/22.jpg differ diff --git a/app/src/main/assets/local_Fruits/23.jpg b/app/src/main/assets/local_Fruits/23.jpg new file mode 100644 index 0000000..7f173ec Binary files /dev/null and b/app/src/main/assets/local_Fruits/23.jpg differ diff --git a/app/src/main/assets/local_Fruits/24.jpg b/app/src/main/assets/local_Fruits/24.jpg new file mode 100644 index 0000000..a7ae235 Binary files /dev/null and b/app/src/main/assets/local_Fruits/24.jpg differ diff --git a/app/src/main/assets/local_Fruits/25.jpg b/app/src/main/assets/local_Fruits/25.jpg new file mode 100644 index 0000000..dd664bb Binary files /dev/null and b/app/src/main/assets/local_Fruits/25.jpg differ diff --git a/app/src/main/assets/local_Fruits/26.jpg b/app/src/main/assets/local_Fruits/26.jpg new file mode 100644 index 0000000..c8e4723 Binary files /dev/null and b/app/src/main/assets/local_Fruits/26.jpg differ diff --git a/app/src/main/assets/local_Fruits/27.jpg b/app/src/main/assets/local_Fruits/27.jpg new file mode 100644 index 0000000..816337d Binary files /dev/null and b/app/src/main/assets/local_Fruits/27.jpg differ diff --git a/app/src/main/assets/local_Fruits/28.jpg b/app/src/main/assets/local_Fruits/28.jpg new file mode 100644 index 0000000..29973d5 Binary files /dev/null and b/app/src/main/assets/local_Fruits/28.jpg differ diff --git a/app/src/main/assets/local_Fruits/29.jpg b/app/src/main/assets/local_Fruits/29.jpg new file mode 100644 index 0000000..4f0750f Binary files /dev/null and b/app/src/main/assets/local_Fruits/29.jpg differ diff --git a/app/src/main/assets/local_Fruits/3.jpg b/app/src/main/assets/local_Fruits/3.jpg new file mode 100644 index 0000000..f57893b Binary files /dev/null and b/app/src/main/assets/local_Fruits/3.jpg differ diff --git a/app/src/main/assets/local_Fruits/30.jpg b/app/src/main/assets/local_Fruits/30.jpg new file mode 100644 index 0000000..cfd117a Binary files /dev/null and b/app/src/main/assets/local_Fruits/30.jpg differ diff --git a/app/src/main/assets/local_Fruits/31.jpg b/app/src/main/assets/local_Fruits/31.jpg new file mode 100644 index 0000000..b59a7c5 Binary files /dev/null and b/app/src/main/assets/local_Fruits/31.jpg differ diff --git a/app/src/main/assets/local_Fruits/32.jpg b/app/src/main/assets/local_Fruits/32.jpg new file mode 100644 index 0000000..8f70790 Binary files /dev/null and b/app/src/main/assets/local_Fruits/32.jpg differ diff --git a/app/src/main/assets/local_Fruits/33.jpg b/app/src/main/assets/local_Fruits/33.jpg new file mode 100644 index 0000000..373b142 Binary files /dev/null and b/app/src/main/assets/local_Fruits/33.jpg differ diff --git a/app/src/main/assets/local_Fruits/34.jpg b/app/src/main/assets/local_Fruits/34.jpg new file mode 100644 index 0000000..c5beb91 Binary files /dev/null and b/app/src/main/assets/local_Fruits/34.jpg differ diff --git a/app/src/main/assets/local_Fruits/35.jpg b/app/src/main/assets/local_Fruits/35.jpg new file mode 100644 index 0000000..79cd667 Binary files /dev/null and b/app/src/main/assets/local_Fruits/35.jpg differ diff --git a/app/src/main/assets/local_Fruits/36.jpg b/app/src/main/assets/local_Fruits/36.jpg new file mode 100644 index 0000000..c0cb185 Binary files /dev/null and b/app/src/main/assets/local_Fruits/36.jpg differ diff --git a/app/src/main/assets/local_Fruits/37.jpg b/app/src/main/assets/local_Fruits/37.jpg new file mode 100644 index 0000000..ba1b245 Binary files /dev/null and b/app/src/main/assets/local_Fruits/37.jpg differ diff --git a/app/src/main/assets/local_Fruits/38.jpg b/app/src/main/assets/local_Fruits/38.jpg new file mode 100644 index 0000000..c7eccb8 Binary files /dev/null and b/app/src/main/assets/local_Fruits/38.jpg differ diff --git a/app/src/main/assets/local_Fruits/39.jpg b/app/src/main/assets/local_Fruits/39.jpg new file mode 100644 index 0000000..bc95aaa Binary files /dev/null and b/app/src/main/assets/local_Fruits/39.jpg differ diff --git a/app/src/main/assets/local_Fruits/4.jpg b/app/src/main/assets/local_Fruits/4.jpg new file mode 100644 index 0000000..2d7465d Binary files /dev/null and b/app/src/main/assets/local_Fruits/4.jpg differ diff --git a/app/src/main/assets/local_Fruits/5.jpg b/app/src/main/assets/local_Fruits/5.jpg new file mode 100644 index 0000000..8ed633f Binary files /dev/null and b/app/src/main/assets/local_Fruits/5.jpg differ diff --git a/app/src/main/assets/local_Fruits/6.jpg b/app/src/main/assets/local_Fruits/6.jpg new file mode 100644 index 0000000..06ce330 Binary files /dev/null and b/app/src/main/assets/local_Fruits/6.jpg differ diff --git a/app/src/main/assets/local_Fruits/7.jpg b/app/src/main/assets/local_Fruits/7.jpg new file mode 100644 index 0000000..6153618 Binary files /dev/null and b/app/src/main/assets/local_Fruits/7.jpg differ diff --git a/app/src/main/assets/local_Fruits/8.jpg b/app/src/main/assets/local_Fruits/8.jpg new file mode 100644 index 0000000..e333f0f Binary files /dev/null and b/app/src/main/assets/local_Fruits/8.jpg differ diff --git a/app/src/main/assets/local_Fruits/9.jpg b/app/src/main/assets/local_Fruits/9.jpg new file mode 100644 index 0000000..d549d15 Binary files /dev/null and b/app/src/main/assets/local_Fruits/9.jpg differ diff --git a/app/src/main/assets/local_General/1.jpg b/app/src/main/assets/local_General/1.jpg new file mode 100644 index 0000000..eb7c14b Binary files /dev/null and b/app/src/main/assets/local_General/1.jpg differ diff --git a/app/src/main/assets/local_General/10.jpg b/app/src/main/assets/local_General/10.jpg new file mode 100644 index 0000000..eacd298 Binary files /dev/null and b/app/src/main/assets/local_General/10.jpg differ diff --git a/app/src/main/assets/local_General/11.jpg b/app/src/main/assets/local_General/11.jpg new file mode 100644 index 0000000..273a876 Binary files /dev/null and b/app/src/main/assets/local_General/11.jpg differ diff --git a/app/src/main/assets/local_General/12.jpg b/app/src/main/assets/local_General/12.jpg new file mode 100644 index 0000000..5d786c5 Binary files /dev/null and b/app/src/main/assets/local_General/12.jpg differ diff --git a/app/src/main/assets/local_General/13.jpg b/app/src/main/assets/local_General/13.jpg new file mode 100644 index 0000000..486441a Binary files /dev/null and b/app/src/main/assets/local_General/13.jpg differ diff --git a/app/src/main/assets/local_General/14.jpg b/app/src/main/assets/local_General/14.jpg new file mode 100644 index 0000000..c36516b Binary files /dev/null and b/app/src/main/assets/local_General/14.jpg differ diff --git a/app/src/main/assets/local_General/15.jpg b/app/src/main/assets/local_General/15.jpg new file mode 100644 index 0000000..9d19fdf Binary files /dev/null and b/app/src/main/assets/local_General/15.jpg differ diff --git a/app/src/main/assets/local_General/2.jpg b/app/src/main/assets/local_General/2.jpg new file mode 100644 index 0000000..090d5d5 Binary files /dev/null and b/app/src/main/assets/local_General/2.jpg differ diff --git a/app/src/main/assets/local_General/3.jpg b/app/src/main/assets/local_General/3.jpg new file mode 100644 index 0000000..a17f1b2 Binary files /dev/null and b/app/src/main/assets/local_General/3.jpg differ diff --git a/app/src/main/assets/local_General/4.jpg b/app/src/main/assets/local_General/4.jpg new file mode 100644 index 0000000..2f4d8a2 Binary files /dev/null and b/app/src/main/assets/local_General/4.jpg differ diff --git a/app/src/main/assets/local_General/5.jpg b/app/src/main/assets/local_General/5.jpg new file mode 100644 index 0000000..8ac1cdb Binary files /dev/null and b/app/src/main/assets/local_General/5.jpg differ diff --git a/app/src/main/assets/local_General/6.jpg b/app/src/main/assets/local_General/6.jpg new file mode 100644 index 0000000..95cc582 Binary files /dev/null and b/app/src/main/assets/local_General/6.jpg differ diff --git a/app/src/main/assets/local_General/7.jpg b/app/src/main/assets/local_General/7.jpg new file mode 100644 index 0000000..91cbcfd Binary files /dev/null and b/app/src/main/assets/local_General/7.jpg differ diff --git a/app/src/main/assets/local_General/8.jpg b/app/src/main/assets/local_General/8.jpg new file mode 100644 index 0000000..af8da73 Binary files /dev/null and b/app/src/main/assets/local_General/8.jpg differ diff --git a/app/src/main/assets/local_General/9.jpg b/app/src/main/assets/local_General/9.jpg new file mode 100644 index 0000000..d5cfb72 Binary files /dev/null and b/app/src/main/assets/local_General/9.jpg differ diff --git a/app/src/main/assets/local_Mehndi/1.jpg b/app/src/main/assets/local_Mehndi/1.jpg new file mode 100644 index 0000000..8dd8843 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/1.jpg differ diff --git a/app/src/main/assets/local_Mehndi/10.jpg b/app/src/main/assets/local_Mehndi/10.jpg new file mode 100644 index 0000000..2432a79 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/10.jpg differ diff --git a/app/src/main/assets/local_Mehndi/11.jpg b/app/src/main/assets/local_Mehndi/11.jpg new file mode 100644 index 0000000..aba85bf Binary files /dev/null and b/app/src/main/assets/local_Mehndi/11.jpg differ diff --git a/app/src/main/assets/local_Mehndi/12.jpg b/app/src/main/assets/local_Mehndi/12.jpg new file mode 100644 index 0000000..f71ae22 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/12.jpg differ diff --git a/app/src/main/assets/local_Mehndi/2.jpg b/app/src/main/assets/local_Mehndi/2.jpg new file mode 100644 index 0000000..0f56bf7 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/2.jpg differ diff --git a/app/src/main/assets/local_Mehndi/3.jpg b/app/src/main/assets/local_Mehndi/3.jpg new file mode 100644 index 0000000..2bc7b69 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/3.jpg differ diff --git a/app/src/main/assets/local_Mehndi/4.jpg b/app/src/main/assets/local_Mehndi/4.jpg new file mode 100644 index 0000000..6fc3f70 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/4.jpg differ diff --git a/app/src/main/assets/local_Mehndi/5.jpg b/app/src/main/assets/local_Mehndi/5.jpg new file mode 100644 index 0000000..dccb5cf Binary files /dev/null and b/app/src/main/assets/local_Mehndi/5.jpg differ diff --git a/app/src/main/assets/local_Mehndi/6.jpg b/app/src/main/assets/local_Mehndi/6.jpg new file mode 100644 index 0000000..4e052dd Binary files /dev/null and b/app/src/main/assets/local_Mehndi/6.jpg differ diff --git a/app/src/main/assets/local_Mehndi/7.jpg b/app/src/main/assets/local_Mehndi/7.jpg new file mode 100644 index 0000000..021e789 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/7.jpg differ diff --git a/app/src/main/assets/local_Mehndi/8.jpg b/app/src/main/assets/local_Mehndi/8.jpg new file mode 100644 index 0000000..dd45b50 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/8.jpg differ diff --git a/app/src/main/assets/local_Mehndi/9.jpg b/app/src/main/assets/local_Mehndi/9.jpg new file mode 100644 index 0000000..6ff2300 Binary files /dev/null and b/app/src/main/assets/local_Mehndi/9.jpg differ diff --git a/app/src/main/assets/local_Nature/1.jpg b/app/src/main/assets/local_Nature/1.jpg new file mode 100644 index 0000000..22c00e3 Binary files /dev/null and b/app/src/main/assets/local_Nature/1.jpg differ diff --git a/app/src/main/assets/local_Nature/1.svg b/app/src/main/assets/local_Nature/1.svg new file mode 100644 index 0000000..4d49b7c --- /dev/null +++ b/app/src/main/assets/local_Nature/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Nature/10.jpg b/app/src/main/assets/local_Nature/10.jpg new file mode 100644 index 0000000..65aab09 Binary files /dev/null and b/app/src/main/assets/local_Nature/10.jpg differ diff --git a/app/src/main/assets/local_Nature/11.jpg b/app/src/main/assets/local_Nature/11.jpg new file mode 100644 index 0000000..23c6653 Binary files /dev/null and b/app/src/main/assets/local_Nature/11.jpg differ diff --git a/app/src/main/assets/local_Nature/12.jpg b/app/src/main/assets/local_Nature/12.jpg new file mode 100644 index 0000000..36e1835 Binary files /dev/null and b/app/src/main/assets/local_Nature/12.jpg differ diff --git a/app/src/main/assets/local_Nature/13.jpg b/app/src/main/assets/local_Nature/13.jpg new file mode 100644 index 0000000..5816b61 Binary files /dev/null and b/app/src/main/assets/local_Nature/13.jpg differ diff --git a/app/src/main/assets/local_Nature/14.jpg b/app/src/main/assets/local_Nature/14.jpg new file mode 100644 index 0000000..b4e5dc6 Binary files /dev/null and b/app/src/main/assets/local_Nature/14.jpg differ diff --git a/app/src/main/assets/local_Nature/15.jpg b/app/src/main/assets/local_Nature/15.jpg new file mode 100644 index 0000000..5424ac4 Binary files /dev/null and b/app/src/main/assets/local_Nature/15.jpg differ diff --git a/app/src/main/assets/local_Nature/16.jpg b/app/src/main/assets/local_Nature/16.jpg new file mode 100644 index 0000000..fd00791 Binary files /dev/null and b/app/src/main/assets/local_Nature/16.jpg differ diff --git a/app/src/main/assets/local_Nature/17.jpg b/app/src/main/assets/local_Nature/17.jpg new file mode 100644 index 0000000..38410e8 Binary files /dev/null and b/app/src/main/assets/local_Nature/17.jpg differ diff --git a/app/src/main/assets/local_Nature/18.jpg b/app/src/main/assets/local_Nature/18.jpg new file mode 100644 index 0000000..5ae5028 Binary files /dev/null and b/app/src/main/assets/local_Nature/18.jpg differ diff --git a/app/src/main/assets/local_Nature/19.jpg b/app/src/main/assets/local_Nature/19.jpg new file mode 100644 index 0000000..e49b4f1 Binary files /dev/null and b/app/src/main/assets/local_Nature/19.jpg differ diff --git a/app/src/main/assets/local_Nature/2.jpg b/app/src/main/assets/local_Nature/2.jpg new file mode 100644 index 0000000..3b5ec4c Binary files /dev/null and b/app/src/main/assets/local_Nature/2.jpg differ diff --git a/app/src/main/assets/local_Nature/2.svg b/app/src/main/assets/local_Nature/2.svg new file mode 100644 index 0000000..6e077c5 --- /dev/null +++ b/app/src/main/assets/local_Nature/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Nature/20.jpg b/app/src/main/assets/local_Nature/20.jpg new file mode 100644 index 0000000..cc94724 Binary files /dev/null and b/app/src/main/assets/local_Nature/20.jpg differ diff --git a/app/src/main/assets/local_Nature/21.jpg b/app/src/main/assets/local_Nature/21.jpg new file mode 100644 index 0000000..dfa6c09 Binary files /dev/null and b/app/src/main/assets/local_Nature/21.jpg differ diff --git a/app/src/main/assets/local_Nature/22.jpg b/app/src/main/assets/local_Nature/22.jpg new file mode 100644 index 0000000..c05e638 Binary files /dev/null and b/app/src/main/assets/local_Nature/22.jpg differ diff --git a/app/src/main/assets/local_Nature/23.jpg b/app/src/main/assets/local_Nature/23.jpg new file mode 100644 index 0000000..6f932ec Binary files /dev/null and b/app/src/main/assets/local_Nature/23.jpg differ diff --git a/app/src/main/assets/local_Nature/3.jpg b/app/src/main/assets/local_Nature/3.jpg new file mode 100644 index 0000000..1423546 Binary files /dev/null and b/app/src/main/assets/local_Nature/3.jpg differ diff --git a/app/src/main/assets/local_Nature/3.svg b/app/src/main/assets/local_Nature/3.svg new file mode 100644 index 0000000..72cab9d --- /dev/null +++ b/app/src/main/assets/local_Nature/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Nature/4.jpg b/app/src/main/assets/local_Nature/4.jpg new file mode 100644 index 0000000..5499510 Binary files /dev/null and b/app/src/main/assets/local_Nature/4.jpg differ diff --git a/app/src/main/assets/local_Nature/4.svg b/app/src/main/assets/local_Nature/4.svg new file mode 100644 index 0000000..66eb006 --- /dev/null +++ b/app/src/main/assets/local_Nature/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Nature/5.jpg b/app/src/main/assets/local_Nature/5.jpg new file mode 100644 index 0000000..434261a Binary files /dev/null and b/app/src/main/assets/local_Nature/5.jpg differ diff --git a/app/src/main/assets/local_Nature/5.svg b/app/src/main/assets/local_Nature/5.svg new file mode 100644 index 0000000..a8956ee --- /dev/null +++ b/app/src/main/assets/local_Nature/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Nature/6.jpg b/app/src/main/assets/local_Nature/6.jpg new file mode 100644 index 0000000..f50166b Binary files /dev/null and b/app/src/main/assets/local_Nature/6.jpg differ diff --git a/app/src/main/assets/local_Nature/6.svg b/app/src/main/assets/local_Nature/6.svg new file mode 100644 index 0000000..eece789 --- /dev/null +++ b/app/src/main/assets/local_Nature/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Nature/7.jpg b/app/src/main/assets/local_Nature/7.jpg new file mode 100644 index 0000000..96e178c Binary files /dev/null and b/app/src/main/assets/local_Nature/7.jpg differ diff --git a/app/src/main/assets/local_Nature/8.jpg b/app/src/main/assets/local_Nature/8.jpg new file mode 100644 index 0000000..c68f4f1 Binary files /dev/null and b/app/src/main/assets/local_Nature/8.jpg differ diff --git a/app/src/main/assets/local_Nature/9.jpg b/app/src/main/assets/local_Nature/9.jpg new file mode 100644 index 0000000..6b8ccb4 Binary files /dev/null and b/app/src/main/assets/local_Nature/9.jpg differ diff --git a/app/src/main/assets/local_One Line Art/1.svg b/app/src/main/assets/local_One Line Art/1.svg new file mode 100644 index 0000000..5465df3 --- /dev/null +++ b/app/src/main/assets/local_One Line Art/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_One Line Art/2.svg b/app/src/main/assets/local_One Line Art/2.svg new file mode 100644 index 0000000..8d8c581 --- /dev/null +++ b/app/src/main/assets/local_One Line Art/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_One Line Art/3.svg b/app/src/main/assets/local_One Line Art/3.svg new file mode 100644 index 0000000..4ec8394 --- /dev/null +++ b/app/src/main/assets/local_One Line Art/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_One Line Art/4.svg b/app/src/main/assets/local_One Line Art/4.svg new file mode 100644 index 0000000..34fc71c --- /dev/null +++ b/app/src/main/assets/local_One Line Art/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_One Line Art/5.svg b/app/src/main/assets/local_One Line Art/5.svg new file mode 100644 index 0000000..715b277 --- /dev/null +++ b/app/src/main/assets/local_One Line Art/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_One Line Art/6.svg b/app/src/main/assets/local_One Line Art/6.svg new file mode 100644 index 0000000..efaee39 --- /dev/null +++ b/app/src/main/assets/local_One Line Art/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/1.svg b/app/src/main/assets/local_People/1.svg new file mode 100644 index 0000000..d589f97 --- /dev/null +++ b/app/src/main/assets/local_People/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/10.jpg b/app/src/main/assets/local_People/10.jpg new file mode 100644 index 0000000..450fa6e Binary files /dev/null and b/app/src/main/assets/local_People/10.jpg differ diff --git a/app/src/main/assets/local_People/12.jpg b/app/src/main/assets/local_People/12.jpg new file mode 100644 index 0000000..86ef206 Binary files /dev/null and b/app/src/main/assets/local_People/12.jpg differ diff --git a/app/src/main/assets/local_People/16.jpg b/app/src/main/assets/local_People/16.jpg new file mode 100644 index 0000000..18377bd Binary files /dev/null and b/app/src/main/assets/local_People/16.jpg differ diff --git a/app/src/main/assets/local_People/2.jpg b/app/src/main/assets/local_People/2.jpg new file mode 100644 index 0000000..8baf95b Binary files /dev/null and b/app/src/main/assets/local_People/2.jpg differ diff --git a/app/src/main/assets/local_People/2.svg b/app/src/main/assets/local_People/2.svg new file mode 100644 index 0000000..eaec686 --- /dev/null +++ b/app/src/main/assets/local_People/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/3.jpg b/app/src/main/assets/local_People/3.jpg new file mode 100644 index 0000000..e099902 Binary files /dev/null and b/app/src/main/assets/local_People/3.jpg differ diff --git a/app/src/main/assets/local_People/3.svg b/app/src/main/assets/local_People/3.svg new file mode 100644 index 0000000..264f9d4 --- /dev/null +++ b/app/src/main/assets/local_People/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/4.jpg b/app/src/main/assets/local_People/4.jpg new file mode 100644 index 0000000..a4c69ba Binary files /dev/null and b/app/src/main/assets/local_People/4.jpg differ diff --git a/app/src/main/assets/local_People/4.svg b/app/src/main/assets/local_People/4.svg new file mode 100644 index 0000000..bd9c104 --- /dev/null +++ b/app/src/main/assets/local_People/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/5.jpg b/app/src/main/assets/local_People/5.jpg new file mode 100644 index 0000000..b32485d Binary files /dev/null and b/app/src/main/assets/local_People/5.jpg differ diff --git a/app/src/main/assets/local_People/5.svg b/app/src/main/assets/local_People/5.svg new file mode 100644 index 0000000..549b5e2 --- /dev/null +++ b/app/src/main/assets/local_People/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/6.jpg b/app/src/main/assets/local_People/6.jpg new file mode 100644 index 0000000..0e0a7ef Binary files /dev/null and b/app/src/main/assets/local_People/6.jpg differ diff --git a/app/src/main/assets/local_People/6.svg b/app/src/main/assets/local_People/6.svg new file mode 100644 index 0000000..6c5e194 --- /dev/null +++ b/app/src/main/assets/local_People/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/7.jpg b/app/src/main/assets/local_People/7.jpg new file mode 100644 index 0000000..ecd8dc0 Binary files /dev/null and b/app/src/main/assets/local_People/7.jpg differ diff --git a/app/src/main/assets/local_People/7.svg b/app/src/main/assets/local_People/7.svg new file mode 100644 index 0000000..38c04bb --- /dev/null +++ b/app/src/main/assets/local_People/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_People/8.jpg b/app/src/main/assets/local_People/8.jpg new file mode 100644 index 0000000..f6ea587 Binary files /dev/null and b/app/src/main/assets/local_People/8.jpg differ diff --git a/app/src/main/assets/local_People/9.jpg b/app/src/main/assets/local_People/9.jpg new file mode 100644 index 0000000..da4c151 Binary files /dev/null and b/app/src/main/assets/local_People/9.jpg differ diff --git a/app/src/main/assets/local_People/9.svg b/app/src/main/assets/local_People/9.svg new file mode 100644 index 0000000..10f22da --- /dev/null +++ b/app/src/main/assets/local_People/9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Rangoli/1.jpg b/app/src/main/assets/local_Rangoli/1.jpg new file mode 100644 index 0000000..e628714 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/1.jpg differ diff --git a/app/src/main/assets/local_Rangoli/10.jpg b/app/src/main/assets/local_Rangoli/10.jpg new file mode 100644 index 0000000..f6e9d09 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/10.jpg differ diff --git a/app/src/main/assets/local_Rangoli/13.jpg b/app/src/main/assets/local_Rangoli/13.jpg new file mode 100644 index 0000000..9741d57 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/13.jpg differ diff --git a/app/src/main/assets/local_Rangoli/14.jpg b/app/src/main/assets/local_Rangoli/14.jpg new file mode 100644 index 0000000..3ca4970 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/14.jpg differ diff --git a/app/src/main/assets/local_Rangoli/15.jpg b/app/src/main/assets/local_Rangoli/15.jpg new file mode 100644 index 0000000..98abac3 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/15.jpg differ diff --git a/app/src/main/assets/local_Rangoli/16.jpg b/app/src/main/assets/local_Rangoli/16.jpg new file mode 100644 index 0000000..150dfdc Binary files /dev/null and b/app/src/main/assets/local_Rangoli/16.jpg differ diff --git a/app/src/main/assets/local_Rangoli/17.jpg b/app/src/main/assets/local_Rangoli/17.jpg new file mode 100644 index 0000000..4127115 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/17.jpg differ diff --git a/app/src/main/assets/local_Rangoli/18.jpg b/app/src/main/assets/local_Rangoli/18.jpg new file mode 100644 index 0000000..6ae96e9 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/18.jpg differ diff --git a/app/src/main/assets/local_Rangoli/19.jpg b/app/src/main/assets/local_Rangoli/19.jpg new file mode 100644 index 0000000..ffcbd6a Binary files /dev/null and b/app/src/main/assets/local_Rangoli/19.jpg differ diff --git a/app/src/main/assets/local_Rangoli/2.jpg b/app/src/main/assets/local_Rangoli/2.jpg new file mode 100644 index 0000000..7329109 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/2.jpg differ diff --git a/app/src/main/assets/local_Rangoli/20.jpg b/app/src/main/assets/local_Rangoli/20.jpg new file mode 100644 index 0000000..b7be138 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/20.jpg differ diff --git a/app/src/main/assets/local_Rangoli/21.jpg b/app/src/main/assets/local_Rangoli/21.jpg new file mode 100644 index 0000000..eaa5fdf Binary files /dev/null and b/app/src/main/assets/local_Rangoli/21.jpg differ diff --git a/app/src/main/assets/local_Rangoli/22.jpg b/app/src/main/assets/local_Rangoli/22.jpg new file mode 100644 index 0000000..28aca48 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/22.jpg differ diff --git a/app/src/main/assets/local_Rangoli/23.jpg b/app/src/main/assets/local_Rangoli/23.jpg new file mode 100644 index 0000000..057d2d4 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/23.jpg differ diff --git a/app/src/main/assets/local_Rangoli/24.jpg b/app/src/main/assets/local_Rangoli/24.jpg new file mode 100644 index 0000000..e933061 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/24.jpg differ diff --git a/app/src/main/assets/local_Rangoli/25.jpg b/app/src/main/assets/local_Rangoli/25.jpg new file mode 100644 index 0000000..569a74c Binary files /dev/null and b/app/src/main/assets/local_Rangoli/25.jpg differ diff --git a/app/src/main/assets/local_Rangoli/3.jpg b/app/src/main/assets/local_Rangoli/3.jpg new file mode 100644 index 0000000..569342c Binary files /dev/null and b/app/src/main/assets/local_Rangoli/3.jpg differ diff --git a/app/src/main/assets/local_Rangoli/4.jpg b/app/src/main/assets/local_Rangoli/4.jpg new file mode 100644 index 0000000..7c5d0de Binary files /dev/null and b/app/src/main/assets/local_Rangoli/4.jpg differ diff --git a/app/src/main/assets/local_Rangoli/5.jpg b/app/src/main/assets/local_Rangoli/5.jpg new file mode 100644 index 0000000..5a3228f Binary files /dev/null and b/app/src/main/assets/local_Rangoli/5.jpg differ diff --git a/app/src/main/assets/local_Rangoli/6.jpg b/app/src/main/assets/local_Rangoli/6.jpg new file mode 100644 index 0000000..270f078 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/6.jpg differ diff --git a/app/src/main/assets/local_Rangoli/7.jpg b/app/src/main/assets/local_Rangoli/7.jpg new file mode 100644 index 0000000..241beac Binary files /dev/null and b/app/src/main/assets/local_Rangoli/7.jpg differ diff --git a/app/src/main/assets/local_Rangoli/8.jpg b/app/src/main/assets/local_Rangoli/8.jpg new file mode 100644 index 0000000..c62e0d7 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/8.jpg differ diff --git a/app/src/main/assets/local_Rangoli/9.jpg b/app/src/main/assets/local_Rangoli/9.jpg new file mode 100644 index 0000000..bcd14a7 Binary files /dev/null and b/app/src/main/assets/local_Rangoli/9.jpg differ diff --git a/app/src/main/assets/local_Space/1.svg b/app/src/main/assets/local_Space/1.svg new file mode 100644 index 0000000..4c6168b --- /dev/null +++ b/app/src/main/assets/local_Space/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/2.svg b/app/src/main/assets/local_Space/2.svg new file mode 100644 index 0000000..8fd9091 --- /dev/null +++ b/app/src/main/assets/local_Space/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/3.svg b/app/src/main/assets/local_Space/3.svg new file mode 100644 index 0000000..5e3618d --- /dev/null +++ b/app/src/main/assets/local_Space/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/4.svg b/app/src/main/assets/local_Space/4.svg new file mode 100644 index 0000000..48c98f8 --- /dev/null +++ b/app/src/main/assets/local_Space/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/5.svg b/app/src/main/assets/local_Space/5.svg new file mode 100644 index 0000000..ab2ab9d --- /dev/null +++ b/app/src/main/assets/local_Space/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/6.svg b/app/src/main/assets/local_Space/6.svg new file mode 100644 index 0000000..5347313 --- /dev/null +++ b/app/src/main/assets/local_Space/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/7.svg b/app/src/main/assets/local_Space/7.svg new file mode 100644 index 0000000..8d41686 --- /dev/null +++ b/app/src/main/assets/local_Space/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/8.svg b/app/src/main/assets/local_Space/8.svg new file mode 100644 index 0000000..f67e6dd --- /dev/null +++ b/app/src/main/assets/local_Space/8.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Space/9.svg b/app/src/main/assets/local_Space/9.svg new file mode 100644 index 0000000..2c525a9 --- /dev/null +++ b/app/src/main/assets/local_Space/9.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Sports/1.jpg b/app/src/main/assets/local_Sports/1.jpg new file mode 100644 index 0000000..cd1cb09 Binary files /dev/null and b/app/src/main/assets/local_Sports/1.jpg differ diff --git a/app/src/main/assets/local_Sports/10.jpg b/app/src/main/assets/local_Sports/10.jpg new file mode 100644 index 0000000..2ec81a5 Binary files /dev/null and b/app/src/main/assets/local_Sports/10.jpg differ diff --git a/app/src/main/assets/local_Sports/11.jpg b/app/src/main/assets/local_Sports/11.jpg new file mode 100644 index 0000000..f00ecb5 Binary files /dev/null and b/app/src/main/assets/local_Sports/11.jpg differ diff --git a/app/src/main/assets/local_Sports/12.jpg b/app/src/main/assets/local_Sports/12.jpg new file mode 100644 index 0000000..b004929 Binary files /dev/null and b/app/src/main/assets/local_Sports/12.jpg differ diff --git a/app/src/main/assets/local_Sports/13.jpg b/app/src/main/assets/local_Sports/13.jpg new file mode 100644 index 0000000..73fa886 Binary files /dev/null and b/app/src/main/assets/local_Sports/13.jpg differ diff --git a/app/src/main/assets/local_Sports/14.jpg b/app/src/main/assets/local_Sports/14.jpg new file mode 100644 index 0000000..3d9069e Binary files /dev/null and b/app/src/main/assets/local_Sports/14.jpg differ diff --git a/app/src/main/assets/local_Sports/15.jpg b/app/src/main/assets/local_Sports/15.jpg new file mode 100644 index 0000000..a090c83 Binary files /dev/null and b/app/src/main/assets/local_Sports/15.jpg differ diff --git a/app/src/main/assets/local_Sports/16.jpg b/app/src/main/assets/local_Sports/16.jpg new file mode 100644 index 0000000..185d6e3 Binary files /dev/null and b/app/src/main/assets/local_Sports/16.jpg differ diff --git a/app/src/main/assets/local_Sports/17.jpg b/app/src/main/assets/local_Sports/17.jpg new file mode 100644 index 0000000..b8193fa Binary files /dev/null and b/app/src/main/assets/local_Sports/17.jpg differ diff --git a/app/src/main/assets/local_Sports/18.jpg b/app/src/main/assets/local_Sports/18.jpg new file mode 100644 index 0000000..ba4fcea Binary files /dev/null and b/app/src/main/assets/local_Sports/18.jpg differ diff --git a/app/src/main/assets/local_Sports/19.jpg b/app/src/main/assets/local_Sports/19.jpg new file mode 100644 index 0000000..617c2af Binary files /dev/null and b/app/src/main/assets/local_Sports/19.jpg differ diff --git a/app/src/main/assets/local_Sports/2.jpg b/app/src/main/assets/local_Sports/2.jpg new file mode 100644 index 0000000..59890e5 Binary files /dev/null and b/app/src/main/assets/local_Sports/2.jpg differ diff --git a/app/src/main/assets/local_Sports/20.jpg b/app/src/main/assets/local_Sports/20.jpg new file mode 100644 index 0000000..4032ff4 Binary files /dev/null and b/app/src/main/assets/local_Sports/20.jpg differ diff --git a/app/src/main/assets/local_Sports/21.jpg b/app/src/main/assets/local_Sports/21.jpg new file mode 100644 index 0000000..23979ba Binary files /dev/null and b/app/src/main/assets/local_Sports/21.jpg differ diff --git a/app/src/main/assets/local_Sports/22.jpg b/app/src/main/assets/local_Sports/22.jpg new file mode 100644 index 0000000..c61e91e Binary files /dev/null and b/app/src/main/assets/local_Sports/22.jpg differ diff --git a/app/src/main/assets/local_Sports/23.jpg b/app/src/main/assets/local_Sports/23.jpg new file mode 100644 index 0000000..7bf0806 Binary files /dev/null and b/app/src/main/assets/local_Sports/23.jpg differ diff --git a/app/src/main/assets/local_Sports/24.jpg b/app/src/main/assets/local_Sports/24.jpg new file mode 100644 index 0000000..23cbc17 Binary files /dev/null and b/app/src/main/assets/local_Sports/24.jpg differ diff --git a/app/src/main/assets/local_Sports/25.jpg b/app/src/main/assets/local_Sports/25.jpg new file mode 100644 index 0000000..06d992e Binary files /dev/null and b/app/src/main/assets/local_Sports/25.jpg differ diff --git a/app/src/main/assets/local_Sports/26.jpg b/app/src/main/assets/local_Sports/26.jpg new file mode 100644 index 0000000..26af61e Binary files /dev/null and b/app/src/main/assets/local_Sports/26.jpg differ diff --git a/app/src/main/assets/local_Sports/27.jpg b/app/src/main/assets/local_Sports/27.jpg new file mode 100644 index 0000000..91bf104 Binary files /dev/null and b/app/src/main/assets/local_Sports/27.jpg differ diff --git a/app/src/main/assets/local_Sports/28.jpg b/app/src/main/assets/local_Sports/28.jpg new file mode 100644 index 0000000..8c790e7 Binary files /dev/null and b/app/src/main/assets/local_Sports/28.jpg differ diff --git a/app/src/main/assets/local_Sports/3.jpg b/app/src/main/assets/local_Sports/3.jpg new file mode 100644 index 0000000..8315af5 Binary files /dev/null and b/app/src/main/assets/local_Sports/3.jpg differ diff --git a/app/src/main/assets/local_Sports/4.jpg b/app/src/main/assets/local_Sports/4.jpg new file mode 100644 index 0000000..8070e68 Binary files /dev/null and b/app/src/main/assets/local_Sports/4.jpg differ diff --git a/app/src/main/assets/local_Sports/5.jpg b/app/src/main/assets/local_Sports/5.jpg new file mode 100644 index 0000000..5bcb837 Binary files /dev/null and b/app/src/main/assets/local_Sports/5.jpg differ diff --git a/app/src/main/assets/local_Sports/6.jpg b/app/src/main/assets/local_Sports/6.jpg new file mode 100644 index 0000000..038521f Binary files /dev/null and b/app/src/main/assets/local_Sports/6.jpg differ diff --git a/app/src/main/assets/local_Sports/7.jpg b/app/src/main/assets/local_Sports/7.jpg new file mode 100644 index 0000000..73bf0de Binary files /dev/null and b/app/src/main/assets/local_Sports/7.jpg differ diff --git a/app/src/main/assets/local_Sports/8.jpg b/app/src/main/assets/local_Sports/8.jpg new file mode 100644 index 0000000..6c565f8 Binary files /dev/null and b/app/src/main/assets/local_Sports/8.jpg differ diff --git a/app/src/main/assets/local_Sports/9.jpg b/app/src/main/assets/local_Sports/9.jpg new file mode 100644 index 0000000..130cd94 Binary files /dev/null and b/app/src/main/assets/local_Sports/9.jpg differ diff --git a/app/src/main/assets/local_Tropical Paradise/1.svg b/app/src/main/assets/local_Tropical Paradise/1.svg new file mode 100644 index 0000000..dc07758 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Tropical Paradise/2.svg b/app/src/main/assets/local_Tropical Paradise/2.svg new file mode 100644 index 0000000..3e816f1 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Tropical Paradise/3.svg b/app/src/main/assets/local_Tropical Paradise/3.svg new file mode 100644 index 0000000..0aab839 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Tropical Paradise/4.svg b/app/src/main/assets/local_Tropical Paradise/4.svg new file mode 100644 index 0000000..ec4a638 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Tropical Paradise/5.svg b/app/src/main/assets/local_Tropical Paradise/5.svg new file mode 100644 index 0000000..0afef24 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Tropical Paradise/6.svg b/app/src/main/assets/local_Tropical Paradise/6.svg new file mode 100644 index 0000000..8dbd414 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_Tropical Paradise/7.svg b/app/src/main/assets/local_Tropical Paradise/7.svg new file mode 100644 index 0000000..1d296c0 --- /dev/null +++ b/app/src/main/assets/local_Tropical Paradise/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/1.svg b/app/src/main/assets/local_World Monuments/1.svg new file mode 100644 index 0000000..a7eda24 --- /dev/null +++ b/app/src/main/assets/local_World Monuments/1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/2.svg b/app/src/main/assets/local_World Monuments/2.svg new file mode 100644 index 0000000..da8855c --- /dev/null +++ b/app/src/main/assets/local_World Monuments/2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/3.svg b/app/src/main/assets/local_World Monuments/3.svg new file mode 100644 index 0000000..d0fdda9 --- /dev/null +++ b/app/src/main/assets/local_World Monuments/3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/4.svg b/app/src/main/assets/local_World Monuments/4.svg new file mode 100644 index 0000000..bd5ce67 --- /dev/null +++ b/app/src/main/assets/local_World Monuments/4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/5.svg b/app/src/main/assets/local_World Monuments/5.svg new file mode 100644 index 0000000..5234438 --- /dev/null +++ b/app/src/main/assets/local_World Monuments/5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/6.svg b/app/src/main/assets/local_World Monuments/6.svg new file mode 100644 index 0000000..1665c30 --- /dev/null +++ b/app/src/main/assets/local_World Monuments/6.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/assets/local_World Monuments/7.svg b/app/src/main/assets/local_World Monuments/7.svg new file mode 100644 index 0000000..74fd8bb --- /dev/null +++ b/app/src/main/assets/local_World Monuments/7.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000..b6d057c Binary files /dev/null and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/java/com/apps/quicksketchtrace/BApplication.kt b/app/src/main/java/com/apps/quicksketchtrace/BApplication.kt new file mode 100644 index 0000000..98b4336 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/BApplication.kt @@ -0,0 +1,42 @@ +package com.apps.quicksketchtrace + +import android.app.Application + +public class BApplication: Application() { + companion object{ + lateinit var context: BApplication + var classNameList: List? = null + } + private val CLASS_NAMES = arrayOf( + "local_Aesthetic", + "local_One Line Art", + "local_People", + "local_Animals", + "local_Birds", + "local_Tropical Paradise", + "local_World Monuments", + "local_Butterfly", + "local_Food", + "local_Cartoons", + "local_Christmas", + "local_Festivals", + "local_Flowers", + "local_Fruits", + "local_General", + "local_Mehndi", + "local_Nature", + "local_Architectures", + "local_Rangoli", + "local_Sports", + "local_Car", + "local_Space" + ) + override fun onCreate() { + super.onCreate() + context = this + val database = AppDataBase.getDatabase(this) + + classNameList = listOf(*CLASS_NAMES) + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/CategoryFragment.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/CategoryFragment.kt new file mode 100644 index 0000000..d6b3ca0 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/CategoryFragment.kt @@ -0,0 +1,39 @@ +package com.apps.quicksketchtrace.activity + +import android.content.Intent +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.GridLayoutManager +import com.apps.quicksketchtrace.R +import com.apps.quicksketchtrace.adapter.DoubleLineAdapter +import com.apps.quicksketchtrace.databinding.FragmentCategoryBinding +import com.apps.quicksketchtrace.listener.MainClickListener + + +class CategoryFragment : Fragment(),MainClickListener { + private lateinit var binding: FragmentCategoryBinding + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentCategoryBinding.inflate(inflater,container,false) + init() + return binding.root + } + private fun init(){ + val adapter=DoubleLineAdapter() + adapter.setListener(this) + binding.recyclerView.adapter=adapter + binding.recyclerView.layoutManager=GridLayoutManager(requireActivity(),2) + } + + override fun onClick(name: String) { + val intent = Intent(requireActivity(), EachCategoryActivity::class.java) + intent.putExtra(EachCategoryActivity.TITLE_KEY,name) + startActivity(intent) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/CollectFragment.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/CollectFragment.kt new file mode 100644 index 0000000..d0e53de --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/CollectFragment.kt @@ -0,0 +1,72 @@ +package com.apps.quicksketchtrace.activity + +import MainViewModel +import android.content.Intent +import android.os.Bundle +import android.util.Log +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.GridLayoutManager +import com.apps.quicksketchtrace.R +import com.apps.quicksketchtrace.adapter.ThreeLineAdapter +import com.apps.quicksketchtrace.databinding.FragmentCollectBinding +import com.apps.quicksketchtrace.listener.MainClickListener + +class CollectFragment : Fragment(), MainClickListener { + private lateinit var binding: FragmentCollectBinding + private lateinit var mainViewModel: MainViewModel + private var adapter = ThreeLineAdapter() + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentCollectBinding.inflate(inflater,container,false) + mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java] + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + init() + } + + private fun init() { + adapter.setListener(this) + setupRecyclerView() + binding.recyclerView.adapter = adapter + mainViewModel.locals.observe(viewLifecycleOwner) { list -> + if (list.isNotEmpty()) { + binding.recyclerView.visibility = View.VISIBLE + binding.llEmpty.visibility = View.GONE + Log.d("YYYYY", "Collect is change,list is$list") + adapter.setLocalList(list, 2) + adapter.notifyDataSetChanged() + } else { + binding.recyclerView.visibility = View.GONE + binding.llEmpty.visibility = View.VISIBLE + } + } + val gridLayoutManager = GridLayoutManager(requireActivity(), 3) + binding.recyclerView.layoutManager = gridLayoutManager + } + + private fun setupRecyclerView() { + // 先设置空适配器,让UI快速显示 + binding.recyclerView.adapter = adapter + val gridLayoutManager = GridLayoutManager(requireActivity(), 3) + binding.recyclerView.layoutManager = gridLayoutManager + binding.recyclerView.setHasFixedSize(true) + binding.recyclerView.setItemViewCacheSize(20) + binding.recyclerView.isDrawingCacheEnabled = true + binding.recyclerView.drawingCacheQuality = View.DRAWING_CACHE_QUALITY_HIGH + } + + override fun onClick(name: String) { + val intent = Intent(requireActivity(), StartDrawActivity::class.java) + intent.putExtra(StartDrawActivity.PATH_KEY, name) + startActivity(intent) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/EachCategoryActivity.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/EachCategoryActivity.kt new file mode 100644 index 0000000..1a98844 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/EachCategoryActivity.kt @@ -0,0 +1,48 @@ +package com.apps.quicksketchtrace.activity + +import android.content.Intent +import android.os.Bundle +import androidx.activity.enableEdgeToEdge +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.recyclerview.widget.GridLayoutManager +import com.apps.quicksketchtrace.R +import com.apps.quicksketchtrace.adapter.ThreeLineAdapter +import com.apps.quicksketchtrace.databinding.ActivityEachCategoryBinding +import com.apps.quicksketchtrace.listener.MainClickListener +import com.apps.quicksketchtrace.util.OpenConvert + +class EachCategoryActivity : AppCompatActivity(),MainClickListener { + private lateinit var binding:ActivityEachCategoryBinding + companion object{ + var TITLE_KEY="name" + } + private var dirName="" + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding=ActivityEachCategoryBinding.inflate(layoutInflater) + setContentView(binding.root) + dirName = intent.getStringExtra(TITLE_KEY)!! + init() + } + private fun init(){ + val adapter=ThreeLineAdapter() + val allPic = OpenConvert.getAllPic(this, dirName) + adapter.setCategoryList(list = allPic, type = 0) + adapter.setListener(this) + val gridLayoutManager = GridLayoutManager(this, 3) + binding.recyclerView.adapter=adapter + binding.recyclerView.layoutManager=gridLayoutManager + binding.imgBack.setOnClickListener { finish() } + + } + + override fun onClick(name: String) { + val tag = "ImageDialog" + if (supportFragmentManager.findFragmentByTag(tag) == null) { + val dialog = ImageDialogFragment.newInstance(name) + dialog.show(supportFragmentManager, tag) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/ImageDialogFragment.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/ImageDialogFragment.kt new file mode 100644 index 0000000..c0fa19d --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/ImageDialogFragment.kt @@ -0,0 +1,82 @@ +package com.apps.quicksketchtrace.activity + +import MainViewModel +import android.app.Dialog +import android.content.Intent +import android.graphics.Color +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.core.graphics.drawable.toDrawable +import androidx.fragment.app.DialogFragment +import androidx.lifecycle.ViewModelProvider +import com.apps.quicksketchtrace.databinding.DialogToStartBinding +import com.apps.quicksketchtrace.util.OpenConvert + +class ImageDialogFragment : DialogFragment() { + private var _binding: DialogToStartBinding? = null + private val binding get() = _binding!! + private var path = "" + private lateinit var mainViewModel:MainViewModel + + companion object { + private const val PIC_KEY = "path" + fun newInstance(imagePath: String): ImageDialogFragment { + val args = Bundle().apply { + putString(PIC_KEY, imagePath) + } + return ImageDialogFragment().apply { arguments = args } + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + _binding = DialogToStartBinding.inflate(inflater, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + path = arguments?.getString(PIC_KEY) ?: "" + val bitmap = OpenConvert.loadBitmapFromAssets(requireContext(), path) + binding.image.setImageBitmap(bitmap) + binding.imgBack.setOnClickListener { dismiss() } + mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java] + mainViewModel.checkIsLocal(path) + mainViewModel.isLocal.observe(viewLifecycleOwner) { b -> + if (b != null) { + binding.imgLike.isSelected=b + } + } + binding.imgLike.setOnClickListener { v -> + val selected = v.isSelected + binding.imgLike.isSelected = !selected + if (!selected) { + mainViewModel.addLocal(path) + } else { + mainViewModel.deleteLocalPath(path) + } + } + binding.rlBtn.setOnClickListener { + val intent = Intent(requireActivity(), StartDrawActivity::class.java) + intent.putExtra(StartDrawActivity.PATH_KEY,path) + startActivity(intent) + } + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } + + // 设置弹窗居中、透明背景 + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val dialog = super.onCreateDialog(savedInstanceState) + dialog.window?.setBackgroundDrawable(Color.TRANSPARENT.toDrawable()) + return dialog + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/MainActivity.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/MainActivity.kt new file mode 100644 index 0000000..ca139ce --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/MainActivity.kt @@ -0,0 +1,139 @@ +package com.apps.quicksketchtrace.activity + + +import MainViewModel +import android.os.Bundle +import android.view.View +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModelProvider +import com.apps.quicksketchtrace.R + +import com.apps.quicksketchtrace.databinding.ActivityMainBinding + +class MainActivity : AppCompatActivity() { + private lateinit var binding: ActivityMainBinding + private var isFragmentTransitionRunning = false + private var lastClickTime = 0L + private val CLICK_THROTTLE = 300L + private lateinit var categoryFragment: Fragment + private lateinit var uploadFragment: Fragment + private lateinit var collectFragment: Fragment + private lateinit var mainViewModel: MainViewModel + private var currentFragment: Fragment? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + mainViewModel = ViewModelProvider(this)[MainViewModel::class.java] + initFragments() +// mainViewModel.debugDatabase() + initViews() + } + + override fun onResume() { + super.onResume() + mainViewModel.refreshLocals() + } + + private fun updateTab(position: Int) { + binding.imgCategory.isSelected = false + binding.imgUpload.isSelected = false + binding.imgCollect.isSelected = false + val defaultColor = getColor(R.color.grey) + val selectColor = getColor(R.color.dark_text) + binding.tvCategory.setTextColor(defaultColor) + binding.tvCollect.setTextColor(defaultColor) + binding.tvUpload.setTextColor(defaultColor) + when (position) { + 0 -> { + binding.imgCategory.isSelected = true + binding.tvCategory.setTextColor(selectColor) + } + 1 -> { + binding.imgUpload.isSelected = true + binding.tvUpload.setTextColor(selectColor) + } + 2 -> { + binding.imgCollect.isSelected = true + binding.tvCollect.setTextColor(selectColor) + } + } + } + + private fun initFragments() { + categoryFragment = CategoryFragment() + uploadFragment = UploadFragment() + collectFragment = CollectFragment() + } + + private fun initViews() { + switchFragment(0,true) + binding.llCategory.setOnClickListener { + if (System.currentTimeMillis() - lastClickTime > CLICK_THROTTLE) { + switchFragment(0) + lastClickTime = System.currentTimeMillis() + } + } + binding.llUpload.setOnClickListener { + if (System.currentTimeMillis() - lastClickTime > CLICK_THROTTLE) { + switchFragment(1) + lastClickTime = System.currentTimeMillis() + } + } + binding.llCollect.setOnClickListener { + if (System.currentTimeMillis() - lastClickTime > CLICK_THROTTLE) { + switchFragment(2) + lastClickTime = System.currentTimeMillis() + } + } + } + + private fun switchFragment(position: Int, isFirstTime: Boolean = false) { + if (isFragmentTransitionRunning) return + var targetFragment = when (position) { + 0 -> { + if (currentFragment is CategoryFragment) return + categoryFragment + } + 1 -> { + if (currentFragment is UploadFragment) return + uploadFragment + } + 2 -> { + if (currentFragment is CollectFragment) return + collectFragment + } + + else -> null + } + if (targetFragment == null || binding.fragmentIn.id == View.NO_ID) return + updateTab(position) + isFragmentTransitionRunning = true + supportFragmentManager.beginTransaction().apply { + if (isFirstTime) { + // 首次加载只使用进入动画 + setCustomAnimations( + android.R.anim.fade_in, + 0, // 无退出动画(因为没有前一个Fragment) + ) + } else { + setCustomAnimations( + android.R.anim.fade_in, + android.R.anim.fade_out + ) + } + if (targetFragment.isAdded) { + show(targetFragment) + } else { + add(binding.fragmentIn.id, targetFragment) + } + currentFragment?.takeIf { it.isAdded }?.let { hide(it) } + currentFragment = targetFragment + commit() + supportFragmentManager.executePendingTransactions() + isFragmentTransitionRunning = false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/StartDrawActivity.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/StartDrawActivity.kt new file mode 100644 index 0000000..39258c3 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/StartDrawActivity.kt @@ -0,0 +1,204 @@ +package com.apps.quicksketchtrace.activity + +import MainViewModel +import android.Manifest +import android.annotation.SuppressLint +import android.content.pm.PackageManager +import android.graphics.BitmapFactory +import android.graphics.Color +import android.graphics.Matrix +import android.graphics.PointF +import android.os.Bundle +import android.util.Log +import android.view.MotionEvent +import android.view.View +import android.widget.SeekBar +import android.widget.Toast +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +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.core.content.ContextCompat +import androidx.lifecycle.ViewModelProvider +import com.apps.quicksketchtrace.databinding.ActivityDrawPictureBinding +import com.apps.quicksketchtrace.util.OpenConvert +import com.google.common.util.concurrent.ListenableFuture + +class StartDrawActivity : AppCompatActivity(),View.OnTouchListener { + private lateinit var binding:ActivityDrawPictureBinding + private lateinit var defaultBackCamera: CameraSelector + private lateinit var imageCapture: ImageCapture + private lateinit var camera: Camera + private var fullName: String = "" + private var isShow=false + private lateinit var requestPermissionLauncher: ActivityResultLauncher + private lateinit var mainViewModel: MainViewModel + + private var MODE = 0 // 当前状态 + private val MODE_NONE = 0 // 无操作 + private val MODE_DRAG = 1 // 单指操作 + private val MODE_SCALE = 2 // 双指操作 + private val startMatrix = Matrix() + private val endMatrix = Matrix() // 变化后的矩阵 + private val startPointF = PointF() // 初始坐标 + private var distance = 0f // 初始距离 + private var scaleMultiple = 0f // 缩放倍数 + companion object{ + const val PATH_KEY="path" + } + @SuppressLint("ClickableViewAccessibility") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding=ActivityDrawPictureBinding.inflate(layoutInflater) + setContentView(binding.root) + mainViewModel=ViewModelProvider(this)[MainViewModel::class.java] + window.statusBarColor = Color.TRANSPARENT + window.decorView.systemUiVisibility = + View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + defaultBackCamera= CameraSelector.DEFAULT_BACK_CAMERA + binding.imgCard.setOnTouchListener(this) + binding.llAlpha.visibility=View.GONE + binding.imgAlpha.isSelected=false + binding.imgAlpha.setOnClickListener { + if(!isShow){ + binding.llAlpha.visibility=View.VISIBLE + binding.imgAlpha.isSelected=true + isShow=true + }else{ + binding.llAlpha.visibility=View.GONE + binding.imgAlpha.isSelected=false + isShow=false + } + } + requestPermissionLauncher=registerForActivityResult(ActivityResultContracts.RequestPermission()){ + granted-> + if(granted){ + startCamera() + }else{ + Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show() + } + } + init() + } + private fun init(){ + fullName=intent.getStringExtra(PATH_KEY)?:"" + Log.d("YYYYYY", fullName+"") + binding.back.setOnClickListener { finish() } + mainViewModel.isLocal.observe(this){isLike-> + binding.imgLike.isSelected=isLike + } + mainViewModel.checkIsLocal(fullName) + binding.imgLike.setOnClickListener { v-> + val selected = v.isSelected + binding.imgLike.isSelected=!selected + if(!selected){ + mainViewModel.addLocal(fullName) + }else{ + mainViewModel.deleteLocalPath(fullName) + } + } + binding.seekbar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + val alpha=(seekBar.max-progress)/10f + binding.imgCard.alpha=alpha + } + + override fun onStartTrackingTouch(seekBar: SeekBar?) { + } + + override fun onStopTrackingTouch(seekBar: SeekBar?) { + } + + }) + val cameraPermit=Manifest.permission.CAMERA + if(ContextCompat.checkSelfPermission(this,cameraPermit)!=PackageManager.PERMISSION_GRANTED){ + requestPermissionLauncher.launch(cameraPermit) + }else{ + startCamera() + } + } private fun startCamera() { + val future: ListenableFuture = ProcessCameraProvider.getInstance(this) + future.addListener({ + try { + val cameraProvider = future.get() + val preview = Preview.Builder().build() + cameraProvider.unbindAll() + val builder = ImageCapture.Builder() + imageCapture = builder.build() + camera = cameraProvider.bindToLifecycle(this, defaultBackCamera, preview, imageCapture) + preview.surfaceProvider = binding.preview.surfaceProvider + if (fullName.isNotEmpty()) { + val bitmap = OpenConvert.loadBitmapFromAssets(this, fullName) + if(bitmap==null){ + Log.d("YYYYYYYY","return null") + val decodedBitmap = BitmapFactory.decodeFile(fullName) + binding.imgCard.setImageBitmap(decodedBitmap) + Log.d("YYYYYYYY","return decodedBitmap$decodedBitmap") + onInitIm(decodedBitmap.width.toFloat(), decodedBitmap.height.toFloat()) + }else{ + binding.imgCard.setImageBitmap(bitmap) + onInitIm(bitmap.width.toFloat(), bitmap.height.toFloat()) + } + } + binding.imgFlash.setOnClickListener { + val selected = binding.imgFlash.isSelected + binding.imgFlash.isSelected = !selected + camera.cameraControl.enableTorch(!selected) + } + } catch (e: Exception) { + e.printStackTrace() + } + }, ContextCompat.getMainExecutor(this)) + } + private fun onInitIm(imW: Float, imH: Float) { + val screen = OpenConvert.getScreen(this) + val newX = screen.x / 2f - imW / 2 + val newY = screen.y / 2f - imH / 2 + startMatrix.postTranslate(newX, newY) + binding.imgCard.imageMatrix = startMatrix + } + @SuppressLint("ClickableViewAccessibility") + override fun onTouch(v: View?, event: MotionEvent): Boolean { + when (event.action and MotionEvent.ACTION_MASK) { + MotionEvent.ACTION_DOWN -> { + startMatrix.set(binding.imgCard.imageMatrix) + endMatrix.set(binding.imgCard.imageMatrix) + startPointF.set(event.x, event.y) + MODE = MODE_DRAG + } + MotionEvent.ACTION_POINTER_DOWN -> { + startMatrix.set(endMatrix) + distance = OpenConvert.getDistance(event) + MODE = MODE_SCALE + } + MotionEvent.ACTION_MOVE -> { + when (MODE) { + MODE_DRAG -> { + endMatrix.set(startMatrix) + endMatrix.postTranslate( + event.x - startPointF.x, + event.y - startPointF.y + ) + } + MODE_SCALE -> { + scaleMultiple = OpenConvert.getDistance(event) / distance + endMatrix.set(startMatrix) + endMatrix.postScale( + scaleMultiple, scaleMultiple, + startPointF.x, startPointF.y + ) + } + } + } + MotionEvent.ACTION_UP, MotionEvent.ACTION_POINTER_UP -> { + MODE = MODE_NONE + } + } + binding.imgCard.imageMatrix = endMatrix + return true + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/StartMainActivity.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/StartMainActivity.kt new file mode 100644 index 0000000..6f54701 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/StartMainActivity.kt @@ -0,0 +1,39 @@ +package com.apps.quicksketchtrace.activity + +import android.content.Intent +import android.os.Bundle +import android.os.CountDownTimer +import android.os.Handler +import android.os.Looper +import androidx.appcompat.app.AppCompatActivity +import com.apps.quicksketchtrace.databinding.ActivityMainStartBinding + +class StartMainActivity : AppCompatActivity() { + private lateinit var binding:ActivityMainStartBinding + private lateinit var countDownTimer: CountDownTimer + private val handler = Handler(Looper.getMainLooper()) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding=ActivityMainStartBinding.inflate(layoutInflater) + setContentView(binding.root) + handler.postDelayed({ + startActivity(Intent(this@StartMainActivity, MainActivity::class.java)) + finish() + }, 4000) + countDownTimer = object : CountDownTimer(4000, 100) { + override fun onTick(millisUntilFinished: Long) { + val progress = ((4000 - millisUntilFinished) / 4000f * 100).toInt() + binding.progressbar.progress = progress + } + + override fun onFinish() { + binding.progressbar.progress = 100 + } + }.start() + } + override fun onDestroy() { + super.onDestroy() + handler.removeCallbacksAndMessages(null) + countDownTimer.cancel() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/activity/UploadFragment.kt b/app/src/main/java/com/apps/quicksketchtrace/activity/UploadFragment.kt new file mode 100644 index 0000000..1bea4df --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/activity/UploadFragment.kt @@ -0,0 +1,281 @@ +package com.apps.quicksketchtrace.activity + +import MainViewModel +import android.Manifest +import android.app.Activity.RESULT_OK +import android.content.Intent +import android.content.pm.PackageManager +import android.net.Uri +import android.os.Build +import android.os.Bundle +import android.provider.MediaStore +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import androidx.core.content.ContextCompat +import androidx.core.content.FileProvider +import androidx.fragment.app.Fragment +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProvider +import androidx.recyclerview.widget.GridLayoutManager +import com.apps.quicksketchtrace.R +import com.apps.quicksketchtrace.adapter.ThreeLineAdapter +import com.apps.quicksketchtrace.database.Upload +import com.apps.quicksketchtrace.databinding.FragmentUploadBinding +import com.apps.quicksketchtrace.listener.MainClickListener +import com.apps.quicksketchtrace.util.OpenConvert +import java.io.File +import java.io.IOException + +class UploadFragment : Fragment(), MainClickListener { + private lateinit var binding: FragmentUploadBinding + private lateinit var mainViewModel: MainViewModel + private val adapter = ThreeLineAdapter() + private var uploadList: List = arrayListOf() + private var photoPath: Uri? = null + private var permissionCamera: ActivityResultLauncher? = null + private var cameraLauncher: ActivityResultLauncher? = null + private var galleryPermission: ActivityResultLauncher>? = null + private var galleryLauncher: ActivityResultLauncher? = null + private var imgFile: File? = null + private var delPosition=-1 + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentUploadBinding.inflate(inflater,container,false) + mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java] + return binding.root + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + init() + } + + private fun init() { + adapter.setListener(this) + setupRecyclerView() + mainViewModel.uploads.observe(viewLifecycleOwner) { list -> + if (list.isNotEmpty()) { + if(delPosition!=-1){ + adapter.notifyItemRemoved(delPosition) + binding.recyclerView.postDelayed({ + adapter.setUploadList(list, 1) + },3000) + delPosition=-1 + }else{ + adapter.notifyDataSetChanged() + adapter.setUploadList(list, 1) + } + } + uploadList = list + Log.d("Upload list is:", "${uploadList.size}") + refreshData() + } + registerCameraAndGallery() + binding.llCamera.setOnClickListener { openPermissionCamera() } + binding.llGallery.setOnClickListener { openPermissionGallery() } + } + private fun setupRecyclerView() { + // 先设置空适配器,让UI快速显示 + binding.recyclerView.adapter = adapter + val gridLayoutManager = GridLayoutManager(requireActivity(), 3) + binding.recyclerView.layoutManager = gridLayoutManager + binding.recyclerView.setHasFixedSize(true) + binding.recyclerView.setItemViewCacheSize(20) + binding.recyclerView.isDrawingCacheEnabled = true + binding.recyclerView.drawingCacheQuality = View.DRAWING_CACHE_QUALITY_HIGH + } + + private fun registerCameraAndGallery() { + permissionCamera = + registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted -> + if (granted) { + startCamera() + } else { + Toast.makeText(requireActivity(), R.string.permit, Toast.LENGTH_SHORT).show() + } + } + + cameraLauncher = + registerForActivityResult(ActivityResultContracts.TakePicture()) { success -> + Log.d("YYYYYY", "photoPath is $photoPath") + if (success && photoPath != null) { + savePhoto(photoPath!!, true) + } + } + + galleryPermission = + registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions -> + val isGranted = permissions.values.all { it } + if (isGranted) { + startGallery() + } else { + Toast.makeText(requireActivity(), R.string.permit, Toast.LENGTH_SHORT).show() + } + } + + galleryLauncher = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == RESULT_OK && result.data != null) { + val imageUri = result.data?.data + if (imageUri != null) { + savePhoto(imageUri, false) + } + } + } + } + + private fun openPermissionCamera() { + val camera = Manifest.permission.CAMERA + if (ContextCompat.checkSelfPermission( + requireContext(), + camera + ) != PackageManager.PERMISSION_GRANTED + ) { + permissionCamera?.launch(camera) + } else { + startCamera() + } + } + + private fun openPermissionGallery() { + val gallery = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + arrayOf(Manifest.permission.READ_MEDIA_IMAGES) + } else { + arrayOf( + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE + ) + } + + if (!OpenConvert.checkPermission(requireActivity(), gallery)) { + galleryPermission?.launch(gallery) + } else { + startGallery() + } + } + + private fun savePhoto(uri: Uri, isCamera: Boolean) { + Log.d("YYYYYY", "save is start") + var file: File? = null + var filePath: String? = null + binding.progress.visibility = View.VISIBLE + val fileSize = OpenConvert.getUriFileSize(requireContext(), uri).toFloat() + + if (fileSize >= 5) { + binding.progress.visibility = View.GONE + Toast.makeText(requireContext(), R.string.image_too, Toast.LENGTH_SHORT).show() + return + } + + try { + if (isCamera) { + if (imgFile != null && imgFile!!.exists()) { + file = imgFile + filePath = imgFile!!.absolutePath + } + } else { + val fileName = OpenConvert.getFileNameFromUri(uri, requireContext()) + if (fileName != null) { + filePath = OpenConvert.getImportPath(fileName) + file = File(filePath) + OpenConvert.copyUriToFile(uri, file, requireContext()) + } + } + + if (file == null || !file.exists()) { + requireActivity().runOnUiThread { + binding.progress.visibility = View.GONE + Toast.makeText(requireContext(), R.string.file_not, Toast.LENGTH_SHORT).show() + } + return + } + + val finalFilePath = filePath + if (finalFilePath != null) { + binding.progress.visibility = View.VISIBLE + var isUploadObserver: Observer? = null + // 观察 isUpload LiveData 的变化 + isUploadObserver = Observer { isUploaded -> + binding.progress.visibility = View.GONE + if (isUploaded) { + Toast.makeText( + requireContext(), + R.string.image_already, + Toast.LENGTH_SHORT + ).show() + } else { + mainViewModel.addUpload(finalFilePath) + } + + // 移除观察者以避免内存泄漏 + isUploadObserver?.let { mainViewModel.isUpload.removeObserver(it) } + } + + // 注册观察者 + mainViewModel.isUpload.observe(viewLifecycleOwner, isUploadObserver) + + // 开始检查 + mainViewModel.checkIsUpload(finalFilePath)} + } catch (e: Exception) { + requireActivity().runOnUiThread { + binding.progress.visibility = View.GONE + Toast.makeText(requireContext(), "error: ${e.message}", Toast.LENGTH_SHORT).show() + } + } + } + + private fun refreshData() { + if (uploadList.isEmpty()) { + binding.llEmpty.visibility = View.VISIBLE + binding.recyclerView.visibility = View.GONE + } else { + binding.llEmpty.visibility = View.GONE + binding.recyclerView.visibility = View.VISIBLE + adapter.setUploadList(uploadList, 1) + adapter.setListener(this) + binding.recyclerView.adapter = adapter + val gridLayoutManager = GridLayoutManager(requireActivity(), 3) + binding.recyclerView.layoutManager = gridLayoutManager + } + } + + private fun startGallery() { + val intent = + Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI).apply { + type = "image/*" + } + galleryLauncher?.launch(intent) + } + + private fun startCamera() { + try { + imgFile = File.createTempFile("IMG_", ".jpg", requireActivity().cacheDir) + val uri = FileProvider.getUriForFile( + requireContext(), + "${requireContext().packageName}.fileprovider", + imgFile + ).also { photoPath = it } + + cameraLauncher?.launch(uri) + } catch (e: IOException) { + Toast.makeText(requireActivity(), "error", Toast.LENGTH_SHORT).show() + } + } + + override fun onClick(name: String) { + val intent = Intent(requireActivity(), StartDrawActivity::class.java) + intent.putExtra(StartDrawActivity.PATH_KEY,name) + startActivity(intent) + } + + override fun onDelete(name: String,position:Int) { + delPosition=position + mainViewModel.deleteUploadPath(name) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/adapter/DoubleLineAdapter.kt b/app/src/main/java/com/apps/quicksketchtrace/adapter/DoubleLineAdapter.kt new file mode 100644 index 0000000..9a5a65b --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/adapter/DoubleLineAdapter.kt @@ -0,0 +1,48 @@ +package com.apps.quicksketchtrace.adapter + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.apps.quicksketchtrace.BApplication +import com.apps.quicksketchtrace.databinding.ItemMainCategoryBinding +import com.apps.quicksketchtrace.listener.MainClickListener +import com.apps.quicksketchtrace.util.OpenConvert + +class DoubleLineAdapter: RecyclerView.Adapter() { + private lateinit var context:Context + private val nameList: List? = BApplication.classNameList + private lateinit var listener:MainClickListener + class DoubleViewHolder(val binding:ItemMainCategoryBinding): RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DoubleViewHolder { + context=parent.context + val binding=ItemMainCategoryBinding.inflate(LayoutInflater.from(context),parent,false) + return DoubleViewHolder(binding) + } + override fun getItemCount(): Int { + return nameList?.size ?: 0 + } + override fun onBindViewHolder(holder: DoubleViewHolder, position: Int) { + val name = nameList!![position] + val realName = name.substring(name.lastIndexOf("_") + 1) + holder.binding.name.text = realName + val showPic = OpenConvert.getShowPic(context, name) + if(showPic!=null){ + val bitmap = OpenConvert.loadBitmapFromAssets(context, showPic) + holder.binding.image.setImageBitmap(bitmap) + } + if (position == itemCount - 1) { + holder.binding.vBottom.visibility = View.VISIBLE + } else { + holder.binding.vBottom.visibility = View.GONE + } + holder.binding.image.setOnClickListener { + listener.onClick(name) + } + } + fun setListener(listener: MainClickListener){ + this.listener=listener + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/adapter/ThreeLineAdapter.kt b/app/src/main/java/com/apps/quicksketchtrace/adapter/ThreeLineAdapter.kt new file mode 100644 index 0000000..23b34bf --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/adapter/ThreeLineAdapter.kt @@ -0,0 +1,102 @@ +package com.apps.quicksketchtrace.adapter + +import android.content.Context +import android.graphics.BitmapFactory +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.apps.quicksketchtrace.R +import com.apps.quicksketchtrace.database.Local +import com.apps.quicksketchtrace.database.Upload +import com.apps.quicksketchtrace.databinding.ItemImgShowBinding +import com.apps.quicksketchtrace.listener.MainClickListener +import com.apps.quicksketchtrace.util.OpenConvert + +class ThreeLineAdapter : RecyclerView.Adapter() { + private lateinit var context: Context + private var imgList: List = arrayListOf() + private var uploadList: List = arrayListOf() + private var localList: List = arrayListOf() + private var type = 0 + private lateinit var listener: MainClickListener + + class ThreeViewHolder(val binding: ItemImgShowBinding) : RecyclerView.ViewHolder(binding.root) + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ThreeViewHolder { + context = parent.context + val binding = ItemImgShowBinding.inflate(LayoutInflater.from(context), parent, false) + return ThreeViewHolder(binding) + } + + override fun getItemCount(): Int { + return when (type) { + 0 -> imgList.size + 1 -> uploadList.size + 2 -> localList.size + else -> 0 + } + } + + override fun onBindViewHolder(holder: ThreeViewHolder, position: Int) { + var path = "" + when (type) { + 0 -> path = imgList[position] + 1 -> path = uploadList[position].path + 2 -> path = localList[position].path + } + println(path) + holder.binding.image.setOnClickListener { + listener.onClick(path) + } + if(type>0&&position==itemCount-1){ + holder.binding.bottomView.visibility=View.VISIBLE + }else{ + holder.binding.bottomView.visibility=View.GONE + } + if (type == 1) { + holder.binding.imgDelete.visibility = View.VISIBLE + holder.binding.imgDelete.setOnClickListener { + listener.onDelete(path,position) + } + Thread { + val bitmap = BitmapFactory.decodeFile(path) + holder.binding.image.post { + if (bitmap != null) { + holder.binding.image.setImageBitmap(bitmap) + } else { + holder.binding.image.setImageResource(R.mipmap.local_01) + } + } + }.start() + return + } + val bitmap = OpenConvert.loadBitmapFromAssets(context, path) + if(bitmap==null){ + val bitmap1=BitmapFactory.decodeFile(path) + holder.binding.image.setImageBitmap(bitmap1) + }else{ + holder.binding.image.setImageBitmap(bitmap) + } + holder.binding.imgDelete.visibility = View.GONE + } + + fun setListener(listener: MainClickListener) { + this.listener = listener + } + + fun setCategoryList(list: List, type: Int) { + this.imgList = list + this.type = type + } + + fun setUploadList(list: List, type: Int) { + this.uploadList = list + this.type = type + } + + fun setLocalList(list: List, type: Int) { + this.localList = list + this.type = type + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/database/AppDataBase.kt b/app/src/main/java/com/apps/quicksketchtrace/database/AppDataBase.kt new file mode 100644 index 0000000..a68afea --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/database/AppDataBase.kt @@ -0,0 +1,33 @@ +import android.content.Context +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import com.apps.quicksketchtrace.database.Local +import com.apps.quicksketchtrace.database.LocalDao +import com.apps.quicksketchtrace.database.Upload +import com.apps.quicksketchtrace.database.UploadDao + + +@Database(entities = [Local::class, Upload::class], version = 2, exportSchema = false) +abstract class AppDataBase : RoomDatabase() { + abstract fun localDao(): LocalDao + abstract fun uploadDao(): UploadDao + + companion object { + @Volatile + private var INSTANCE: AppDataBase? = null + fun getDatabase(context: Context): AppDataBase { + return INSTANCE ?: synchronized(this) { + INSTANCE ?: createDatabase(context).also { INSTANCE = it } + } + } + + private fun createDatabase(context: Context): AppDataBase { + return Room.databaseBuilder( + context.applicationContext, + AppDataBase::class.java, + "trace_database" + ).fallbackToDestructiveMigration().build() + } + } +} diff --git a/app/src/main/java/com/apps/quicksketchtrace/database/Data.kt b/app/src/main/java/com/apps/quicksketchtrace/database/Data.kt new file mode 100644 index 0000000..0a4ad91 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/database/Data.kt @@ -0,0 +1,22 @@ +package com.apps.quicksketchtrace.database + +import android.os.Parcelable +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import kotlinx.parcelize.Parcelize + + +@Parcelize +@Entity(tableName = "local") +data class Local( + @PrimaryKey(autoGenerate = true) val id: Int=0, + @ColumnInfo(name = "path") val path: String="" +): Parcelable + +@Parcelize +@Entity(tableName = "upload") +data class Upload( + @PrimaryKey(autoGenerate = true) val id: Int = 0, + @ColumnInfo(name = "path") val path: String = "" +) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/database/DataRepository.kt b/app/src/main/java/com/apps/quicksketchtrace/database/DataRepository.kt new file mode 100644 index 0000000..0f3ce4f --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/database/DataRepository.kt @@ -0,0 +1,62 @@ +import android.util.Log +import com.apps.quicksketchtrace.database.Local +import com.apps.quicksketchtrace.database.LocalDao +import com.apps.quicksketchtrace.database.Upload +import com.apps.quicksketchtrace.database.UploadDao + + +class DataRepository(private val localDao: LocalDao, private val uploadDao: UploadDao) { + //----------local + suspend fun insertLocal(local: Local) { + try { + localDao.insert(local) + } catch (e: Exception) { + Log.d("Repository","insert data error$e") + } + } + + suspend fun getAllLocals(): List { + return localDao.getAll() + } + + suspend fun getLocalByPath(path: String): Local? { + return localDao.selectByPath(path) + } + + suspend fun deleteLocalByPath(path: String): Boolean { + return try { + localDao.deleteByPath(path) + true + } catch (e: Exception) { + Log.d("Repository","delete data error$e") + false + } + } + + //---------upload + + suspend fun insertUpload(upload: Upload) { + try { + uploadDao.insert(upload) + } catch (e: Exception) { + Log.d("Repository","insert data error$e") + } + } + + suspend fun getAllUploads(): List { + return uploadDao.getAll() + } + + suspend fun getUploadByPath(path: String): Upload? { + return uploadDao.selectByPath(path) + } + + suspend fun deleteUploadByPath(path: String): Boolean { + return try { + uploadDao.deleteByPath(path) + true + } catch (e: Exception) { + false + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/database/LocalDao.kt b/app/src/main/java/com/apps/quicksketchtrace/database/LocalDao.kt new file mode 100644 index 0000000..adf6b7a --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/database/LocalDao.kt @@ -0,0 +1,21 @@ +package com.apps.quicksketchtrace.database + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query + +@Dao +interface LocalDao { + @Insert(onConflict = OnConflictStrategy.IGNORE) + suspend fun insert(local: Local) + + @Query("SELECT * FROM local") + suspend fun getAll(): List + + @Query("SELECT * FROM local WHERE path=:path") + suspend fun selectByPath(path: String): Local? + + @Query("DELETE FROM local WHERE path=:path") + suspend fun deleteByPath(path: String) +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/database/MainViewModel.kt b/app/src/main/java/com/apps/quicksketchtrace/database/MainViewModel.kt new file mode 100644 index 0000000..5ce74fa --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/database/MainViewModel.kt @@ -0,0 +1,134 @@ +import android.app.Application +import android.util.Log +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.viewModelScope +import com.apps.quicksketchtrace.database.Local +import com.apps.quicksketchtrace.database.Upload +import kotlinx.coroutines.launch + +class MainViewModel(application: Application) : AndroidViewModel(application) { + private val repository: DataRepository by lazy { + DataRepository( + AppDataBase.getDatabase(application).localDao(), + AppDataBase.getDatabase(application).uploadDao() + ) + } + private val _locals = MutableLiveData>() + val locals: LiveData> get() = _locals + private val _uploads = MutableLiveData>() + val uploads: LiveData> get() = _uploads + val isLocal: LiveData get() = _isLocal + private val _isLocal = MutableLiveData() + private val _isUpload = MutableLiveData() + val isUpload: LiveData get() = _isUpload + private val _errorMsg = MutableLiveData() + val errorMsg: LiveData get() = _errorMsg + + init { + refreshLocals() + refreshUploads() + } + + fun refreshLocals() { + viewModelScope.launch { + try { + _locals.value = repository.getAllLocals() + Log.d("ViewModel", "New data size: ${repository.getAllLocals().size}") + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "error data from local:${e.message}" + } + } + } + + private fun refreshUploads() { + viewModelScope.launch { + try { + _uploads.value = repository.getAllUploads() + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "error data from upload:${e.message}" + } + } + } + + fun addLocal(path: String) { + viewModelScope.launch { + val local=repository.getLocalByPath(path) + if(local==null){ + try { + repository.insertLocal(Local(path = path)) + refreshLocals() + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "add local error:${e.message}" + } + } + } + } + + fun deleteLocalPath(path: String) { + viewModelScope.launch { + try { + repository.deleteLocalByPath(path) + refreshLocals() + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "delete local error:${e.message}" + } + } + } + + fun addUpload(path: String) { + viewModelScope.launch { + val upload=repository.getUploadByPath(path) + if(upload==null){ + try { + repository.insertUpload(Upload(path = path)) + refreshUploads() + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "add upload error:${e.message}" + } + } + } + } + + fun deleteUploadPath(path: String) { + viewModelScope.launch { + try { + repository.deleteUploadByPath(path) + refreshUploads() + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "delete local error:${e.message}" + } + } + } + fun checkIsLocal(path: String){ + viewModelScope.launch { + try { + val local = repository.getLocalByPath(path) + _isLocal.value = local != null + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "search error: ${e.message}" + _isLocal.value = false // 出错时默认设为false + } + } + } + fun checkIsUpload(path: String){ + viewModelScope.launch { + try { + val upload = repository.getUploadByPath(path) + _isUpload.value = upload != null + _errorMsg.value = null + } catch (e: Exception) { + _errorMsg.value = "search error: ${e.message}" + _isUpload.value = false + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/database/UploadDao.kt b/app/src/main/java/com/apps/quicksketchtrace/database/UploadDao.kt new file mode 100644 index 0000000..eb75585 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/database/UploadDao.kt @@ -0,0 +1,21 @@ +package com.apps.quicksketchtrace.database + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query + +@Dao +interface UploadDao { + @Insert(onConflict = OnConflictStrategy.IGNORE) + suspend fun insert(upload: Upload) + + @Query("SELECT * FROM upload") + suspend fun getAll(): List + + @Query("SELECT * FROM upload WHERE path=:path") + suspend fun selectByPath(path: String): Upload? + + @Query("DELETE FROM upload WHERE path=:path") + suspend fun deleteByPath(path: String) +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/listener/MainClickListener.kt b/app/src/main/java/com/apps/quicksketchtrace/listener/MainClickListener.kt new file mode 100644 index 0000000..5d3f781 --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/listener/MainClickListener.kt @@ -0,0 +1,8 @@ +package com.apps.quicksketchtrace.listener + +interface MainClickListener { + fun onClick(name:String) + open fun onDelete(name:String,position:Int){ + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/apps/quicksketchtrace/util/OpenConvert.kt b/app/src/main/java/com/apps/quicksketchtrace/util/OpenConvert.kt new file mode 100644 index 0000000..424f44a --- /dev/null +++ b/app/src/main/java/com/apps/quicksketchtrace/util/OpenConvert.kt @@ -0,0 +1,184 @@ +package com.apps.quicksketchtrace.util + +import android.app.Activity +import android.content.Context +import android.content.pm.PackageManager +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.Canvas +import android.graphics.Point +import android.net.Uri +import android.provider.OpenableColumns +import android.util.DisplayMetrics +import android.util.Log +import android.view.MotionEvent +import android.view.WindowManager +import androidx.core.app.ActivityCompat +import androidx.core.graphics.createBitmap +import com.apps.quicksketchtrace.BApplication +import com.caverock.androidsvg.SVG +import java.io.File +import java.io.FileOutputStream +import java.io.IOException +import kotlin.math.min +import kotlin.math.sqrt + +object OpenConvert { + + fun getShowPic(context: Context, name: String): String? { + return try { + val assetManager = context.assets + val files = assetManager.list(name) ?: return null + if (files.isNotEmpty()) { + "$name/${files[0]}" + } else { + null + } + } catch (e: Exception) { + null + } + } + fun getAllPic(context: Context, name: String): List { + return try { + val fileList = mutableListOf() + val assetManager = context.assets + val files = assetManager.list(name) + if (!files.isNullOrEmpty()) { + for (file in files) { + fileList.add("$name/$file") + } + } + fileList + } catch (e: Exception) { + emptyList() + } + } + + fun loadBitmapFromAssets(context: Context, fileName: String):Bitmap? { + return if (fileName.endsWith(".svg", ignoreCase = true)) { + loadSvgFromAssets(context, fileName) + } else if(fileName.endsWith(".jpg")||fileName.endsWith(".png")) { + loadRasterImageFromAssets(context, fileName) + }else{ + null + } + + } + + private fun loadRasterImageFromAssets(context: Context, fileName: String): Bitmap? { + return try { + context.assets.open(fileName).use { inputStream -> + BitmapFactory.decodeStream(inputStream) + } + } catch (e:Exception){ + null + } + } + + private fun loadSvgFromAssets(context: Context, fileName: String): Bitmap? { + return try { + val svg = SVG.getFromAsset(context.assets, fileName) + val documentWidth = svg.documentWidth + val documentHeight = svg.documentHeight + + // Use default size if SVG doesn't specify dimensions + val width = if (documentWidth > 0) documentWidth.toInt() else 800 + val height = if (documentHeight > 0) documentHeight.toInt() else 800 + + val bitmap = createBitmap(width, height) + val canvas = Canvas(bitmap) + + // Scale proportionally if needed + if (documentWidth > 0 && documentHeight > 0) { + val scale = min(width / documentWidth, height / documentHeight) + canvas.scale(scale, scale) + } + + svg.renderToCanvas(canvas) + bitmap + } catch (e: Exception) { + null + } + } + fun getUriFileSize(context: Context, uri: Uri): Double { + var fileSize = 0.0 + val contentResolver = context.contentResolver + + // 如果Uri是文件类型 + if (uri.scheme == "file") { + File(uri.path).let { + fileSize = it.length().toDouble() + } + } else { // 如果Uri不是文件类型,则通过ContentResolver获取大小 + try { + contentResolver.openFileDescriptor(uri, "r")?.use { pfd -> + fileSize = pfd.statSize.toDouble() + } + } catch (e: Exception) { + Log.e("UriUtils", "Error while retrieving file size: ${e.message}") + } + } + + fileSize /= 1048576.0 + return fileSize + } + // 从URI获取文件名 + fun getFileNameFromUri(uri: Uri, context: Context): String? { + var fileName: String? = null + context.contentResolver.query(uri, null, null, null, null)?.use { cursor -> + if (cursor.moveToFirst()) { + val nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME) + if (nameIndex != -1) fileName = cursor.getString(nameIndex) + } + } + return fileName + } + + fun getImportPath(name: String): String { + val filesDir: File = BApplication.context.filesDir + val s = "$filesDir/$name" + return s + } + // 将URI内容复制到文件 + @Throws(IOException::class) + fun copyUriToFile(uri: Uri, destFile: File, context: Context) { + context.contentResolver.openInputStream(uri)?.use { inputStream -> + FileOutputStream(destFile).use { outputStream -> + val buffer = ByteArray(1024) + var length: Int + while (inputStream.read(buffer).also { length = it } > 0) { + outputStream.write(buffer, 0, length) + } + } + } ?: throw IOException("Failed to open input stream for URI: $uri") + } + + fun checkPermission(activity: Activity, permissions: Array): Boolean { + for (permission in permissions) { + if (ActivityCompat.checkSelfPermission( + activity, + permission + ) != PackageManager.PERMISSION_GRANTED + ) { + return true + } + } + return false + } + fun getScreen(context: Context): Point { + val displayMetrics = DisplayMetrics() + val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager + windowManager.defaultDisplay.getMetrics(displayMetrics) + val width = displayMetrics.widthPixels + val height = displayMetrics.heightPixels + val point = Point() + point.x = width + point.y = height + return point + } + fun getDistance(event: MotionEvent): Float { + val x = event.getX(0) - event.getX(1) + val y = event.getY(0) - event.getY(1) + return sqrt((x * x + y * y).toDouble()).toFloat() + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/alpha_selector.xml b/app/src/main/res/drawable/alpha_selector.xml new file mode 100644 index 0000000..5b29f2a --- /dev/null +++ b/app/src/main/res/drawable/alpha_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/camera_bg.xml b/app/src/main/res/drawable/camera_bg.xml new file mode 100644 index 0000000..2f5ca07 --- /dev/null +++ b/app/src/main/res/drawable/camera_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/change_like.xml b/app/src/main/res/drawable/change_like.xml new file mode 100644 index 0000000..595d9d5 --- /dev/null +++ b/app/src/main/res/drawable/change_like.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/flash_01.xml b/app/src/main/res/drawable/flash_01.xml new file mode 100644 index 0000000..dc7ff1d --- /dev/null +++ b/app/src/main/res/drawable/flash_01.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/flash_02.xml b/app/src/main/res/drawable/flash_02.xml new file mode 100644 index 0000000..0844a7b --- /dev/null +++ b/app/src/main/res/drawable/flash_02.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/flash_selector.xml b/app/src/main/res/drawable/flash_selector.xml new file mode 100644 index 0000000..5f0300f --- /dev/null +++ b/app/src/main/res/drawable/flash_selector.xml @@ -0,0 +1,6 @@ + + + + + + \ 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..ca3826a --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/img_border.xml b/app/src/main/res/drawable/img_border.xml new file mode 100644 index 0000000..24c70a2 --- /dev/null +++ b/app/src/main/res/drawable/img_border.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/app/src/main/res/drawable/like_bg.xml b/app/src/main/res/drawable/like_bg.xml new file mode 100644 index 0000000..38f8e07 --- /dev/null +++ b/app/src/main/res/drawable/like_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/like_full.xml b/app/src/main/res/drawable/like_full.xml new file mode 100644 index 0000000..0bf1fe1 --- /dev/null +++ b/app/src/main/res/drawable/like_full.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/like_stroke.xml b/app/src/main/res/drawable/like_stroke.xml new file mode 100644 index 0000000..2de79f8 --- /dev/null +++ b/app/src/main/res/drawable/like_stroke.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/love_01.xml b/app/src/main/res/drawable/love_01.xml new file mode 100644 index 0000000..0bf1fe1 --- /dev/null +++ b/app/src/main/res/drawable/love_01.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/love_02.xml b/app/src/main/res/drawable/love_02.xml new file mode 100644 index 0000000..2de79f8 --- /dev/null +++ b/app/src/main/res/drawable/love_02.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/love_selector.xml b/app/src/main/res/drawable/love_selector.xml new file mode 100644 index 0000000..ab734e7 --- /dev/null +++ b/app/src/main/res/drawable/love_selector.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_bottom.xml b/app/src/main/res/drawable/main_bottom.xml new file mode 100644 index 0000000..112d7bf --- /dev/null +++ b/app/src/main/res/drawable/main_bottom.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_category.xml b/app/src/main/res/drawable/main_category.xml new file mode 100644 index 0000000..58d9b26 --- /dev/null +++ b/app/src/main/res/drawable/main_category.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_collect.xml b/app/src/main/res/drawable/main_collect.xml new file mode 100644 index 0000000..d1e23b1 --- /dev/null +++ b/app/src/main/res/drawable/main_collect.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/main_local.xml b/app/src/main/res/drawable/main_local.xml new file mode 100644 index 0000000..03790b8 --- /dev/null +++ b/app/src/main/res/drawable/main_local.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/pb_bg.xml b/app/src/main/res/drawable/pb_bg.xml new file mode 100644 index 0000000..ab17684 --- /dev/null +++ b/app/src/main/res/drawable/pb_bg.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/pb_oval.xml b/app/src/main/res/drawable/pb_oval.xml new file mode 100644 index 0000000..c20fbf4 --- /dev/null +++ b/app/src/main/res/drawable/pb_oval.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/return_main.xml b/app/src/main/res/drawable/return_main.xml new file mode 100644 index 0000000..cbe9728 --- /dev/null +++ b/app/src/main/res/drawable/return_main.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/show_bg.xml b/app/src/main/res/drawable/show_bg.xml new file mode 100644 index 0000000..ce6078d --- /dev/null +++ b/app/src/main/res/drawable/show_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/start_btn.xml b/app/src/main/res/drawable/start_btn.xml new file mode 100644 index 0000000..4a449f4 --- /dev/null +++ b/app/src/main/res/drawable/start_btn.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/start_pb.xml b/app/src/main/res/drawable/start_pb.xml new file mode 100644 index 0000000..397eff5 --- /dev/null +++ b/app/src/main/res/drawable/start_pb.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/upload_bg.xml b/app/src/main/res/drawable/upload_bg.xml new file mode 100644 index 0000000..1f94400 --- /dev/null +++ b/app/src/main/res/drawable/upload_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_draw_picture.xml b/app/src/main/res/layout/activity_draw_picture.xml new file mode 100644 index 0000000..c8eba7c --- /dev/null +++ b/app/src/main/res/layout/activity_draw_picture.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_each_category.xml b/app/src/main/res/layout/activity_each_category.xml new file mode 100644 index 0000000..884b24f --- /dev/null +++ b/app/src/main/res/layout/activity_each_category.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..c64f20d --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main_start.xml b/app/src/main/res/layout/activity_main_start.xml new file mode 100644 index 0000000..8139d33 --- /dev/null +++ b/app/src/main/res/layout/activity_main_start.xml @@ -0,0 +1,44 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_to_start.xml b/app/src/main/res/layout/dialog_to_start.xml new file mode 100644 index 0000000..d9a57b4 --- /dev/null +++ b/app/src/main/res/layout/dialog_to_start.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_category.xml b/app/src/main/res/layout/fragment_category.xml new file mode 100644 index 0000000..d02cc35 --- /dev/null +++ b/app/src/main/res/layout/fragment_category.xml @@ -0,0 +1,38 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_collect.xml b/app/src/main/res/layout/fragment_collect.xml new file mode 100644 index 0000000..f09af65 --- /dev/null +++ b/app/src/main/res/layout/fragment_collect.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_upload.xml b/app/src/main/res/layout/fragment_upload.xml new file mode 100644 index 0000000..b31dcf0 --- /dev/null +++ b/app/src/main/res/layout/fragment_upload.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_img_show.xml b/app/src/main/res/layout/item_img_show.xml new file mode 100644 index 0000000..cf6e44e --- /dev/null +++ b/app/src/main/res/layout/item_img_show.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_main_category.xml b/app/src/main/res/layout/item_main_category.xml new file mode 100644 index 0000000..bcb41bc --- /dev/null +++ b/app/src/main/res/layout/item_main_category.xml @@ -0,0 +1,40 @@ + + + + + + + + \ 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..c4a603d --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..c4a603d --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file 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..906f5f0 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/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..cf158db Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9c37929 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp 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..14e7510 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/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..b818cc1 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..d1188b8 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_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..d8dbade Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..a73b46b Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..8c71c1d Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_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..284e2ad Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..3dd5ab6 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..60653c8 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp 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..54dc868 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp new file mode 100644 index 0000000..0da6c38 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..eaad2f3 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/main/res/mipmap/alpha.png b/app/src/main/res/mipmap/alpha.png new file mode 100644 index 0000000..4868ea8 Binary files /dev/null and b/app/src/main/res/mipmap/alpha.png differ diff --git a/app/src/main/res/mipmap/bookshelf.png b/app/src/main/res/mipmap/bookshelf.png new file mode 100644 index 0000000..00733ec Binary files /dev/null and b/app/src/main/res/mipmap/bookshelf.png differ diff --git a/app/src/main/res/mipmap/box_empty.png b/app/src/main/res/mipmap/box_empty.png new file mode 100644 index 0000000..ca0ea4b Binary files /dev/null and b/app/src/main/res/mipmap/box_empty.png differ diff --git a/app/src/main/res/mipmap/camera.png b/app/src/main/res/mipmap/camera.png new file mode 100644 index 0000000..4774272 Binary files /dev/null and b/app/src/main/res/mipmap/camera.png differ diff --git a/app/src/main/res/mipmap/category_01.png b/app/src/main/res/mipmap/category_01.png new file mode 100644 index 0000000..7ce603a Binary files /dev/null and b/app/src/main/res/mipmap/category_01.png differ diff --git a/app/src/main/res/mipmap/category_02.png b/app/src/main/res/mipmap/category_02.png new file mode 100644 index 0000000..5f3b5ad Binary files /dev/null and b/app/src/main/res/mipmap/category_02.png differ diff --git a/app/src/main/res/mipmap/close.png b/app/src/main/res/mipmap/close.png new file mode 100644 index 0000000..1e9e07e Binary files /dev/null and b/app/src/main/res/mipmap/close.png differ diff --git a/app/src/main/res/mipmap/delete.png b/app/src/main/res/mipmap/delete.png new file mode 100644 index 0000000..cf55027 Binary files /dev/null and b/app/src/main/res/mipmap/delete.png differ diff --git a/app/src/main/res/mipmap/gallery.png b/app/src/main/res/mipmap/gallery.png new file mode 100644 index 0000000..34d7ec8 Binary files /dev/null and b/app/src/main/res/mipmap/gallery.png differ diff --git a/app/src/main/res/mipmap/home_icon.png b/app/src/main/res/mipmap/home_icon.png new file mode 100644 index 0000000..291d9d1 Binary files /dev/null and b/app/src/main/res/mipmap/home_icon.png differ diff --git a/app/src/main/res/mipmap/like_01.png b/app/src/main/res/mipmap/like_01.png new file mode 100644 index 0000000..2f36b13 Binary files /dev/null and b/app/src/main/res/mipmap/like_01.png differ diff --git a/app/src/main/res/mipmap/like_02.png b/app/src/main/res/mipmap/like_02.png new file mode 100644 index 0000000..efe0857 Binary files /dev/null and b/app/src/main/res/mipmap/like_02.png differ diff --git a/app/src/main/res/mipmap/local_01.png b/app/src/main/res/mipmap/local_01.png new file mode 100644 index 0000000..1d27c66 Binary files /dev/null and b/app/src/main/res/mipmap/local_01.png differ diff --git a/app/src/main/res/mipmap/local_02.png b/app/src/main/res/mipmap/local_02.png new file mode 100644 index 0000000..890f7c1 Binary files /dev/null and b/app/src/main/res/mipmap/local_02.png differ diff --git a/app/src/main/res/mipmap/time.png b/app/src/main/res/mipmap/time.png new file mode 100644 index 0000000..f3500f6 Binary files /dev/null and b/app/src/main/res/mipmap/time.png differ diff --git a/app/src/main/res/mipmap/transparent.png b/app/src/main/res/mipmap/transparent.png new file mode 100644 index 0000000..dc23127 Binary files /dev/null and b/app/src/main/res/mipmap/transparent.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..b74bb2d --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,9 @@ + + + #FF000000 + #FFcdcdcd + #FF03DAC6 + #FFB2DFDB + #FFFFFFFF + #FFFFF9C4 + \ 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..7c03c69 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,18 @@ + + QuickSketch Trace + Category + Upload + Collect + Hello blank fragment + Camera + Gallery + History + Empty History + Empty Resource + Click to Start + Permission denied + Image already uploaded + File not found + Image too large + alpha + \ 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..ccef54b --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..4df9255 --- /dev/null +++ b/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/file_paths.xml b/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..499d6d2 --- /dev/null +++ b/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/test/java/com/apps/quicksketchtrace/ExampleUnitTest.kt b/app/src/test/java/com/apps/quicksketchtrace/ExampleUnitTest.kt new file mode 100644 index 0000000..9c6ab2e --- /dev/null +++ b/app/src/test/java/com/apps/quicksketchtrace/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.apps.quicksketchtrace + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..922f551 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,5 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..5b4d9cb --- /dev/null +++ b/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +kapt.incremental.apt=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..98dc0a3 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,47 @@ +[versions] +agp = "8.10.1" +androidsvg = "1.4" +cameraCore = "1.4.2" +coreKtxVersion = "1.12.0" +glide = "4.16.0" +kotlin = "2.0.21" +coreKtx = "1.16.0" +junit = "4.13.2" +junitVersion = "1.3.0" +espressoCore = "3.7.0" +appcompat = "1.7.1" +lifecycleViewmodelKtx = "2.9.2" +material = "1.12.0" +activity = "1.10.1" +constraintlayout = "2.2.1" +roomRuntime = "2.7.2" + +[libraries] +androidsvg = { module = "com.caverock:androidsvg", version.ref = "androidsvg" } +androidx-activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activity" } +androidx-camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "cameraCore" } +androidx-camera-core = { module = "androidx.camera:camera-core", version.ref = "cameraCore" } +androidx-camera-extensions = { module = "androidx.camera:camera-extensions", version.ref = "cameraCore" } +androidx-camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "cameraCore" } +androidx-camera-view = { module = "androidx.camera:camera-view", version.ref = "cameraCore" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-core-ktx-v1120 = { module = "androidx.core:core-ktx", version.ref = "coreKtxVersion" } +androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycleViewmodelKtx" } +androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" } +androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomRuntime" } +androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "roomRuntime" } +androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "roomRuntime" } +compiler = { module = "com.github.bumptech.glide:compiler", version.ref = "glide" } +glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "activity" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..cb85473 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Aug 12 13:54:22 CST 2025 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/keyStore.properties b/keyStore.properties new file mode 100644 index 0000000..3d7b134 --- /dev/null +++ b/keyStore.properties @@ -0,0 +1,6 @@ +app_name=QuickSketch Trace +package_name=com.apps.quicksketchtrace +keystoreFile=app/quicksketchtrace.jks +key_alias=quicksketchtracekey0 +key_store_password=quicksketchtrace +key_password=quicksketchtrace \ No newline at end of file diff --git a/quicksketchtrace.jks b/quicksketchtrace.jks new file mode 100644 index 0000000..909e584 Binary files /dev/null and b/quicksketchtrace.jks differ diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..d44ac0e --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,24 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} + +rootProject.name = "QuickSketch Trace" +include(":app") + \ No newline at end of file