From 831ddb576f332288f7486ccfc53efc3970990a7a Mon Sep 17 00:00:00 2001
From: afxx <1095758092@qq.com>
Date: Mon, 17 Apr 2023 15:49:54 +0800
Subject: [PATCH] init
---
.gitignore | 14 +
.idea/codeStyles/Project.xml | 140 +++
.idea/dbnavigator.xml | 800 ++++++++++++++++++
.idea/gradle.xml | 16 +
.idea/misc.xml | 9 +
.idea/runConfigurations.xml | 12 +
app/.gitignore | 1 +
app/build.gradle | 35 +
app/proguard-rules.pro | 21 +
.../ExampleInstrumentedTest.java | 27 +
app/src/main/AndroidManifest.xml | 25 +
.../example/orangesale_05/BuildConfig.java | 8 +
.../com/example/orangesale_05/Manifest.java | 7 +
.../main/gen/com/example/orangesale_05/R.java | 7 +
.../example/orangesale_05/MainActivity.java | 80 ++
.../activity/CategoryActivity.java | 90 ++
.../orangesale_05/activity/IndexActivity.java | 120 +++
.../activity/RegisterActivity.java | 168 ++++
.../orangesale_05/activity/UserActivity.java | 66 ++
.../orangesale_05/adapter/Adapter.java | 69 ++
.../orangesale_05/adapter/ProductAdapter.java | 68 ++
.../dataoperation/OrangeDatabase.java | 68 ++
.../orangesale_05/entity/OrangeUser.java | 59 ++
.../example/orangesale_05/entity/Product.java | 43 +
.../orangesale_05/fragment/IndexFragment.java | 109 +++
.../fragment/PearsonFragment.java | 64 ++
.../fragment/ProductFragment.java | 21 +
.../fragment/SetDetailFragment.java | 53 ++
.../fragment/ShoppingCartFragment.java | 21 +
app/src/main/res/drawable-v24/address.png | Bin 0 -> 1028 bytes
app/src/main/res/drawable-v24/apple.png | Bin 0 -> 1988 bytes
app/src/main/res/drawable-v24/applep.png | Bin 0 -> 8824 bytes
app/src/main/res/drawable-v24/arrow_down.png | Bin 0 -> 368 bytes
app/src/main/res/drawable-v24/arrow_left.png | Bin 0 -> 231 bytes
app/src/main/res/drawable-v24/arrow_right.png | Bin 0 -> 233 bytes
.../main/res/drawable-v24/button_login.xml | 15 +
.../main/res/drawable-v24/button_register.xml | 14 +
app/src/main/res/drawable-v24/chengzi.png | Bin 0 -> 1666 bytes
app/src/main/res/drawable-v24/city.png | Bin 0 -> 790 bytes
.../drawable-v24/ic_launcher_background.xml | 170 ++++
.../drawable-v24/ic_launcher_foreground.xml | 34 +
app/src/main/res/drawable-v24/index.png | Bin 0 -> 1272 bytes
app/src/main/res/drawable-v24/index_menu.xml | 16 +
app/src/main/res/drawable-v24/juzi.png | Bin 0 -> 1898 bytes
app/src/main/res/drawable-v24/juzip.png | Bin 0 -> 8150 bytes
app/src/main/res/drawable-v24/lemon.png | Bin 0 -> 2954 bytes
app/src/main/res/drawable-v24/lemonp.png | Bin 0 -> 10312 bytes
app/src/main/res/drawable-v24/li.png | Bin 0 -> 1862 bytes
app/src/main/res/drawable-v24/mangguo.png | Bin 0 -> 2192 bytes
app/src/main/res/drawable-v24/orange.png | Bin 0 -> 6129 bytes
app/src/main/res/drawable-v24/password.png | Bin 0 -> 1462 bytes
app/src/main/res/drawable-v24/pearson.png | Bin 0 -> 3302 bytes
app/src/main/res/drawable-v24/product.png | Bin 0 -> 1315 bytes
app/src/main/res/drawable-v24/search.png | Bin 0 -> 1299 bytes
app/src/main/res/drawable-v24/setting.png | Bin 0 -> 1101 bytes
app/src/main/res/drawable-v24/sex.png | Bin 0 -> 1509 bytes
.../main/res/drawable-v24/shoppingcart.png | Bin 0 -> 1155 bytes
app/src/main/res/drawable-v24/shuiguo.png | Bin 0 -> 1212 bytes
.../drawable-v24/spinner_drop_down_shape.xml | 16 +
.../main/res/drawable-v24/sure_apssword.png | Bin 0 -> 799 bytes
.../main/res/drawable-v24/tab_menu_text.xml | 5 +
app/src/main/res/drawable-v24/user.png | Bin 0 -> 2173 bytes
.../main/res/drawable-v24/user_account.png | Bin 0 -> 1045 bytes
.../main/res/drawable-v24/user_general.png | Bin 0 -> 402 bytes
app/src/main/res/drawable-v24/user_icon.png | Bin 0 -> 5995 bytes
app/src/main/res/drawable-v24/user_pay.png | Bin 0 -> 554 bytes
app/src/main/res/drawable-v24/user_sex.png | Bin 0 -> 1123 bytes
app/src/main/res/drawable-v24/watermelon.jpg | Bin 0 -> 208043 bytes
app/src/main/res/drawable-v24/xigua.png | Bin 0 -> 2622 bytes
app/src/main/res/drawable-v24/xiguap.png | Bin 0 -> 6605 bytes
app/src/main/res/drawable-v24/youzi.png | Bin 0 -> 1798 bytes
app/src/main/res/drawable-v24/youzip.png | Bin 0 -> 9547 bytes
.../res/drawable/ic_launcher_background.xml | 170 ++++
app/src/main/res/layout/activity_main.xml | 29 +
app/src/main/res/layout/category_detail.xml | 16 +
.../main/res/layout/category_list_item.xml | 14 +
.../res/layout/categoty_detail_content.xml | 32 +
app/src/main/res/layout/content_category.xml | 52 ++
app/src/main/res/layout/content_index.xml | 221 +++++
app/src/main/res/layout/content_nav.xml | 118 +++
app/src/main/res/layout/content_product.xml | 11 +
app/src/main/res/layout/content_shopping.xml | 11 +
app/src/main/res/layout/content_user.xml | 234 +++++
app/src/main/res/layout/index_famous.xml | 55 ++
app/src/main/res/layout/user_login.xml | 99 +++
app/src/main/res/layout/user_register.xml | 168 ++++
.../res/mipmap-anydpi-v26/ic_launcher.xml | 5 +
.../mipmap-anydpi-v26/ic_launcher_round.xml | 5 +
app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2963 bytes
.../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4905 bytes
app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2060 bytes
.../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2783 bytes
app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4490 bytes
.../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6895 bytes
.../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6387 bytes
.../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10413 bytes
.../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9128 bytes
.../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15132 bytes
app/src/main/res/values/colors.xml | 6 +
app/src/main/res/values/strings.xml | 5 +
app/src/main/res/values/styles.xml | 11 +
.../orangesale_05/ExampleUnitTest.java | 17 +
build.gradle | 27 +
gradle.properties | 20 +
gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes
gradle/wrapper/gradle-wrapper.properties | 6 +
gradlew | 172 ++++
gradlew.bat | 84 ++
settings.gradle | 2 +
109 files changed, 4081 insertions(+)
create mode 100644 .gitignore
create mode 100644 .idea/codeStyles/Project.xml
create mode 100644 .idea/dbnavigator.xml
create mode 100644 .idea/gradle.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/runConfigurations.xml
create mode 100644 app/.gitignore
create mode 100644 app/build.gradle
create mode 100644 app/proguard-rules.pro
create mode 100644 app/src/androidTest/java/com/example/orangesale_05/ExampleInstrumentedTest.java
create mode 100644 app/src/main/AndroidManifest.xml
create mode 100644 app/src/main/gen/com/example/orangesale_05/BuildConfig.java
create mode 100644 app/src/main/gen/com/example/orangesale_05/Manifest.java
create mode 100644 app/src/main/gen/com/example/orangesale_05/R.java
create mode 100644 app/src/main/java/com/example/orangesale_05/MainActivity.java
create mode 100644 app/src/main/java/com/example/orangesale_05/activity/CategoryActivity.java
create mode 100644 app/src/main/java/com/example/orangesale_05/activity/IndexActivity.java
create mode 100644 app/src/main/java/com/example/orangesale_05/activity/RegisterActivity.java
create mode 100644 app/src/main/java/com/example/orangesale_05/activity/UserActivity.java
create mode 100644 app/src/main/java/com/example/orangesale_05/adapter/Adapter.java
create mode 100644 app/src/main/java/com/example/orangesale_05/adapter/ProductAdapter.java
create mode 100644 app/src/main/java/com/example/orangesale_05/dataoperation/OrangeDatabase.java
create mode 100644 app/src/main/java/com/example/orangesale_05/entity/OrangeUser.java
create mode 100644 app/src/main/java/com/example/orangesale_05/entity/Product.java
create mode 100644 app/src/main/java/com/example/orangesale_05/fragment/IndexFragment.java
create mode 100644 app/src/main/java/com/example/orangesale_05/fragment/PearsonFragment.java
create mode 100644 app/src/main/java/com/example/orangesale_05/fragment/ProductFragment.java
create mode 100644 app/src/main/java/com/example/orangesale_05/fragment/SetDetailFragment.java
create mode 100644 app/src/main/java/com/example/orangesale_05/fragment/ShoppingCartFragment.java
create mode 100644 app/src/main/res/drawable-v24/address.png
create mode 100644 app/src/main/res/drawable-v24/apple.png
create mode 100644 app/src/main/res/drawable-v24/applep.png
create mode 100644 app/src/main/res/drawable-v24/arrow_down.png
create mode 100644 app/src/main/res/drawable-v24/arrow_left.png
create mode 100644 app/src/main/res/drawable-v24/arrow_right.png
create mode 100644 app/src/main/res/drawable-v24/button_login.xml
create mode 100644 app/src/main/res/drawable-v24/button_register.xml
create mode 100644 app/src/main/res/drawable-v24/chengzi.png
create mode 100644 app/src/main/res/drawable-v24/city.png
create mode 100644 app/src/main/res/drawable-v24/ic_launcher_background.xml
create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml
create mode 100644 app/src/main/res/drawable-v24/index.png
create mode 100644 app/src/main/res/drawable-v24/index_menu.xml
create mode 100644 app/src/main/res/drawable-v24/juzi.png
create mode 100644 app/src/main/res/drawable-v24/juzip.png
create mode 100644 app/src/main/res/drawable-v24/lemon.png
create mode 100644 app/src/main/res/drawable-v24/lemonp.png
create mode 100644 app/src/main/res/drawable-v24/li.png
create mode 100644 app/src/main/res/drawable-v24/mangguo.png
create mode 100644 app/src/main/res/drawable-v24/orange.png
create mode 100644 app/src/main/res/drawable-v24/password.png
create mode 100644 app/src/main/res/drawable-v24/pearson.png
create mode 100644 app/src/main/res/drawable-v24/product.png
create mode 100644 app/src/main/res/drawable-v24/search.png
create mode 100644 app/src/main/res/drawable-v24/setting.png
create mode 100644 app/src/main/res/drawable-v24/sex.png
create mode 100644 app/src/main/res/drawable-v24/shoppingcart.png
create mode 100644 app/src/main/res/drawable-v24/shuiguo.png
create mode 100644 app/src/main/res/drawable-v24/spinner_drop_down_shape.xml
create mode 100644 app/src/main/res/drawable-v24/sure_apssword.png
create mode 100644 app/src/main/res/drawable-v24/tab_menu_text.xml
create mode 100644 app/src/main/res/drawable-v24/user.png
create mode 100644 app/src/main/res/drawable-v24/user_account.png
create mode 100644 app/src/main/res/drawable-v24/user_general.png
create mode 100644 app/src/main/res/drawable-v24/user_icon.png
create mode 100644 app/src/main/res/drawable-v24/user_pay.png
create mode 100644 app/src/main/res/drawable-v24/user_sex.png
create mode 100644 app/src/main/res/drawable-v24/watermelon.jpg
create mode 100644 app/src/main/res/drawable-v24/xigua.png
create mode 100644 app/src/main/res/drawable-v24/xiguap.png
create mode 100644 app/src/main/res/drawable-v24/youzi.png
create mode 100644 app/src/main/res/drawable-v24/youzip.png
create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml
create mode 100644 app/src/main/res/layout/activity_main.xml
create mode 100644 app/src/main/res/layout/category_detail.xml
create mode 100644 app/src/main/res/layout/category_list_item.xml
create mode 100644 app/src/main/res/layout/categoty_detail_content.xml
create mode 100644 app/src/main/res/layout/content_category.xml
create mode 100644 app/src/main/res/layout/content_index.xml
create mode 100644 app/src/main/res/layout/content_nav.xml
create mode 100644 app/src/main/res/layout/content_product.xml
create mode 100644 app/src/main/res/layout/content_shopping.xml
create mode 100644 app/src/main/res/layout/content_user.xml
create mode 100644 app/src/main/res/layout/index_famous.xml
create mode 100644 app/src/main/res/layout/user_login.xml
create mode 100644 app/src/main/res/layout/user_register.xml
create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png
create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png
create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png
create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png
create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png
create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png
create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
create mode 100644 app/src/main/res/values/colors.xml
create mode 100644 app/src/main/res/values/strings.xml
create mode 100644 app/src/main/res/values/styles.xml
create mode 100644 app/src/test/java/com/example/orangesale_05/ExampleUnitTest.java
create mode 100644 build.gradle
create mode 100644 gradle.properties
create mode 100644 gradle/wrapper/gradle-wrapper.jar
create mode 100644 gradle/wrapper/gradle-wrapper.properties
create mode 100644 gradlew
create mode 100644 gradlew.bat
create mode 100644 settings.gradle
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..603b140
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..b557e85
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml
new file mode 100644
index 0000000..fe90152
--- /dev/null
+++ b/.idea/dbnavigator.xml
@@ -0,0 +1,800 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
new file mode 100644
index 0000000..d291b3d
--- /dev/null
+++ b/.idea/gradle.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..7bfef59
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
new file mode 100644
index 0000000..7f68460
--- /dev/null
+++ b/.idea/runConfigurations.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..bca33ed
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,35 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 30
+ buildToolsVersion "30.0.2"
+ defaultConfig {
+ applicationId "com.example.orangesale_05"
+ minSdkVersion 23
+ targetSdkVersion 30
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+ }
+
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'androidx.appcompat:appcompat:1.0.2'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.0'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
+ implementation 'liji.library.dev:citypickerview:1.1.0'
+}
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/app/src/androidTest/java/com/example/orangesale_05/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/example/orangesale_05/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..b5a5252
--- /dev/null
+++ b/app/src/androidTest/java/com/example/orangesale_05/ExampleInstrumentedTest.java
@@ -0,0 +1,27 @@
+package com.example.orangesale_05;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ assertEquals("com.example.orangesale_05", appContext.getPackageName());
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..09b76e9
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/gen/com/example/orangesale_05/BuildConfig.java b/app/src/main/gen/com/example/orangesale_05/BuildConfig.java
new file mode 100644
index 0000000..dd7821e
--- /dev/null
+++ b/app/src/main/gen/com/example/orangesale_05/BuildConfig.java
@@ -0,0 +1,8 @@
+/*___Generated_by_IDEA___*/
+
+package com.example.orangesale_05;
+
+/* This stub is only used by the IDE. It is NOT the BuildConfig class actually packed into the APK */
+public final class BuildConfig {
+ public final static boolean DEBUG = Boolean.parseBoolean(null);
+}
\ No newline at end of file
diff --git a/app/src/main/gen/com/example/orangesale_05/Manifest.java b/app/src/main/gen/com/example/orangesale_05/Manifest.java
new file mode 100644
index 0000000..ac976d3
--- /dev/null
+++ b/app/src/main/gen/com/example/orangesale_05/Manifest.java
@@ -0,0 +1,7 @@
+/*___Generated_by_IDEA___*/
+
+package com.example.orangesale_05;
+
+/* This stub is only used by the IDE. It is NOT the Manifest class actually packed into the APK */
+public final class Manifest {
+}
\ No newline at end of file
diff --git a/app/src/main/gen/com/example/orangesale_05/R.java b/app/src/main/gen/com/example/orangesale_05/R.java
new file mode 100644
index 0000000..e4e2b4f
--- /dev/null
+++ b/app/src/main/gen/com/example/orangesale_05/R.java
@@ -0,0 +1,7 @@
+/*___Generated_by_IDEA___*/
+
+package com.example.orangesale_05;
+
+/* This stub is only used by the IDE. It is NOT the R class actually packed into the APK */
+public final class R {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/orangesale_05/MainActivity.java b/app/src/main/java/com/example/orangesale_05/MainActivity.java
new file mode 100644
index 0000000..04bd482
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/MainActivity.java
@@ -0,0 +1,80 @@
+package com.example.orangesale_05;
+
+import android.content.Intent;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.example.orangesale_05.activity.IndexActivity;
+import com.example.orangesale_05.activity.RegisterActivity;
+import com.example.orangesale_05.dataoperation.OrangeDatabase;
+
+public class MainActivity extends AppCompatActivity implements View.OnClickListener {
+ private Button registerButton, loginButton;
+ private EditText usernameText, paswdEdit;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.user_login);
+
+ init();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.register:
+ Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
+ startActivity(intent);
+ break;
+ case R.id.login:
+ //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示
+ if (validateLogin()) {
+ Intent intent1 = new Intent(MainActivity.this, IndexActivity.class);
+ Bundle bundle = new Bundle();
+ OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
+ bundle.putString("username", usernameText.getText().toString());
+ bundle = orangeDatabase.queryUserInfo(orangeDatabase.getReadableDatabase(), bundle);
+ intent1.putExtras(bundle);
+ startActivity(intent1);
+ } else {
+ Toast.makeText(MainActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show();
+ }
+ break;
+ }
+ }
+
+ //界面组件初始化
+ private void init() {
+ usernameText = findViewById(R.id.username);
+ paswdEdit = findViewById(R.id.password);
+ loginButton = findViewById(R.id.login);
+ loginButton.setOnClickListener(this);
+ registerButton = findViewById(R.id.register);
+ registerButton.setOnClickListener(this);
+ }
+
+ /**
+ * 登录验证
+ *
+ * @return
+ */
+ private boolean validateLogin() {
+ String username = usernameText.getText().toString();
+ String password = paswdEdit.getText().toString();
+ OrangeDatabase orangeDatabase = new OrangeDatabase(MainActivity.this);
+ SQLiteDatabase sqLiteDatabase = orangeDatabase.getReadableDatabase();
+ Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=? and password=?", new String[]{username, password});
+ if (cursor.getCount() > 0) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/activity/CategoryActivity.java b/app/src/main/java/com/example/orangesale_05/activity/CategoryActivity.java
new file mode 100644
index 0000000..3e5711b
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/activity/CategoryActivity.java
@@ -0,0 +1,90 @@
+package com.example.orangesale_05.activity;
+
+import android.app.Activity;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.os.Bundle;
+import android.widget.ListView;
+
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+import com.example.orangesale_05.adapter.Adapter;
+import com.example.orangesale_05.entity.Product;
+import com.example.orangesale_05.fragment.SetDetailFragment;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class CategoryActivity extends Activity {
+ public OnChangeListener onchangedListener;
+ private List productList;
+ private List productCategory = new ArrayList<>();
+ private ListView titleList;
+ private Adapter adapter;
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.content_category);
+ initData();
+ init();
+ SetDetailFragment fragment = new SetDetailFragment();
+ FragmentManager fragmentManager = getFragmentManager();
+ FragmentTransaction transaction = fragmentManager.beginTransaction();
+ transaction.replace(R.id.category_detail, fragment);
+ transaction.commit();
+ titleList.setOnItemClickListener((parent, view, position, id) -> {
+ adapter.setSelectedPosition(position);
+ adapter.notifyDataSetInvalidated();
+ if (onchangedListener != null) {
+ onchangedListener.changeText(productList.get(position));
+ }
+ });
+
+ }
+
+ public void setOnChangeListener(OnChangeListener onChangeListener) {
+ this.onchangedListener = onChangeListener;
+ }
+
+ public interface OnChangeListener {
+ void changeText(Product product);
+ }
+
+ /**
+ * 初始化数据
+ */
+ private void initData() {
+ productList = new ArrayList<>();
+ productCategory.add("橘子");
+ productCategory.add("橙子");
+ productCategory.add("柚子");
+ Product product = new Product();
+ product.setImageUrlId(R.drawable.arrow_down);
+ product.setProductName("橘子");
+ product.setProductPrice(new BigDecimal("9.9"));
+ Product product1 = new Product();
+ product1.setImageUrlId(R.drawable.orange);
+ product1.setProductName("橙子");
+ product1.setProductPrice(new BigDecimal("29.9"));
+ Product product2 = new Product();
+ product2.setImageUrlId(R.drawable.arrow_left);
+ product2.setProductName("柚子");
+ product2.setProductPrice(new BigDecimal("19.9"));
+ productList.add(product);
+ productList.add(product1);
+ productList.add(product2);
+ }
+
+ /**
+ * 初始化组件
+ */
+ private void init() {
+ titleList = findViewById(R.id.category_title_list);
+ adapter = new Adapter(productCategory, CategoryActivity.this);
+ titleList.setAdapter(adapter);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/orangesale_05/activity/IndexActivity.java b/app/src/main/java/com/example/orangesale_05/activity/IndexActivity.java
new file mode 100644
index 0000000..470708f
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/activity/IndexActivity.java
@@ -0,0 +1,120 @@
+package com.example.orangesale_05.activity;
+
+import android.app.Activity;
+import android.app.FragmentTransaction;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+import com.example.orangesale_05.fragment.IndexFragment;
+import com.example.orangesale_05.fragment.PearsonFragment;
+import com.example.orangesale_05.fragment.ProductFragment;
+import com.example.orangesale_05.fragment.ShoppingCartFragment;
+
+public class IndexActivity extends Activity implements View.OnClickListener {
+ private IndexFragment indexFragment;
+ private ProductFragment productFragment;
+ private ShoppingCartFragment shoppingCartFragment;
+ private PearsonFragment pearsonFragment;
+ private LinearLayout indexLine, productLine, shoppingCartLine, pearsonLine;
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ init();
+ initIndexFragment();
+ }
+
+ /**
+ * 组件初始化
+ */
+ private void init() {
+ indexLine = findViewById(R.id.content_index);
+ indexLine.setOnClickListener(this);
+ productLine = findViewById(R.id.content_product);
+ productLine.setOnClickListener(this);
+ shoppingCartLine = findViewById(R.id.content_cart);
+ shoppingCartLine.setOnClickListener(this);
+ pearsonLine = findViewById(R.id.content_pearson);
+ pearsonLine.setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.content_index:
+ initIndexFragment();
+ break;
+ case R.id.content_product:
+ initproductFragment();
+ break;
+ case R.id.content_cart:
+ initshoppingCartFragment();
+ break;
+ case R.id.content_pearson:
+ initpearsonFragment();
+ break;
+ }
+ }
+
+ /**
+ * 初始化首页Fragment
+ */
+ private void initIndexFragment() {
+ //开启事务,fragment的控制是由事务来实现的
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ if (indexFragment == null) {
+ indexFragment = new IndexFragment();
+ }
+ transaction.replace(R.id.main_content, indexFragment);
+ transaction.commit();
+ }
+
+ /**
+ * 初始化产品Fragment
+ */
+ private void initproductFragment() {
+ //开启事务,fragment的控制是由事务来实现的
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ if (productFragment == null) {
+ productFragment = new ProductFragment();
+ }
+ transaction.replace(R.id.main_content, productFragment);
+ transaction.commit();
+ }
+
+ /**
+ * 初始化购物车Fragment
+ */
+ private void initshoppingCartFragment() {
+ //开启事务,fragment的控制是由事务来实现的
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ if (shoppingCartFragment == null) {
+ shoppingCartFragment = new ShoppingCartFragment();
+ }
+ transaction.replace(R.id.main_content, shoppingCartFragment);
+ transaction.commit();
+ }
+
+ /**
+ * 初始化个人Fragment
+ */
+ private void initpearsonFragment() {
+ //开启事务,fragment的控制是由事务来实现的
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ if (pearsonFragment == null) {
+ Intent intent = IndexActivity.this.getIntent();
+ Bundle bundle = intent.getExtras();
+ pearsonFragment = new PearsonFragment();
+ pearsonFragment.setArguments(bundle);
+ }
+ transaction.replace(R.id.main_content, pearsonFragment);
+ transaction.commit();
+ }
+
+}
diff --git a/app/src/main/java/com/example/orangesale_05/activity/RegisterActivity.java b/app/src/main/java/com/example/orangesale_05/activity/RegisterActivity.java
new file mode 100644
index 0000000..283872e
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/activity/RegisterActivity.java
@@ -0,0 +1,168 @@
+package com.example.orangesale_05.activity;
+
+import android.content.ContentValues;
+import android.content.Intent;
+import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.RadioGroup;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.lljjcoder.citypickerview.widget.CityPicker;
+import com.example.orangesale_05.R;
+import com.example.orangesale_05.dataoperation.OrangeDatabase;
+
+public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
+ private EditText usernameEdit, passwordEdit, surePasswordEdit;
+ private TextView cityText;
+ private CityPicker cityPicker;
+ private Button regButton;
+ private RadioGroup sexGroup;
+ private String sexStr = "男";
+
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.user_register);
+ init();
+ }
+
+ /**
+ * 界面组件初始化
+ */
+ private void init() {
+ cityText = findViewById(R.id.reg_province);
+ cityText.setOnClickListener(this);
+ usernameEdit = findViewById(R.id.reg_username);
+ passwordEdit = findViewById(R.id.reg_password);
+ surePasswordEdit = findViewById(R.id.reg_sure_password);
+ regButton = findViewById(R.id.reg_register);
+ regButton.setOnClickListener(this);
+ sexGroup = findViewById(R.id.sex);
+ sexGroup.setOnCheckedChangeListener(this);
+
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.reg_province:
+ initCityPicker();
+ cityPicker.show();
+ break;
+ case R.id.reg_register:
+ //注册验证方法
+ validateRegister();
+ break;
+
+ }
+ }
+
+ /**
+ * 初始化城市选择器
+ */
+ public void initCityPicker() {
+ cityPicker = new CityPicker.Builder(RegisterActivity.this)
+ .textSize(16)
+ .title("地址选择")
+ .backgroundPop(0xa0000000)
+ .titleBackgroundColor("#EFB81C")
+ .titleTextColor("#000000")
+ .backgroundPop(0xa0000000)
+ .confirTextColor("#000000")
+ .cancelTextColor("#000000")
+ .province("江西省")
+ .city("赣州市")
+ .district("章贡区")
+ .textColor(Color.parseColor("#000000"))
+ .provinceCyclic(true)
+ .cityCyclic(false)
+ .districtCyclic(false)
+ .visibleItemsCount(7)
+ .itemPadding(10)
+ .onlyShowProvinceAndCity(false)
+ .build();
+ cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
+ @Override
+ public void onSelected(String... strings) {
+ String province = strings[0];
+ String city = strings[1];
+ String district = strings[2];
+ cityText.setText(String.format("%s %s %s", province, city, district));
+ }
+
+ @Override
+ public void onCancel() {
+ }
+ });
+
+ }
+
+ /**
+ * 注册验证
+ */
+ public void validateRegister() {
+ String username = usernameEdit.getText().toString();
+ String password = passwordEdit.getText().toString();
+ String surePassword = surePasswordEdit.getText().toString();
+ String city = cityText.getText().toString();
+ //判断两次密码是否输入一致
+ if (password.equals(surePassword)) {
+ //这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
+ if (!username.equals("") || !password.equals("")) {
+ if (!city.equals("")) {
+ Bundle bundle = new Bundle();
+ bundle.putString("username", username);
+ bundle.putString("password", password);
+ bundle.putString("sex", sexStr);
+ bundle.putString("city", city);
+ //本节将使用安卓自身带的SQLite数据库的方式存储注册的信息(之前直接传输显示在界面是的方式)
+ OrangeDatabase orangeDatabase = new OrangeDatabase(RegisterActivity.this);
+ SQLiteDatabase sqLiteDatabase = orangeDatabase.getWritableDatabase();
+ insertData(sqLiteDatabase, bundle);
+ Intent intent = new Intent(RegisterActivity.this, IndexActivity.class);
+ intent.putExtras(bundle);
+ startActivity(intent);
+ } else {
+ Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
+ }
+
+
+ }
+
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ //根据用户选择来改变sex的值
+ sexStr = checkedId == R.id.reg_man ? "男" : "女";
+ }
+
+ /**
+ * 插入数据库的值
+ *
+ * @param sqLiteDatabase
+ * @param bundle
+ */
+ private void insertData(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("username", bundle.getString("username"));
+ contentValues.put("password", bundle.getString("password"));
+ contentValues.put("sex", bundle.getString("sex"));
+ contentValues.put("city", bundle.getString("city"));
+ sqLiteDatabase.insert("orange_user", null, contentValues);
+ sqLiteDatabase.close();
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/activity/UserActivity.java b/app/src/main/java/com/example/orangesale_05/activity/UserActivity.java
new file mode 100644
index 0000000..a525acc
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/activity/UserActivity.java
@@ -0,0 +1,66 @@
+package com.example.orangesale_05.activity;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+
+public class UserActivity extends Activity implements View.OnClickListener {
+ private ImageView userIconImage;
+ private TextView usernameText, userSexText, userCityText;
+ private LinearLayout usernameLine, userSexline, userCityLine, userPayLine, userSettingLine, userGeneralLine, userSearchProductLine;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.content_user);
+ init();
+ }
+
+ /**
+ * 组件初始化
+ */
+ private void init() {
+ userIconImage = findViewById(R.id.user_icon);
+ usernameText = findViewById(R.id.user_username);
+ userSexText = findViewById(R.id.user_sex);
+ userCityText = findViewById(R.id.user_city);
+ usernameLine = findViewById(R.id.user_username_line);
+ userSexline = findViewById(R.id.user_sex_line);
+ userCityLine = findViewById(R.id.user_city_line);
+ userPayLine = findViewById(R.id.user_pay);
+ userSettingLine = findViewById(R.id.user_setting);
+ userGeneralLine = findViewById(R.id.user_general);
+ userSearchProductLine = findViewById(R.id.user_searchProduct);
+ userSearchProductLine.setOnClickListener(this);
+ setData();
+ }
+
+ /**
+ * 组件赋值
+ */
+ private void setData() {
+ Intent intent = UserActivity.this.getIntent();
+ Bundle bundle = intent.getExtras();
+ usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
+ userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
+ userCityText.setText(String.format("城市:%s", bundle.getString("city")));
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.user_searchProduct:
+ Intent intent1 = new Intent(UserActivity.this, CategoryActivity.class);
+ startActivity(intent1);
+ break;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/adapter/Adapter.java b/app/src/main/java/com/example/orangesale_05/adapter/Adapter.java
new file mode 100644
index 0000000..e6c75f3
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/adapter/Adapter.java
@@ -0,0 +1,69 @@
+package com.example.orangesale_05.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.example.orangesale_05.R;
+
+import java.util.List;
+
+public class Adapter extends BaseAdapter {
+ private List productCategory;
+ private LayoutInflater layoutInflater;
+ private int selectionPosition = -1;
+
+ public Adapter(List productCategory, Context context) {
+ this.productCategory = productCategory;
+ this.layoutInflater = LayoutInflater.from(context);
+ }
+
+ @Override
+ public int getCount() {
+ return productCategory.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return productCategory.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ ViewHolder viewHolder = null;
+ if (convertView == null) {
+ viewHolder = new ViewHolder();
+ convertView = layoutInflater.inflate(R.layout.category_list_item, null);
+ Log.i("adapts", "getView: " + convertView);
+ viewHolder.tv = convertView.findViewById(R.id.categor_titles);
+ convertView.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) convertView.getTag();
+ }
+ viewHolder.tv.setText(productCategory.get(position));
+ if (selectionPosition == position) {
+ viewHolder.tv.setBackgroundColor(Color.YELLOW);
+ } else {
+ viewHolder.tv.setBackgroundColor(Color.WHITE);
+ }
+ return convertView;
+ }
+
+ public void setSelectedPosition(int position) {
+ this.selectionPosition = position;
+ }
+
+ class ViewHolder {
+ TextView tv;
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/adapter/ProductAdapter.java b/app/src/main/java/com/example/orangesale_05/adapter/ProductAdapter.java
new file mode 100644
index 0000000..af7a220
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/adapter/ProductAdapter.java
@@ -0,0 +1,68 @@
+package com.example.orangesale_05.adapter;
+
+import android.content.Context;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.example.orangesale_05.R;
+import com.example.orangesale_05.entity.Product;
+
+import java.util.List;
+
+public class ProductAdapter extends BaseAdapter {
+ private List productList;
+ private LayoutInflater layoutInflater;
+
+ public ProductAdapter(Context context, List productList) {
+ this.productList = productList;
+ this.layoutInflater = LayoutInflater.from(context);
+ }
+
+ @Override
+ public int getCount() {
+ return productList.size();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return productList.get(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ ViewHolder viewHolder;
+ if (convertView == null) {
+ convertView = layoutInflater.inflate(R.layout.categoty_detail_content, null);
+ viewHolder = new ViewHolder();
+ viewHolder.productImage = convertView.findViewById(R.id.category_product_image);
+ viewHolder.productName = convertView.findViewById(R.id.category_product_name);
+ viewHolder.productPrice = convertView.findViewById(R.id.category_product_price);
+ convertView.setTag(viewHolder);
+ } else {
+ viewHolder = (ViewHolder) convertView.getTag();
+ }
+ Product product = productList.get(position);
+ Log.i("product", "getView: "+product.toString());
+ if (product != null) {
+ viewHolder.productImage.setBackgroundResource(product.getImageUrlId());
+ viewHolder.productName.setText(product.getProductName());
+ viewHolder.productPrice.setText(String.valueOf(product.getProductPrice()));
+ }
+ return convertView;
+ }
+
+ class ViewHolder {
+ ImageView productImage;
+ TextView productName, productPrice;
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/dataoperation/OrangeDatabase.java b/app/src/main/java/com/example/orangesale_05/dataoperation/OrangeDatabase.java
new file mode 100644
index 0000000..6fce233
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/dataoperation/OrangeDatabase.java
@@ -0,0 +1,68 @@
+package com.example.orangesale_05.dataoperation;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+
+public class OrangeDatabase extends SQLiteOpenHelper {
+ public OrangeDatabase(@Nullable Context context) {
+ super(context, "orange.db3", null, 1);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ //创建用户表
+ String sql = "create table orange_user(id integer primary key autoincrement, username varchar(50), password varchar(50),sex varchar(10),city carchar(50))";
+ db.execSQL(sql);
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+
+ }
+
+ /**
+ * 插入数据
+ *
+ * @param sqLiteDatabase
+ * @param username
+ * @param password
+ * @param sex
+ * @param city
+ */
+ public void insertUser(SQLiteDatabase sqLiteDatabase, String username, String password, String sex, String city) {
+ ContentValues contentValues = new ContentValues();
+ contentValues.put("username", username);
+ contentValues.put("password", password);
+ contentValues.put("sex", sex);
+ contentValues.put("city", city);
+ sqLiteDatabase.insert("orange_user", null, contentValues);
+ sqLiteDatabase.close();
+ }
+
+ /**
+ * 查询数据
+ *
+ * @param sqLiteDatabase
+ * @param bundle
+ * @return
+ */
+ public Bundle queryUserInfo(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
+ String username = bundle.getString("username");
+ Cursor cursor = sqLiteDatabase.rawQuery("select * from orange_user where username=?", new String[]{username});
+ if (cursor != null) {
+ while (cursor.moveToNext()) {
+ bundle.putString("sex", cursor.getString(3));
+ bundle.putString("city", cursor.getString(4));
+ }
+ }
+ cursor.close();
+ sqLiteDatabase.close();
+ return bundle;
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/entity/OrangeUser.java b/app/src/main/java/com/example/orangesale_05/entity/OrangeUser.java
new file mode 100644
index 0000000..45f222e
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/entity/OrangeUser.java
@@ -0,0 +1,59 @@
+package com.example.orangesale_05.entity;
+
+public class OrangeUser {
+ private Integer id;
+ private String username;
+ private String password;
+ private String sex;
+ private String city;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getSex() {
+ return sex;
+ }
+
+ public void setSex(String sex) {
+ this.sex = sex;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public void setCity(String city) {
+ this.city = city;
+ }
+
+ @Override
+ public String toString() {
+ return "OrangeUser{" +
+ "username='" + username + '\'' +
+ ", password='" + password + '\'' +
+ ", sex='" + sex + '\'' +
+ ", city='" + city + '\'' +
+ '}';
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/entity/Product.java b/app/src/main/java/com/example/orangesale_05/entity/Product.java
new file mode 100644
index 0000000..69453a8
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/entity/Product.java
@@ -0,0 +1,43 @@
+package com.example.orangesale_05.entity;
+
+import java.math.BigDecimal;
+
+public class Product {
+
+ public String getProductName() {
+ return productName;
+ }
+
+ public void setProductName(String productName) {
+ this.productName = productName;
+ }
+
+ public BigDecimal getProductPrice() {
+ return productPrice;
+ }
+
+ public void setProductPrice(BigDecimal productPrice) {
+ this.productPrice = productPrice;
+ }
+
+ public Integer getImageUrlId() {
+ return imageUrlId;
+ }
+
+ public void setImageUrlId(Integer imageUrlId) {
+ this.imageUrlId = imageUrlId;
+ }
+
+ private Integer imageUrlId;
+ private String productName;
+ private BigDecimal productPrice;
+
+ @Override
+ public String toString() {
+ return "Product{" +
+ "imageUrlId=" + imageUrlId +
+ ", productName='" + productName + '\'' +
+ ", productPrice=" + productPrice +
+ '}';
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/fragment/IndexFragment.java b/app/src/main/java/com/example/orangesale_05/fragment/IndexFragment.java
new file mode 100644
index 0000000..8c52473
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/fragment/IndexFragment.java
@@ -0,0 +1,109 @@
+package com.example.orangesale_05.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.GridView;
+import android.widget.LinearLayout;
+import android.widget.SearchView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+import com.example.orangesale_05.adapter.ProductAdapter;
+import com.example.orangesale_05.entity.Product;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+public class IndexFragment extends Fragment implements View.OnClickListener {
+ private SearchView searchView;
+ private LinearLayout orangeLine, youziLine, juziLine, xiguaLine, liLine, appleLine, lemonLine, mangguoLine;
+ private GridView gridView;
+ private List productList;
+ private ProductAdapter productAdapter;
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_index, container, false);
+ init(view);
+ return view;
+ }
+
+ /**
+ * 初始化组件
+ */
+ private void init(View view) {
+ searchView = view.findViewById(R.id.searchView);
+ searchView.setOnClickListener(this);
+ orangeLine = view.findViewById(R.id.chengzi);
+ orangeLine.setOnClickListener(this);
+ youziLine = view.findViewById(R.id.youzi);
+ youziLine.setOnClickListener(this);
+ juziLine = view.findViewById(R.id.juzi);
+ juziLine.setOnClickListener(this);
+ xiguaLine = view.findViewById(R.id.xigua);
+ xiguaLine.setOnClickListener(this);
+ liLine = view.findViewById(R.id.li);
+ liLine.setOnClickListener(this);
+ lemonLine = view.findViewById(R.id.lemon);
+ lemonLine.setOnClickListener(this);
+ mangguoLine = view.findViewById(R.id.mangguo);
+ mangguoLine.setOnClickListener(this);
+ appleLine = view.findViewById(R.id.apple);
+ appleLine.setOnClickListener(this);
+ gridView = view.findViewById(R.id.index_famous_gridview);
+ initData();
+ productAdapter = new ProductAdapter(getActivity(), productList);
+ gridView.setAdapter(productAdapter);
+ }
+
+
+ @Override
+ public void onClick(View v) {
+
+ }
+
+ /**
+ * 初始化商品数据
+ */
+ private void initData() {
+ productList = new ArrayList<>();
+ Product product = new Product();
+ product.setImageUrlId(R.drawable.juzip);
+ product.setProductName("橘子");
+ product.setProductPrice(new BigDecimal("9.9"));
+ Product product1 = new Product();
+ product1.setImageUrlId(R.drawable.orange);
+ product1.setProductName("橙子");
+ product1.setProductPrice(new BigDecimal("29.9"));
+ Product product2 = new Product();
+ product2.setImageUrlId(R.drawable.youzip);
+ product2.setProductName("柚子");
+ product2.setProductPrice(new BigDecimal("19.9"));
+ Product product3 = new Product();
+ product3.setImageUrlId(R.drawable.xiguap);
+ product3.setProductName("西瓜");
+ product3.setProductPrice(new BigDecimal("19.9"));
+ Product product4 = new Product();
+ product4.setImageUrlId(R.drawable.applep);
+ product4.setProductName("苹果");
+ product4.setProductPrice(new BigDecimal("49.9"));
+ Product product5 = new Product();
+ product5.setImageUrlId(R.drawable.lemonp);
+ product5.setProductName("柠檬");
+ product5.setProductPrice(new BigDecimal("9.9"));
+ productList.add(product);
+ productList.add(product1);
+ productList.add(product2);
+ productList.add(product3);
+ productList.add(product4);
+ productList.add(product5);
+
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/fragment/PearsonFragment.java b/app/src/main/java/com/example/orangesale_05/fragment/PearsonFragment.java
new file mode 100644
index 0000000..687895d
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/fragment/PearsonFragment.java
@@ -0,0 +1,64 @@
+package com.example.orangesale_05.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+
+public class PearsonFragment extends Fragment implements View.OnClickListener {
+ private ImageView userIconImage;
+ private TextView usernameText, userSexText, userCityText;
+ private LinearLayout usernameLine, userSexline, userCityLine, userPayLine, userSettingLine, userGeneralLine;
+
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_user, container, false);
+ init(view);
+ return view;
+ }
+
+ /**
+ * 组件初始化
+ */
+ private void init(View view) {
+ userIconImage = view.findViewById(R.id.user_icon);
+ usernameText = view.findViewById(R.id.user_username);
+ userSexText = view.findViewById(R.id.user_sex);
+ userCityText = view.findViewById(R.id.user_city);
+ usernameLine = view.findViewById(R.id.user_username_line);
+ userSexline = view.findViewById(R.id.user_sex_line);
+ userCityLine = view.findViewById(R.id.user_city_line);
+ userPayLine = view.findViewById(R.id.user_pay);
+ userSettingLine = view.findViewById(R.id.user_setting);
+ userGeneralLine = view.findViewById(R.id.user_general);
+ setData();
+ }
+
+ /**
+ * 组件赋值
+ */
+ private void setData() {
+ Bundle bundle = getArguments();
+ usernameText.setText(String.format("用户名:%s", bundle.getString("username")));
+ userSexText.setText(String.format("性别:%s", bundle.getString("sex")));
+ userCityText.setText(String.format("城市:%s", bundle.getString("city")));
+ }
+
+ @Override
+ public void onClick(View v) {
+
+ }
+
+
+}
diff --git a/app/src/main/java/com/example/orangesale_05/fragment/ProductFragment.java b/app/src/main/java/com/example/orangesale_05/fragment/ProductFragment.java
new file mode 100644
index 0000000..f8dab79
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/fragment/ProductFragment.java
@@ -0,0 +1,21 @@
+package com.example.orangesale_05.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+
+public class ProductFragment extends Fragment {
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_product, container, false);
+ return view;
+ }
+}
diff --git a/app/src/main/java/com/example/orangesale_05/fragment/SetDetailFragment.java b/app/src/main/java/com/example/orangesale_05/fragment/SetDetailFragment.java
new file mode 100644
index 0000000..d5a0490
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/fragment/SetDetailFragment.java
@@ -0,0 +1,53 @@
+package com.example.orangesale_05.fragment;
+
+import android.annotation.SuppressLint;
+import android.app.Fragment;
+import android.os.Bundle;
+import android.util.Log;
+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.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+import com.example.orangesale_05.activity.CategoryActivity;
+
+import java.util.Objects;
+
+public class SetDetailFragment extends Fragment {
+ private View view;
+ private ImageView imageView;
+ private TextView nameText, priceText;
+
+ @SuppressLint("SetTextI18n")
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ view = inflater.inflate(R.layout.categoty_detail_content, container, false);
+ if (view != null) {
+ init();
+ }
+ CategoryActivity categoryActivity = (CategoryActivity) getActivity();
+ Objects.requireNonNull(categoryActivity).setOnChangeListener(product -> {
+ Log.i("sss", "onCreateView: " + product.getProductName());
+ imageView.setBackgroundResource(product.getImageUrlId());
+ nameText.setText(product.getProductName());
+ priceText.setText(product.getProductPrice().toString());
+ });
+ return view;
+ }
+
+ /**
+ * 内容组件初始化
+ */
+ private void init() {
+ imageView = view.findViewById(R.id.category_product_image);
+ nameText = view.findViewById(R.id.category_product_name);
+ priceText = view.findViewById(R.id.category_product_price);
+ }
+
+}
diff --git a/app/src/main/java/com/example/orangesale_05/fragment/ShoppingCartFragment.java b/app/src/main/java/com/example/orangesale_05/fragment/ShoppingCartFragment.java
new file mode 100644
index 0000000..46cc0e3
--- /dev/null
+++ b/app/src/main/java/com/example/orangesale_05/fragment/ShoppingCartFragment.java
@@ -0,0 +1,21 @@
+package com.example.orangesale_05.fragment;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.example.orangesale_05.R;
+
+public class ShoppingCartFragment extends Fragment {
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ View view = LayoutInflater.from(getActivity()).inflate(R.layout.content_shopping, container, false);
+ return view;
+ }
+}
diff --git a/app/src/main/res/drawable-v24/address.png b/app/src/main/res/drawable-v24/address.png
new file mode 100644
index 0000000000000000000000000000000000000000..7318be016a0fea789da57d99dcecd6485834d90d
GIT binary patch
literal 1028
zcmV+f1pE7mP)5000BaNklDk%Y
z^L1WPEtqb%ySve7d?6yolv15K!uE{TxjPY%sF{WvH
z!8)_=MtOV2+5Z`4zRuVE#u(eYwu!B~+Ih6Z%+n?3e~qGOr*AxXVHOt`uU=VM`9VYu
zDWyIrNiZcM+lc6#?yu{Y^-*=#E{
zy?(!c?5x`B%yss*@F3cSOJ_lgk^>1IP5;w+J-?8Snmzlq+I$sOMy`3W#rtp<2
z;i5bihM8ZiI&b%D!#JRi0bHt6E?1sS%zSqpkYE_C^>!k%^K
z@3t(*3%)0>owB>TQ=PG7?
zuqx@u6u{4Y3|O~rqpovo6UKOKY;(ZmArBo7kw{1okr<;W1|u>02N0v8i4HVqOay#H
zMCXgdM+7nnN*Iq>41!~@jlmdhY-L-!cF?X}AGeQtd#^dydzS+1+TL{~aFQm=?svcM
z{JwL}cg}Y%0e6WIcL@i?6C@V^?9wmh`xh?|gs2CAPXM4i<`e*Nv&f$SFdYD7tHhi|
zsYMn5zzP7E1^`#3-w6QF4WQv#0Qe37UI2jaV@@DVs00Le7ePR!rq2dANbz~N$HI>lcn6-qX2Qg6RN&cL8AZaGh4N4$*?(dsj2Z
zsxDWYS-3QmpL|n(=|JU|dW<0yj2+Pxhf|b*;PLtHTi=%Mp1W+!`cTTfIP1?^b0;$s
z0Db@f4ESLcB_QZt7}U1ir_1(ak5Aq{kcP*8>AJXcLu0XYlHqA4pJ;v3`!NMm0)h%)
z5Tj!Hbz6(RS-C#<0T5s{03-!#w>uGAj}onc}=TQHH$Z!I}hx%_Nznm{-@QFkN^bzI
zbo8EFV`!gRm7D+XJe7I|Lbkh!6Tdnv?k&CT^8i2qfR!OCg#q^@S`ZOpW@6IWzw!!2
z1yD{feMcYDx6Bp*Qc4q5|7^?5ah9o4mu$UmJpRG8?!}iUm%zA$k)he|N7kp(InDnKtzbOqqSALvT|?9A+`W#
z+hFRryuZ(Oe*lDJ^z~$tWL-QzDTO4j_yu6S0zZWSa6Frq-uhMc_y=y@S|daK?GF%W
z5m;qvJl4#*ACW8*T=ERbA{Y~uc?lzrHcc*B5-t+=*ene{J1ou?pHIsQygz{;N2F5}
z`9zAwx=y22r&9@dEZ-syKlzW?w9T}n0pkvmVN|5jOZ(zk)>ppqkYHfrA|3mVy^ri2fU%AvnEHn
zU2aecf~C4XRDegTWF+G~9MNp{P*Z}(?r|I7Lu(f%O1#%7vWVzb)p-SVa}w31kth<2
zF?uI`!!+kuyK#-F8G}CLbs$`@ixew0M{_jSc`?~odt5$Nw*3BljP02V?jDxR3k4CC3ifC
z-bHtUloSyr$RgO-7%-QFixIqMJnt!**?-T7L#zb!PWt~!Qj$x4_g_z%8y_C5SrQHe
z6VMK0!SwSQijGUb`vTD3&Cq$lAlvPohbkP#qQQD&;XuT`)aHz=>UXr+i{fAnaIs{~
zbuT$Pc&(+~bxmEI?+O55@v0~x;!F0TQHhObClo&v50L9#;)IK(%H*~1ep1?1gUJ|g
zjp*u%LCOn8CKlIEEM654kS;fUhT~zDyw+jH`uiqJ%W|na33;Cn=UV-`GetA41b}9^
zVf0Sg9n_8CR+!GWwz7<0>fD4}K2ngm^OMxuj^-Bhn|wHc7>;P@@lY6-qV)3Yk@<$R
z*qR;Gt#E9lAnO32V(-{V4a?PO{R_n!riUSQOn~ga^So_sJ6h?!hHe)2yGo=WsPh6(
z(X5F8!q>3|kmu`k(G3AXZ2mzP>pis8RKHB>b%p)P6%7c^zqULh`=vLuS^YP-SV4I>
z@`Bkz;!P06vD)0&-Q;(ViNqSwxR$K1Sk}Lnk+bhL?U*NH1%dMz80v3U>Y!9H7Trcm
zE4mo=w!(H$lz?EVg8kZYM{*0!Ka`}7N$@*Z@}$*EirvU6#`5DvOY1YycJZTiEnEu&
z4+}TpR9+!5JuxYDsFvw)(RI84rTbjhD&FaBLrdcaBDBb$Eui3am4M*;ayLG;JR|$`
zP-4dFBXxa#GUp@v)tVn1CbY!)Xd#riR`4dsZZ=g*Cp5mT&FWpR$+)3iWDjtz%{_*b
z7re~qHEHRd^_mO}-h6oy8^^=3K5x}?<|h0fS{gqJVWAqaCFHr3S|k_<7sf+CbTKtW
zof%0GBk*qv$K8^15(wgAGDZ2BKwwl}f~v6DkBMCTJcn}(^m#iX&y59$ybyL=&?30A
zvS2J>p@%gRR;~ypTMc&|pW~?%vhfxXMHHDm()n)NxL8``wm}Rv*l(-iH!ptISmZzX
W9=uU&(RQ8y0000EkGJ+Q{VZ2&YR3+-prfwCNoJ851;u=n0N2F=brDo?c8(j
z73kvRtQa(qAWa8QDg?@`
z2tKm3V7d_ES^#|#Y*Vv|#O$eO?Efgi{3*$HL;*Z~F-#V@$PTN=4n?-h0s
zvgGD|}u6H~I6XneuR4&KWp4{}QB|^EE6RT>DV#*oK;xZK!J6fI}^t
zG|#0E;AH;2pZz>^Pdf=e)PAbA%Dl9`NVD3}B=*7WX@50~2hJVL?&maP&$)9R+EF
zP+%K`uXaCto&U9;2BE_OCVt~1TF!Po~+761A4~tqIn>i
z$Z7iKo`bD*|5lS1WS$H%dC;Kjj!TRza}P*P8>$+=U4k~Sy50Z
z6tO>6ePv-ruI+f(ZO0?mb{x`7Z4+FVw;9}3HhZd3-LeIBjvW!%5%97A-UTq96ZOt2
z#_oodYWkkp!%+k6m>Nqiel9yQ(d0S^2s}JxRMma);Oqp&boW#!LJN6NnwUg2YA+^!VGs78vS)FNFRvb4D)rDk;tPsu(fV6Y8+e9
z=&C}q`;gj#&2qXr>rFT1t7E9$)<^yQhuTlD_Q32gc0x!XQqaeKCiZ#1Nl4AYWkHLh
z9uQ*llu`RnN{C4cGj%$^T(=p^3bzGMsO}jR-eWJ``5-nPdIu)S3P`*@0xYI8`~bvmIqdDiba3%w>f)67Z5gO%MAJ)OvqtH+!4NgI(%_ZMFKt
zVqRK5I4y_ZCEplogcPp=SCiA9<-IARt1dH=pVK-jhAaj!#-A@0TcL3Q?5f6Z0o-ZH
z$BE8rb>sbZOJ3U^t_Mo<*7mXuyN9h2!0NQ#Yj5CmO?!u5>T=?9d!IF$LGO`e1>XpW5u7H?
zYzL*ab*)Afre^;g48*y>f$-|7-+
zi-|BQRa>D^Td=DJiwS6uf#-<#Vq9LP1}qIz|7@^e<8wMem>@O3uKd=h~9MbFdz(!pLh&5WyaNkY52Jv
zZg~CUF7V_%qpR*nnvf}A6t#v_jcm7!Qc~1b`>Hh`>>H(y!60lgNqAi3Lfb4tgsj~*
zJlATb?E=X0J)+kfZfSC83!bs8@FKtQfm7M6*?_eTkoMNy-=$jQ47j{aD99Ly!*XC$
zh{>L3%>071cFR1A-+RyKs$MZOc5;HaUSUrSE^@oDF|7!yMqGz*y^wH1JOH=s8a^F@
zrnS~{yTdI`2?dv*{pD+Wj^eazfk1cuze%=1PUq!iTq4F)BTtBUV&o?t2Ha931TVS#
zpOCWDWst`UMg6qp1+a9==&Cbg7TN_8MAe?N8q@pvmK#LspR#Crnt2SIqxcFbDc8RsKQ3!V`|+#2YnZDz<8Q&QB#Est9u
zgO)haZjkhUQ_k4`SmHc7HfJn=O9`mA<>O;V4gM?vJPG18MT;d5x9s1KjG`h$+=J!r
z*=E9IhX;S?oONz$GGV#(uB}tZHNw=_#H#tP4cCp-&O-dS^
z-hcruI)B1iA>lQWOs`KV*;AbyVLFCO+^TccV4K&A8)ZTrO!(GphgAp_?4;6+Wrdox
zp~-57$(o#294u&t+#O8~hvD#qTd)LZlR|h)Na9=BD{s2%%)Q2UAd;$;#F@nfFg2lv
z+ky8j`B1mQ+%h_Y&nD=mFcyz-a#J($mMvLR?OSNq~svmKrx}
zMJDX&=fb8_TU5~X$m9|jSecIgYi-D>PU@Kc2?29GP(COqUlr4FAy_u&f+1`yn#tx)
zUP_V&>m*q`#YQCnpWDW-KRcEZTILTPBMZ@BxoExaj!B2L;6sx}PLzdmHy}=rC3Jh9
zGr;T4YQlluZAOw4zfHriB^k)9OP*y+N5;bdUXeZYQ1-hk%(IBlejij)J~cvVTE+l~7m@c)beC(<$?74!sT
z8B}`+O6?&d*|B|~1G`Re;gm0o0V~qdA?)2C*}Flh+6(27p+?Em!VQY>K9oOa)tp!Y
z`vDeE23f~%RGqq*{JTsZHx0}DrFJZC`DpNTNZ3Uld7&hGuL8s@A+XFkZv7d0U>S9;3aI}hvRW;hK^Ylj
z2HW%fTDZQffOl&RBxQ4xHz%ZCk=dv$?-is8EEbir>!L{@gxK~E@aTmZ3MD&n-?#kEo
zcsdpio&ZJo+<67|g1`=9{nh^pnr%T;a1yoF^UvD`s)o)A#irqSLOe%?@8GSCBX_oVBjZW?$BEay*zY3xT{sAitpXyHJ(KyL%fL
zY{$Hp*>6Z!Muq5s{JAUD78**<1w%@Sz@|^tx+j1Jh3E-?i;h%jN5v5CP5&DJFQ<4?
zhTxvSpDzqx=Yk=x5P^*ifo_8n`&+dD?y`vsBD?N{1~P^v518T{Q&7aWbvY+HsBvTi0|lLG17XzS!;$eb|1wUb7UfuPTL
zk{T>X)RxOL;qqsJZQmzD_9KEvOJg%UP8Srf7vu`rJ{Ne!KBqFGtsof{ObB2q9b~CP
zCWEW-OR}7E3DR$wqAwSN`}!>3a_1-__UUSFXaso`C=OozXkCUBA#Tc_v*N{6sU#tQ
zYf4KV6HtA%0wnkDgUtJ%hRD?(d7vgR0&ZRbz~kk>Q+;bprsW?4<$q6=4pPq7<#58;
z>;SplP~6&?y8x=ZigIrLyj2@hA&6msYbF(6B!p07YlA7{PmjV}{EKiIjeyI5UKcix
z^YMK4KH!Irn{|jeyJSp3t?I`wDvKCZINHjugqpFD5@WzNix}-n?)+
z)m{Byl8G+Pp1U&an2F#tt{QN7%rO2<0PmUe5c8!l1aM7h$(aJs*z?%F%Uv^MolW%D
z9|zXx`aJ0?Boe@j-vj2q7E_5`IRO!&slGvV+a-?&O6Y_OG~Zsnl8>;^C3h{x5Fy}k
z%84v_vHeXA0bEx$@vYYl76Who&6v(he+P`Zpe@guuYj+=0KQ8s
zK+IU-sZZ@_Y5^~unDn~pXswuPk?SV#)|J|VL3qlNkIAv5jvL^bD^43M6q$o-15K58
zhBBw?Onw><15Zx@4n*7vjVzbnw77RW&>W}Va;#c*k>?(l8@y~%@$q_nUA2ayw_;A}
zss+b))miO`%U>&Qfa@le%p!q51%9qVN*v=4n8E
zjn8bj=xrmi{v^^mn_J*=_`2yt#$uyNhzsDlNh5ztf;5Zqv}=D4>qWl`FYnbyfpsgw
ze^1W>9u9GAxFhBy&}eh@wT*t&8SV17?{-#cidnl#0PL$$;(7g1Gt%_
z`~qY>_C~n7%g)WfUjre&T4mpOH!zqFuM46Fe+$&b<$&1bfiof?&!+v6j(Wxqj-R%d
zuh7I#8{uyl;M&p>K2ITV3Ts4@mgpR|df^qog;#22+`b9;+ue!EeMIL|?b9xw
zMN3^5JG7@62olfb&Ry}lWK=R{3$DF<)G3gZZ-WbCdozQqq55iI*6l!Z$c8;{^#ADz
zpC3~&z5EwogT8x9GAh=Ud9c}%&6j=(@1|+By?mv5oJD&nCcrhN#s4E9G~RkyPrM1X
zJ!|OS?*bp{I1ipV0hk!F>Hp;JugIEBg_fU)@G*YID2QTN5{Vs9Wzi9q6MeA|}AK
zrNtir;$lA&c6ZHw_Wf|4vnB)kbk2yJ{1|ZT32o_JPT;ZM12qSZSb*9qxX0~5OG8^&
zwcc!+h%U~HVY-Y*j+g+~m5y`}$m(at?yl*7cu328_m996nkBODIU6l*4N1G|-@uz;
z?z{2G+F@z7w|KCz(T)D;CY+R!P;gpQS$S``slII{tv3#nz|6ckl@az{<5xvgfLk~9
zHTKW68~+IF*ivl?k+$=Gc_Z+PK;!r2dGTT3KZ%_zr&q0&^)9SA>{0=_sCydD?`Dg?
z_Btt<*B}1V=0tx(?@V0ZOZ6{L8nIovv6e%b+DK=)^trvfGG_2uETN(TTtBJgN=1M@
zECZDJ&;kIljrJ<_q?=|#oC
z7PtxU@FArHxQXCy{oAAd?fb2pMaHOH3&!Nx)YcmeaB+?Wvj*4`mN8OB?xMM?4glYm?h
zP;6iFoemGKS*taa+}A$`=jGdQ-MVV{bS!{5g5f+r6OP%quKUxUWd{wJJ(>u>xGva&MK
z(9npd|MnF2@AF+j*uyI0)uH*YrQoP0J%II=N$jJgE|r3b#P98MSG3D$5UT~V!PMd}
zlb1)lOw!PE)AeJE@{53}A>JMz{S)|XUPtwUnDJvh79H{#^6$C#UW^?#K2Y|nFTaFW
zUhY{m9p>1DKHX)anNx?MbS3sl#NiMz)IQvp<`pQp%x1VW`evbIO!QPer%IM9ag(ObR
zeS3vwtJY}cW3}MtDd<*CX3onbUM>ab&a%jX)V=!wclhq~)6g6L3#@L}?B8fTyHxs6
zE0)@Vb;4RavZ+`1x0dd0kMOZtFdsK?e{cc3OycEIfF8L8sE%S(2=#U5jGUgw?v{jZ
zgKbZJJ3TKuzBkrsHyT(dc7zWxRU&s#r7WiNtx$9<
zYv2s8a7lQxfjud+LQX9_NJGQeyFqIqA&;&X&QXHO3H=+Ka!kpp<&US1h8
zLp5Icm>wN9r6s!s5V&2$G-w1er#;(Nk`ezZv&Gj{AEoX(y6fKvVJrf4XKwk*knOk>
z09;#E{31xS?b4eq$bI!Qz}&j2zIGY#TD#>iF8L9dBRHx-Gydvq70RH|+2t#jx3`)x
zTX0?3$TA|*#F%70@Eka7R3(l9W+%FzDXIo|_S|&X7d{$FIuooGdwFG2ZbFXzN)?=?h
zKCac@dB?@r4Qr&91(6Tp7}C
z2wL0z+)YQs!$|7|M1x|X-ueHk3^#WrfOuR0GvB(>625$*&3(t3rnX|KN9%6l2d@I3
z>qI;xAkb7tvAZq(uwFLZh&jbN`5T}Zv+>jIbG-bZ-Ey=q8Jj9=qHrN
zcL-WjSp2VAMK*45RAG>Bv=G8!_PG0Iyz`CE)g%cNH^8lvEp~}K&0ns_%JsEkJ`J6T
zBl|hR|7TJ)5F92NsuDgBE!0g`lBH*I-dY~G5j+`cGz73-q@m_)%CA2MWF9kIa%?Q9G=P$z-l)=Y2>{Sq#0~A_UR=b0`K~q*^Wkv1+MP#
zNkS+VkGprWTd(03tO9)L@LZU!Z1`xkRr+8Ibk&Y#;PKm!$_<5B;Hs@x=jbGp)%;f0
zKfk&v6%E303sylcE4~yY!VZ=Ubk#?pWh)+V_1tnKvs|4sds*Oks$_$l5Wqf=OP&O2
zkJ8h0)z3c&Y~tbir%%z=y8hbhMlJ|JvPl|~HG7%P?H$R{TjBsm=&JcPv-Cea0Kvx?
z^0JA$?4Ky{I@i_W2;aaDsc*y+W^LBR*>8M#PAb)tFu>8eYSYkSWc>aCC?A(YUY5LY
z(P)a`XaWCjjWs^2`P4}jpDY`4e6VCPHRimzG~_a;-QiAcZtR(SsT6mYl>7MlekNebtd
z!^Q-+)2)e=57w3t0%n^PvPp)?ocN{Cd_@jVqN0@*ijw|mvc6P;s4REx%JP&V+sZsC
z07nB^WM;#5$<;vRXK?S|qbk~DF{__Mh{ru{J?c#+5iWxa@a1k%_^QZYGtjcx1leSQ
zkOU-t*7`hH7VhquH;_#|-Iz-jU#{^-e^|k@7@p$(-KI_XF?S2G0TC
zh0ChK%_g-A)g~{2MErzxf|4S^coWy*^<5NAX6JTV0Ouc^5LYD
zTyCV6FGPz_lrT55C}jY%k{hooDRjHVT@ZA8JWA(_qXXkGccuOb5G$1@
zOsyYPu_5b9UH+Uuj&y3b9W?&?|K_}ba`}bw%Mhb7LXzvq>%GH1w^F?|y)!AL0Q)Oe
zS6Y0I0&$lBg056aUA5KLX*R>0oueLO?B2Zt3g0N+0c7TD|GnbfqVToDFIrf
zrNh+cB$$rrtA2Fo@3L%qTAX)jlrYR>YNCx-hXU*`_V5+OCwjf&*CeP+Km^628n2{e
zwL;3yg{gZ_n2W~%Jb{Wp)Y1&k_Ra9@-2w03ogk;aGhDnL}8K&O-W=dAeSxQp_sHp+`4V@V=UlT9VGa%*IVLGNC
zx*
zkJC7LLAb&+c2b8NH`M6>dlt=m4WMg7r0hr~0006rNklE_6>tWVfkg`J=mNMyzHri$vE*s*^G*fWv#9(TKm-LFx3@Y+Sbh@Mn#NwP
zaYasc4LS{A_s8Yu3KE|tyFy12KOsbwWX|g?&OST-V{r{uu+sqcEaF2hag#xLe{#uX
zh*ELkM2=KfG03{_vGC8W~94-oQhb4t$aVG*im(PJn%H>a;15J`j6=I_4
zg3F`ajNQI+It^g=!t%3(5GivuYoA&=EcY(cg_8njfu^F=P6L=L<6c<)xDeuxsi@cy
z!Be3!)40-@aP7A>4R$Sa9ydd_>vuXg8fBodFBl(cDL{P^&r?ouRDmjT#c
zKldkd&J6!HN%XW5j`CSfRzXF;Uy?Klk<|`FKsSr55
zqZN~c@;-zRbL2YjY*AL$c0p1S7#m^HWdRPZ1TB2OzXJDI5;zw?yU%Ylq97w_1@JNn
zd@7se1)aIcA1w0`0dT02T?^kCCP{QUh(-vAVj|@P2$A@{p%E0-2?O>+U<(l~7qa-q
ztthL~E-c$-lubvZKOzCvQw%Mf*TX~JenOUx7bK1$qFxYG2naTZW+tFazTo&%VlWAN
ugrw}0P4ZSK-XF#JWgX-HlYr2nS^htj98^oCD;x~~0000DiJgsLb>I_RlT0dM%bgI}Qev%zXd`wC!WDw3Z(t{u
zHYvQ~Rufr4Id#3=)9Wtv{9ls)|3|=>j~Fu#CK<@gvs&xN|9blFp)qC^0QO>xZLRg)
zs8D0fD*$W}(eY;}#+Xe2umI2|qHa?tGe0LuvLU6sC^cVFX6BX<;s5})iRgS7)Hyfp
zy?;Q&bt&cT$Lx>VWLY+kh^In`j#BEZ3TmyL3n5$qK#Pd(2WKjKnCJOSQ52VmxFe-J
z85CG+7efd~h`21JeENRjuf=xGO?mHcVvJU6eOL;uwQC`S-CnP^kf!NN)$40F#Tau9
z0Q*9SevGk0L`%cGtp%21X6_;)Dy3HH(r*N;gVcsH3ZQW)e}zuqm)`)Eo@f>Q6}kKX
O0000pWc?Ln7SYUUTGXFyL{y_+-L2
zAe`!S*CTxHOaYa5+UMsh6?*@xD4H)SFgHMSO;ZNrmzui=x3C_U*gmtg{5?mI(WBPg
zVrvvVtUff)J{GxgZrBp0n>&66nk-;)XI@nxvOtKP`KkqnM58sE+rxj{bK=E91%L6o
zDJUkmcuK5r3u^FE;a%Yr)X1eGyTkEWRK)$GCSOn0@3MV=&eJW%A&v1%tmz}I4l#%G
d*JWL}?QZm^Xy&~w{S0(DgQu&X%Q~loCIB
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/button_register.xml b/app/src/main/res/drawable-v24/button_register.xml
new file mode 100644
index 0000000..3eb0673
--- /dev/null
+++ b/app/src/main/res/drawable-v24/button_register.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/chengzi.png b/app/src/main/res/drawable-v24/chengzi.png
new file mode 100644
index 0000000000000000000000000000000000000000..fff03064b0057c455eb8cf7525fb18cbeb3d9d59
GIT binary patch
literal 1666
zcmV-|27UR7P)D=Q?yt`
zgL^K3ZRLf*#XIUe*_u;i3GU4nB(iit*~G{uLY8F8Cde!TWiv1f0xzV~%pfC%v5I>4
zYfR8L76!Ll8P$qI?uQ`go$|uKOe^@|z{E7N>sayVo@;u&0$RPHFmT3-a7BaXGZ43x
z7X&w1!4EYirV&G=vcdB(gO`^V23K1Vtqi!QuoEXhSX5pRJZmLpC^2!3L`tl|y`KmN
zUoHq9up+v>-cv@zPnH)3=Uc%KCC1c9WrJr9gKM}Ci#B?K;Y7lHyVQjrOrKJH&y~)W
zd6zpoNyw?pWXzjP0xp2KotfGp(XJ`&ggCI&P9OW2CNU933|%JgK`kYstmSb8MUWJG(Na
zG~}}qYsrXSU6r0e9R-L<+h-(rN4d-CTW#h
zu)LqjT93xV$2G#fnKv_ON11t+Rk7j4af_zOm6_|$owoHH(fzrvgZZuDP0k*>u{1l%
zTGm=N!n>!tq^=vcahyG=;YUj;3t~MqW0scgQ;j9BbokSQywA|nn%w!pSU4BptSUAbt?#IdFQq}5>jG|v)|Tbpb?+C
z55UuQNz;U{QM{pNW8M+Xrye3;ahejdB}>EsQQA@zue5#v;ci=uX#yLs$-*1@cl#7w
zTAcuHNmFiiWjhsbXiV%o;!}+tZ^E}fyNY)3RC3}c5<-{z7P`U;@
z7&-aTJTq?d$?jA404PZ|IXiKpvArg&Rk9k575C*0@DEfU}X
zFD)rCWh}kRYc8RuOP8OoSYW0pLB-Kc@0hQ;(&zeuL90??z@~`hS6zd*uPP^B2+?R$
zBPDQK%?BeRt=hGhh}NVeJBuQ=+d+{ht3P+P1lNIKzng9`F`ciiy5X_+$c
znAtHy!X~!vSG{0V+Zw&023t5@NNB{!Nv~2jBSl-6=rM@iio_cuOGYAd#+T!k5P_i{
zY%@M9#|by$EgOlLiL{GoA3y_oN<(jsTLkknX2%H8nzoD>!96?gnx!aW!*DIl#uBUR
za!0)5ga2GwgSIkNIr)kp?@;XkQgS?PRyvwrEhdR#5Q+ih*etVFFlt$#Ho7TolgIk0
zt`%b5oqMm=#}5jD$wWLEOp_UyV#N0U7Y-@W?r_rA{ac<^_{}hX0R}#BQQ@)#!~g&Q
M07*qoM6N<$f;J}@jQ{`u
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable-v24/city.png b/app/src/main/res/drawable-v24/city.png
new file mode 100644
index 0000000000000000000000000000000000000000..790fb2bf39c33588894e33135a78fc1c05ed6caf
GIT binary patch
literal 790
zcmV+x1L^#UP)&Rd)Azkx1s<6Vd&j0As9)Z*~+qJ9V@fa4!+P{tX}Cn;o^A
z0#97z2mE6~ArY9|$W0q=J1aL74vbT;Z%FVmj;V60)XN)l{^KlBNLW;uIF({2YuBE2
zcC5=9TWbna9I^Z8o0G7cl2!yYdy`1SwG$;-psw+IfN$Dm9
zVUm|{P*tj+F;%2fy_G)hks&M$df^`vz-0I;1liSc%k
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..1f6bb29
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable-v24/index.png b/app/src/main/res/drawable-v24/index.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc1ec04f66cffa7b889c016953f3616b8305adb9
GIT binary patch
literal 1272
zcmVop#=&eKH
z-<)^}Lr0G3n-TDRLZFwOBoNXvPRPE{;p=^LTSPAe9ZBZ8!8}U9{UW9=HCKu0Kq?-Z
zw2QZeRtv|Fs%mPTLm4}GTRx_louc!
zkNGjSs{w;Ec??b8@xl_!i<{GN<*H@2+#XRadyYXhFK;E_5~+vaBf2X0EkidC&p%W!
z&Fi(6q!QR;@U(7(nylU~R$579dqH%v7U;Ery##0Gz3F&(ya*l9a^DiT-7T~ou!rDd
zx+-@qRa(m#0EgT_ivll$Pv89JbAGXjB3gD2fzCUH
zc3R;||3Q}(H$l&kq8SGP3_F3Y6}YB~v)N%)`Y3@8i$Z$^T*KttM@rHd0plG}=+iGY
z;FVUts9Z?5Yy5BgaIGMu1*3};E%!0NN5mq4otu0}?rgxuM%zP=kfjCt(!>ICc^1-J
zYc(m!Y%kc|hb0wrwMrJ@+bOa~xM2)$;7s2a3YxuKbSnesyC>hrK$Xft2f
zLSZfQxDS$}dxsLyTF_RHmd5rLAH0L6+qxPG-u)sPa{!`Ft6g_!!jvA9cie@}P5{*L
ze}`t~qv?3~$kK)>k?SU6$LGR&S6U+Jxw%+ydI|cN9;JZaY7s}H&d|T=s@!S;E-$u9
z()bdL*PT#X6U>@uD~Gjuh)l%Z?-p?OmqjP(R9%&mmC#Ruamk6xp=a;IYuo(TApiTJ
z5rO_@b`kq8EQqHf+|&c17W7gvsQd~cnL9(wZ;HFsNy#{<$K?~HY-P}m!|5h6eU}N?
zP$wMwG|W?aJiKG2aPuF`lLv`<&%vz3->
zZq*`M_B4Us@|Ho|jS2B|OxCJJth>KdwCpK>dc;$CqqMtNx7`#gTJC*-KlBDiz=hGJ
z$K|p0l(x`Ta3q=CO-!Ewcu*j%I|<<@2~y8oEcm0Hfe>^N{0v7iZ+uFiH|$IuJtr_s
z`bdw521Mh8p-YBJGWQg?_{Y(H(InM%oB`+yi55=I#hR}<@p24ZG7q21G)oJho$IRU)#qq%qh0000
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/juzi.png b/app/src/main/res/drawable-v24/juzi.png
new file mode 100644
index 0000000000000000000000000000000000000000..106df92a6a38fdf5074c2969a512e2e19dde5f7d
GIT binary patch
literal 1898
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
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable-v24/lemon.png b/app/src/main/res/drawable-v24/lemon.png
new file mode 100644
index 0000000000000000000000000000000000000000..39f12cc86e2eee35fb7435398cb8dafd48007433
GIT binary patch
literal 2954
zcmV;53w88~P)@~BqtFcm+-#=5;^S$qV
zzxRFbyB>od2{Ats9QX;y|C=R$vPf4JIpX(DAS`BsU=#sd4B#S+_L~9_VSorZ^ZUM{
zFdNGU`44_ymi^8asX68y1{t?A46b4sXQ9P#O%2bFPwClW6U(~#0ES{fjjCvFP~}rG
zS@oym;wycn^qwJL@TsbjE#T5mmluEA^j$#p8pt8Pw}fS}hyfPa%!_uJ_?Z?R+wVfE
zjF{dDLIkKJ233uKVGLjyI~c|Wma&58MgdSxq~#<2xcIU$DQghM$ZIvxBbG0?1{Q0(!;F}0wL76A;d|rZDn0f@{aM1gnUe~|WZGTH4NR~(A%aD>j0?WAI
zur3FPgmCk{dF|iNwGBez2_(gh8W5{#9?XUtpsL}04UtJB06bXc37j=sH&XKka-_EO
zMP5H{bRXO5a#=ZwP;4O-wZ2unfx8raY|o-TJQjo`a&Bwj#=&B|Npr)tWHwv_hh;ek
zAjxN=YJ&hEf;3xtBuvz8@=jx7y9vZNt$c~+SQ
zZWOF0ADV>Qv+^(uuPNFj%*)DSG0uVAd_P2K=eAIDMSlhAgdv{Vlexg;1QHCEoFg*q
zZntf{U#}Zi*4q6U^ULq%PLuc91fN)v>I-{(Pp`KJQXS=9!EU2E-xUQ{(LYnL6Ud3s<-R0mLg5x%Pz9%D#bV
z`4A-e0F3-(7`e$1)1PU8#Ps&8O7(N?!0E`$R(CWTWYnzX!cdy{Zm!(dO~`n-Wu2RxGu+|V^{`?|7dd^r;0o9)&b`O9GBE{A~|
zgIMxuB*eG61Y|MZig;?R_MhAS&o1*1!zi2!e8sRSU
z1iC!@ETk`@!>#73V`k!(7@=F`S6SVTYCqyqPJ!z+986^3j=JN^h-%yle
znk-tY^@I%E1oW{zjYeT^wV3{LWw|%_Qhq>!-jDk_w>nwYHR5DQYc+aBMs6aEhN%Zd
zX=ekF;sBQPN)P~tW#zVT^PdJLr44oE-r%zQfV8v7c&J3^(f+jFvKViMl->m}`h9&1
zW{j+_uebC_NDk(rqM~?SKxmF0PYY8U2A2eW*>-&%QELup9?3>jS+n6<
zi0K_jN!#0jwwsqCDQ<|A4tU3Pto}j2s@8i|HKdg(EMwEcHf;;?r9#IhItw_^6r20?
z;F7@Xe1Np(5!$-a7Pc*A@(68lX|~T+$FLn42Of>WRYvnDOsr=NKcMNo1SELx8rp*
z3G>0}O2XdaO?@a3BY%Y}maOd5K^nO6npO3>5(tS^nsqx8ZHN0hHz68->dSa)?YrlB
z{Y&x%@?L>$Eyr`iTRW+q)LJxK)2z?whlWdw-`0RAs^Bv6QxH#eik_NIv^z8zuGOrR
zlHNg5dLL=I8Z`Sm%u8W1%tWK`>$s$RGrwcamA%#qc<#5DZn@fSUVI7NB$j+mYnbvO
zPFDsnyjBr#x(mXk12$?vB>9kw-WwtDSWYptr!gC5X^P8=Uke~~Hb#&-Q6Cy@F7pIj
zc||SC^mVZ0LX}~^=;z#ekoF@z$tQO6eGn2WwY_-#@Q}Cot%3{?n$;P`l2--I>4$1v
zA{}f{N=jQlk2K%?RhcJnN8UgvTx)b85ms^0040(&+
zYz0C;IxK%gH2!ct#)V!t5QUDnHC~$8)AFHv%RK&0eR9s8{p-2`gH%=bh1>p0b>2O@
z-VAo|eDb-zdyIUgim0-PNM+
zeTrf+{sy5~MeAO?zB3TLt`xLC$+%xGG?^j9spzbjs`}>+F7a>b6%e{8|GC!RkV@~+
za!ZDI{m`(tC2G;jp84*!zk*2ozMPeH>m(($Zhv#~@w&k!ftlGrcWaT%!nTt}+KV>{
zzoirPR=H;*+XA7jEWPxx#HucJqhXp3{3K=XH%-xbdX`b9
z|GcCwYl)FJ5V~92*>74oP)@r?+No|BUx%{p#=2Dl02j`+UBIxq?EEEs_z|@x{u_U*}|5=LPit
zOz*C$G05t%z<{C^r5*2xW)b^8!0ELmEhLA9#Om6(_(FlIl3TZLUOJIsm`Q|?bLd2f
z5OPOFMManQq}M<)Tep2fH0Upa#Z=K?;D$H};q8FV$uMM}-R_z|fyl~n7t0p33?rt&
zV!TlkLx>uc(wl3-@#Uk5ny6Cs%roT!&OVe@RaH$PgnU2<5g3NK!{_sLx-Z`uNLzEa
zzUnd<4FdX%Rlopy2YUjOW3kwWgpkY5@+(cUanpAcq5<`vC+MAV`4V`QG5!=dN5Q(B{9Ys;a?+
zkU2h|Z+XWhKNyfab?r6VPe6KobpNA;KN^et7v(;CetyH5XaE2J07*qoM6N<$f?}Jr
Ad;kCd
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable-v24/lemonp.png b/app/src/main/res/drawable-v24/lemonp.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca5eca84fc6fed54c0441a05ce0b9e3d333db3f7
GIT binary patch
literal 10312
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
SP*iyU0000AEUC?Ys6gP-W=AflrvxD5k-<1)&)
z4Kl*P0TD$Ybaz?>MD|5wao7VSWM6wp*L&Z2)nw_U8#+)4-EH4<`tx9Zh>
z_r4+sOGs;ggmmx1okJLKh#v%Dz+u24u7MEmUf6=efJ0mZA>O^P1&0BLxCTPJdtnO>
z0}gQwgn0MD790i~;u;9??u9Kl3^>F!5aQhnTW}a~h-)CkyZ5WM;PmwLD+EF4Dlj3I
z5*o`GiQ~L27SoHN!u?kTI4vzrB?#)Vgs?0yWC7^b5+nm=g#icI;hmP2mLLeK`vFWO
zz`(}lckV-(Hc}vECxGe_`DX^qu~w=(rel;;9EI2DY>jBn&Mn2&Bm&VQp
zBICWoP3R7qK1Kdt{MS?lDpi^-rr03h=64fA4lv*-5e3y50BU;c46u05fpVkeCiZZ{
zHN=4&+X2C{fS<@Wnl0uV{nlO(6bw1QqTqT1Ah)x@xu8RC^KQAFdb#07#K`{(>)rt=
z_z8sJ&!&9SUxR>~-%SiDzzmo{fLB@1Ye8?8FUze5R7t%-(>PqC{2wVl31P)-{;^h~
zu7Oso^{C(43xa|n1sK2<0N2vt)4-DZwuamJH*UE4sHXpRd=0X56+p1SY&Ja<1kBph
z#83ka)~P4xEl;J=>X(0GySPy@$yzNCxSS7Xf2Z6Wo*m
zZp-DKss^bkgZTMO_ca)J(_}F{5sGln_AmImmYI=t2tZF3mkK(1W)s}hfo{uH>zYp4
zKQ0CNIp6)A;3KoyG&%S+;JXJQVZoUhSp@)6*nkY6u0r-LbC;wHSEY5cEI9_UZ3W1w
z{b#koJ~3O&lR_D8C|PhZfCQFsnGBM3yTT1u5J8S?139u4m400cg6=HuRW~I>MNh
z5w={Cq-9pCwc^)cwaxn&DuCS<%&>|O9HBrdKrJ?#ZOaco{J`P=Y9&+vd(0;NYH51u
zco=Yq9}PhTI6Xc0@`PA=t+u-SfM0y^MPbXP_1WDziw~ZupqUj_%ss!?M$u`Al$;=LktqB3
z$rAQuUS8gbHdYa|#RC%XRRUZQ~jDsW-TUMFg8tPxVDc<~@(Y)xgY`26bCtE+;Ro*xYlD8T9I
zIlt|lD!g_0r0ZJV_6QxpZwF~`%>ef+%5dS$-F>hg+xI)M_2+sVE^x`Ji8BhN2A%Nw
zCyUpF)Fgkv-6rLx<@WB@4f78dNTYb;x+aOZHBFD3uGU@@R9^@9fuk<0`rZc9j}Ey=
zN+p?#ghJh%I4bj=3tuWNCBg7*2!=U`u1qO
z`K=9`e{#yb>6xOk9xI~1&&$i>FNcM6tsoo8i(N^0LK`nzO>IkSJ5+Ft-oVRXX
zVD7)FVcFt7Z6|jUW-VHh7xYPJ9S%4vD{GJdvQwf=NKF#)%%mvvOjY>=z+qB*1teQJ
zXnmbupjs9pf(oKO9%4kC{C+NZYjF)$Z?MZn5@W^XOO~x2b3r=|kc~PNa8_1Ue@5{$
z@B4tBYRrAo9ogtjBzq-XHK!rfxs$?_5+lv9i0NTu~nL|+^ns8o%qW?+>i-Hy2)y?Dxvg_tfNB!|LKvDdv+dh4jeK-gO?wT
z_S!#Z*&+Fqd?`c~nG8)_FR#0{Y<6Jo!fFTtsgtNQ*kZBp_^+Umb_e|A!z0%0I#{2}
z2UPQ(ib158`&&ox&+_Q_QVJhwYvOu?56D`|;x%>n^y@kvv}w}l)T36fUhN)g2Z6LJ
z;3*SwCmlH@eWXzn%$XXE%X_I?sl-`&u-&h>{&L_0Fil(^2