diff --git a/app/ARDrawingBoard.jks b/app/ARDrawingBoard.jks new file mode 100644 index 0000000..ab3881a Binary files /dev/null and b/app/ARDrawingBoard.jks differ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97ae6af..a733ef1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,10 @@ +import java.text.SimpleDateFormat +import java.util.Date + plugins { alias(libs.plugins.android.application) } - +val timestamp: String = SimpleDateFormat("MM_dd_HH_mm").format(Date()) android { namespace = "com.ar.ardrawingboard" compileSdk = 35 @@ -11,14 +14,18 @@ android { minSdk = 23 targetSdk = 35 versionCode = 1 - versionName = "1.0" - + versionName = "1.0.0" + setProperty("archivesBaseName", "AR Drawing Board_V" + versionName + "(${versionCode})_$timestamp") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + buildFeatures { + viewBinding = true + } + buildTypes { release { - isMinifyEnabled = false + isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" @@ -40,4 +47,16 @@ dependencies { testImplementation(libs.junit) androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.espresso.core) + + implementation("com.github.bumptech.glide:glide:4.16.0") + annotationProcessor("com.github.bumptech.glide:compiler:4.16.0") + + implementation ("androidx.room:room-runtime:2.7.0") + annotationProcessor ("androidx.room:room-compiler:2.7.0") + + implementation ("androidx.camera:camera-core:1.4.2") + implementation ("androidx.camera:camera-lifecycle:1.4.2") + implementation ("androidx.camera:camera-view:1.4.2") + implementation ("androidx.camera:camera-extensions:1.4.2") + implementation ("androidx.camera:camera-camera2:1.4.2") } \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 481bb43..f067c54 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -18,4 +18,17 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile + +-keepclassmembers class com.ar.ardrawingboard.MyApplication { + public static final java.lang.String DB_NAME; + public static final int DB_VERSION; +} + +-keepclassmembers class * { + @androidx.room.Query ; +} + +-keep class com.ar.ardrawingboard.room.AppDatabase { *; } +-keep class com.ar.ardrawingboard.room.BoardEntry { *; } +-keep class com.ar.ardrawingboard.room.BoardEntryDao { *; } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f4096cc..ac5db1a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,22 @@ + + + + + + + + + + + + diff --git a/app/src/main/assets/png_Animals/1.jpg b/app/src/main/assets/png_Animals/1.jpg new file mode 100644 index 0000000..9488c65 Binary files /dev/null and b/app/src/main/assets/png_Animals/1.jpg differ diff --git a/app/src/main/assets/png_Animals/10.jpg b/app/src/main/assets/png_Animals/10.jpg new file mode 100644 index 0000000..78382a4 Binary files /dev/null and b/app/src/main/assets/png_Animals/10.jpg differ diff --git a/app/src/main/assets/png_Animals/11.jpg b/app/src/main/assets/png_Animals/11.jpg new file mode 100644 index 0000000..a4f7512 Binary files /dev/null and b/app/src/main/assets/png_Animals/11.jpg differ diff --git a/app/src/main/assets/png_Animals/12.jpg b/app/src/main/assets/png_Animals/12.jpg new file mode 100644 index 0000000..bab3cff Binary files /dev/null and b/app/src/main/assets/png_Animals/12.jpg differ diff --git a/app/src/main/assets/png_Animals/13.jpg b/app/src/main/assets/png_Animals/13.jpg new file mode 100644 index 0000000..5c3ef19 Binary files /dev/null and b/app/src/main/assets/png_Animals/13.jpg differ diff --git a/app/src/main/assets/png_Animals/14.jpg b/app/src/main/assets/png_Animals/14.jpg new file mode 100644 index 0000000..8b446f2 Binary files /dev/null and b/app/src/main/assets/png_Animals/14.jpg differ diff --git a/app/src/main/assets/png_Animals/15.jpg b/app/src/main/assets/png_Animals/15.jpg new file mode 100644 index 0000000..2f9dc4e Binary files /dev/null and b/app/src/main/assets/png_Animals/15.jpg differ diff --git a/app/src/main/assets/png_Animals/16.jpg b/app/src/main/assets/png_Animals/16.jpg new file mode 100644 index 0000000..aad9788 Binary files /dev/null and b/app/src/main/assets/png_Animals/16.jpg differ diff --git a/app/src/main/assets/png_Animals/17.jpg b/app/src/main/assets/png_Animals/17.jpg new file mode 100644 index 0000000..17c6f07 Binary files /dev/null and b/app/src/main/assets/png_Animals/17.jpg differ diff --git a/app/src/main/assets/png_Animals/18.jpg b/app/src/main/assets/png_Animals/18.jpg new file mode 100644 index 0000000..2ce93a7 Binary files /dev/null and b/app/src/main/assets/png_Animals/18.jpg differ diff --git a/app/src/main/assets/png_Animals/19.jpg b/app/src/main/assets/png_Animals/19.jpg new file mode 100644 index 0000000..2b24f31 Binary files /dev/null and b/app/src/main/assets/png_Animals/19.jpg differ diff --git a/app/src/main/assets/png_Animals/2.jpg b/app/src/main/assets/png_Animals/2.jpg new file mode 100644 index 0000000..0a0c2e7 Binary files /dev/null and b/app/src/main/assets/png_Animals/2.jpg differ diff --git a/app/src/main/assets/png_Animals/20.jpg b/app/src/main/assets/png_Animals/20.jpg new file mode 100644 index 0000000..347cddc Binary files /dev/null and b/app/src/main/assets/png_Animals/20.jpg differ diff --git a/app/src/main/assets/png_Animals/21.jpg b/app/src/main/assets/png_Animals/21.jpg new file mode 100644 index 0000000..5a04764 Binary files /dev/null and b/app/src/main/assets/png_Animals/21.jpg differ diff --git a/app/src/main/assets/png_Animals/22.jpg b/app/src/main/assets/png_Animals/22.jpg new file mode 100644 index 0000000..c18d8ad Binary files /dev/null and b/app/src/main/assets/png_Animals/22.jpg differ diff --git a/app/src/main/assets/png_Animals/23.jpg b/app/src/main/assets/png_Animals/23.jpg new file mode 100644 index 0000000..4270d19 Binary files /dev/null and b/app/src/main/assets/png_Animals/23.jpg differ diff --git a/app/src/main/assets/png_Animals/24.jpg b/app/src/main/assets/png_Animals/24.jpg new file mode 100644 index 0000000..355a944 Binary files /dev/null and b/app/src/main/assets/png_Animals/24.jpg differ diff --git a/app/src/main/assets/png_Animals/25.jpg b/app/src/main/assets/png_Animals/25.jpg new file mode 100644 index 0000000..c670943 Binary files /dev/null and b/app/src/main/assets/png_Animals/25.jpg differ diff --git a/app/src/main/assets/png_Animals/26.jpg b/app/src/main/assets/png_Animals/26.jpg new file mode 100644 index 0000000..4b95b01 Binary files /dev/null and b/app/src/main/assets/png_Animals/26.jpg differ diff --git a/app/src/main/assets/png_Animals/27.jpg b/app/src/main/assets/png_Animals/27.jpg new file mode 100644 index 0000000..87a8c12 Binary files /dev/null and b/app/src/main/assets/png_Animals/27.jpg differ diff --git a/app/src/main/assets/png_Animals/28.jpg b/app/src/main/assets/png_Animals/28.jpg new file mode 100644 index 0000000..770686a Binary files /dev/null and b/app/src/main/assets/png_Animals/28.jpg differ diff --git a/app/src/main/assets/png_Animals/29.jpg b/app/src/main/assets/png_Animals/29.jpg new file mode 100644 index 0000000..7127a11 Binary files /dev/null and b/app/src/main/assets/png_Animals/29.jpg differ diff --git a/app/src/main/assets/png_Animals/3.jpg b/app/src/main/assets/png_Animals/3.jpg new file mode 100644 index 0000000..4bf4897 Binary files /dev/null and b/app/src/main/assets/png_Animals/3.jpg differ diff --git a/app/src/main/assets/png_Animals/30.jpg b/app/src/main/assets/png_Animals/30.jpg new file mode 100644 index 0000000..f1d2047 Binary files /dev/null and b/app/src/main/assets/png_Animals/30.jpg differ diff --git a/app/src/main/assets/png_Animals/31.jpg b/app/src/main/assets/png_Animals/31.jpg new file mode 100644 index 0000000..0d08aa8 Binary files /dev/null and b/app/src/main/assets/png_Animals/31.jpg differ diff --git a/app/src/main/assets/png_Animals/4.jpg b/app/src/main/assets/png_Animals/4.jpg new file mode 100644 index 0000000..838c582 Binary files /dev/null and b/app/src/main/assets/png_Animals/4.jpg differ diff --git a/app/src/main/assets/png_Animals/5.jpg b/app/src/main/assets/png_Animals/5.jpg new file mode 100644 index 0000000..36bd2bf Binary files /dev/null and b/app/src/main/assets/png_Animals/5.jpg differ diff --git a/app/src/main/assets/png_Animals/6.jpg b/app/src/main/assets/png_Animals/6.jpg new file mode 100644 index 0000000..dceb49b Binary files /dev/null and b/app/src/main/assets/png_Animals/6.jpg differ diff --git a/app/src/main/assets/png_Animals/7.jpg b/app/src/main/assets/png_Animals/7.jpg new file mode 100644 index 0000000..ebd4694 Binary files /dev/null and b/app/src/main/assets/png_Animals/7.jpg differ diff --git a/app/src/main/assets/png_Animals/8.jpg b/app/src/main/assets/png_Animals/8.jpg new file mode 100644 index 0000000..e5e3c63 Binary files /dev/null and b/app/src/main/assets/png_Animals/8.jpg differ diff --git a/app/src/main/assets/png_Animals/9.jpg b/app/src/main/assets/png_Animals/9.jpg new file mode 100644 index 0000000..e7a1862 Binary files /dev/null and b/app/src/main/assets/png_Animals/9.jpg differ diff --git a/app/src/main/assets/png_Birds/1.jpg b/app/src/main/assets/png_Birds/1.jpg new file mode 100644 index 0000000..d235225 Binary files /dev/null and b/app/src/main/assets/png_Birds/1.jpg differ diff --git a/app/src/main/assets/png_Birds/10.jpg b/app/src/main/assets/png_Birds/10.jpg new file mode 100644 index 0000000..e348ffe Binary files /dev/null and b/app/src/main/assets/png_Birds/10.jpg differ diff --git a/app/src/main/assets/png_Birds/11.jpg b/app/src/main/assets/png_Birds/11.jpg new file mode 100644 index 0000000..921b5b9 Binary files /dev/null and b/app/src/main/assets/png_Birds/11.jpg differ diff --git a/app/src/main/assets/png_Birds/12.jpg b/app/src/main/assets/png_Birds/12.jpg new file mode 100644 index 0000000..7b4055b Binary files /dev/null and b/app/src/main/assets/png_Birds/12.jpg differ diff --git a/app/src/main/assets/png_Birds/13.jpg b/app/src/main/assets/png_Birds/13.jpg new file mode 100644 index 0000000..021b7a4 Binary files /dev/null and b/app/src/main/assets/png_Birds/13.jpg differ diff --git a/app/src/main/assets/png_Birds/14.jpg b/app/src/main/assets/png_Birds/14.jpg new file mode 100644 index 0000000..2074c6f Binary files /dev/null and b/app/src/main/assets/png_Birds/14.jpg differ diff --git a/app/src/main/assets/png_Birds/15.jpg b/app/src/main/assets/png_Birds/15.jpg new file mode 100644 index 0000000..59b0e47 Binary files /dev/null and b/app/src/main/assets/png_Birds/15.jpg differ diff --git a/app/src/main/assets/png_Birds/16.jpg b/app/src/main/assets/png_Birds/16.jpg new file mode 100644 index 0000000..fe950d1 Binary files /dev/null and b/app/src/main/assets/png_Birds/16.jpg differ diff --git a/app/src/main/assets/png_Birds/17.jpg b/app/src/main/assets/png_Birds/17.jpg new file mode 100644 index 0000000..484f39a Binary files /dev/null and b/app/src/main/assets/png_Birds/17.jpg differ diff --git a/app/src/main/assets/png_Birds/18.jpg b/app/src/main/assets/png_Birds/18.jpg new file mode 100644 index 0000000..2792ed1 Binary files /dev/null and b/app/src/main/assets/png_Birds/18.jpg differ diff --git a/app/src/main/assets/png_Birds/19.jpg b/app/src/main/assets/png_Birds/19.jpg new file mode 100644 index 0000000..9e9bb27 Binary files /dev/null and b/app/src/main/assets/png_Birds/19.jpg differ diff --git a/app/src/main/assets/png_Birds/2.jpg b/app/src/main/assets/png_Birds/2.jpg new file mode 100644 index 0000000..0929272 Binary files /dev/null and b/app/src/main/assets/png_Birds/2.jpg differ diff --git a/app/src/main/assets/png_Birds/3.jpg b/app/src/main/assets/png_Birds/3.jpg new file mode 100644 index 0000000..1376a50 Binary files /dev/null and b/app/src/main/assets/png_Birds/3.jpg differ diff --git a/app/src/main/assets/png_Birds/4.jpg b/app/src/main/assets/png_Birds/4.jpg new file mode 100644 index 0000000..1cd8f9c Binary files /dev/null and b/app/src/main/assets/png_Birds/4.jpg differ diff --git a/app/src/main/assets/png_Birds/5.jpg b/app/src/main/assets/png_Birds/5.jpg new file mode 100644 index 0000000..7637589 Binary files /dev/null and b/app/src/main/assets/png_Birds/5.jpg differ diff --git a/app/src/main/assets/png_Birds/6.jpg b/app/src/main/assets/png_Birds/6.jpg new file mode 100644 index 0000000..3bf16b6 Binary files /dev/null and b/app/src/main/assets/png_Birds/6.jpg differ diff --git a/app/src/main/assets/png_Birds/7.jpg b/app/src/main/assets/png_Birds/7.jpg new file mode 100644 index 0000000..076e51d Binary files /dev/null and b/app/src/main/assets/png_Birds/7.jpg differ diff --git a/app/src/main/assets/png_Birds/8.jpg b/app/src/main/assets/png_Birds/8.jpg new file mode 100644 index 0000000..71f5cf7 Binary files /dev/null and b/app/src/main/assets/png_Birds/8.jpg differ diff --git a/app/src/main/assets/png_Birds/9.jpg b/app/src/main/assets/png_Birds/9.jpg new file mode 100644 index 0000000..8767032 Binary files /dev/null and b/app/src/main/assets/png_Birds/9.jpg differ diff --git a/app/src/main/assets/png_Butterfly/1.jpg b/app/src/main/assets/png_Butterfly/1.jpg new file mode 100644 index 0000000..0d713b7 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/1.jpg differ diff --git a/app/src/main/assets/png_Butterfly/10.jpg b/app/src/main/assets/png_Butterfly/10.jpg new file mode 100644 index 0000000..ae497c8 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/10.jpg differ diff --git a/app/src/main/assets/png_Butterfly/11.jpg b/app/src/main/assets/png_Butterfly/11.jpg new file mode 100644 index 0000000..d2e39ef Binary files /dev/null and b/app/src/main/assets/png_Butterfly/11.jpg differ diff --git a/app/src/main/assets/png_Butterfly/12.jpg b/app/src/main/assets/png_Butterfly/12.jpg new file mode 100644 index 0000000..410af7c Binary files /dev/null and b/app/src/main/assets/png_Butterfly/12.jpg differ diff --git a/app/src/main/assets/png_Butterfly/13.jpg b/app/src/main/assets/png_Butterfly/13.jpg new file mode 100644 index 0000000..233a998 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/13.jpg differ diff --git a/app/src/main/assets/png_Butterfly/14.jpg b/app/src/main/assets/png_Butterfly/14.jpg new file mode 100644 index 0000000..9545c0f Binary files /dev/null and b/app/src/main/assets/png_Butterfly/14.jpg differ diff --git a/app/src/main/assets/png_Butterfly/15.jpg b/app/src/main/assets/png_Butterfly/15.jpg new file mode 100644 index 0000000..aa0da5b Binary files /dev/null and b/app/src/main/assets/png_Butterfly/15.jpg differ diff --git a/app/src/main/assets/png_Butterfly/16.jpg b/app/src/main/assets/png_Butterfly/16.jpg new file mode 100644 index 0000000..4b118cf Binary files /dev/null and b/app/src/main/assets/png_Butterfly/16.jpg differ diff --git a/app/src/main/assets/png_Butterfly/17.jpg b/app/src/main/assets/png_Butterfly/17.jpg new file mode 100644 index 0000000..ebfdc2e Binary files /dev/null and b/app/src/main/assets/png_Butterfly/17.jpg differ diff --git a/app/src/main/assets/png_Butterfly/18.jpg b/app/src/main/assets/png_Butterfly/18.jpg new file mode 100644 index 0000000..7b81ca1 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/18.jpg differ diff --git a/app/src/main/assets/png_Butterfly/19.jpg b/app/src/main/assets/png_Butterfly/19.jpg new file mode 100644 index 0000000..903fd82 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/19.jpg differ diff --git a/app/src/main/assets/png_Butterfly/2.jpg b/app/src/main/assets/png_Butterfly/2.jpg new file mode 100644 index 0000000..f92c438 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/2.jpg differ diff --git a/app/src/main/assets/png_Butterfly/20.jpg b/app/src/main/assets/png_Butterfly/20.jpg new file mode 100644 index 0000000..7d0dc2e Binary files /dev/null and b/app/src/main/assets/png_Butterfly/20.jpg differ diff --git a/app/src/main/assets/png_Butterfly/21.jpg b/app/src/main/assets/png_Butterfly/21.jpg new file mode 100644 index 0000000..ff82d93 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/21.jpg differ diff --git a/app/src/main/assets/png_Butterfly/3.jpg b/app/src/main/assets/png_Butterfly/3.jpg new file mode 100644 index 0000000..5251134 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/3.jpg differ diff --git a/app/src/main/assets/png_Butterfly/4.jpg b/app/src/main/assets/png_Butterfly/4.jpg new file mode 100644 index 0000000..01d5932 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/4.jpg differ diff --git a/app/src/main/assets/png_Butterfly/5.jpg b/app/src/main/assets/png_Butterfly/5.jpg new file mode 100644 index 0000000..cc99ed5 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/5.jpg differ diff --git a/app/src/main/assets/png_Butterfly/6.jpg b/app/src/main/assets/png_Butterfly/6.jpg new file mode 100644 index 0000000..6d02805 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/6.jpg differ diff --git a/app/src/main/assets/png_Butterfly/7.jpg b/app/src/main/assets/png_Butterfly/7.jpg new file mode 100644 index 0000000..dd52dbd Binary files /dev/null and b/app/src/main/assets/png_Butterfly/7.jpg differ diff --git a/app/src/main/assets/png_Butterfly/8.jpg b/app/src/main/assets/png_Butterfly/8.jpg new file mode 100644 index 0000000..d519ca7 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/8.jpg differ diff --git a/app/src/main/assets/png_Butterfly/9.jpg b/app/src/main/assets/png_Butterfly/9.jpg new file mode 100644 index 0000000..0cedb47 Binary files /dev/null and b/app/src/main/assets/png_Butterfly/9.jpg differ diff --git a/app/src/main/assets/png_Cafe/1.jpg b/app/src/main/assets/png_Cafe/1.jpg new file mode 100644 index 0000000..b347b44 Binary files /dev/null and b/app/src/main/assets/png_Cafe/1.jpg differ diff --git a/app/src/main/assets/png_Cafe/10.jpg b/app/src/main/assets/png_Cafe/10.jpg new file mode 100644 index 0000000..3728490 Binary files /dev/null and b/app/src/main/assets/png_Cafe/10.jpg differ diff --git a/app/src/main/assets/png_Cafe/11.jpg b/app/src/main/assets/png_Cafe/11.jpg new file mode 100644 index 0000000..bff21e1 Binary files /dev/null and b/app/src/main/assets/png_Cafe/11.jpg differ diff --git a/app/src/main/assets/png_Cafe/12.jpg b/app/src/main/assets/png_Cafe/12.jpg new file mode 100644 index 0000000..3966d4a Binary files /dev/null and b/app/src/main/assets/png_Cafe/12.jpg differ diff --git a/app/src/main/assets/png_Cafe/13.jpg b/app/src/main/assets/png_Cafe/13.jpg new file mode 100644 index 0000000..8200e12 Binary files /dev/null and b/app/src/main/assets/png_Cafe/13.jpg differ diff --git a/app/src/main/assets/png_Cafe/14.jpg b/app/src/main/assets/png_Cafe/14.jpg new file mode 100644 index 0000000..65ee383 Binary files /dev/null and b/app/src/main/assets/png_Cafe/14.jpg differ diff --git a/app/src/main/assets/png_Cafe/15.jpg b/app/src/main/assets/png_Cafe/15.jpg new file mode 100644 index 0000000..01df5e5 Binary files /dev/null and b/app/src/main/assets/png_Cafe/15.jpg differ diff --git a/app/src/main/assets/png_Cafe/16.jpg b/app/src/main/assets/png_Cafe/16.jpg new file mode 100644 index 0000000..ff679c1 Binary files /dev/null and b/app/src/main/assets/png_Cafe/16.jpg differ diff --git a/app/src/main/assets/png_Cafe/17.jpg b/app/src/main/assets/png_Cafe/17.jpg new file mode 100644 index 0000000..42fdf87 Binary files /dev/null and b/app/src/main/assets/png_Cafe/17.jpg differ diff --git a/app/src/main/assets/png_Cafe/18.jpg b/app/src/main/assets/png_Cafe/18.jpg new file mode 100644 index 0000000..06d300e Binary files /dev/null and b/app/src/main/assets/png_Cafe/18.jpg differ diff --git a/app/src/main/assets/png_Cafe/19.jpg b/app/src/main/assets/png_Cafe/19.jpg new file mode 100644 index 0000000..42aaa2c Binary files /dev/null and b/app/src/main/assets/png_Cafe/19.jpg differ diff --git a/app/src/main/assets/png_Cafe/2.jpg b/app/src/main/assets/png_Cafe/2.jpg new file mode 100644 index 0000000..14d9b25 Binary files /dev/null and b/app/src/main/assets/png_Cafe/2.jpg differ diff --git a/app/src/main/assets/png_Cafe/20.jpg b/app/src/main/assets/png_Cafe/20.jpg new file mode 100644 index 0000000..5dad84c Binary files /dev/null and b/app/src/main/assets/png_Cafe/20.jpg differ diff --git a/app/src/main/assets/png_Cafe/21.jpg b/app/src/main/assets/png_Cafe/21.jpg new file mode 100644 index 0000000..c019faa Binary files /dev/null and b/app/src/main/assets/png_Cafe/21.jpg differ diff --git a/app/src/main/assets/png_Cafe/22.jpg b/app/src/main/assets/png_Cafe/22.jpg new file mode 100644 index 0000000..28cdc4e Binary files /dev/null and b/app/src/main/assets/png_Cafe/22.jpg differ diff --git a/app/src/main/assets/png_Cafe/23.jpg b/app/src/main/assets/png_Cafe/23.jpg new file mode 100644 index 0000000..973a5c2 Binary files /dev/null and b/app/src/main/assets/png_Cafe/23.jpg differ diff --git a/app/src/main/assets/png_Cafe/24.jpg b/app/src/main/assets/png_Cafe/24.jpg new file mode 100644 index 0000000..3c36d8a Binary files /dev/null and b/app/src/main/assets/png_Cafe/24.jpg differ diff --git a/app/src/main/assets/png_Cafe/25.jpg b/app/src/main/assets/png_Cafe/25.jpg new file mode 100644 index 0000000..c7be496 Binary files /dev/null and b/app/src/main/assets/png_Cafe/25.jpg differ diff --git a/app/src/main/assets/png_Cafe/26.jpg b/app/src/main/assets/png_Cafe/26.jpg new file mode 100644 index 0000000..7229696 Binary files /dev/null and b/app/src/main/assets/png_Cafe/26.jpg differ diff --git a/app/src/main/assets/png_Cafe/27.jpg b/app/src/main/assets/png_Cafe/27.jpg new file mode 100644 index 0000000..f857542 Binary files /dev/null and b/app/src/main/assets/png_Cafe/27.jpg differ diff --git a/app/src/main/assets/png_Cafe/28.jpg b/app/src/main/assets/png_Cafe/28.jpg new file mode 100644 index 0000000..8cde6de Binary files /dev/null and b/app/src/main/assets/png_Cafe/28.jpg differ diff --git a/app/src/main/assets/png_Cafe/29.jpg b/app/src/main/assets/png_Cafe/29.jpg new file mode 100644 index 0000000..8affd30 Binary files /dev/null and b/app/src/main/assets/png_Cafe/29.jpg differ diff --git a/app/src/main/assets/png_Cafe/3.jpg b/app/src/main/assets/png_Cafe/3.jpg new file mode 100644 index 0000000..b1c3cfa Binary files /dev/null and b/app/src/main/assets/png_Cafe/3.jpg differ diff --git a/app/src/main/assets/png_Cafe/30.jpg b/app/src/main/assets/png_Cafe/30.jpg new file mode 100644 index 0000000..f71ce84 Binary files /dev/null and b/app/src/main/assets/png_Cafe/30.jpg differ diff --git a/app/src/main/assets/png_Cafe/31.jpg b/app/src/main/assets/png_Cafe/31.jpg new file mode 100644 index 0000000..a5d22ca Binary files /dev/null and b/app/src/main/assets/png_Cafe/31.jpg differ diff --git a/app/src/main/assets/png_Cafe/32.jpg b/app/src/main/assets/png_Cafe/32.jpg new file mode 100644 index 0000000..8513a5e Binary files /dev/null and b/app/src/main/assets/png_Cafe/32.jpg differ diff --git a/app/src/main/assets/png_Cafe/33.jpg b/app/src/main/assets/png_Cafe/33.jpg new file mode 100644 index 0000000..fcdcbcc Binary files /dev/null and b/app/src/main/assets/png_Cafe/33.jpg differ diff --git a/app/src/main/assets/png_Cafe/34.jpg b/app/src/main/assets/png_Cafe/34.jpg new file mode 100644 index 0000000..51bbf4b Binary files /dev/null and b/app/src/main/assets/png_Cafe/34.jpg differ diff --git a/app/src/main/assets/png_Cafe/35.jpg b/app/src/main/assets/png_Cafe/35.jpg new file mode 100644 index 0000000..e1067da Binary files /dev/null and b/app/src/main/assets/png_Cafe/35.jpg differ diff --git a/app/src/main/assets/png_Cafe/36.jpg b/app/src/main/assets/png_Cafe/36.jpg new file mode 100644 index 0000000..181a84a Binary files /dev/null and b/app/src/main/assets/png_Cafe/36.jpg differ diff --git a/app/src/main/assets/png_Cafe/37.jpg b/app/src/main/assets/png_Cafe/37.jpg new file mode 100644 index 0000000..d8ffb00 Binary files /dev/null and b/app/src/main/assets/png_Cafe/37.jpg differ diff --git a/app/src/main/assets/png_Cafe/38.jpg b/app/src/main/assets/png_Cafe/38.jpg new file mode 100644 index 0000000..abdba50 Binary files /dev/null and b/app/src/main/assets/png_Cafe/38.jpg differ diff --git a/app/src/main/assets/png_Cafe/4.jpg b/app/src/main/assets/png_Cafe/4.jpg new file mode 100644 index 0000000..8792f16 Binary files /dev/null and b/app/src/main/assets/png_Cafe/4.jpg differ diff --git a/app/src/main/assets/png_Cafe/5.jpg b/app/src/main/assets/png_Cafe/5.jpg new file mode 100644 index 0000000..89630aa Binary files /dev/null and b/app/src/main/assets/png_Cafe/5.jpg differ diff --git a/app/src/main/assets/png_Cafe/6.jpg b/app/src/main/assets/png_Cafe/6.jpg new file mode 100644 index 0000000..7e6832e Binary files /dev/null and b/app/src/main/assets/png_Cafe/6.jpg differ diff --git a/app/src/main/assets/png_Cafe/7.jpg b/app/src/main/assets/png_Cafe/7.jpg new file mode 100644 index 0000000..f4d2afb Binary files /dev/null and b/app/src/main/assets/png_Cafe/7.jpg differ diff --git a/app/src/main/assets/png_Cafe/8.jpg b/app/src/main/assets/png_Cafe/8.jpg new file mode 100644 index 0000000..78f5ccf Binary files /dev/null and b/app/src/main/assets/png_Cafe/8.jpg differ diff --git a/app/src/main/assets/png_Cafe/9.jpg b/app/src/main/assets/png_Cafe/9.jpg new file mode 100644 index 0000000..4038bb5 Binary files /dev/null and b/app/src/main/assets/png_Cafe/9.jpg differ diff --git a/app/src/main/assets/png_Cartoons/1.jpg b/app/src/main/assets/png_Cartoons/1.jpg new file mode 100644 index 0000000..74bf123 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/1.jpg differ diff --git a/app/src/main/assets/png_Cartoons/10.jpg b/app/src/main/assets/png_Cartoons/10.jpg new file mode 100644 index 0000000..450fa6e Binary files /dev/null and b/app/src/main/assets/png_Cartoons/10.jpg differ diff --git a/app/src/main/assets/png_Cartoons/11.jpg b/app/src/main/assets/png_Cartoons/11.jpg new file mode 100644 index 0000000..1f2a904 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/11.jpg differ diff --git a/app/src/main/assets/png_Cartoons/12.jpg b/app/src/main/assets/png_Cartoons/12.jpg new file mode 100644 index 0000000..86ef206 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/12.jpg differ diff --git a/app/src/main/assets/png_Cartoons/13.jpg b/app/src/main/assets/png_Cartoons/13.jpg new file mode 100644 index 0000000..92e1d75 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/13.jpg differ diff --git a/app/src/main/assets/png_Cartoons/14.jpg b/app/src/main/assets/png_Cartoons/14.jpg new file mode 100644 index 0000000..c82e897 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/14.jpg differ diff --git a/app/src/main/assets/png_Cartoons/15.jpg b/app/src/main/assets/png_Cartoons/15.jpg new file mode 100644 index 0000000..bcd8678 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/15.jpg differ diff --git a/app/src/main/assets/png_Cartoons/16.jpg b/app/src/main/assets/png_Cartoons/16.jpg new file mode 100644 index 0000000..18377bd Binary files /dev/null and b/app/src/main/assets/png_Cartoons/16.jpg differ diff --git a/app/src/main/assets/png_Cartoons/17.jpg b/app/src/main/assets/png_Cartoons/17.jpg new file mode 100644 index 0000000..45aafbb Binary files /dev/null and b/app/src/main/assets/png_Cartoons/17.jpg differ diff --git a/app/src/main/assets/png_Cartoons/18.jpg b/app/src/main/assets/png_Cartoons/18.jpg new file mode 100644 index 0000000..048d253 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/18.jpg differ diff --git a/app/src/main/assets/png_Cartoons/19.jpg b/app/src/main/assets/png_Cartoons/19.jpg new file mode 100644 index 0000000..c2501b2 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/19.jpg differ diff --git a/app/src/main/assets/png_Cartoons/2.jpg b/app/src/main/assets/png_Cartoons/2.jpg new file mode 100644 index 0000000..8baf95b Binary files /dev/null and b/app/src/main/assets/png_Cartoons/2.jpg differ diff --git a/app/src/main/assets/png_Cartoons/20.jpg b/app/src/main/assets/png_Cartoons/20.jpg new file mode 100644 index 0000000..fb7901c Binary files /dev/null and b/app/src/main/assets/png_Cartoons/20.jpg differ diff --git a/app/src/main/assets/png_Cartoons/21.jpg b/app/src/main/assets/png_Cartoons/21.jpg new file mode 100644 index 0000000..ed7104e Binary files /dev/null and b/app/src/main/assets/png_Cartoons/21.jpg differ diff --git a/app/src/main/assets/png_Cartoons/22.jpg b/app/src/main/assets/png_Cartoons/22.jpg new file mode 100644 index 0000000..cd003eb Binary files /dev/null and b/app/src/main/assets/png_Cartoons/22.jpg differ diff --git a/app/src/main/assets/png_Cartoons/23.jpg b/app/src/main/assets/png_Cartoons/23.jpg new file mode 100644 index 0000000..77b49a4 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/23.jpg differ diff --git a/app/src/main/assets/png_Cartoons/24.jpg b/app/src/main/assets/png_Cartoons/24.jpg new file mode 100644 index 0000000..1c7dc65 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/24.jpg differ diff --git a/app/src/main/assets/png_Cartoons/25.jpg b/app/src/main/assets/png_Cartoons/25.jpg new file mode 100644 index 0000000..442aec2 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/25.jpg differ diff --git a/app/src/main/assets/png_Cartoons/26.jpg b/app/src/main/assets/png_Cartoons/26.jpg new file mode 100644 index 0000000..ec4a2ff Binary files /dev/null and b/app/src/main/assets/png_Cartoons/26.jpg differ diff --git a/app/src/main/assets/png_Cartoons/3.jpg b/app/src/main/assets/png_Cartoons/3.jpg new file mode 100644 index 0000000..e099902 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/3.jpg differ diff --git a/app/src/main/assets/png_Cartoons/4.jpg b/app/src/main/assets/png_Cartoons/4.jpg new file mode 100644 index 0000000..a4c69ba Binary files /dev/null and b/app/src/main/assets/png_Cartoons/4.jpg differ diff --git a/app/src/main/assets/png_Cartoons/5.jpg b/app/src/main/assets/png_Cartoons/5.jpg new file mode 100644 index 0000000..b32485d Binary files /dev/null and b/app/src/main/assets/png_Cartoons/5.jpg differ diff --git a/app/src/main/assets/png_Cartoons/6.jpg b/app/src/main/assets/png_Cartoons/6.jpg new file mode 100644 index 0000000..0e0a7ef Binary files /dev/null and b/app/src/main/assets/png_Cartoons/6.jpg differ diff --git a/app/src/main/assets/png_Cartoons/7.jpg b/app/src/main/assets/png_Cartoons/7.jpg new file mode 100644 index 0000000..ecd8dc0 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/7.jpg differ diff --git a/app/src/main/assets/png_Cartoons/8.jpg b/app/src/main/assets/png_Cartoons/8.jpg new file mode 100644 index 0000000..f6ea587 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/8.jpg differ diff --git a/app/src/main/assets/png_Cartoons/9.jpg b/app/src/main/assets/png_Cartoons/9.jpg new file mode 100644 index 0000000..da4c151 Binary files /dev/null and b/app/src/main/assets/png_Cartoons/9.jpg differ diff --git a/app/src/main/assets/png_Christmas/1.jpg b/app/src/main/assets/png_Christmas/1.jpg new file mode 100644 index 0000000..cc1fafb Binary files /dev/null and b/app/src/main/assets/png_Christmas/1.jpg differ diff --git a/app/src/main/assets/png_Christmas/10.jpg b/app/src/main/assets/png_Christmas/10.jpg new file mode 100644 index 0000000..e5e63d6 Binary files /dev/null and b/app/src/main/assets/png_Christmas/10.jpg differ diff --git a/app/src/main/assets/png_Christmas/11.jpg b/app/src/main/assets/png_Christmas/11.jpg new file mode 100644 index 0000000..cae5d66 Binary files /dev/null and b/app/src/main/assets/png_Christmas/11.jpg differ diff --git a/app/src/main/assets/png_Christmas/12.jpg b/app/src/main/assets/png_Christmas/12.jpg new file mode 100644 index 0000000..13fd21f Binary files /dev/null and b/app/src/main/assets/png_Christmas/12.jpg differ diff --git a/app/src/main/assets/png_Christmas/13.jpg b/app/src/main/assets/png_Christmas/13.jpg new file mode 100644 index 0000000..1fa30fe Binary files /dev/null and b/app/src/main/assets/png_Christmas/13.jpg differ diff --git a/app/src/main/assets/png_Christmas/14.jpg b/app/src/main/assets/png_Christmas/14.jpg new file mode 100644 index 0000000..aec6dcf Binary files /dev/null and b/app/src/main/assets/png_Christmas/14.jpg differ diff --git a/app/src/main/assets/png_Christmas/15.jpg b/app/src/main/assets/png_Christmas/15.jpg new file mode 100644 index 0000000..647c8b6 Binary files /dev/null and b/app/src/main/assets/png_Christmas/15.jpg differ diff --git a/app/src/main/assets/png_Christmas/16.jpg b/app/src/main/assets/png_Christmas/16.jpg new file mode 100644 index 0000000..b36a79c Binary files /dev/null and b/app/src/main/assets/png_Christmas/16.jpg differ diff --git a/app/src/main/assets/png_Christmas/17.jpg b/app/src/main/assets/png_Christmas/17.jpg new file mode 100644 index 0000000..2655af2 Binary files /dev/null and b/app/src/main/assets/png_Christmas/17.jpg differ diff --git a/app/src/main/assets/png_Christmas/18.jpg b/app/src/main/assets/png_Christmas/18.jpg new file mode 100644 index 0000000..e784d64 Binary files /dev/null and b/app/src/main/assets/png_Christmas/18.jpg differ diff --git a/app/src/main/assets/png_Christmas/19.jpg b/app/src/main/assets/png_Christmas/19.jpg new file mode 100644 index 0000000..fcf2085 Binary files /dev/null and b/app/src/main/assets/png_Christmas/19.jpg differ diff --git a/app/src/main/assets/png_Christmas/2.jpg b/app/src/main/assets/png_Christmas/2.jpg new file mode 100644 index 0000000..326e86b Binary files /dev/null and b/app/src/main/assets/png_Christmas/2.jpg differ diff --git a/app/src/main/assets/png_Christmas/20.jpg b/app/src/main/assets/png_Christmas/20.jpg new file mode 100644 index 0000000..a9e3c89 Binary files /dev/null and b/app/src/main/assets/png_Christmas/20.jpg differ diff --git a/app/src/main/assets/png_Christmas/21.jpg b/app/src/main/assets/png_Christmas/21.jpg new file mode 100644 index 0000000..71b4150 Binary files /dev/null and b/app/src/main/assets/png_Christmas/21.jpg differ diff --git a/app/src/main/assets/png_Christmas/22.jpg b/app/src/main/assets/png_Christmas/22.jpg new file mode 100644 index 0000000..3c99d0d Binary files /dev/null and b/app/src/main/assets/png_Christmas/22.jpg differ diff --git a/app/src/main/assets/png_Christmas/23.jpg b/app/src/main/assets/png_Christmas/23.jpg new file mode 100644 index 0000000..32c3b03 Binary files /dev/null and b/app/src/main/assets/png_Christmas/23.jpg differ diff --git a/app/src/main/assets/png_Christmas/24.jpg b/app/src/main/assets/png_Christmas/24.jpg new file mode 100644 index 0000000..80fd836 Binary files /dev/null and b/app/src/main/assets/png_Christmas/24.jpg differ diff --git a/app/src/main/assets/png_Christmas/25.jpg b/app/src/main/assets/png_Christmas/25.jpg new file mode 100644 index 0000000..8e2bef6 Binary files /dev/null and b/app/src/main/assets/png_Christmas/25.jpg differ diff --git a/app/src/main/assets/png_Christmas/3.jpg b/app/src/main/assets/png_Christmas/3.jpg new file mode 100644 index 0000000..4c24cd2 Binary files /dev/null and b/app/src/main/assets/png_Christmas/3.jpg differ diff --git a/app/src/main/assets/png_Christmas/4.jpg b/app/src/main/assets/png_Christmas/4.jpg new file mode 100644 index 0000000..28fb1b0 Binary files /dev/null and b/app/src/main/assets/png_Christmas/4.jpg differ diff --git a/app/src/main/assets/png_Christmas/5.jpg b/app/src/main/assets/png_Christmas/5.jpg new file mode 100644 index 0000000..93ad555 Binary files /dev/null and b/app/src/main/assets/png_Christmas/5.jpg differ diff --git a/app/src/main/assets/png_Christmas/6.jpg b/app/src/main/assets/png_Christmas/6.jpg new file mode 100644 index 0000000..02fe302 Binary files /dev/null and b/app/src/main/assets/png_Christmas/6.jpg differ diff --git a/app/src/main/assets/png_Christmas/7.jpg b/app/src/main/assets/png_Christmas/7.jpg new file mode 100644 index 0000000..dc41982 Binary files /dev/null and b/app/src/main/assets/png_Christmas/7.jpg differ diff --git a/app/src/main/assets/png_Christmas/8.jpg b/app/src/main/assets/png_Christmas/8.jpg new file mode 100644 index 0000000..5f13019 Binary files /dev/null and b/app/src/main/assets/png_Christmas/8.jpg differ diff --git a/app/src/main/assets/png_Christmas/9.jpg b/app/src/main/assets/png_Christmas/9.jpg new file mode 100644 index 0000000..e556980 Binary files /dev/null and b/app/src/main/assets/png_Christmas/9.jpg differ diff --git a/app/src/main/assets/png_Festivals/1.jpg b/app/src/main/assets/png_Festivals/1.jpg new file mode 100644 index 0000000..125d632 Binary files /dev/null and b/app/src/main/assets/png_Festivals/1.jpg differ diff --git a/app/src/main/assets/png_Festivals/10.jpg b/app/src/main/assets/png_Festivals/10.jpg new file mode 100644 index 0000000..d17b9f1 Binary files /dev/null and b/app/src/main/assets/png_Festivals/10.jpg differ diff --git a/app/src/main/assets/png_Festivals/11.jpg b/app/src/main/assets/png_Festivals/11.jpg new file mode 100644 index 0000000..702f052 Binary files /dev/null and b/app/src/main/assets/png_Festivals/11.jpg differ diff --git a/app/src/main/assets/png_Festivals/12.jpg b/app/src/main/assets/png_Festivals/12.jpg new file mode 100644 index 0000000..6f231e1 Binary files /dev/null and b/app/src/main/assets/png_Festivals/12.jpg differ diff --git a/app/src/main/assets/png_Festivals/13.jpg b/app/src/main/assets/png_Festivals/13.jpg new file mode 100644 index 0000000..20556a1 Binary files /dev/null and b/app/src/main/assets/png_Festivals/13.jpg differ diff --git a/app/src/main/assets/png_Festivals/14.jpg b/app/src/main/assets/png_Festivals/14.jpg new file mode 100644 index 0000000..fb78127 Binary files /dev/null and b/app/src/main/assets/png_Festivals/14.jpg differ diff --git a/app/src/main/assets/png_Festivals/15.jpg b/app/src/main/assets/png_Festivals/15.jpg new file mode 100644 index 0000000..e74f47e Binary files /dev/null and b/app/src/main/assets/png_Festivals/15.jpg differ diff --git a/app/src/main/assets/png_Festivals/16.jpg b/app/src/main/assets/png_Festivals/16.jpg new file mode 100644 index 0000000..136f6e8 Binary files /dev/null and b/app/src/main/assets/png_Festivals/16.jpg differ diff --git a/app/src/main/assets/png_Festivals/17.jpg b/app/src/main/assets/png_Festivals/17.jpg new file mode 100644 index 0000000..fd50e67 Binary files /dev/null and b/app/src/main/assets/png_Festivals/17.jpg differ diff --git a/app/src/main/assets/png_Festivals/18.jpg b/app/src/main/assets/png_Festivals/18.jpg new file mode 100644 index 0000000..d3f7936 Binary files /dev/null and b/app/src/main/assets/png_Festivals/18.jpg differ diff --git a/app/src/main/assets/png_Festivals/19.jpg b/app/src/main/assets/png_Festivals/19.jpg new file mode 100644 index 0000000..9a4f1b8 Binary files /dev/null and b/app/src/main/assets/png_Festivals/19.jpg differ diff --git a/app/src/main/assets/png_Festivals/2.jpg b/app/src/main/assets/png_Festivals/2.jpg new file mode 100644 index 0000000..84aa31a Binary files /dev/null and b/app/src/main/assets/png_Festivals/2.jpg differ diff --git a/app/src/main/assets/png_Festivals/20.jpg b/app/src/main/assets/png_Festivals/20.jpg new file mode 100644 index 0000000..268c943 Binary files /dev/null and b/app/src/main/assets/png_Festivals/20.jpg differ diff --git a/app/src/main/assets/png_Festivals/21.jpg b/app/src/main/assets/png_Festivals/21.jpg new file mode 100644 index 0000000..614bffd Binary files /dev/null and b/app/src/main/assets/png_Festivals/21.jpg differ diff --git a/app/src/main/assets/png_Festivals/22.jpg b/app/src/main/assets/png_Festivals/22.jpg new file mode 100644 index 0000000..f81eb8d Binary files /dev/null and b/app/src/main/assets/png_Festivals/22.jpg differ diff --git a/app/src/main/assets/png_Festivals/3.jpg b/app/src/main/assets/png_Festivals/3.jpg new file mode 100644 index 0000000..5ca2b11 Binary files /dev/null and b/app/src/main/assets/png_Festivals/3.jpg differ diff --git a/app/src/main/assets/png_Festivals/4.jpg b/app/src/main/assets/png_Festivals/4.jpg new file mode 100644 index 0000000..1f8cc81 Binary files /dev/null and b/app/src/main/assets/png_Festivals/4.jpg differ diff --git a/app/src/main/assets/png_Festivals/5.jpg b/app/src/main/assets/png_Festivals/5.jpg new file mode 100644 index 0000000..7f1bd1a Binary files /dev/null and b/app/src/main/assets/png_Festivals/5.jpg differ diff --git a/app/src/main/assets/png_Festivals/6.jpg b/app/src/main/assets/png_Festivals/6.jpg new file mode 100644 index 0000000..9cf832a Binary files /dev/null and b/app/src/main/assets/png_Festivals/6.jpg differ diff --git a/app/src/main/assets/png_Festivals/7.jpg b/app/src/main/assets/png_Festivals/7.jpg new file mode 100644 index 0000000..dcd83f3 Binary files /dev/null and b/app/src/main/assets/png_Festivals/7.jpg differ diff --git a/app/src/main/assets/png_Festivals/8.jpg b/app/src/main/assets/png_Festivals/8.jpg new file mode 100644 index 0000000..1117f09 Binary files /dev/null and b/app/src/main/assets/png_Festivals/8.jpg differ diff --git a/app/src/main/assets/png_Festivals/9.jpg b/app/src/main/assets/png_Festivals/9.jpg new file mode 100644 index 0000000..39d8467 Binary files /dev/null and b/app/src/main/assets/png_Festivals/9.jpg differ diff --git a/app/src/main/assets/png_Flowers/1.jpg b/app/src/main/assets/png_Flowers/1.jpg new file mode 100644 index 0000000..217d9c8 Binary files /dev/null and b/app/src/main/assets/png_Flowers/1.jpg differ diff --git a/app/src/main/assets/png_Flowers/10.jpg b/app/src/main/assets/png_Flowers/10.jpg new file mode 100644 index 0000000..ba84e61 Binary files /dev/null and b/app/src/main/assets/png_Flowers/10.jpg differ diff --git a/app/src/main/assets/png_Flowers/11.jpg b/app/src/main/assets/png_Flowers/11.jpg new file mode 100644 index 0000000..e579753 Binary files /dev/null and b/app/src/main/assets/png_Flowers/11.jpg differ diff --git a/app/src/main/assets/png_Flowers/12.jpg b/app/src/main/assets/png_Flowers/12.jpg new file mode 100644 index 0000000..26092f9 Binary files /dev/null and b/app/src/main/assets/png_Flowers/12.jpg differ diff --git a/app/src/main/assets/png_Flowers/13.jpg b/app/src/main/assets/png_Flowers/13.jpg new file mode 100644 index 0000000..41d2df3 Binary files /dev/null and b/app/src/main/assets/png_Flowers/13.jpg differ diff --git a/app/src/main/assets/png_Flowers/14.jpg b/app/src/main/assets/png_Flowers/14.jpg new file mode 100644 index 0000000..c44df66 Binary files /dev/null and b/app/src/main/assets/png_Flowers/14.jpg differ diff --git a/app/src/main/assets/png_Flowers/15.jpg b/app/src/main/assets/png_Flowers/15.jpg new file mode 100644 index 0000000..ea34d36 Binary files /dev/null and b/app/src/main/assets/png_Flowers/15.jpg differ diff --git a/app/src/main/assets/png_Flowers/16.jpg b/app/src/main/assets/png_Flowers/16.jpg new file mode 100644 index 0000000..506beb1 Binary files /dev/null and b/app/src/main/assets/png_Flowers/16.jpg differ diff --git a/app/src/main/assets/png_Flowers/17.jpg b/app/src/main/assets/png_Flowers/17.jpg new file mode 100644 index 0000000..3764b21 Binary files /dev/null and b/app/src/main/assets/png_Flowers/17.jpg differ diff --git a/app/src/main/assets/png_Flowers/18.jpg b/app/src/main/assets/png_Flowers/18.jpg new file mode 100644 index 0000000..a759ab6 Binary files /dev/null and b/app/src/main/assets/png_Flowers/18.jpg differ diff --git a/app/src/main/assets/png_Flowers/19.jpg b/app/src/main/assets/png_Flowers/19.jpg new file mode 100644 index 0000000..e8c2a84 Binary files /dev/null and b/app/src/main/assets/png_Flowers/19.jpg differ diff --git a/app/src/main/assets/png_Flowers/2.jpg b/app/src/main/assets/png_Flowers/2.jpg new file mode 100644 index 0000000..fb7e56f Binary files /dev/null and b/app/src/main/assets/png_Flowers/2.jpg differ diff --git a/app/src/main/assets/png_Flowers/20.jpg b/app/src/main/assets/png_Flowers/20.jpg new file mode 100644 index 0000000..93e5408 Binary files /dev/null and b/app/src/main/assets/png_Flowers/20.jpg differ diff --git a/app/src/main/assets/png_Flowers/21.jpg b/app/src/main/assets/png_Flowers/21.jpg new file mode 100644 index 0000000..4fa3a77 Binary files /dev/null and b/app/src/main/assets/png_Flowers/21.jpg differ diff --git a/app/src/main/assets/png_Flowers/22.jpg b/app/src/main/assets/png_Flowers/22.jpg new file mode 100644 index 0000000..6f45df7 Binary files /dev/null and b/app/src/main/assets/png_Flowers/22.jpg differ diff --git a/app/src/main/assets/png_Flowers/23.jpg b/app/src/main/assets/png_Flowers/23.jpg new file mode 100644 index 0000000..46e806d Binary files /dev/null and b/app/src/main/assets/png_Flowers/23.jpg differ diff --git a/app/src/main/assets/png_Flowers/3.jpg b/app/src/main/assets/png_Flowers/3.jpg new file mode 100644 index 0000000..22a741c Binary files /dev/null and b/app/src/main/assets/png_Flowers/3.jpg differ diff --git a/app/src/main/assets/png_Flowers/4.jpg b/app/src/main/assets/png_Flowers/4.jpg new file mode 100644 index 0000000..dd0a30f Binary files /dev/null and b/app/src/main/assets/png_Flowers/4.jpg differ diff --git a/app/src/main/assets/png_Flowers/5.jpg b/app/src/main/assets/png_Flowers/5.jpg new file mode 100644 index 0000000..9dcb4f5 Binary files /dev/null and b/app/src/main/assets/png_Flowers/5.jpg differ diff --git a/app/src/main/assets/png_Flowers/6.jpg b/app/src/main/assets/png_Flowers/6.jpg new file mode 100644 index 0000000..cdf1f65 Binary files /dev/null and b/app/src/main/assets/png_Flowers/6.jpg differ diff --git a/app/src/main/assets/png_Flowers/7.jpg b/app/src/main/assets/png_Flowers/7.jpg new file mode 100644 index 0000000..caab990 Binary files /dev/null and b/app/src/main/assets/png_Flowers/7.jpg differ diff --git a/app/src/main/assets/png_Flowers/8.jpg b/app/src/main/assets/png_Flowers/8.jpg new file mode 100644 index 0000000..c43832b Binary files /dev/null and b/app/src/main/assets/png_Flowers/8.jpg differ diff --git a/app/src/main/assets/png_Flowers/9.jpg b/app/src/main/assets/png_Flowers/9.jpg new file mode 100644 index 0000000..5b78ee1 Binary files /dev/null and b/app/src/main/assets/png_Flowers/9.jpg differ diff --git a/app/src/main/assets/png_Fruits/1.jpg b/app/src/main/assets/png_Fruits/1.jpg new file mode 100644 index 0000000..767c0b4 Binary files /dev/null and b/app/src/main/assets/png_Fruits/1.jpg differ diff --git a/app/src/main/assets/png_Fruits/10.jpg b/app/src/main/assets/png_Fruits/10.jpg new file mode 100644 index 0000000..95bdbca Binary files /dev/null and b/app/src/main/assets/png_Fruits/10.jpg differ diff --git a/app/src/main/assets/png_Fruits/11.jpg b/app/src/main/assets/png_Fruits/11.jpg new file mode 100644 index 0000000..b0bb89a Binary files /dev/null and b/app/src/main/assets/png_Fruits/11.jpg differ diff --git a/app/src/main/assets/png_Fruits/12.jpg b/app/src/main/assets/png_Fruits/12.jpg new file mode 100644 index 0000000..c1d9bad Binary files /dev/null and b/app/src/main/assets/png_Fruits/12.jpg differ diff --git a/app/src/main/assets/png_Fruits/13.jpg b/app/src/main/assets/png_Fruits/13.jpg new file mode 100644 index 0000000..f44fb86 Binary files /dev/null and b/app/src/main/assets/png_Fruits/13.jpg differ diff --git a/app/src/main/assets/png_Fruits/14.jpg b/app/src/main/assets/png_Fruits/14.jpg new file mode 100644 index 0000000..459a60c Binary files /dev/null and b/app/src/main/assets/png_Fruits/14.jpg differ diff --git a/app/src/main/assets/png_Fruits/15.jpg b/app/src/main/assets/png_Fruits/15.jpg new file mode 100644 index 0000000..a4e4abe Binary files /dev/null and b/app/src/main/assets/png_Fruits/15.jpg differ diff --git a/app/src/main/assets/png_Fruits/16.jpg b/app/src/main/assets/png_Fruits/16.jpg new file mode 100644 index 0000000..33a7a9a Binary files /dev/null and b/app/src/main/assets/png_Fruits/16.jpg differ diff --git a/app/src/main/assets/png_Fruits/17.jpg b/app/src/main/assets/png_Fruits/17.jpg new file mode 100644 index 0000000..c193b1e Binary files /dev/null and b/app/src/main/assets/png_Fruits/17.jpg differ diff --git a/app/src/main/assets/png_Fruits/18.jpg b/app/src/main/assets/png_Fruits/18.jpg new file mode 100644 index 0000000..f0ca248 Binary files /dev/null and b/app/src/main/assets/png_Fruits/18.jpg differ diff --git a/app/src/main/assets/png_Fruits/19.jpg b/app/src/main/assets/png_Fruits/19.jpg new file mode 100644 index 0000000..d93dfde Binary files /dev/null and b/app/src/main/assets/png_Fruits/19.jpg differ diff --git a/app/src/main/assets/png_Fruits/2.jpg b/app/src/main/assets/png_Fruits/2.jpg new file mode 100644 index 0000000..b32f9f5 Binary files /dev/null and b/app/src/main/assets/png_Fruits/2.jpg differ diff --git a/app/src/main/assets/png_Fruits/20.jpg b/app/src/main/assets/png_Fruits/20.jpg new file mode 100644 index 0000000..cc3fe93 Binary files /dev/null and b/app/src/main/assets/png_Fruits/20.jpg differ diff --git a/app/src/main/assets/png_Fruits/21.jpg b/app/src/main/assets/png_Fruits/21.jpg new file mode 100644 index 0000000..c1813eb Binary files /dev/null and b/app/src/main/assets/png_Fruits/21.jpg differ diff --git a/app/src/main/assets/png_Fruits/22.jpg b/app/src/main/assets/png_Fruits/22.jpg new file mode 100644 index 0000000..47387e1 Binary files /dev/null and b/app/src/main/assets/png_Fruits/22.jpg differ diff --git a/app/src/main/assets/png_Fruits/23.jpg b/app/src/main/assets/png_Fruits/23.jpg new file mode 100644 index 0000000..7f173ec Binary files /dev/null and b/app/src/main/assets/png_Fruits/23.jpg differ diff --git a/app/src/main/assets/png_Fruits/24.jpg b/app/src/main/assets/png_Fruits/24.jpg new file mode 100644 index 0000000..a7ae235 Binary files /dev/null and b/app/src/main/assets/png_Fruits/24.jpg differ diff --git a/app/src/main/assets/png_Fruits/25.jpg b/app/src/main/assets/png_Fruits/25.jpg new file mode 100644 index 0000000..dd664bb Binary files /dev/null and b/app/src/main/assets/png_Fruits/25.jpg differ diff --git a/app/src/main/assets/png_Fruits/26.jpg b/app/src/main/assets/png_Fruits/26.jpg new file mode 100644 index 0000000..c8e4723 Binary files /dev/null and b/app/src/main/assets/png_Fruits/26.jpg differ diff --git a/app/src/main/assets/png_Fruits/27.jpg b/app/src/main/assets/png_Fruits/27.jpg new file mode 100644 index 0000000..816337d Binary files /dev/null and b/app/src/main/assets/png_Fruits/27.jpg differ diff --git a/app/src/main/assets/png_Fruits/28.jpg b/app/src/main/assets/png_Fruits/28.jpg new file mode 100644 index 0000000..29973d5 Binary files /dev/null and b/app/src/main/assets/png_Fruits/28.jpg differ diff --git a/app/src/main/assets/png_Fruits/29.jpg b/app/src/main/assets/png_Fruits/29.jpg new file mode 100644 index 0000000..4f0750f Binary files /dev/null and b/app/src/main/assets/png_Fruits/29.jpg differ diff --git a/app/src/main/assets/png_Fruits/3.jpg b/app/src/main/assets/png_Fruits/3.jpg new file mode 100644 index 0000000..f57893b Binary files /dev/null and b/app/src/main/assets/png_Fruits/3.jpg differ diff --git a/app/src/main/assets/png_Fruits/30.jpg b/app/src/main/assets/png_Fruits/30.jpg new file mode 100644 index 0000000..cfd117a Binary files /dev/null and b/app/src/main/assets/png_Fruits/30.jpg differ diff --git a/app/src/main/assets/png_Fruits/31.jpg b/app/src/main/assets/png_Fruits/31.jpg new file mode 100644 index 0000000..b59a7c5 Binary files /dev/null and b/app/src/main/assets/png_Fruits/31.jpg differ diff --git a/app/src/main/assets/png_Fruits/32.jpg b/app/src/main/assets/png_Fruits/32.jpg new file mode 100644 index 0000000..8f70790 Binary files /dev/null and b/app/src/main/assets/png_Fruits/32.jpg differ diff --git a/app/src/main/assets/png_Fruits/33.jpg b/app/src/main/assets/png_Fruits/33.jpg new file mode 100644 index 0000000..373b142 Binary files /dev/null and b/app/src/main/assets/png_Fruits/33.jpg differ diff --git a/app/src/main/assets/png_Fruits/34.jpg b/app/src/main/assets/png_Fruits/34.jpg new file mode 100644 index 0000000..c5beb91 Binary files /dev/null and b/app/src/main/assets/png_Fruits/34.jpg differ diff --git a/app/src/main/assets/png_Fruits/35.jpg b/app/src/main/assets/png_Fruits/35.jpg new file mode 100644 index 0000000..79cd667 Binary files /dev/null and b/app/src/main/assets/png_Fruits/35.jpg differ diff --git a/app/src/main/assets/png_Fruits/36.jpg b/app/src/main/assets/png_Fruits/36.jpg new file mode 100644 index 0000000..c0cb185 Binary files /dev/null and b/app/src/main/assets/png_Fruits/36.jpg differ diff --git a/app/src/main/assets/png_Fruits/37.jpg b/app/src/main/assets/png_Fruits/37.jpg new file mode 100644 index 0000000..ba1b245 Binary files /dev/null and b/app/src/main/assets/png_Fruits/37.jpg differ diff --git a/app/src/main/assets/png_Fruits/38.jpg b/app/src/main/assets/png_Fruits/38.jpg new file mode 100644 index 0000000..c7eccb8 Binary files /dev/null and b/app/src/main/assets/png_Fruits/38.jpg differ diff --git a/app/src/main/assets/png_Fruits/39.jpg b/app/src/main/assets/png_Fruits/39.jpg new file mode 100644 index 0000000..bc95aaa Binary files /dev/null and b/app/src/main/assets/png_Fruits/39.jpg differ diff --git a/app/src/main/assets/png_Fruits/4.jpg b/app/src/main/assets/png_Fruits/4.jpg new file mode 100644 index 0000000..2d7465d Binary files /dev/null and b/app/src/main/assets/png_Fruits/4.jpg differ diff --git a/app/src/main/assets/png_Fruits/5.jpg b/app/src/main/assets/png_Fruits/5.jpg new file mode 100644 index 0000000..8ed633f Binary files /dev/null and b/app/src/main/assets/png_Fruits/5.jpg differ diff --git a/app/src/main/assets/png_Fruits/6.jpg b/app/src/main/assets/png_Fruits/6.jpg new file mode 100644 index 0000000..06ce330 Binary files /dev/null and b/app/src/main/assets/png_Fruits/6.jpg differ diff --git a/app/src/main/assets/png_Fruits/7.jpg b/app/src/main/assets/png_Fruits/7.jpg new file mode 100644 index 0000000..6153618 Binary files /dev/null and b/app/src/main/assets/png_Fruits/7.jpg differ diff --git a/app/src/main/assets/png_Fruits/8.jpg b/app/src/main/assets/png_Fruits/8.jpg new file mode 100644 index 0000000..e333f0f Binary files /dev/null and b/app/src/main/assets/png_Fruits/8.jpg differ diff --git a/app/src/main/assets/png_Fruits/9.jpg b/app/src/main/assets/png_Fruits/9.jpg new file mode 100644 index 0000000..d549d15 Binary files /dev/null and b/app/src/main/assets/png_Fruits/9.jpg differ diff --git a/app/src/main/assets/png_General/1.jpg b/app/src/main/assets/png_General/1.jpg new file mode 100644 index 0000000..eb7c14b Binary files /dev/null and b/app/src/main/assets/png_General/1.jpg differ diff --git a/app/src/main/assets/png_General/10.jpg b/app/src/main/assets/png_General/10.jpg new file mode 100644 index 0000000..eacd298 Binary files /dev/null and b/app/src/main/assets/png_General/10.jpg differ diff --git a/app/src/main/assets/png_General/11.jpg b/app/src/main/assets/png_General/11.jpg new file mode 100644 index 0000000..273a876 Binary files /dev/null and b/app/src/main/assets/png_General/11.jpg differ diff --git a/app/src/main/assets/png_General/12.jpg b/app/src/main/assets/png_General/12.jpg new file mode 100644 index 0000000..5d786c5 Binary files /dev/null and b/app/src/main/assets/png_General/12.jpg differ diff --git a/app/src/main/assets/png_General/13.jpg b/app/src/main/assets/png_General/13.jpg new file mode 100644 index 0000000..486441a Binary files /dev/null and b/app/src/main/assets/png_General/13.jpg differ diff --git a/app/src/main/assets/png_General/14.jpg b/app/src/main/assets/png_General/14.jpg new file mode 100644 index 0000000..c36516b Binary files /dev/null and b/app/src/main/assets/png_General/14.jpg differ diff --git a/app/src/main/assets/png_General/15.jpg b/app/src/main/assets/png_General/15.jpg new file mode 100644 index 0000000..9d19fdf Binary files /dev/null and b/app/src/main/assets/png_General/15.jpg differ diff --git a/app/src/main/assets/png_General/2.jpg b/app/src/main/assets/png_General/2.jpg new file mode 100644 index 0000000..090d5d5 Binary files /dev/null and b/app/src/main/assets/png_General/2.jpg differ diff --git a/app/src/main/assets/png_General/3.jpg b/app/src/main/assets/png_General/3.jpg new file mode 100644 index 0000000..a17f1b2 Binary files /dev/null and b/app/src/main/assets/png_General/3.jpg differ diff --git a/app/src/main/assets/png_General/4.jpg b/app/src/main/assets/png_General/4.jpg new file mode 100644 index 0000000..2f4d8a2 Binary files /dev/null and b/app/src/main/assets/png_General/4.jpg differ diff --git a/app/src/main/assets/png_General/5.jpg b/app/src/main/assets/png_General/5.jpg new file mode 100644 index 0000000..8ac1cdb Binary files /dev/null and b/app/src/main/assets/png_General/5.jpg differ diff --git a/app/src/main/assets/png_General/6.jpg b/app/src/main/assets/png_General/6.jpg new file mode 100644 index 0000000..95cc582 Binary files /dev/null and b/app/src/main/assets/png_General/6.jpg differ diff --git a/app/src/main/assets/png_General/7.jpg b/app/src/main/assets/png_General/7.jpg new file mode 100644 index 0000000..91cbcfd Binary files /dev/null and b/app/src/main/assets/png_General/7.jpg differ diff --git a/app/src/main/assets/png_General/8.jpg b/app/src/main/assets/png_General/8.jpg new file mode 100644 index 0000000..af8da73 Binary files /dev/null and b/app/src/main/assets/png_General/8.jpg differ diff --git a/app/src/main/assets/png_General/9.jpg b/app/src/main/assets/png_General/9.jpg new file mode 100644 index 0000000..d5cfb72 Binary files /dev/null and b/app/src/main/assets/png_General/9.jpg differ diff --git a/app/src/main/assets/png_Mehndi/1.jpg b/app/src/main/assets/png_Mehndi/1.jpg new file mode 100644 index 0000000..8dd8843 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/1.jpg differ diff --git a/app/src/main/assets/png_Mehndi/10.jpg b/app/src/main/assets/png_Mehndi/10.jpg new file mode 100644 index 0000000..2432a79 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/10.jpg differ diff --git a/app/src/main/assets/png_Mehndi/11.jpg b/app/src/main/assets/png_Mehndi/11.jpg new file mode 100644 index 0000000..aba85bf Binary files /dev/null and b/app/src/main/assets/png_Mehndi/11.jpg differ diff --git a/app/src/main/assets/png_Mehndi/12.jpg b/app/src/main/assets/png_Mehndi/12.jpg new file mode 100644 index 0000000..f71ae22 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/12.jpg differ diff --git a/app/src/main/assets/png_Mehndi/2.jpg b/app/src/main/assets/png_Mehndi/2.jpg new file mode 100644 index 0000000..0f56bf7 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/2.jpg differ diff --git a/app/src/main/assets/png_Mehndi/3.jpg b/app/src/main/assets/png_Mehndi/3.jpg new file mode 100644 index 0000000..2bc7b69 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/3.jpg differ diff --git a/app/src/main/assets/png_Mehndi/4.jpg b/app/src/main/assets/png_Mehndi/4.jpg new file mode 100644 index 0000000..6fc3f70 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/4.jpg differ diff --git a/app/src/main/assets/png_Mehndi/5.jpg b/app/src/main/assets/png_Mehndi/5.jpg new file mode 100644 index 0000000..dccb5cf Binary files /dev/null and b/app/src/main/assets/png_Mehndi/5.jpg differ diff --git a/app/src/main/assets/png_Mehndi/6.jpg b/app/src/main/assets/png_Mehndi/6.jpg new file mode 100644 index 0000000..4e052dd Binary files /dev/null and b/app/src/main/assets/png_Mehndi/6.jpg differ diff --git a/app/src/main/assets/png_Mehndi/7.jpg b/app/src/main/assets/png_Mehndi/7.jpg new file mode 100644 index 0000000..021e789 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/7.jpg differ diff --git a/app/src/main/assets/png_Mehndi/8.jpg b/app/src/main/assets/png_Mehndi/8.jpg new file mode 100644 index 0000000..dd45b50 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/8.jpg differ diff --git a/app/src/main/assets/png_Mehndi/9.jpg b/app/src/main/assets/png_Mehndi/9.jpg new file mode 100644 index 0000000..6ff2300 Binary files /dev/null and b/app/src/main/assets/png_Mehndi/9.jpg differ diff --git a/app/src/main/assets/png_Nature/1.jpg b/app/src/main/assets/png_Nature/1.jpg new file mode 100644 index 0000000..22c00e3 Binary files /dev/null and b/app/src/main/assets/png_Nature/1.jpg differ diff --git a/app/src/main/assets/png_Nature/10.jpg b/app/src/main/assets/png_Nature/10.jpg new file mode 100644 index 0000000..65aab09 Binary files /dev/null and b/app/src/main/assets/png_Nature/10.jpg differ diff --git a/app/src/main/assets/png_Nature/11.jpg b/app/src/main/assets/png_Nature/11.jpg new file mode 100644 index 0000000..23c6653 Binary files /dev/null and b/app/src/main/assets/png_Nature/11.jpg differ diff --git a/app/src/main/assets/png_Nature/12.jpg b/app/src/main/assets/png_Nature/12.jpg new file mode 100644 index 0000000..36e1835 Binary files /dev/null and b/app/src/main/assets/png_Nature/12.jpg differ diff --git a/app/src/main/assets/png_Nature/13.jpg b/app/src/main/assets/png_Nature/13.jpg new file mode 100644 index 0000000..5816b61 Binary files /dev/null and b/app/src/main/assets/png_Nature/13.jpg differ diff --git a/app/src/main/assets/png_Nature/14.jpg b/app/src/main/assets/png_Nature/14.jpg new file mode 100644 index 0000000..b4e5dc6 Binary files /dev/null and b/app/src/main/assets/png_Nature/14.jpg differ diff --git a/app/src/main/assets/png_Nature/15.jpg b/app/src/main/assets/png_Nature/15.jpg new file mode 100644 index 0000000..5424ac4 Binary files /dev/null and b/app/src/main/assets/png_Nature/15.jpg differ diff --git a/app/src/main/assets/png_Nature/16.jpg b/app/src/main/assets/png_Nature/16.jpg new file mode 100644 index 0000000..fd00791 Binary files /dev/null and b/app/src/main/assets/png_Nature/16.jpg differ diff --git a/app/src/main/assets/png_Nature/17.jpg b/app/src/main/assets/png_Nature/17.jpg new file mode 100644 index 0000000..38410e8 Binary files /dev/null and b/app/src/main/assets/png_Nature/17.jpg differ diff --git a/app/src/main/assets/png_Nature/18.jpg b/app/src/main/assets/png_Nature/18.jpg new file mode 100644 index 0000000..5ae5028 Binary files /dev/null and b/app/src/main/assets/png_Nature/18.jpg differ diff --git a/app/src/main/assets/png_Nature/19.jpg b/app/src/main/assets/png_Nature/19.jpg new file mode 100644 index 0000000..e49b4f1 Binary files /dev/null and b/app/src/main/assets/png_Nature/19.jpg differ diff --git a/app/src/main/assets/png_Nature/2.jpg b/app/src/main/assets/png_Nature/2.jpg new file mode 100644 index 0000000..3b5ec4c Binary files /dev/null and b/app/src/main/assets/png_Nature/2.jpg differ diff --git a/app/src/main/assets/png_Nature/20.jpg b/app/src/main/assets/png_Nature/20.jpg new file mode 100644 index 0000000..cc94724 Binary files /dev/null and b/app/src/main/assets/png_Nature/20.jpg differ diff --git a/app/src/main/assets/png_Nature/21.jpg b/app/src/main/assets/png_Nature/21.jpg new file mode 100644 index 0000000..dfa6c09 Binary files /dev/null and b/app/src/main/assets/png_Nature/21.jpg differ diff --git a/app/src/main/assets/png_Nature/22.jpg b/app/src/main/assets/png_Nature/22.jpg new file mode 100644 index 0000000..c05e638 Binary files /dev/null and b/app/src/main/assets/png_Nature/22.jpg differ diff --git a/app/src/main/assets/png_Nature/23.jpg b/app/src/main/assets/png_Nature/23.jpg new file mode 100644 index 0000000..6f932ec Binary files /dev/null and b/app/src/main/assets/png_Nature/23.jpg differ diff --git a/app/src/main/assets/png_Nature/3.jpg b/app/src/main/assets/png_Nature/3.jpg new file mode 100644 index 0000000..1423546 Binary files /dev/null and b/app/src/main/assets/png_Nature/3.jpg differ diff --git a/app/src/main/assets/png_Nature/4.jpg b/app/src/main/assets/png_Nature/4.jpg new file mode 100644 index 0000000..5499510 Binary files /dev/null and b/app/src/main/assets/png_Nature/4.jpg differ diff --git a/app/src/main/assets/png_Nature/5.jpg b/app/src/main/assets/png_Nature/5.jpg new file mode 100644 index 0000000..434261a Binary files /dev/null and b/app/src/main/assets/png_Nature/5.jpg differ diff --git a/app/src/main/assets/png_Nature/6.jpg b/app/src/main/assets/png_Nature/6.jpg new file mode 100644 index 0000000..f50166b Binary files /dev/null and b/app/src/main/assets/png_Nature/6.jpg differ diff --git a/app/src/main/assets/png_Nature/7.jpg b/app/src/main/assets/png_Nature/7.jpg new file mode 100644 index 0000000..96e178c Binary files /dev/null and b/app/src/main/assets/png_Nature/7.jpg differ diff --git a/app/src/main/assets/png_Nature/8.jpg b/app/src/main/assets/png_Nature/8.jpg new file mode 100644 index 0000000..c68f4f1 Binary files /dev/null and b/app/src/main/assets/png_Nature/8.jpg differ diff --git a/app/src/main/assets/png_Nature/9.jpg b/app/src/main/assets/png_Nature/9.jpg new file mode 100644 index 0000000..6b8ccb4 Binary files /dev/null and b/app/src/main/assets/png_Nature/9.jpg differ diff --git a/app/src/main/assets/png_Properties/1.jpg b/app/src/main/assets/png_Properties/1.jpg new file mode 100644 index 0000000..3289a38 Binary files /dev/null and b/app/src/main/assets/png_Properties/1.jpg differ diff --git a/app/src/main/assets/png_Properties/10.jpg b/app/src/main/assets/png_Properties/10.jpg new file mode 100644 index 0000000..b065539 Binary files /dev/null and b/app/src/main/assets/png_Properties/10.jpg differ diff --git a/app/src/main/assets/png_Properties/11.jpg b/app/src/main/assets/png_Properties/11.jpg new file mode 100644 index 0000000..12d28b1 Binary files /dev/null and b/app/src/main/assets/png_Properties/11.jpg differ diff --git a/app/src/main/assets/png_Properties/12.jpg b/app/src/main/assets/png_Properties/12.jpg new file mode 100644 index 0000000..182879f Binary files /dev/null and b/app/src/main/assets/png_Properties/12.jpg differ diff --git a/app/src/main/assets/png_Properties/13.jpg b/app/src/main/assets/png_Properties/13.jpg new file mode 100644 index 0000000..4263530 Binary files /dev/null and b/app/src/main/assets/png_Properties/13.jpg differ diff --git a/app/src/main/assets/png_Properties/14.jpg b/app/src/main/assets/png_Properties/14.jpg new file mode 100644 index 0000000..42e4ab3 Binary files /dev/null and b/app/src/main/assets/png_Properties/14.jpg differ diff --git a/app/src/main/assets/png_Properties/15.jpg b/app/src/main/assets/png_Properties/15.jpg new file mode 100644 index 0000000..b529436 Binary files /dev/null and b/app/src/main/assets/png_Properties/15.jpg differ diff --git a/app/src/main/assets/png_Properties/16.jpg b/app/src/main/assets/png_Properties/16.jpg new file mode 100644 index 0000000..85caef0 Binary files /dev/null and b/app/src/main/assets/png_Properties/16.jpg differ diff --git a/app/src/main/assets/png_Properties/17.jpg b/app/src/main/assets/png_Properties/17.jpg new file mode 100644 index 0000000..6295f58 Binary files /dev/null and b/app/src/main/assets/png_Properties/17.jpg differ diff --git a/app/src/main/assets/png_Properties/18.jpg b/app/src/main/assets/png_Properties/18.jpg new file mode 100644 index 0000000..f8e4e87 Binary files /dev/null and b/app/src/main/assets/png_Properties/18.jpg differ diff --git a/app/src/main/assets/png_Properties/19.jpg b/app/src/main/assets/png_Properties/19.jpg new file mode 100644 index 0000000..c476493 Binary files /dev/null and b/app/src/main/assets/png_Properties/19.jpg differ diff --git a/app/src/main/assets/png_Properties/2.jpg b/app/src/main/assets/png_Properties/2.jpg new file mode 100644 index 0000000..084fa51 Binary files /dev/null and b/app/src/main/assets/png_Properties/2.jpg differ diff --git a/app/src/main/assets/png_Properties/3.jpg b/app/src/main/assets/png_Properties/3.jpg new file mode 100644 index 0000000..4ee71c4 Binary files /dev/null and b/app/src/main/assets/png_Properties/3.jpg differ diff --git a/app/src/main/assets/png_Properties/4.jpg b/app/src/main/assets/png_Properties/4.jpg new file mode 100644 index 0000000..25912f1 Binary files /dev/null and b/app/src/main/assets/png_Properties/4.jpg differ diff --git a/app/src/main/assets/png_Properties/5.jpg b/app/src/main/assets/png_Properties/5.jpg new file mode 100644 index 0000000..77c2aa8 Binary files /dev/null and b/app/src/main/assets/png_Properties/5.jpg differ diff --git a/app/src/main/assets/png_Properties/6.jpg b/app/src/main/assets/png_Properties/6.jpg new file mode 100644 index 0000000..75b1e32 Binary files /dev/null and b/app/src/main/assets/png_Properties/6.jpg differ diff --git a/app/src/main/assets/png_Properties/7.jpg b/app/src/main/assets/png_Properties/7.jpg new file mode 100644 index 0000000..f059989 Binary files /dev/null and b/app/src/main/assets/png_Properties/7.jpg differ diff --git a/app/src/main/assets/png_Properties/8.jpg b/app/src/main/assets/png_Properties/8.jpg new file mode 100644 index 0000000..6be97eb Binary files /dev/null and b/app/src/main/assets/png_Properties/8.jpg differ diff --git a/app/src/main/assets/png_Properties/9.jpg b/app/src/main/assets/png_Properties/9.jpg new file mode 100644 index 0000000..626cab9 Binary files /dev/null and b/app/src/main/assets/png_Properties/9.jpg differ diff --git a/app/src/main/assets/png_Rangoli/1.jpg b/app/src/main/assets/png_Rangoli/1.jpg new file mode 100644 index 0000000..e628714 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/1.jpg differ diff --git a/app/src/main/assets/png_Rangoli/10.jpg b/app/src/main/assets/png_Rangoli/10.jpg new file mode 100644 index 0000000..f6e9d09 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/10.jpg differ diff --git a/app/src/main/assets/png_Rangoli/13.jpg b/app/src/main/assets/png_Rangoli/13.jpg new file mode 100644 index 0000000..9741d57 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/13.jpg differ diff --git a/app/src/main/assets/png_Rangoli/14.jpg b/app/src/main/assets/png_Rangoli/14.jpg new file mode 100644 index 0000000..3ca4970 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/14.jpg differ diff --git a/app/src/main/assets/png_Rangoli/15.jpg b/app/src/main/assets/png_Rangoli/15.jpg new file mode 100644 index 0000000..98abac3 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/15.jpg differ diff --git a/app/src/main/assets/png_Rangoli/16.jpg b/app/src/main/assets/png_Rangoli/16.jpg new file mode 100644 index 0000000..150dfdc Binary files /dev/null and b/app/src/main/assets/png_Rangoli/16.jpg differ diff --git a/app/src/main/assets/png_Rangoli/17.jpg b/app/src/main/assets/png_Rangoli/17.jpg new file mode 100644 index 0000000..4127115 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/17.jpg differ diff --git a/app/src/main/assets/png_Rangoli/18.jpg b/app/src/main/assets/png_Rangoli/18.jpg new file mode 100644 index 0000000..6ae96e9 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/18.jpg differ diff --git a/app/src/main/assets/png_Rangoli/19.jpg b/app/src/main/assets/png_Rangoli/19.jpg new file mode 100644 index 0000000..ffcbd6a Binary files /dev/null and b/app/src/main/assets/png_Rangoli/19.jpg differ diff --git a/app/src/main/assets/png_Rangoli/2.jpg b/app/src/main/assets/png_Rangoli/2.jpg new file mode 100644 index 0000000..7329109 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/2.jpg differ diff --git a/app/src/main/assets/png_Rangoli/20.jpg b/app/src/main/assets/png_Rangoli/20.jpg new file mode 100644 index 0000000..b7be138 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/20.jpg differ diff --git a/app/src/main/assets/png_Rangoli/21.jpg b/app/src/main/assets/png_Rangoli/21.jpg new file mode 100644 index 0000000..eaa5fdf Binary files /dev/null and b/app/src/main/assets/png_Rangoli/21.jpg differ diff --git a/app/src/main/assets/png_Rangoli/22.jpg b/app/src/main/assets/png_Rangoli/22.jpg new file mode 100644 index 0000000..28aca48 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/22.jpg differ diff --git a/app/src/main/assets/png_Rangoli/23.jpg b/app/src/main/assets/png_Rangoli/23.jpg new file mode 100644 index 0000000..057d2d4 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/23.jpg differ diff --git a/app/src/main/assets/png_Rangoli/24.jpg b/app/src/main/assets/png_Rangoli/24.jpg new file mode 100644 index 0000000..e933061 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/24.jpg differ diff --git a/app/src/main/assets/png_Rangoli/25.jpg b/app/src/main/assets/png_Rangoli/25.jpg new file mode 100644 index 0000000..569a74c Binary files /dev/null and b/app/src/main/assets/png_Rangoli/25.jpg differ diff --git a/app/src/main/assets/png_Rangoli/26.jpg b/app/src/main/assets/png_Rangoli/26.jpg new file mode 100644 index 0000000..7c5d0de Binary files /dev/null and b/app/src/main/assets/png_Rangoli/26.jpg differ diff --git a/app/src/main/assets/png_Rangoli/3.jpg b/app/src/main/assets/png_Rangoli/3.jpg new file mode 100644 index 0000000..569342c Binary files /dev/null and b/app/src/main/assets/png_Rangoli/3.jpg differ diff --git a/app/src/main/assets/png_Rangoli/5.jpg b/app/src/main/assets/png_Rangoli/5.jpg new file mode 100644 index 0000000..5a3228f Binary files /dev/null and b/app/src/main/assets/png_Rangoli/5.jpg differ diff --git a/app/src/main/assets/png_Rangoli/6.jpg b/app/src/main/assets/png_Rangoli/6.jpg new file mode 100644 index 0000000..270f078 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/6.jpg differ diff --git a/app/src/main/assets/png_Rangoli/7.jpg b/app/src/main/assets/png_Rangoli/7.jpg new file mode 100644 index 0000000..241beac Binary files /dev/null and b/app/src/main/assets/png_Rangoli/7.jpg differ diff --git a/app/src/main/assets/png_Rangoli/8.jpg b/app/src/main/assets/png_Rangoli/8.jpg new file mode 100644 index 0000000..c62e0d7 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/8.jpg differ diff --git a/app/src/main/assets/png_Rangoli/9.jpg b/app/src/main/assets/png_Rangoli/9.jpg new file mode 100644 index 0000000..bcd14a7 Binary files /dev/null and b/app/src/main/assets/png_Rangoli/9.jpg differ diff --git a/app/src/main/assets/png_Sports/1.jpg b/app/src/main/assets/png_Sports/1.jpg new file mode 100644 index 0000000..cd1cb09 Binary files /dev/null and b/app/src/main/assets/png_Sports/1.jpg differ diff --git a/app/src/main/assets/png_Sports/10.jpg b/app/src/main/assets/png_Sports/10.jpg new file mode 100644 index 0000000..2ec81a5 Binary files /dev/null and b/app/src/main/assets/png_Sports/10.jpg differ diff --git a/app/src/main/assets/png_Sports/11.jpg b/app/src/main/assets/png_Sports/11.jpg new file mode 100644 index 0000000..f00ecb5 Binary files /dev/null and b/app/src/main/assets/png_Sports/11.jpg differ diff --git a/app/src/main/assets/png_Sports/12.jpg b/app/src/main/assets/png_Sports/12.jpg new file mode 100644 index 0000000..b004929 Binary files /dev/null and b/app/src/main/assets/png_Sports/12.jpg differ diff --git a/app/src/main/assets/png_Sports/13.jpg b/app/src/main/assets/png_Sports/13.jpg new file mode 100644 index 0000000..73fa886 Binary files /dev/null and b/app/src/main/assets/png_Sports/13.jpg differ diff --git a/app/src/main/assets/png_Sports/14.jpg b/app/src/main/assets/png_Sports/14.jpg new file mode 100644 index 0000000..3d9069e Binary files /dev/null and b/app/src/main/assets/png_Sports/14.jpg differ diff --git a/app/src/main/assets/png_Sports/15.jpg b/app/src/main/assets/png_Sports/15.jpg new file mode 100644 index 0000000..a090c83 Binary files /dev/null and b/app/src/main/assets/png_Sports/15.jpg differ diff --git a/app/src/main/assets/png_Sports/16.jpg b/app/src/main/assets/png_Sports/16.jpg new file mode 100644 index 0000000..185d6e3 Binary files /dev/null and b/app/src/main/assets/png_Sports/16.jpg differ diff --git a/app/src/main/assets/png_Sports/17.jpg b/app/src/main/assets/png_Sports/17.jpg new file mode 100644 index 0000000..b8193fa Binary files /dev/null and b/app/src/main/assets/png_Sports/17.jpg differ diff --git a/app/src/main/assets/png_Sports/18.jpg b/app/src/main/assets/png_Sports/18.jpg new file mode 100644 index 0000000..ba4fcea Binary files /dev/null and b/app/src/main/assets/png_Sports/18.jpg differ diff --git a/app/src/main/assets/png_Sports/19.jpg b/app/src/main/assets/png_Sports/19.jpg new file mode 100644 index 0000000..617c2af Binary files /dev/null and b/app/src/main/assets/png_Sports/19.jpg differ diff --git a/app/src/main/assets/png_Sports/2.jpg b/app/src/main/assets/png_Sports/2.jpg new file mode 100644 index 0000000..59890e5 Binary files /dev/null and b/app/src/main/assets/png_Sports/2.jpg differ diff --git a/app/src/main/assets/png_Sports/20.jpg b/app/src/main/assets/png_Sports/20.jpg new file mode 100644 index 0000000..4032ff4 Binary files /dev/null and b/app/src/main/assets/png_Sports/20.jpg differ diff --git a/app/src/main/assets/png_Sports/21.jpg b/app/src/main/assets/png_Sports/21.jpg new file mode 100644 index 0000000..23979ba Binary files /dev/null and b/app/src/main/assets/png_Sports/21.jpg differ diff --git a/app/src/main/assets/png_Sports/22.jpg b/app/src/main/assets/png_Sports/22.jpg new file mode 100644 index 0000000..c61e91e Binary files /dev/null and b/app/src/main/assets/png_Sports/22.jpg differ diff --git a/app/src/main/assets/png_Sports/23.jpg b/app/src/main/assets/png_Sports/23.jpg new file mode 100644 index 0000000..7bf0806 Binary files /dev/null and b/app/src/main/assets/png_Sports/23.jpg differ diff --git a/app/src/main/assets/png_Sports/24.jpg b/app/src/main/assets/png_Sports/24.jpg new file mode 100644 index 0000000..23cbc17 Binary files /dev/null and b/app/src/main/assets/png_Sports/24.jpg differ diff --git a/app/src/main/assets/png_Sports/25.jpg b/app/src/main/assets/png_Sports/25.jpg new file mode 100644 index 0000000..06d992e Binary files /dev/null and b/app/src/main/assets/png_Sports/25.jpg differ diff --git a/app/src/main/assets/png_Sports/26.jpg b/app/src/main/assets/png_Sports/26.jpg new file mode 100644 index 0000000..26af61e Binary files /dev/null and b/app/src/main/assets/png_Sports/26.jpg differ diff --git a/app/src/main/assets/png_Sports/27.jpg b/app/src/main/assets/png_Sports/27.jpg new file mode 100644 index 0000000..91bf104 Binary files /dev/null and b/app/src/main/assets/png_Sports/27.jpg differ diff --git a/app/src/main/assets/png_Sports/28.jpg b/app/src/main/assets/png_Sports/28.jpg new file mode 100644 index 0000000..8c790e7 Binary files /dev/null and b/app/src/main/assets/png_Sports/28.jpg differ diff --git a/app/src/main/assets/png_Sports/3.jpg b/app/src/main/assets/png_Sports/3.jpg new file mode 100644 index 0000000..8315af5 Binary files /dev/null and b/app/src/main/assets/png_Sports/3.jpg differ diff --git a/app/src/main/assets/png_Sports/4.jpg b/app/src/main/assets/png_Sports/4.jpg new file mode 100644 index 0000000..8070e68 Binary files /dev/null and b/app/src/main/assets/png_Sports/4.jpg differ diff --git a/app/src/main/assets/png_Sports/5.jpg b/app/src/main/assets/png_Sports/5.jpg new file mode 100644 index 0000000..5bcb837 Binary files /dev/null and b/app/src/main/assets/png_Sports/5.jpg differ diff --git a/app/src/main/assets/png_Sports/6.jpg b/app/src/main/assets/png_Sports/6.jpg new file mode 100644 index 0000000..038521f Binary files /dev/null and b/app/src/main/assets/png_Sports/6.jpg differ diff --git a/app/src/main/assets/png_Sports/7.jpg b/app/src/main/assets/png_Sports/7.jpg new file mode 100644 index 0000000..73bf0de Binary files /dev/null and b/app/src/main/assets/png_Sports/7.jpg differ diff --git a/app/src/main/assets/png_Sports/8.jpg b/app/src/main/assets/png_Sports/8.jpg new file mode 100644 index 0000000..6c565f8 Binary files /dev/null and b/app/src/main/assets/png_Sports/8.jpg differ diff --git a/app/src/main/assets/png_Sports/9.jpg b/app/src/main/assets/png_Sports/9.jpg new file mode 100644 index 0000000..130cd94 Binary files /dev/null and b/app/src/main/assets/png_Sports/9.jpg differ diff --git a/app/src/main/assets/png_Vehicles/1.jpg b/app/src/main/assets/png_Vehicles/1.jpg new file mode 100644 index 0000000..da449f7 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/1.jpg differ diff --git a/app/src/main/assets/png_Vehicles/10.jpg b/app/src/main/assets/png_Vehicles/10.jpg new file mode 100644 index 0000000..0084613 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/10.jpg differ diff --git a/app/src/main/assets/png_Vehicles/11.jpg b/app/src/main/assets/png_Vehicles/11.jpg new file mode 100644 index 0000000..ba5f4d4 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/11.jpg differ diff --git a/app/src/main/assets/png_Vehicles/12.jpg b/app/src/main/assets/png_Vehicles/12.jpg new file mode 100644 index 0000000..32c7908 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/12.jpg differ diff --git a/app/src/main/assets/png_Vehicles/13.jpg b/app/src/main/assets/png_Vehicles/13.jpg new file mode 100644 index 0000000..dd47e76 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/13.jpg differ diff --git a/app/src/main/assets/png_Vehicles/14.jpg b/app/src/main/assets/png_Vehicles/14.jpg new file mode 100644 index 0000000..8b886e6 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/14.jpg differ diff --git a/app/src/main/assets/png_Vehicles/15.jpg b/app/src/main/assets/png_Vehicles/15.jpg new file mode 100644 index 0000000..cf78752 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/15.jpg differ diff --git a/app/src/main/assets/png_Vehicles/16.jpg b/app/src/main/assets/png_Vehicles/16.jpg new file mode 100644 index 0000000..87f8a19 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/16.jpg differ diff --git a/app/src/main/assets/png_Vehicles/17.jpg b/app/src/main/assets/png_Vehicles/17.jpg new file mode 100644 index 0000000..011b53b Binary files /dev/null and b/app/src/main/assets/png_Vehicles/17.jpg differ diff --git a/app/src/main/assets/png_Vehicles/18.jpg b/app/src/main/assets/png_Vehicles/18.jpg new file mode 100644 index 0000000..c4433c8 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/18.jpg differ diff --git a/app/src/main/assets/png_Vehicles/19.jpg b/app/src/main/assets/png_Vehicles/19.jpg new file mode 100644 index 0000000..b9361f1 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/19.jpg differ diff --git a/app/src/main/assets/png_Vehicles/2.jpg b/app/src/main/assets/png_Vehicles/2.jpg new file mode 100644 index 0000000..ff06675 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/2.jpg differ diff --git a/app/src/main/assets/png_Vehicles/20.jpg b/app/src/main/assets/png_Vehicles/20.jpg new file mode 100644 index 0000000..3e22c5c Binary files /dev/null and b/app/src/main/assets/png_Vehicles/20.jpg differ diff --git a/app/src/main/assets/png_Vehicles/21.jpg b/app/src/main/assets/png_Vehicles/21.jpg new file mode 100644 index 0000000..f93b99a Binary files /dev/null and b/app/src/main/assets/png_Vehicles/21.jpg differ diff --git a/app/src/main/assets/png_Vehicles/22.jpg b/app/src/main/assets/png_Vehicles/22.jpg new file mode 100644 index 0000000..952afa9 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/22.jpg differ diff --git a/app/src/main/assets/png_Vehicles/23.jpg b/app/src/main/assets/png_Vehicles/23.jpg new file mode 100644 index 0000000..a6e1c25 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/23.jpg differ diff --git a/app/src/main/assets/png_Vehicles/24.jpg b/app/src/main/assets/png_Vehicles/24.jpg new file mode 100644 index 0000000..83c706a Binary files /dev/null and b/app/src/main/assets/png_Vehicles/24.jpg differ diff --git a/app/src/main/assets/png_Vehicles/25.jpg b/app/src/main/assets/png_Vehicles/25.jpg new file mode 100644 index 0000000..6ebdbf7 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/25.jpg differ diff --git a/app/src/main/assets/png_Vehicles/26.jpg b/app/src/main/assets/png_Vehicles/26.jpg new file mode 100644 index 0000000..3805357 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/26.jpg differ diff --git a/app/src/main/assets/png_Vehicles/27.jpg b/app/src/main/assets/png_Vehicles/27.jpg new file mode 100644 index 0000000..0849027 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/27.jpg differ diff --git a/app/src/main/assets/png_Vehicles/28.jpg b/app/src/main/assets/png_Vehicles/28.jpg new file mode 100644 index 0000000..019baa9 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/28.jpg differ diff --git a/app/src/main/assets/png_Vehicles/29.jpg b/app/src/main/assets/png_Vehicles/29.jpg new file mode 100644 index 0000000..c7e0d3a Binary files /dev/null and b/app/src/main/assets/png_Vehicles/29.jpg differ diff --git a/app/src/main/assets/png_Vehicles/3.jpg b/app/src/main/assets/png_Vehicles/3.jpg new file mode 100644 index 0000000..eb33365 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/3.jpg differ diff --git a/app/src/main/assets/png_Vehicles/30.jpg b/app/src/main/assets/png_Vehicles/30.jpg new file mode 100644 index 0000000..3820102 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/30.jpg differ diff --git a/app/src/main/assets/png_Vehicles/31.jpg b/app/src/main/assets/png_Vehicles/31.jpg new file mode 100644 index 0000000..bba9999 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/31.jpg differ diff --git a/app/src/main/assets/png_Vehicles/32.jpg b/app/src/main/assets/png_Vehicles/32.jpg new file mode 100644 index 0000000..6d64a3f Binary files /dev/null and b/app/src/main/assets/png_Vehicles/32.jpg differ diff --git a/app/src/main/assets/png_Vehicles/4.jpg b/app/src/main/assets/png_Vehicles/4.jpg new file mode 100644 index 0000000..968f0ad Binary files /dev/null and b/app/src/main/assets/png_Vehicles/4.jpg differ diff --git a/app/src/main/assets/png_Vehicles/5.jpg b/app/src/main/assets/png_Vehicles/5.jpg new file mode 100644 index 0000000..abdd96c Binary files /dev/null and b/app/src/main/assets/png_Vehicles/5.jpg differ diff --git a/app/src/main/assets/png_Vehicles/6.jpg b/app/src/main/assets/png_Vehicles/6.jpg new file mode 100644 index 0000000..7eeb870 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/6.jpg differ diff --git a/app/src/main/assets/png_Vehicles/7.jpg b/app/src/main/assets/png_Vehicles/7.jpg new file mode 100644 index 0000000..c5e6294 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/7.jpg differ diff --git a/app/src/main/assets/png_Vehicles/8.jpg b/app/src/main/assets/png_Vehicles/8.jpg new file mode 100644 index 0000000..6628782 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/8.jpg differ diff --git a/app/src/main/assets/png_Vehicles/9.jpg b/app/src/main/assets/png_Vehicles/9.jpg new file mode 100644 index 0000000..367b772 Binary files /dev/null and b/app/src/main/assets/png_Vehicles/9.jpg differ diff --git a/app/src/main/java/com/ar/ardrawingboard/MainActivity.java b/app/src/main/java/com/ar/ardrawingboard/MainActivity.java deleted file mode 100644 index 04ee8a6..0000000 --- a/app/src/main/java/com/ar/ardrawingboard/MainActivity.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ar.ardrawingboard; - -import android.os.Bundle; - -import androidx.activity.EdgeToEdge; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.graphics.Insets; -import androidx.core.view.ViewCompat; -import androidx.core.view.WindowInsetsCompat; - -public class MainActivity extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - EdgeToEdge.enable(this); - setContentView(R.layout.activity_main); - ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { - Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); - v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); - return insets; - }); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/MyApplication.java b/app/src/main/java/com/ar/ardrawingboard/MyApplication.java new file mode 100644 index 0000000..205cc13 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/MyApplication.java @@ -0,0 +1,74 @@ +package com.ar.ardrawingboard; + +import android.app.Application; +import android.content.Context; +import android.content.SharedPreferences; + +import com.ar.ardrawingboard.util.RoomInit; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Executors; + + +public class MyApplication extends Application { + + public static MyApplication application; + + public static final int DB_VERSION = 1; + public static final String DB_NAME = "room"; + + private static final String PREF_NAME = "app_preferences"; + private static final String KEY_INIT = "isInit"; + + @Override + public void onCreate() { + super.onCreate(); + + application = this; + + SharedPreferences preferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE); + boolean isInit = preferences.getBoolean(KEY_INIT, false); + + if (!isInit) { + initRoom(); + preferences.edit().putBoolean(KEY_INIT, true).apply(); + } + + } + + public static Context getContext() { + return application.getApplicationContext(); + } + + private void initRoom() { + Executors.newSingleThreadExecutor().execute(() -> { + List imagePaths = getAllImagePathsFromAssets(); + RoomInit roomInit = new RoomInit(application); + roomInit.insertAllImages(imagePaths); + }); + } + + private List getAllImagePathsFromAssets() { + List imagePaths = new ArrayList<>(); + try { + String[] categories = application.getAssets().list(""); + if (categories != null) { + for (String category : categories) { + if (category.startsWith("png_")) { + String[] files = application.getAssets().list(category); + if (files != null) { + for (String file : files) { + imagePaths.add(category + "/" + file); + } + } + } + } + } + } catch (IOException ignored) { + } + return imagePaths; + } + +} diff --git a/app/src/main/java/com/ar/ardrawingboard/room/AppDatabase.java b/app/src/main/java/com/ar/ardrawingboard/room/AppDatabase.java new file mode 100644 index 0000000..a3ef9a3 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/room/AppDatabase.java @@ -0,0 +1,30 @@ +package com.ar.ardrawingboard.room; + +import android.content.Context; + +import androidx.room.Database; +import androidx.room.Room; +import androidx.room.RoomDatabase; + +import com.ar.ardrawingboard.MyApplication; + +@Database(entities = {BoardEntry.class}, version = MyApplication.DB_VERSION, exportSchema = false) +public abstract class AppDatabase extends RoomDatabase { + + public abstract BoardEntryDao boardEntryDao(); + + private static volatile AppDatabase INSTANCE; + + public static AppDatabase getInstance(Context context) { + if (INSTANCE == null) { + synchronized (AppDatabase.class) { + if (INSTANCE == null) { + INSTANCE = Room.databaseBuilder(context.getApplicationContext(), + AppDatabase.class, MyApplication.DB_NAME) + .build(); + } + } + } + return INSTANCE; + } +} diff --git a/app/src/main/java/com/ar/ardrawingboard/room/BoardEntry.java b/app/src/main/java/com/ar/ardrawingboard/room/BoardEntry.java new file mode 100644 index 0000000..2970f26 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/room/BoardEntry.java @@ -0,0 +1,57 @@ +package com.ar.ardrawingboard.room; + +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +import java.io.Serializable; + +@Entity(tableName = "board_entry") +public class BoardEntry implements Serializable { + + @PrimaryKey(autoGenerate = true) + private int id; + + private String path; + + private boolean type; + + private boolean isFavorite; + + public BoardEntry(boolean isFavorite, Boolean type, String path) { + this.isFavorite = isFavorite; + this.type = type; + this.path = path; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public boolean isType() { + return type; + } + + public void setType(boolean type) { + this.type = type; + } + + public boolean isFavorite() { + return isFavorite; + } + + public void setFavorite(boolean favorite) { + isFavorite = favorite; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/room/BoardEntryDao.java b/app/src/main/java/com/ar/ardrawingboard/room/BoardEntryDao.java new file mode 100644 index 0000000..6640eee --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/room/BoardEntryDao.java @@ -0,0 +1,36 @@ +package com.ar.ardrawingboard.room; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.Query; +import androidx.room.Update; + +import java.util.List; + +@Dao +public interface BoardEntryDao { + @Insert + void insertAll(List boardEntry); + + @Insert + void insert(BoardEntry boardEntry); + + @Update + void update(BoardEntry boardEntry); + + @Query("SELECT * FROM board_entry WHERE path LIKE :path || '/%' AND type = 0") + LiveData> getImageByPath(String path); + + @Query("SELECT * FROM board_entry WHERE path LIKE :path || '/%' AND type = 0 LIMIT 1") + LiveData> getImageByPathLimitOne(String path); + + @Query("SELECT * FROM board_entry WHERE type = 1 ") + LiveData> getImportLive(); + + @Query("SELECT * FROM board_entry WHERE type = 1 ") + List getImport(); + + @Query("SELECT * FROM board_entry WHERE isFavorite = 1 ") + LiveData> getFavorite(); +} diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/activity/BoardActivity.java b/app/src/main/java/com/ar/ardrawingboard/ui/activity/BoardActivity.java new file mode 100644 index 0000000..c3c74ce --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/activity/BoardActivity.java @@ -0,0 +1,220 @@ +package com.ar.ardrawingboard.ui.activity; + +import android.content.ContentValues; +import android.content.Intent; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.Bundle; +import android.os.Environment; +import android.provider.MediaStore; +import android.widget.ImageView; +import android.widget.SeekBar; +import android.widget.Toast; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.camera.core.Camera; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.ImageCapture; +import androidx.camera.core.ImageCaptureException; +import androidx.camera.core.Preview; +import androidx.camera.lifecycle.ProcessCameraProvider; +import androidx.core.content.ContextCompat; + +import com.ar.ardrawingboard.R; +import com.ar.ardrawingboard.databinding.ActivityBoardBinding; +import com.ar.ardrawingboard.util.CommonUtils; +import com.ar.ardrawingboard.util.ImageUtils; +import com.ar.ardrawingboard.util.PermissionUtils; +import com.ar.ardrawingboard.util.TouchUtils; +import com.google.common.util.concurrent.ListenableFuture; + +public class BoardActivity extends AppCompatActivity { + private ActivityBoardBinding uiBinding; + private ImageView displayImageView; + private Bitmap loadedBitmap; + private Camera activeCamera; + private ImageCapture photoCapture; + private boolean flashEnabled = false; + private boolean mirrorEnabled = false; + + private static final int CAMERA_PERMISSION_CODE = 100; + private static final int STORAGE_PERMISSION_CODE = 101; + + private final ActivityResultLauncher imagePickerLauncher = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == RESULT_OK && result.getData() != null) { + Uri imageUri = result.getData().getData(); + if (imageUri != null) { + displayImageView.setImageURI(imageUri); + } + } + }); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + initializeUi(); + configureImageView(); + setupEventHandlers(); + handleIntentImage(); + initializeCameraIfPermitted(); + } + + private void initializeUi() { + uiBinding = ActivityBoardBinding.inflate(getLayoutInflater()); + setContentView(uiBinding.getRoot()); + displayImageView = uiBinding.imageFull; + } + + private void configureImageView() { + displayImageView.setOnTouchListener((view, event) -> TouchUtils.handleTouchEvent((ImageView) view, event)); + } + + private void setupEventHandlers() { + uiBinding.seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + displayImageView.setAlpha((100 - progress) / 100f); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + } + }); + + uiBinding.importImage.setOnClickListener(v -> launchImagePicker()); + uiBinding.light.setOnClickListener(v -> switchFlash()); + uiBinding.back.setOnClickListener(v -> finish()); + uiBinding.reversal.setOnClickListener(v -> applyMirrorEffect()); + uiBinding.play.setOnClickListener(v -> capturePhoto()); + } + + private void handleIntentImage() { + String imagePath = getIntent().getStringExtra("imagePath"); + if (imagePath != null) { + loadAndDisplayImage(imagePath); + } + } + + private void initializeCameraIfPermitted() { + String[] requiredPermissions = PermissionUtils.getCameraAndStoragePermissions(); + if (PermissionUtils.hasPermissions(this, requiredPermissions)) { + launchCamera(); + } else { + PermissionUtils.requestPermissions(this, requiredPermissions, CAMERA_PERMISSION_CODE); + } + } + + private void launchCamera() { + ListenableFuture providerFuture = ProcessCameraProvider.getInstance(this); + providerFuture.addListener(() -> { + try { + ProcessCameraProvider provider = providerFuture.get(); + setupCameraUseCases(provider); + } catch (Exception e) { + Toast.makeText(this, "Camera initialization failed", Toast.LENGTH_SHORT).show(); + } + }, ContextCompat.getMainExecutor(this)); + } + + private void setupCameraUseCases(ProcessCameraProvider provider) { + Preview preview = new Preview.Builder().build(); + CameraSelector cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA; + photoCapture = new ImageCapture.Builder().build(); + + preview.setSurfaceProvider(uiBinding.preview.getSurfaceProvider()); + provider.unbindAll(); + activeCamera = provider.bindToLifecycle(this, cameraSelector, preview, photoCapture); + + if (loadedBitmap != null) { + TouchUtils.initPosition(displayImageView, loadedBitmap, CommonUtils.getScreenSize(this)); + } + } + + private void capturePhoto() { + if (photoCapture == null) { + Toast.makeText(this, "Camera not ready", Toast.LENGTH_SHORT).show(); + return; + } + + ContentValues contentValues = new ContentValues(); + contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, "photo_" + System.currentTimeMillis() + ".jpg"); + contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg"); + contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES); + + ImageCapture.OutputFileOptions options = new ImageCapture.OutputFileOptions.Builder( + getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues).build(); + + photoCapture.takePicture(options, ContextCompat.getMainExecutor(this), new ImageCapture.OnImageSavedCallback() { + @Override + public void onImageSaved(@NonNull ImageCapture.OutputFileResults results) { + Toast.makeText(BoardActivity.this, "Photo captured successfully", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onError(@NonNull ImageCaptureException error) { + Toast.makeText(BoardActivity.this, "Capture failed: " + error.getMessage(), Toast.LENGTH_SHORT).show(); + } + }); + } + + private void switchFlash() { + if (activeCamera != null) { + flashEnabled = !flashEnabled; + activeCamera.getCameraControl().enableTorch(flashEnabled); + uiBinding.light.setImageResource(flashEnabled ? R.drawable.flash : R.drawable.un_flash); + } + } + + private void applyMirrorEffect() { + mirrorEnabled = !mirrorEnabled; + displayImageView.setScaleX(mirrorEnabled ? -1f : 1f); + uiBinding.reversal.setImageResource(mirrorEnabled ? R.drawable.reversal : R.drawable.un_reversal); + } + + private void launchImagePicker() { + String[] permissions = PermissionUtils.getCameraAndStoragePermissions(); + if (PermissionUtils.hasPermissions(this, permissions)) { + Intent pickIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + imagePickerLauncher.launch(pickIntent); + } else { + PermissionUtils.requestPermissions(this, permissions, STORAGE_PERMISSION_CODE); + } + } + + private void loadAndDisplayImage(String path) { + if (path.startsWith("/data/user/")) { + loadedBitmap = ImageUtils.loadBitmapFromStorage(path); + } else { + loadedBitmap = ImageUtils.loadBitmapFromAssets(this, path); + } + + if (loadedBitmap != null) { + ImageUtils.displayImageToImageView(displayImageView, loadedBitmap); + } else { + Toast.makeText(this, "Image loading failed", Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (PermissionUtils.handlePermissionsResult(grantResults)) { + if (requestCode == CAMERA_PERMISSION_CODE) { + launchCamera(); + } else if (requestCode == STORAGE_PERMISSION_CODE) { + launchImagePicker(); + } + } else { + Toast.makeText(this, "Permissions not granted", Toast.LENGTH_SHORT).show(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/activity/CategoryActivity.java b/app/src/main/java/com/ar/ardrawingboard/ui/activity/CategoryActivity.java new file mode 100644 index 0000000..5b7327b --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/activity/CategoryActivity.java @@ -0,0 +1,71 @@ +package com.ar.ardrawingboard.ui.activity; + +import android.content.Intent; +import android.os.Bundle; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.GridLayoutManager; + +import com.ar.ardrawingboard.ui.adapter.FavoriteAndCategoryAdapter; +import com.ar.ardrawingboard.databinding.ActivityCategoryBinding; +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.util.ItemDecoration; + +import java.util.ArrayList; + +public class CategoryActivity extends AppCompatActivity { + private ActivityCategoryBinding mBinding; + private String mCategoryKey; + private String mCategoryTitle; + private FavoriteAndCategoryAdapter mAdapter; + + @Override + protected void onCreate(Bundle savedState) { + super.onCreate(savedState); + + mBinding = ActivityCategoryBinding.inflate(getLayoutInflater()); + setContentView(mBinding.getRoot()); + + extractIntentData(); + setupUI(); + configureRecyclerView(); + fetchAndDisplayImages(); + } + + private void extractIntentData() { + Intent dataIntent = getIntent(); + mCategoryKey = dataIntent.getStringExtra("Original"); + mCategoryTitle = dataIntent.getStringExtra("Title"); + } + + private void setupUI() { + mBinding.title.setText(mCategoryTitle); + + mBinding.back.setOnClickListener(view -> { + finish(); + }); + } + + private void configureRecyclerView() { + GridLayoutManager layoutManager = new GridLayoutManager(this, 2); + mBinding.recyclerview.setLayoutManager(layoutManager); + + mAdapter = new FavoriteAndCategoryAdapter(this, new ArrayList<>()); + mBinding.recyclerview.setAdapter(mAdapter); + + ItemDecoration spacingDecoration = new ItemDecoration(16, 19, 10); + mBinding.recyclerview.addItemDecoration(spacingDecoration); + } + + private void fetchAndDisplayImages() { + AppDatabase database = AppDatabase.getInstance(this); + + database.boardEntryDao() + .getImageByPath(mCategoryKey) + .observe(this, entries -> { + if (entries != null) { + mAdapter.refreshFavorites(entries); + } + }); + } +} diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/activity/MainActivity.java b/app/src/main/java/com/ar/ardrawingboard/ui/activity/MainActivity.java new file mode 100644 index 0000000..9791f0d --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/activity/MainActivity.java @@ -0,0 +1,99 @@ +package com.ar.ardrawingboard.ui.activity; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.appcompat.app.AppCompatActivity; + +import com.ar.ardrawingboard.R; +import com.ar.ardrawingboard.ui.adapter.MainAdapter; +import com.ar.ardrawingboard.databinding.ActivityMainBinding; +import com.ar.ardrawingboard.databinding.MainTabItemCustomBinding; +import com.google.android.material.tabs.TabLayout; +import com.google.android.material.tabs.TabLayoutMediator; + +public class MainActivity extends AppCompatActivity { + private ActivityMainBinding viewBinding; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + initializeViewBinding(); + configureViewPager(); + setupTabNavigation(); + } + + private void initializeViewBinding() { + viewBinding = ActivityMainBinding.inflate(getLayoutInflater()); + setContentView(viewBinding.getRoot()); + } + + private void configureViewPager() { + MainAdapter viewPagerAdapter = new MainAdapter(this); + viewBinding.mainViewpager.setAdapter(viewPagerAdapter); + } + + private void setupTabNavigation() { + configureTabMediator(); + attachTabSelectionListener(); + } + + private void configureTabMediator() { + new TabLayoutMediator(viewBinding.mainTablayout, viewBinding.mainViewpager, (tab, position) -> { + MainTabItemCustomBinding customTabBinding = MainTabItemCustomBinding.inflate( + LayoutInflater.from(MainActivity.this)); + tab.setCustomView(customTabBinding.getRoot()); + applyTabStyle(customTabBinding, position); + }).attach(); + } + + private void applyTabStyle(MainTabItemCustomBinding tabBinding, int index) { + int iconResource; + boolean showDot = false; + + switch (index) { + case 0: + iconResource = R.drawable.home; + showDot = true; + break; + case 1: + iconResource = R.drawable.import_image; + break; + case 2: + iconResource = R.drawable.collection; + break; + default: + iconResource = R.drawable.home; + break; + } + + tabBinding.iconCustom.setImageResource(iconResource); + tabBinding.dotView.setVisibility(showDot ? View.VISIBLE : View.GONE); + } + + private void attachTabSelectionListener() { + viewBinding.mainTablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { + @Override + public void onTabSelected(TabLayout.Tab selectedTab) { + updateDotVisibility(selectedTab, true); + } + + @Override + public void onTabUnselected(TabLayout.Tab unselectedTab) { + updateDotVisibility(unselectedTab, false); + } + + @Override + public void onTabReselected(TabLayout.Tab tab) { + } + + private void updateDotVisibility(TabLayout.Tab tab, boolean isVisible) { + View dot = tab.view.findViewById(R.id.dot_view); + if (dot != null) { + dot.setVisibility(isVisible ? View.VISIBLE : View.GONE); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/activity/SplashActivity.java b/app/src/main/java/com/ar/ardrawingboard/ui/activity/SplashActivity.java new file mode 100644 index 0000000..7070a52 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/activity/SplashActivity.java @@ -0,0 +1,66 @@ +package com.ar.ardrawingboard.ui.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.os.CountDownTimer; +import android.widget.ProgressBar; + +import androidx.appcompat.app.AppCompatActivity; + +import com.ar.ardrawingboard.R; +import com.ar.ardrawingboard.databinding.ActivitySplashBinding; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; + +public class SplashActivity extends AppCompatActivity { + private ActivitySplashBinding binding; + private static final long totalTime = 1000; + private CountDownTimer countDownTimer; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + binding = ActivitySplashBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); + + Glide.with(this) + .load(R.mipmap.ic_launcher) + .transform(new CenterCrop(),new RoundedCorners(32)) + .placeholder(R.mipmap.placeholder) + .error(R.mipmap.placeholder) + .into(binding.splashImage); + + countDownTimer = new CountDownTimer(totalTime,100) { + @Override + public void onTick(long millisUntilFinished) { + int percentage = (int) (100 - (float) millisUntilFinished / totalTime * 100); + binding.progressBar.setProgress(percentage); + } + + @Override + public void onFinish() { + startMain(); + } + }; + + countDownTimer.start(); + } + + private void startMain() { + binding.progressBar.setProgress(100); + + Intent intent = new Intent(SplashActivity.this, MainActivity.class); + startActivity(intent); + finish(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (countDownTimer != null) { + countDownTimer.cancel(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/adapter/CategoryFragmentAdapter.java b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/CategoryFragmentAdapter.java new file mode 100644 index 0000000..a873285 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/CategoryFragmentAdapter.java @@ -0,0 +1,94 @@ +package com.ar.ardrawingboard.ui.adapter; + +import android.app.Activity; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.ar.ardrawingboard.R; +import com.ar.ardrawingboard.ui.activity.CategoryActivity; +import com.ar.ardrawingboard.room.BoardEntry; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; + +import java.util.List; + +public class CategoryFragmentAdapter extends RecyclerView.Adapter { + private final Activity hostActivity; + private List boardList; + private final List rawCategoryList; + private final List shownCategoryNames; + + public CategoryFragmentAdapter(Activity hostActivity, List boardList, + List rawCategoryList, List shownCategoryNames) { + this.hostActivity = hostActivity; + this.boardList = boardList; + this.rawCategoryList = rawCategoryList; + this.shownCategoryNames = shownCategoryNames; + } + + public void refreshList(List updatedBoards) { + this.boardList = updatedBoards; + notifyDataSetChanged(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parentGroup, int viewType) { + LayoutInflater inflater = LayoutInflater.from(parentGroup.getContext()); + View itemLayout = inflater.inflate(R.layout.item_category, parentGroup, false); + return new ViewHolder(itemLayout); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder itemHolder, int pos) { + if (pos >= boardList.size() || pos >= shownCategoryNames.size() || pos >= rawCategoryList.size()) + return; + + BoardEntry entry = boardList.get(pos); + String shownName = shownCategoryNames.get(pos); + String rawName = rawCategoryList.get(pos); + + itemHolder.titleView.setText(shownName); + + String assetUri = "file:///android_asset/" + entry.getPath(); + + Glide.with(hostActivity) + .load(assetUri) + .transform(new CenterCrop(),new RoundedCorners(32)) + .placeholder(R.mipmap.placeholder) + .error(R.mipmap.placeholder) + .into(itemHolder.thumbnail); + + itemHolder.thumbnail.setOnClickListener(view -> { + Intent goToCategory = new Intent(hostActivity, CategoryActivity.class); + goToCategory.putExtra("Original", rawName); + goToCategory.putExtra("Title", shownName); + hostActivity.startActivity(goToCategory); + }); + } + + @Override + public int getItemCount() { + return boardList != null ? boardList.size() : 0; + } + + static class ViewHolder extends RecyclerView.ViewHolder { + + final ImageView thumbnail; + final TextView titleView; + + public ViewHolder(@NonNull View itemView) { + super(itemView); + thumbnail = itemView.findViewById(R.id.item_imageview); + titleView = itemView.findViewById(R.id.item_textview); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/adapter/FavoriteAndCategoryAdapter.java b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/FavoriteAndCategoryAdapter.java new file mode 100644 index 0000000..e8af634 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/FavoriteAndCategoryAdapter.java @@ -0,0 +1,111 @@ +package com.ar.ardrawingboard.ui.adapter; + +import android.content.Context; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.ar.ardrawingboard.R; +import com.ar.ardrawingboard.ui.activity.BoardActivity; +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.room.BoardEntry; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; + +import java.util.List; +import java.util.concurrent.Executors; + +public class FavoriteAndCategoryAdapter extends RecyclerView.Adapter { + + private List favoritesList; + private final Context appContext; + + public FavoriteAndCategoryAdapter(Context appContext, List favoritesList) { + this.appContext = appContext; + this.favoritesList = favoritesList; + } + + public void refreshFavorites(List updatedList) { + this.favoritesList = updatedList; + notifyDataSetChanged(); + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup root, int viewType) { + LayoutInflater inflater = LayoutInflater.from(appContext); + View viewItem = inflater.inflate(R.layout.item_import, root, false); + return new ViewHolder(viewItem); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder viewHolder, int pos) { + BoardEntry entry = favoritesList.get(pos); + viewHolder.bindItem(entry); + } + + @Override + public int getItemCount() { + return favoritesList != null ? favoritesList.size() : 0; + } + + class ViewHolder extends RecyclerView.ViewHolder { + + private final ImageView previewImage; + private final ImageView favToggle; + + ViewHolder(@NonNull View itemLayout) { + super(itemLayout); + previewImage = itemLayout.findViewById(R.id.image_view); + favToggle = itemLayout.findViewById(R.id.btn_favorite); + } + + void bindItem(BoardEntry itemData) { + String imagePath = itemData.getPath(); + String finalPath = imagePath.startsWith("/data/user/") ? imagePath : "file:///android_asset/" + imagePath; + + Glide.with(appContext) + .load(finalPath) + .transform(new CenterCrop(),new RoundedCorners(32)) + .placeholder(R.mipmap.placeholder) + .error(R.mipmap.placeholder) + .into(previewImage); + + previewImage.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent previewIntent = new Intent(appContext, BoardActivity.class); + previewIntent.putExtra("imagePath", imagePath); + appContext.startActivity(previewIntent); + } + }); + + favToggle.setImageResource(itemData.isFavorite() ? R.drawable.like : R.drawable.un_like); + + favToggle.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + boolean updatedStatus = !itemData.isFavorite(); + itemData.setFavorite(updatedStatus); + + Executors.newSingleThreadExecutor().execute(() -> { + AppDatabase database = AppDatabase.getInstance(appContext); + database.boardEntryDao().update(itemData); + }); + + int position = getAdapterPosition(); + if (position != RecyclerView.NO_POSITION) { + notifyItemChanged(position); + } + } + }); + } + } +} + diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/adapter/ImportFragmentAdapter.java b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/ImportFragmentAdapter.java new file mode 100644 index 0000000..2349724 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/ImportFragmentAdapter.java @@ -0,0 +1,139 @@ +package com.ar.ardrawingboard.ui.adapter; + +import android.app.Activity; +import android.content.Intent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.ar.ardrawingboard.R; +import com.ar.ardrawingboard.ui.activity.BoardActivity; +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.room.BoardEntry; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; + +import java.util.List; +import java.util.concurrent.Executors; + +public class ImportFragmentAdapter extends RecyclerView.Adapter { + private static final int TYPE_HEADER = 0; + private static final int TYPE_ENTRY = 1; + + private List boardItems; + private final Activity host; + private final OnHeaderClickListener headerClickCallback; + + public ImportFragmentAdapter(List boardItems, Activity host, OnHeaderClickListener headerClickCallback) { + this.boardItems = boardItems; + this.host = host; + this.headerClickCallback = headerClickCallback; + } + + public interface OnHeaderClickListener { + void onHeaderClick(); + } + + @Override + public int getItemViewType(int position) { + return position == 0 ? TYPE_HEADER : TYPE_ENTRY; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parentView, int viewType) { + LayoutInflater inflater = LayoutInflater.from(parentView.getContext()); + + if (viewType == TYPE_HEADER) { + View headerLayout = inflater.inflate(R.layout.item_special_view, parentView, false); + return new HeaderHolder(headerLayout); + } else { + View itemLayout = inflater.inflate(R.layout.item_import, parentView, false); + return new EntryHolder(itemLayout); + } + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int pos) { + if (getItemViewType(pos) == TYPE_HEADER) { + HeaderHolder header = (HeaderHolder) viewHolder; + header.itemView.setOnClickListener(v -> { + if (headerClickCallback != null) { + headerClickCallback.onHeaderClick(); + } + }); + } else { + EntryHolder holder = (EntryHolder) viewHolder; + BoardEntry item = boardItems.get(pos - 1); + + holder.bindItem(item); + + holder.imagePreview.setOnClickListener(v -> { + Intent intent = new Intent(host, BoardActivity.class); + intent.putExtra("imagePath", item.getPath()); + host.startActivity(intent); + }); + } + } + + @Override + public int getItemCount() { + return boardItems != null ? boardItems.size() + 1 : 1; + } + + public void refreshItems(List updatedList) { + this.boardItems = updatedList; + notifyDataSetChanged(); + } + + static class HeaderHolder extends RecyclerView.ViewHolder { + public HeaderHolder(@NonNull View itemView) { + super(itemView); + } + } + + class EntryHolder extends RecyclerView.ViewHolder { + ImageView imagePreview; + ImageView favoriteToggle; + + public EntryHolder(@NonNull View itemView) { + super(itemView); + imagePreview = itemView.findViewById(R.id.image_view); + favoriteToggle = itemView.findViewById(R.id.btn_favorite); + } + + void bindItem(BoardEntry data) { + String imgPath = data.getPath(); + + Glide.with(host) + .load(imgPath) + .diskCacheStrategy(DiskCacheStrategy.ALL) + .transform(new CenterCrop(),new RoundedCorners(32)) + .placeholder(R.mipmap.placeholder) + .error(R.mipmap.placeholder) + .into(imagePreview); + + favoriteToggle.setImageResource(data.isFavorite() ? R.drawable.like : R.drawable.un_like); + + favoriteToggle.setOnClickListener(view -> { + boolean toggled = !data.isFavorite(); + data.setFavorite(toggled); + + Executors.newSingleThreadExecutor().execute(() -> + AppDatabase.getInstance(host).boardEntryDao().update(data) + ); + + int currentPos = getAdapterPosition(); + if (currentPos != RecyclerView.NO_POSITION) { + notifyItemChanged(currentPos); + } + }); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/adapter/MainAdapter.java b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/MainAdapter.java new file mode 100644 index 0000000..9959c74 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/adapter/MainAdapter.java @@ -0,0 +1,36 @@ +package com.ar.ardrawingboard.ui.adapter; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import com.ar.ardrawingboard.ui.fragment.CategoryFragment; +import com.ar.ardrawingboard.ui.fragment.FavoriteFragment; +import com.ar.ardrawingboard.ui.fragment.ImportFragment; + +import java.util.ArrayList; +import java.util.List; + +public class MainAdapter extends FragmentStateAdapter { + private final List fragmentList; + + public MainAdapter(@NonNull FragmentActivity fragmentActivity) { + super(fragmentActivity); + fragmentList = new ArrayList<>(); + fragmentList.add(new CategoryFragment()); + fragmentList.add(new ImportFragment()); + fragmentList.add(new FavoriteFragment()); + } + + @NonNull + @Override + public Fragment createFragment(int position) { + return fragmentList.get(position); + } + + @Override + public int getItemCount() { + return fragmentList.size(); + } +} diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/fragment/CategoryFragment.java b/app/src/main/java/com/ar/ardrawingboard/ui/fragment/CategoryFragment.java new file mode 100644 index 0000000..b1aa7b1 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/fragment/CategoryFragment.java @@ -0,0 +1,98 @@ +package com.ar.ardrawingboard.ui.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.recyclerview.widget.GridLayoutManager; + +import com.ar.ardrawingboard.ui.adapter.CategoryFragmentAdapter; +import com.ar.ardrawingboard.databinding.FragmentCategoryBinding; +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.room.BoardEntry; +import com.ar.ardrawingboard.util.ItemDecoration; +import com.ar.ardrawingboard.util.Names; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CopyOnWriteArrayList; + +public class CategoryFragment extends Fragment { + private FragmentCategoryBinding binding; + private final List originalCategories = Names.getAllImage(); + private final List displayCategories = new ArrayList<>(); + private CategoryFragmentAdapter adapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + binding = FragmentCategoryBinding.inflate(inflater, container, false); + + initData(); + initEvent(); + setupRecyclerView(); + + loadImages(originalCategories); + + return binding.getRoot(); + } + + private void initData() { + for (String category : originalCategories) { + displayCategories.add(category.substring(4)); + } + } + + private void initEvent() { + } + + private void setupRecyclerView() { + binding.recyclerview.setLayoutManager(new GridLayoutManager(getContext(), 2)); + + adapter = new CategoryFragmentAdapter(requireActivity(), new ArrayList<>(), originalCategories, displayCategories); + binding.recyclerview.setAdapter(adapter); + + binding.recyclerview.addItemDecoration(new ItemDecoration(16, 19, 10)); + } + + private void loadImages(List originalList) { + Map> queryResultsMap = new HashMap<>(); + int totalQueries = originalList.size(); + + for (int i = 0; i < totalQueries; i++) { + String original = originalList.get(i); + int finalI = i; + AppDatabase.getInstance(requireContext()) + .boardEntryDao() + .getImageByPathLimitOne(original) + .observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(List imageEntries) { + queryResultsMap.put(finalI, imageEntries); + if (queryResultsMap.size() == totalQueries) { + List allImageEntries = new CopyOnWriteArrayList<>(); + for (int j = 0; j < totalQueries; j++) { + List currentEntries = queryResultsMap.get(j); + if (currentEntries!= null) { + allImageEntries.addAll(currentEntries); + } + } + adapter.refreshList(allImageEntries); + } + } + }); + } + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/fragment/FavoriteFragment.java b/app/src/main/java/com/ar/ardrawingboard/ui/fragment/FavoriteFragment.java new file mode 100644 index 0000000..d224f7d --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/fragment/FavoriteFragment.java @@ -0,0 +1,69 @@ +package com.ar.ardrawingboard.ui.fragment; + +import android.os.Bundle; + +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.recyclerview.widget.GridLayoutManager; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.ar.ardrawingboard.ui.adapter.FavoriteAndCategoryAdapter; +import com.ar.ardrawingboard.databinding.FragmentFavoriteBinding; +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.room.BoardEntry; +import com.ar.ardrawingboard.util.ItemDecoration; + +import java.util.ArrayList; +import java.util.List; + +public class FavoriteFragment extends Fragment { + private FragmentFavoriteBinding binding; + private FavoriteAndCategoryAdapter adapter; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + binding = FragmentFavoriteBinding.inflate(inflater, container, false); + + setupRecyclerView(); + loadFavoriteImages(); + + return binding.getRoot(); + } + + private void setupRecyclerView() { + binding.recyclerview.setLayoutManager(new GridLayoutManager(getContext(), 2)); + + adapter = new FavoriteAndCategoryAdapter(requireContext(),new ArrayList<>()); + binding.recyclerview.setAdapter(adapter); + + binding.recyclerview.addItemDecoration(new ItemDecoration(16, 19, 10)); + } + + private void loadFavoriteImages() { + AppDatabase.getInstance(requireContext()) + .boardEntryDao() + .getFavorite() + .observe(getViewLifecycleOwner(), new Observer>() { + @Override + public void onChanged(List imageEntries) { + if (imageEntries.isEmpty()) { + binding.backgroundText.setVisibility(View.VISIBLE); + } else { + binding.backgroundText.setVisibility(View.GONE); + } + adapter.refreshFavorites(imageEntries); + } + }); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/ui/fragment/ImportFragment.java b/app/src/main/java/com/ar/ardrawingboard/ui/fragment/ImportFragment.java new file mode 100644 index 0000000..b42aa17 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/ui/fragment/ImportFragment.java @@ -0,0 +1,178 @@ +package com.ar.ardrawingboard.ui.fragment; + +import android.app.Activity; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; +import android.os.Bundle; +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.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.LiveData; +import androidx.recyclerview.widget.GridLayoutManager; + +import com.ar.ardrawingboard.databinding.FragmentImportBinding; +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.room.BoardEntry; +import com.ar.ardrawingboard.room.BoardEntryDao; +import com.ar.ardrawingboard.ui.adapter.ImportFragmentAdapter; +import com.ar.ardrawingboard.util.ItemDecoration; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +public class ImportFragment extends Fragment implements ImportFragmentAdapter.OnHeaderClickListener { + private FragmentImportBinding uiBinding; + private ImportFragmentAdapter imageAdapter; + private final List storedImagePaths = new ArrayList<>(); + private BoardEntryDao databaseDao; + private static final int MAX_IMAGE_SIZE_BYTES = 10 * 1024 * 1024; + + private final ActivityResultLauncher imagePickerLauncher = registerForActivityResult( + new ActivityResultContracts.StartActivityForResult(), + result -> { + if (result.getResultCode() == Activity.RESULT_OK && result.getData() != null) { + Uri imageUri = result.getData().getData(); + if (imageUri != null) { + processSelectedImage(imageUri); + } + } + }); + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + uiBinding = FragmentImportBinding.inflate(inflater, container, false); + initializeRecyclerView(); + setupDatabase(); + observeImageData(); + return uiBinding.getRoot(); + } + + private void initializeRecyclerView() { + uiBinding.recyclerview.setLayoutManager(new GridLayoutManager(requireContext(), 2)); + uiBinding.recyclerview.addItemDecoration(new ItemDecoration(16, 19, 10)); + imageAdapter = new ImportFragmentAdapter(new ArrayList<>(), requireActivity(), this); + uiBinding.recyclerview.setAdapter(imageAdapter); + } + + private void setupDatabase() { + AppDatabase database = AppDatabase.getInstance(requireContext()); + databaseDao = database.boardEntryDao(); + } + + private void observeImageData() { + LiveData> imageLiveData = databaseDao.getImportLive(); + imageLiveData.observe(getViewLifecycleOwner(), entries -> imageAdapter.refreshItems(entries)); + } + + @Override + public void onResume() { + super.onResume(); + imageAdapter.notifyDataSetChanged(); + } + + @Override + public void onHeaderClick() { + launchImagePicker(); + } + + private void launchImagePicker() { + Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + imagePickerLauncher.launch(pickIntent); + } + + private void processSelectedImage(Uri imageUri) { + try { + if (isImageSizeValid(imageUri)) { + storeImageLocally(imageUri); + } else { + Toast.makeText(requireContext(), "Image exceeds size limit", Toast.LENGTH_SHORT).show(); + } + } catch (IOException e) { + Toast.makeText(requireContext(), "Error checking image: " + e.getMessage(), Toast.LENGTH_SHORT).show(); + } + } + + private boolean isImageSizeValid(Uri uri) throws IOException { + try (InputStream stream = requireContext().getContentResolver().openInputStream(uri)) { + if (stream == null) return false; + return stream.available() <= MAX_IMAGE_SIZE_BYTES; + } + } + + private void storeImageLocally(Uri uri) { + try { + InputStream inputStream = requireContext().getContentResolver().openInputStream(uri); + Bitmap imageBitmap = BitmapFactory.decodeStream(inputStream); + if (imageBitmap == null) { + Toast.makeText(requireContext(), "Failed to load image", Toast.LENGTH_SHORT).show(); + return; + } + + File storageDir = requireContext().getFilesDir(); + File newImageFile = new File(storageDir, System.currentTimeMillis() + ".jpg"); + try (FileOutputStream outputStream = new FileOutputStream(newImageFile)) { + imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); + } + if (inputStream != null) { + inputStream.close(); + } + + String newImagePath = newImageFile.getAbsolutePath(); + saveImageToDatabase(newImagePath, newImageFile); + + } catch (IOException e) { + Toast.makeText(requireContext(), "Error saving image: " + e.getMessage(), Toast.LENGTH_SHORT).show(); + } + } + + private void saveImageToDatabase(String imagePath, File imageFile) { + new Thread(() -> { + if (isDuplicateImage(imagePath)) { + requireActivity().runOnUiThread(() -> + Toast.makeText(requireContext(), "Image already exists", Toast.LENGTH_SHORT).show()); + imageFile.delete(); + return; + } + storedImagePaths.add(imagePath); + databaseDao.insert(new BoardEntry(false, true, imagePath)); + }).start(); + } + + private boolean isDuplicateImage(String newImagePath) { + File newFile = new File(newImagePath); + for (String existingPath : storedImagePaths) { + if (areFilesEqual(new File(existingPath), newFile)) { + return true; + } + } + List entries = databaseDao.getImport(); + for (BoardEntry entry : entries) { + if (areFilesEqual(new File(entry.getPath()), newFile)) { + return true; + } + } + return false; + } + + private boolean areFilesEqual(File file1, File file2) { + return file1.length() == file2.length(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + uiBinding = null; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/util/CommonUtils.java b/app/src/main/java/com/ar/ardrawingboard/util/CommonUtils.java new file mode 100644 index 0000000..0d1dbc4 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/CommonUtils.java @@ -0,0 +1,17 @@ +package com.ar.ardrawingboard.util; + +import android.content.Context; +import android.graphics.Point; +import android.util.DisplayMetrics; +import android.view.WindowManager; + +public class CommonUtils { + public static Point getScreenSize(Context context) { + DisplayMetrics metrics = new DisplayMetrics(); + WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + if (wm != null) { + wm.getDefaultDisplay().getMetrics(metrics); + } + return new Point(metrics.widthPixels, metrics.heightPixels); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/util/ImageUtils.java b/app/src/main/java/com/ar/ardrawingboard/util/ImageUtils.java new file mode 100644 index 0000000..82d15d0 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/ImageUtils.java @@ -0,0 +1,31 @@ +package com.ar.ardrawingboard.util; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.widget.ImageView; + +import java.io.IOException; +import java.io.InputStream; + +public class ImageUtils { + + public static Bitmap loadBitmapFromStorage(String path) { + return BitmapFactory.decodeFile(path); + } + + public static Bitmap loadBitmapFromAssets(Context context, String path) { + try (InputStream inputStream = context.getAssets().open(path)) { + return BitmapFactory.decodeStream(inputStream); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public static void displayImageToImageView(ImageView imageView, Bitmap bitmap) { + if (bitmap != null) { + imageView.setImageBitmap(bitmap); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/util/ItemDecoration.java b/app/src/main/java/com/ar/ardrawingboard/util/ItemDecoration.java new file mode 100644 index 0000000..0987b9c --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/ItemDecoration.java @@ -0,0 +1,75 @@ +package com.ar.ardrawingboard.util; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.StaggeredGridLayoutManager; + +import com.ar.ardrawingboard.MyApplication; + +public class ItemDecoration extends RecyclerView.ItemDecoration { + + private int v, h, ex; + + public ItemDecoration(int v, int h, int ex) { + this.v = Math.round(dpToPx(v)); + this.h = Math.round(dpToPx(h)); + this.ex = Math.round(dpToPx(ex)); + } + + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + super.getItemOffsets(outRect, view, parent, state); + int spanCount = 1; + int spanSize = 1; + int spanIndex = 0; + + int childAdapterPosition = parent.getChildAdapterPosition(view); + RecyclerView.LayoutManager layoutManager = parent.getLayoutManager(); + if (layoutManager instanceof StaggeredGridLayoutManager) { + StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager; + StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams(); + spanCount = staggeredGridLayoutManager.getSpanCount(); + if (layoutParams.isFullSpan()) { + spanSize = spanCount; + } + spanIndex = layoutParams.getSpanIndex(); + } else if (layoutManager instanceof GridLayoutManager) { + GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager; + GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams) view.getLayoutParams(); + spanCount = gridLayoutManager.getSpanCount(); + spanSize = gridLayoutManager.getSpanSizeLookup().getSpanSize(childAdapterPosition); + spanIndex = layoutParams.getSpanIndex(); + } else if (layoutManager instanceof LinearLayoutManager) { + outRect.left = v; + outRect.right = v; + outRect.bottom = h; + } + + if (spanSize == spanCount) { + outRect.left = v + ex; + outRect.right = v + ex; + outRect.bottom = h; + + } else { + int itemAllSpacing = (v * (spanCount + 1) + ex * 2) / spanCount; + int left = v * (spanIndex + 1) - itemAllSpacing * spanIndex + ex; + int right = itemAllSpacing - left; + outRect.left = left; + outRect.right = right; + outRect.bottom = h; + + } + + } + + + public static float dpToPx(float dpValue) { + float density = MyApplication.application.getResources().getDisplayMetrics().density; + return density * dpValue + 0.5f; + } +} diff --git a/app/src/main/java/com/ar/ardrawingboard/util/Names.java b/app/src/main/java/com/ar/ardrawingboard/util/Names.java new file mode 100644 index 0000000..12c87d3 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/Names.java @@ -0,0 +1,47 @@ +package com.ar.ardrawingboard.util; + +import java.util.ArrayList; +import java.util.List; + +public class Names { + + public static String Class_Animals = "png_Animals"; + public static String Class_birds = "png_Birds"; + public static String Class_butterfly = "png_Butterfly"; + public static String Class_cafe = "png_Cafe"; + public static String Class_cartoons = "png_Cartoons"; + public static String Class_christmas = "png_Christmas"; + public static String Class_festivals = "png_Festivals"; + public static String Class_flowers = "png_Flowers"; + public static String Class_fruits = "png_Fruits"; + public static String Class_general = "png_General"; + + public static String Class_mehndi = "png_Mehndi"; + public static String Class_nature = "png_Nature"; + public static String Class_properties = "png_Properties"; + public static String Class_rangoli = "png_Rangoli"; + public static String Class_sports = "png_Sports"; + public static String Class_vehicles = "png_Vehicles"; + + public static List getAllImage() { + ArrayList list = new ArrayList<>(); + list.add(Class_Animals); + list.add(Class_birds); + list.add(Class_butterfly); + list.add(Class_cafe); + list.add(Class_cartoons); + list.add(Class_christmas); + list.add(Class_festivals); + list.add(Class_flowers); + list.add(Class_fruits); + list.add(Class_general); + list.add(Class_mehndi); + list.add(Class_nature); + list.add(Class_properties); + list.add(Class_rangoli); + list.add(Class_sports); + list.add(Class_vehicles); + return list; + } + +} diff --git a/app/src/main/java/com/ar/ardrawingboard/util/PermissionUtils.java b/app/src/main/java/com/ar/ardrawingboard/util/PermissionUtils.java new file mode 100644 index 0000000..f53a6f9 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/PermissionUtils.java @@ -0,0 +1,44 @@ +package com.ar.ardrawingboard.util; + +import android.Manifest; +import android.app.Activity; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Build; + +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +public class PermissionUtils { + public static boolean hasPermissions(Context context, String[] permissions) { + for (String permission : permissions) { + if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { + return false; + } + } + return true; + } + + public static void requestPermissions(Activity activity, String[] permissions, int requestCode) { + ActivityCompat.requestPermissions(activity, permissions, requestCode); + } + + public static boolean handlePermissionsResult(int[] grantResults) { + for (int result : grantResults) { + if (result != PackageManager.PERMISSION_GRANTED) return false; + } + return true; + } + + public static String[] getCameraAndStoragePermissions() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + return new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_MEDIA_IMAGES}; + } else { + return new String[]{ + Manifest.permission.CAMERA, + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE + }; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ar/ardrawingboard/util/RoomInit.java b/app/src/main/java/com/ar/ardrawingboard/util/RoomInit.java new file mode 100644 index 0000000..7c7db34 --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/RoomInit.java @@ -0,0 +1,29 @@ +package com.ar.ardrawingboard.util; + +import android.content.Context; + +import com.ar.ardrawingboard.room.AppDatabase; +import com.ar.ardrawingboard.room.BoardEntry; +import com.ar.ardrawingboard.room.BoardEntryDao; + +import java.util.ArrayList; +import java.util.List; + +public class RoomInit { + + private final BoardEntryDao boardEntryDao; + + public RoomInit(Context context) { + AppDatabase db = AppDatabase.getInstance(context); + boardEntryDao = db.boardEntryDao(); + } + + public void insertAllImages(List imagePaths) { + List imageEntries = new ArrayList<>(); + for (String path : imagePaths) { + imageEntries.add(new BoardEntry(false, false, path)); + } + + boardEntryDao.insertAll(imageEntries); + } +} diff --git a/app/src/main/java/com/ar/ardrawingboard/util/TouchUtils.java b/app/src/main/java/com/ar/ardrawingboard/util/TouchUtils.java new file mode 100644 index 0000000..c944b7b --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/TouchUtils.java @@ -0,0 +1,61 @@ +package com.ar.ardrawingboard.util; + +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.graphics.Point; +import android.graphics.PointF; +import android.view.MotionEvent; +import android.widget.ImageView; + +public class TouchUtils { + private static final int NONE = 0, DRAG = 1, ZOOM = 2; + private static float initialDistance = 0f; + private static final Matrix matrix = new Matrix(); + private static final Matrix savedMatrix = new Matrix(); + private static final PointF startPoint = new PointF(); + private static int mode = NONE; + + public static boolean handleTouchEvent(ImageView view, MotionEvent event) { + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + savedMatrix.set(matrix); + startPoint.set(event.getX(), event.getY()); + mode = DRAG; + break; + case MotionEvent.ACTION_POINTER_DOWN: + initialDistance = Tracing.getDistance(event); + if (initialDistance > 10f) { + savedMatrix.set(matrix); + mode = ZOOM; + } + break; + case MotionEvent.ACTION_MOVE: + if (mode == DRAG) { + matrix.set(savedMatrix); + matrix.postTranslate(event.getX() - startPoint.x, event.getY() - startPoint.y); + } else if (mode == ZOOM) { + float newDist = Tracing.getDistance(event); + if (newDist > 10f) { + float scale = newDist / initialDistance; + matrix.set(savedMatrix); + matrix.postScale(scale, scale, view.getWidth() / 2f, view.getHeight() / 2f); + } + } + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_POINTER_UP: + mode = NONE; + break; + } + view.setImageMatrix(matrix); + return true; + } + + public static void initPosition(ImageView imageView, Bitmap bitmap, Point screenSize) { + float newX = screenSize.x / 2f - bitmap.getWidth() / 2f; + float newY = screenSize.y / 2f - bitmap.getHeight() / 2f; + matrix.postTranslate(newX, newY); + imageView.setImageMatrix(matrix); + } +} + diff --git a/app/src/main/java/com/ar/ardrawingboard/util/Tracing.java b/app/src/main/java/com/ar/ardrawingboard/util/Tracing.java new file mode 100644 index 0000000..cdcd2de --- /dev/null +++ b/app/src/main/java/com/ar/ardrawingboard/util/Tracing.java @@ -0,0 +1,12 @@ +package com.ar.ardrawingboard.util; + +import android.view.MotionEvent; + +public class Tracing { + + public static float getDistance(MotionEvent event) { + float dx = event.getX(1) - event.getX(0); + float dy = event.getY(1) - event.getY(0); + return (float) Math.sqrt(dx * dx + dy * dy); + } +} diff --git a/app/src/main/res/drawable/add.xml b/app/src/main/res/drawable/add.xml new file mode 100644 index 0000000..94f4be4 --- /dev/null +++ b/app/src/main/res/drawable/add.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/back.xml b/app/src/main/res/drawable/back.xml new file mode 100644 index 0000000..3238020 --- /dev/null +++ b/app/src/main/res/drawable/back.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/btn_fav_bg.xml b/app/src/main/res/drawable/btn_fav_bg.xml new file mode 100644 index 0000000..55ea2f8 --- /dev/null +++ b/app/src/main/res/drawable/btn_fav_bg.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/drawable/camera.xml b/app/src/main/res/drawable/camera.xml new file mode 100644 index 0000000..15beda0 --- /dev/null +++ b/app/src/main/res/drawable/camera.xml @@ -0,0 +1,24 @@ + + + + + diff --git a/app/src/main/res/drawable/camera_background.xml b/app/src/main/res/drawable/camera_background.xml new file mode 100644 index 0000000..dec7c28 --- /dev/null +++ b/app/src/main/res/drawable/camera_background.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/app/src/main/res/drawable/collection.xml b/app/src/main/res/drawable/collection.xml new file mode 100644 index 0000000..4bfe4ab --- /dev/null +++ b/app/src/main/res/drawable/collection.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/dot.xml b/app/src/main/res/drawable/dot.xml new file mode 100644 index 0000000..730e31a --- /dev/null +++ b/app/src/main/res/drawable/dot.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/flash.xml b/app/src/main/res/drawable/flash.xml new file mode 100644 index 0000000..3b18b32 --- /dev/null +++ b/app/src/main/res/drawable/flash.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/home.xml b/app/src/main/res/drawable/home.xml new file mode 100644 index 0000000..079e624 --- /dev/null +++ b/app/src/main/res/drawable/home.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/import_image.xml b/app/src/main/res/drawable/import_image.xml new file mode 100644 index 0000000..04dd36f --- /dev/null +++ b/app/src/main/res/drawable/import_image.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/like.xml b/app/src/main/res/drawable/like.xml new file mode 100644 index 0000000..767b63f --- /dev/null +++ b/app/src/main/res/drawable/like.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/photo.xml b/app/src/main/res/drawable/photo.xml new file mode 100644 index 0000000..2e9ec8e --- /dev/null +++ b/app/src/main/res/drawable/photo.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/reversal.xml b/app/src/main/res/drawable/reversal.xml new file mode 100644 index 0000000..443dc31 --- /dev/null +++ b/app/src/main/res/drawable/reversal.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/rounded_background.xml b/app/src/main/res/drawable/rounded_background.xml new file mode 100644 index 0000000..e7a81ea --- /dev/null +++ b/app/src/main/res/drawable/rounded_background.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/drawable/rounded_corners.xml b/app/src/main/res/drawable/rounded_corners.xml new file mode 100644 index 0000000..127b9d6 --- /dev/null +++ b/app/src/main/res/drawable/rounded_corners.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/app/src/main/res/drawable/seek_bar_color.xml b/app/src/main/res/drawable/seek_bar_color.xml new file mode 100644 index 0000000..f8e5913 --- /dev/null +++ b/app/src/main/res/drawable/seek_bar_color.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/seekbar_thumb.xml b/app/src/main/res/drawable/seekbar_thumb.xml new file mode 100644 index 0000000..71213e0 --- /dev/null +++ b/app/src/main/res/drawable/seekbar_thumb.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/subtract.xml b/app/src/main/res/drawable/subtract.xml new file mode 100644 index 0000000..3ae4bdb --- /dev/null +++ b/app/src/main/res/drawable/subtract.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/un_flash.xml b/app/src/main/res/drawable/un_flash.xml new file mode 100644 index 0000000..fe2845d --- /dev/null +++ b/app/src/main/res/drawable/un_flash.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/un_like.xml b/app/src/main/res/drawable/un_like.xml new file mode 100644 index 0000000..50d6662 --- /dev/null +++ b/app/src/main/res/drawable/un_like.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/un_reversal.xml b/app/src/main/res/drawable/un_reversal.xml new file mode 100644 index 0000000..2aaf138 --- /dev/null +++ b/app/src/main/res/drawable/un_reversal.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/work_import.xml b/app/src/main/res/drawable/work_import.xml new file mode 100644 index 0000000..5226cfe --- /dev/null +++ b/app/src/main/res/drawable/work_import.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_board.xml b/app/src/main/res/layout/activity_board.xml new file mode 100644 index 0000000..2f1bff2 --- /dev/null +++ b/app/src/main/res/layout/activity_board.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_category.xml b/app/src/main/res/layout/activity_category.xml new file mode 100644 index 0000000..f6a44a7 --- /dev/null +++ b/app/src/main/res/layout/activity_category.xml @@ -0,0 +1,42 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 86a5d97..fd0f822 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -5,15 +5,24 @@ android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity"> + android:background="@mipmap/background" + tools:context=".ui.activity.MainActivity"> - + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 0000000..a6fc9e7 --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,50 @@ + + + + + + + + + + \ 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..dc715e5 --- /dev/null +++ b/app/src/main/res/layout/fragment_category.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_favorite.xml b/app/src/main/res/layout/fragment_favorite.xml new file mode 100644 index 0000000..255c4ff --- /dev/null +++ b/app/src/main/res/layout/fragment_favorite.xml @@ -0,0 +1,45 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_import.xml b/app/src/main/res/layout/fragment_import.xml new file mode 100644 index 0000000..b3f70d2 --- /dev/null +++ b/app/src/main/res/layout/fragment_import.xml @@ -0,0 +1,32 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_category.xml b/app/src/main/res/layout/item_category.xml new file mode 100644 index 0000000..ecaa647 --- /dev/null +++ b/app/src/main/res/layout/item_category.xml @@ -0,0 +1,42 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/item_import.xml b/app/src/main/res/layout/item_import.xml new file mode 100644 index 0000000..9a26d37 --- /dev/null +++ b/app/src/main/res/layout/item_import.xml @@ -0,0 +1,34 @@ + + + + + + + + + diff --git a/app/src/main/res/layout/item_special_view.xml b/app/src/main/res/layout/item_special_view.xml new file mode 100644 index 0000000..c2e3a1f --- /dev/null +++ b/app/src/main/res/layout/item_special_view.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/main_tab_item_custom.xml b/app/src/main/res/layout/main_tab_item_custom.xml new file mode 100644 index 0000000..fa88963 --- /dev/null +++ b/app/src/main/res/layout/main_tab_item_custom.xml @@ -0,0 +1,26 @@ + + + + + + + + \ 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 deleted file mode 100644 index 6f3b755..0000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/background.png b/app/src/main/res/mipmap-hdpi/background.png new file mode 100644 index 0000000..900881f Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/background.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..96a0e40 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index c209e78..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/placeholder.png b/app/src/main/res/mipmap-hdpi/placeholder.png new file mode 100644 index 0000000..30f37db Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/placeholder.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..5affa51 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp deleted file mode 100644 index 4f0f1d6..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..712badc Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp deleted file mode 100644 index 948a307..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..ab5c626 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index 28d4b77..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..09fd4c7 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index aa7d642..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c8524cd..a3bde4c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,4 +2,6 @@ #FF000000 #FFFFFFFF + #212121 + #6200EE \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0141aed..e3cdd8a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,5 @@ AR Drawing Board + + Hello blank fragment \ No newline at end of file diff --git a/keystore.properties b/keystore.properties new file mode 100644 index 0000000..8383fa1 --- /dev/null +++ b/keystore.properties @@ -0,0 +1,6 @@ +app_name=AR Drawing Board +package_name=com.ar.ardrawingboard +keystoreFile=app/ARDrawingBoard.jks +key_alias=ARDrawingBoardkey0 +key_store_password=ARDrawingBoard +key_password=ARDrawingBoard