From b021364b8552783c5a86c8fd9a76cf03ab46efb1 Mon Sep 17 00:00:00 2001 From: liuyx <1517482303@qq.com> Date: Sun, 14 May 2023 22:39:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OrangeSale_End/.gitignore | 14 + OrangeSale_End/.idea/.gitignore | 3 + OrangeSale_End/.idea/codeStyles/Project.xml | 116 +++++++ OrangeSale_End/.idea/compiler.xml | 6 + OrangeSale_End/.idea/gradle.xml | 20 ++ .../inspectionProfiles/Project_Default.xml | 8 + OrangeSale_End/.idea/jarRepositories.xml | 25 ++ OrangeSale_End/.idea/misc.xml | 10 + OrangeSale_End/app/.gitignore | 1 + OrangeSale_End/app/build.gradle | 36 ++ OrangeSale_End/app/proguard-rules.pro | 21 ++ .../ExampleInstrumentedTest.java | 27 ++ .../app/src/main/AndroidManifest.xml | 30 ++ .../example/orangesale_end/MainActivity.java | 92 ++++++ .../activity/CategoryActivity.java | 90 +++++ .../activity/IndexActivity.java | 128 ++++++++ .../activity/RegisterActivity.java | 176 ++++++++++ .../orangesale_end/activity/UserActivity.java | 66 ++++ .../orangesale_end/adapter/Adapter.java | 69 ++++ .../adapter/ListViewAdapter.java | 78 +++++ .../adapter/ProductAdapter.java | 83 +++++ .../orangesale_end/entity/Condition.java | 30 ++ .../orangesale_end/entity/OrangeMessage.java | 52 +++ .../orangesale_end/entity/OrangeProduct.java | 64 ++++ .../entity/OrangeProductPack.java | 66 ++++ .../orangesale_end/entity/OrangeUser.java | 59 ++++ .../orangesale_end/entity/Product.java | 43 +++ .../orangesale_end/entity/ShoppingCart.java | 44 +++ .../fragment/IndexFragment.java | 139 ++++++++ .../fragment/PearsonFragment.java | 64 ++++ .../fragment/ProductFragment.java | 153 +++++++++ .../fragment/SetDetailFragment.java | 53 +++ .../fragment/ShoppingCartFragment.java | 61 ++++ .../netrequest/OkHttpClientProduct.java | 124 +++++++ .../netrequest/OkHttpMessage.java | 43 +++ .../orangesale_end/netrequest/OkHttpUser.java | 78 +++++ .../orangesale_end/service/TimeService.java | 105 ++++++ .../orangesale_end/utils/IpConfig.java | 8 + .../drawable-v24/ic_launcher_foreground.xml | 34 ++ .../app/src/main/res/drawable/address.png | Bin 0 -> 1028 bytes .../app/src/main/res/drawable/all.png | Bin 0 -> 1045 bytes .../app/src/main/res/drawable/apple.png | Bin 0 -> 1988 bytes .../app/src/main/res/drawable/applep.png | Bin 0 -> 8824 bytes .../app/src/main/res/drawable/arrow_down.png | Bin 0 -> 368 bytes .../app/src/main/res/drawable/arrow_left.png | Bin 0 -> 231 bytes .../app/src/main/res/drawable/arrow_right.png | Bin 0 -> 233 bytes .../app/src/main/res/drawable/btn_add.png | Bin 0 -> 204 bytes .../src/main/res/drawable/button_login.xml | 15 + .../src/main/res/drawable/button_register.xml | 14 + .../app/src/main/res/drawable/cart.png | Bin 0 -> 5573 bytes .../app/src/main/res/drawable/chengzi.png | Bin 0 -> 1666 bytes .../app/src/main/res/drawable/city.png | Bin 0 -> 790 bytes .../res/drawable/ic_launcher_background.xml | 170 ++++++++++ .../res/drawable/ic_launcher_foreground.xml | 34 ++ .../app/src/main/res/drawable/index.png | Bin 0 -> 1272 bytes .../app/src/main/res/drawable/index_menu.xml | 16 + .../app/src/main/res/drawable/juzi.png | Bin 0 -> 1898 bytes .../app/src/main/res/drawable/juzip.png | Bin 0 -> 8150 bytes .../app/src/main/res/drawable/lemon.png | Bin 0 -> 2954 bytes .../app/src/main/res/drawable/lemonp.png | Bin 0 -> 10312 bytes .../app/src/main/res/drawable/li.png | Bin 0 -> 1862 bytes .../app/src/main/res/drawable/mangguo.png | Bin 0 -> 2192 bytes .../app/src/main/res/drawable/orange.png | Bin 0 -> 6129 bytes .../app/src/main/res/drawable/password.png | Bin 0 -> 1462 bytes .../app/src/main/res/drawable/pearson.png | Bin 0 -> 3302 bytes .../app/src/main/res/drawable/price.png | Bin 0 -> 1047 bytes .../app/src/main/res/drawable/product.png | Bin 0 -> 1315 bytes .../app/src/main/res/drawable/salenum.png | Bin 0 -> 1294 bytes .../app/src/main/res/drawable/search.png | Bin 0 -> 1299 bytes .../app/src/main/res/drawable/setting.png | Bin 0 -> 1101 bytes .../app/src/main/res/drawable/sex.png | Bin 0 -> 1509 bytes .../src/main/res/drawable/shoppingcart.png | Bin 0 -> 1155 bytes .../app/src/main/res/drawable/shuiguo.png | Bin 0 -> 1212 bytes .../res/drawable/spinner_drop_down_shape.xml | 16 + .../src/main/res/drawable/sure_apssword.png | Bin 0 -> 799 bytes .../src/main/res/drawable/tab_menu_text.xml | 5 + .../app/src/main/res/drawable/time.png | Bin 0 -> 2219 bytes .../app/src/main/res/drawable/user.png | Bin 0 -> 2173 bytes .../src/main/res/drawable/user_account.png | Bin 0 -> 1045 bytes .../src/main/res/drawable/user_general.png | Bin 0 -> 402 bytes .../app/src/main/res/drawable/user_icon.png | Bin 0 -> 5995 bytes .../app/src/main/res/drawable/user_pay.png | Bin 0 -> 554 bytes .../app/src/main/res/drawable/user_sex.png | Bin 0 -> 1123 bytes .../app/src/main/res/drawable/xigua.png | Bin 0 -> 2622 bytes .../app/src/main/res/drawable/xiguap.png | Bin 0 -> 6605 bytes .../app/src/main/res/drawable/youzi.png | Bin 0 -> 1798 bytes .../app/src/main/res/drawable/youzip.png | Bin 0 -> 9547 bytes .../app/src/main/res/layout/activity_main.xml | 29 ++ .../src/main/res/layout/cart_have_product.xml | 15 + .../src/main/res/layout/cart_no_product.xml | 45 +++ .../src/main/res/layout/category_detail.xml | 16 + .../main/res/layout/category_list_item.xml | 14 + .../res/layout/categoty_detail_content.xml | 41 +++ .../src/main/res/layout/content_category.xml | 29 ++ .../app/src/main/res/layout/content_index.xml | 221 +++++++++++++ .../app/src/main/res/layout/content_nav.xml | 119 +++++++ .../src/main/res/layout/content_product.xml | 27 ++ .../main/res/layout/content_product_title.xml | 33 ++ .../app/src/main/res/layout/content_user.xml | 234 +++++++++++++ .../app/src/main/res/layout/index_famous.xml | 55 ++++ .../res/layout/product_condition_item.xml | 39 +++ .../main/res/layout/shopping_cart_product.xml | 12 + .../main/res/layout/shoppingcart_title.xml | 32 ++ .../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 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2963 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4905 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2060 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2783 bytes .../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 | 6 + .../app/src/main/res/values/styles.xml | 11 + .../orangesale_end/ExampleUnitTest.java | 17 + OrangeSale_End/build.gradle | 27 ++ OrangeSale_End/gradle.properties | 20 ++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + OrangeSale_End/gradlew | 172 ++++++++++ OrangeSale_End/gradlew.bat | 84 +++++ OrangeSale_End/settings.gradle | 2 + README.md | 3 + orange/.gitignore | 31 ++ .../.mvn/wrapper/MavenWrapperDownloader.java | 118 +++++++ orange/.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 50710 bytes orange/.mvn/wrapper/maven-wrapper.properties | 2 + orange/mvnw | 310 ++++++++++++++++++ orange/mvnw.cmd | 182 ++++++++++ orange/pom.xml | 83 +++++ .../orangesale_end/OrangeApplication.java | 13 + .../config/WebMvcConfigure.java | 30 ++ .../controller/OrangeMessageController.java | 82 +++++ .../controller/OrangeProductController.java | 153 +++++++++ .../controller/OrangeSaleController.java | 82 +++++ .../OrangeShoppingCartController.java | 32 ++ .../controller/OrangeUserController.java | 63 ++++ .../orangesale_end/entity/OrangeMessage.java | 17 + .../orangesale_end/entity/OrangeProduct.java | 21 ++ .../entity/OrangeProductSale.java | 20 ++ .../orangesale_end/entity/OrangeSale.java | 14 + .../entity/OrangeShoppingCart.java | 15 + .../orangesale_end/entity/OrangeUser.java | 16 + .../orangesale_end/mapper/MessageMapper.java | 32 ++ .../orangesale_end/mapper/ProductMapper.java | 55 ++++ .../orangesale_end/mapper/SaleMapper.java | 40 +++ .../mapper/ShoppingCartMapper.java | 15 + .../orangesale_end/mapper/UserMapper.java | 26 ++ .../service/MessageService.java | 44 +++ .../service/ProductService.java | 67 ++++ .../orangesale_end/service/SaleService.java | 110 +++++++ .../service/ShoppingCartService.java | 21 ++ .../orangesale_end/service/UserService.java | 35 ++ .../src/main/resources/application.properties | 18 + .../main/resources/mapper/MessageMapper.xml | 16 + .../main/resources/mapper/ProductMapper.xml | 26 ++ .../src/main/resources/mapper/SaleMapper.xml | 17 + .../src/main/resources/mapper/UserMapper.xml | 11 + orange/src/main/resources/static/back.jpeg | Bin 0 -> 147014 bytes .../src/main/resources/static/dist/index.html | 1 + .../app.11fad76d5d8c4920b3784e9b27e09fcb.css | 2 + ...p.11fad76d5d8c4920b3784e9b27e09fcb.css.map | 1 + .../static/fonts/element-icons.535877f.woff | Bin 0 -> 28200 bytes .../static/fonts/element-icons.732389d.ttf | Bin 0 -> 55956 bytes .../static/js/app.7d594d261d564e1cc954.js | 2 + .../static/js/app.7d594d261d564e1cc954.js.map | 1 + .../js/manifest.2ae2e69a05c33dfc65f8.js | 2 + .../js/manifest.2ae2e69a05c33dfc65f8.js.map | 1 + .../static/js/vendor.1d42e571fcfb49df78bd.js | 34 ++ .../js/vendor.1d42e571fcfb49df78bd.js.map | 1 + .../main/resources/static/images/apple.png | Bin 0 -> 1988 bytes .../src/main/resources/static/images/juzi.png | Bin 0 -> 1898 bytes .../main/resources/static/images/lemon.png | Bin 0 -> 2954 bytes .../src/main/resources/static/images/li.png | Bin 0 -> 1862 bytes .../main/resources/static/images/orange.png | Bin 0 -> 6129 bytes .../main/resources/static/images/youzi.png | Bin 0 -> 1798 bytes 182 files changed, 6043 insertions(+) create mode 100644 OrangeSale_End/.gitignore create mode 100644 OrangeSale_End/.idea/.gitignore create mode 100644 OrangeSale_End/.idea/codeStyles/Project.xml create mode 100644 OrangeSale_End/.idea/compiler.xml create mode 100644 OrangeSale_End/.idea/gradle.xml create mode 100644 OrangeSale_End/.idea/inspectionProfiles/Project_Default.xml create mode 100644 OrangeSale_End/.idea/jarRepositories.xml create mode 100644 OrangeSale_End/.idea/misc.xml create mode 100644 OrangeSale_End/app/.gitignore create mode 100644 OrangeSale_End/app/build.gradle create mode 100644 OrangeSale_End/app/proguard-rules.pro create mode 100644 OrangeSale_End/app/src/androidTest/java/com/example/orangesale_end/ExampleInstrumentedTest.java create mode 100644 OrangeSale_End/app/src/main/AndroidManifest.xml create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/MainActivity.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/CategoryActivity.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/IndexActivity.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/RegisterActivity.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/UserActivity.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/Adapter.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ListViewAdapter.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ProductAdapter.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Condition.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeMessage.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProduct.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProductPack.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeUser.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Product.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/ShoppingCart.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/IndexFragment.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/PearsonFragment.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ProductFragment.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/SetDetailFragment.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ShoppingCartFragment.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpClientProduct.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpMessage.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpUser.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/service/TimeService.java create mode 100644 OrangeSale_End/app/src/main/java/com/example/orangesale_end/utils/IpConfig.java create mode 100644 OrangeSale_End/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/address.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/all.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/apple.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/applep.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/arrow_down.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/arrow_left.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/arrow_right.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/btn_add.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/button_login.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/button_register.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/cart.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/chengzi.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/city.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/index.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/index_menu.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/juzi.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/juzip.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/lemon.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/lemonp.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/li.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/mangguo.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/orange.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/password.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/pearson.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/price.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/product.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/salenum.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/search.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/setting.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/sex.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/shoppingcart.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/shuiguo.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/spinner_drop_down_shape.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/sure_apssword.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/tab_menu_text.xml create mode 100644 OrangeSale_End/app/src/main/res/drawable/time.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/user.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/user_account.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/user_general.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/user_icon.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/user_pay.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/user_sex.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/xigua.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/xiguap.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/youzi.png create mode 100644 OrangeSale_End/app/src/main/res/drawable/youzip.png create mode 100644 OrangeSale_End/app/src/main/res/layout/activity_main.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/cart_have_product.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/cart_no_product.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/category_detail.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/category_list_item.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/categoty_detail_content.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/content_category.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/content_index.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/content_nav.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/content_product.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/content_product_title.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/content_user.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/index_famous.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/product_condition_item.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/shopping_cart_product.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/shoppingcart_title.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/user_login.xml create mode 100644 OrangeSale_End/app/src/main/res/layout/user_register.xml create mode 100644 OrangeSale_End/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 OrangeSale_End/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 OrangeSale_End/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 OrangeSale_End/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 OrangeSale_End/app/src/main/res/values/colors.xml create mode 100644 OrangeSale_End/app/src/main/res/values/strings.xml create mode 100644 OrangeSale_End/app/src/main/res/values/styles.xml create mode 100644 OrangeSale_End/app/src/test/java/com/example/orangesale_end/ExampleUnitTest.java create mode 100644 OrangeSale_End/build.gradle create mode 100644 OrangeSale_End/gradle.properties create mode 100644 OrangeSale_End/gradle/wrapper/gradle-wrapper.jar create mode 100644 OrangeSale_End/gradle/wrapper/gradle-wrapper.properties create mode 100644 OrangeSale_End/gradlew create mode 100644 OrangeSale_End/gradlew.bat create mode 100644 OrangeSale_End/settings.gradle create mode 100644 orange/.gitignore create mode 100644 orange/.mvn/wrapper/MavenWrapperDownloader.java create mode 100644 orange/.mvn/wrapper/maven-wrapper.jar create mode 100644 orange/.mvn/wrapper/maven-wrapper.properties create mode 100644 orange/mvnw create mode 100644 orange/mvnw.cmd create mode 100644 orange/pom.xml create mode 100644 orange/src/main/java/com/example/orangesale_end/OrangeApplication.java create mode 100644 orange/src/main/java/com/example/orangesale_end/config/WebMvcConfigure.java create mode 100644 orange/src/main/java/com/example/orangesale_end/controller/OrangeMessageController.java create mode 100644 orange/src/main/java/com/example/orangesale_end/controller/OrangeProductController.java create mode 100644 orange/src/main/java/com/example/orangesale_end/controller/OrangeSaleController.java create mode 100644 orange/src/main/java/com/example/orangesale_end/controller/OrangeShoppingCartController.java create mode 100644 orange/src/main/java/com/example/orangesale_end/controller/OrangeUserController.java create mode 100644 orange/src/main/java/com/example/orangesale_end/entity/OrangeMessage.java create mode 100644 orange/src/main/java/com/example/orangesale_end/entity/OrangeProduct.java create mode 100644 orange/src/main/java/com/example/orangesale_end/entity/OrangeProductSale.java create mode 100644 orange/src/main/java/com/example/orangesale_end/entity/OrangeSale.java create mode 100644 orange/src/main/java/com/example/orangesale_end/entity/OrangeShoppingCart.java create mode 100644 orange/src/main/java/com/example/orangesale_end/entity/OrangeUser.java create mode 100644 orange/src/main/java/com/example/orangesale_end/mapper/MessageMapper.java create mode 100644 orange/src/main/java/com/example/orangesale_end/mapper/ProductMapper.java create mode 100644 orange/src/main/java/com/example/orangesale_end/mapper/SaleMapper.java create mode 100644 orange/src/main/java/com/example/orangesale_end/mapper/ShoppingCartMapper.java create mode 100644 orange/src/main/java/com/example/orangesale_end/mapper/UserMapper.java create mode 100644 orange/src/main/java/com/example/orangesale_end/service/MessageService.java create mode 100644 orange/src/main/java/com/example/orangesale_end/service/ProductService.java create mode 100644 orange/src/main/java/com/example/orangesale_end/service/SaleService.java create mode 100644 orange/src/main/java/com/example/orangesale_end/service/ShoppingCartService.java create mode 100644 orange/src/main/java/com/example/orangesale_end/service/UserService.java create mode 100644 orange/src/main/resources/application.properties create mode 100644 orange/src/main/resources/mapper/MessageMapper.xml create mode 100644 orange/src/main/resources/mapper/ProductMapper.xml create mode 100644 orange/src/main/resources/mapper/SaleMapper.xml create mode 100644 orange/src/main/resources/mapper/UserMapper.xml create mode 100644 orange/src/main/resources/static/back.jpeg create mode 100644 orange/src/main/resources/static/dist/index.html create mode 100644 orange/src/main/resources/static/dist/static/css/app.11fad76d5d8c4920b3784e9b27e09fcb.css create mode 100644 orange/src/main/resources/static/dist/static/css/app.11fad76d5d8c4920b3784e9b27e09fcb.css.map create mode 100644 orange/src/main/resources/static/dist/static/fonts/element-icons.535877f.woff create mode 100644 orange/src/main/resources/static/dist/static/fonts/element-icons.732389d.ttf create mode 100644 orange/src/main/resources/static/dist/static/js/app.7d594d261d564e1cc954.js create mode 100644 orange/src/main/resources/static/dist/static/js/app.7d594d261d564e1cc954.js.map create mode 100644 orange/src/main/resources/static/dist/static/js/manifest.2ae2e69a05c33dfc65f8.js create mode 100644 orange/src/main/resources/static/dist/static/js/manifest.2ae2e69a05c33dfc65f8.js.map create mode 100644 orange/src/main/resources/static/dist/static/js/vendor.1d42e571fcfb49df78bd.js create mode 100644 orange/src/main/resources/static/dist/static/js/vendor.1d42e571fcfb49df78bd.js.map create mode 100644 orange/src/main/resources/static/images/apple.png create mode 100644 orange/src/main/resources/static/images/juzi.png create mode 100644 orange/src/main/resources/static/images/lemon.png create mode 100644 orange/src/main/resources/static/images/li.png create mode 100644 orange/src/main/resources/static/images/orange.png create mode 100644 orange/src/main/resources/static/images/youzi.png diff --git a/OrangeSale_End/.gitignore b/OrangeSale_End/.gitignore new file mode 100644 index 0000000..603b140 --- /dev/null +++ b/OrangeSale_End/.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/OrangeSale_End/.idea/.gitignore b/OrangeSale_End/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/OrangeSale_End/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/OrangeSale_End/.idea/codeStyles/Project.xml b/OrangeSale_End/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..681f41a --- /dev/null +++ b/OrangeSale_End/.idea/codeStyles/Project.xml @@ -0,0 +1,116 @@ + + + + + + + +
+ + + + 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/OrangeSale_End/.idea/compiler.xml b/OrangeSale_End/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/OrangeSale_End/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/.idea/gradle.xml b/OrangeSale_End/.idea/gradle.xml new file mode 100644 index 0000000..6e5389e --- /dev/null +++ b/OrangeSale_End/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/.idea/inspectionProfiles/Project_Default.xml b/OrangeSale_End/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..1852992 --- /dev/null +++ b/OrangeSale_End/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/OrangeSale_End/.idea/jarRepositories.xml b/OrangeSale_End/.idea/jarRepositories.xml new file mode 100644 index 0000000..a5f05cd --- /dev/null +++ b/OrangeSale_End/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/.idea/misc.xml b/OrangeSale_End/.idea/misc.xml new file mode 100644 index 0000000..ba9cfe8 --- /dev/null +++ b/OrangeSale_End/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/.gitignore b/OrangeSale_End/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/OrangeSale_End/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/OrangeSale_End/app/build.gradle b/OrangeSale_End/app/build.gradle new file mode 100644 index 0000000..68a3331 --- /dev/null +++ b/OrangeSale_End/app/build.gradle @@ -0,0 +1,36 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 30 + buildToolsVersion "30.0.2" + defaultConfig { + applicationId "com.example.orangesale_end" + minSdkVersion 26 + 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' + implementation "com.squareup.okhttp3:okhttp:4.9.3" + implementation group: 'com.alibaba', name: 'fastjson', version: '1.2.12' +} diff --git a/OrangeSale_End/app/proguard-rules.pro b/OrangeSale_End/app/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/OrangeSale_End/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/OrangeSale_End/app/src/androidTest/java/com/example/orangesale_end/ExampleInstrumentedTest.java b/OrangeSale_End/app/src/androidTest/java/com/example/orangesale_end/ExampleInstrumentedTest.java new file mode 100644 index 0000000..0ef57ae --- /dev/null +++ b/OrangeSale_End/app/src/androidTest/java/com/example/orangesale_end/ExampleInstrumentedTest.java @@ -0,0 +1,27 @@ +package com.example.orangesale_end; + +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_end", appContext.getPackageName()); + } +} diff --git a/OrangeSale_End/app/src/main/AndroidManifest.xml b/OrangeSale_End/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..138b087 --- /dev/null +++ b/OrangeSale_End/app/src/main/AndroidManifest.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/MainActivity.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/MainActivity.java new file mode 100644 index 0000000..5ad8815 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/MainActivity.java @@ -0,0 +1,92 @@ +package com.example.orangesale_end; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Looper; +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_end.activity.IndexActivity; +import com.example.orangesale_end.activity.RegisterActivity; +import com.example.orangesale_end.entity.OrangeUser; +import com.example.orangesale_end.netrequest.OkHttpUser; + +import java.io.IOException; + +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: + //注册时,我们引入了数据库,登录这里可以通过数据库进行验证,验证跳转到首页,不通过进行提示 + Thread thread = new Thread(runnable); + thread.start(); + 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); + } + + /** + * 登录验证 + */ + Runnable runnable = new Runnable() { + @Override + public void run() { + String username = usernameText.getText().toString(); + String password = paswdEdit.getText().toString(); + OrangeUser orangeUser = new OrangeUser(); + orangeUser.setUsername(username); + orangeUser.setPassword(password); + OkHttpUser okHttpUser = new OkHttpUser(); + OrangeUser orangeUser1 = null; + try { + orangeUser1 = okHttpUser.userLogin(orangeUser); + if (orangeUser1 != null) { + Intent intent1 = new Intent(MainActivity.this, IndexActivity.class); + Bundle bundle = new Bundle(); + bundle.putString("username", usernameText.getText().toString()); + bundle.putString("password", orangeUser1.getPassword()); + bundle.putString("city", orangeUser1.getCity()); + bundle.putString("sex", orangeUser1.getSex()); + intent1.putExtras(bundle); + startActivity(intent1); + } else { + //解决在子线程中调用Toast的异常情况处理 + Looper.prepare(); + Toast.makeText(MainActivity.this, "账号或者密码错误", Toast.LENGTH_SHORT).show(); + Looper.loop(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }; +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/CategoryActivity.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/CategoryActivity.java new file mode 100644 index 0000000..278743a --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/CategoryActivity.java @@ -0,0 +1,90 @@ +package com.example.orangesale_end.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_end.R; +import com.example.orangesale_end.adapter.Adapter; +import com.example.orangesale_end.entity.Product; +import com.example.orangesale_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/IndexActivity.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/IndexActivity.java new file mode 100644 index 0000000..e399cfb --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/IndexActivity.java @@ -0,0 +1,128 @@ +package com.example.orangesale_end.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_end.R; +import com.example.orangesale_end.fragment.IndexFragment; +import com.example.orangesale_end.fragment.PearsonFragment; +import com.example.orangesale_end.fragment.ProductFragment; +import com.example.orangesale_end.fragment.ShoppingCartFragment; +import com.example.orangesale_end.service.TimeService; + +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(); + Thread thread = new Thread(runnable); + thread.start(); + } + + /** + * 组件初始化 + */ + 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_content0, indexFragment); + transaction.commit(); + } + + /** + * 初始化产品Fragment + */ + private void initproductFragment() { + //开启事务,fragment的控制是由事务来实现的 + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + if (productFragment == null) { + productFragment = new ProductFragment(); + } + transaction.replace(R.id.main_content0, productFragment); + transaction.commit(); + } + + /** + * 初始化购物车Fragment + */ + private void initshoppingCartFragment() { + //开启事务,fragment的控制是由事务来实现的 + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + if (shoppingCartFragment == null) { + shoppingCartFragment = new ShoppingCartFragment(); + } + transaction.replace(R.id.main_content0, 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_content0, pearsonFragment); + transaction.commit(); + } + + Runnable runnable = () -> { + Intent intent = new Intent(IndexActivity.this, TimeService.class); + startService(intent); + }; + +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/RegisterActivity.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/RegisterActivity.java new file mode 100644 index 0000000..6601d99 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/RegisterActivity.java @@ -0,0 +1,176 @@ +package com.example.orangesale_end.activity; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Looper; +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_end.R; +import com.example.orangesale_end.entity.OrangeUser; +import com.example.orangesale_end.netrequest.OkHttpUser; + +import java.io.IOException; + +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(); + Thread thread = new Thread(runnable); + thread.start(); + 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() { + } + }); + + } + + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + //根据用户选择来改变sex的值 + sexStr = checkedId == R.id.reg_man ? "男" : "女"; + } + + /** + * 注册验证 + */ + Runnable runnable = new Runnable() { + @Override + public void run() { + 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); + OrangeUser orangeUser = new OrangeUser(); + orangeUser.setUsername(username); + orangeUser.setPassword(password); + orangeUser.setCity(city); + orangeUser.setSex(sexStr); + //将使用安卓自身带的SQLite数据库换成调用okhttp的方式 + OkHttpUser okHttpUser = new OkHttpUser(); + try { + if (okHttpUser.userRegister(orangeUser)) { + Intent intent = new Intent(RegisterActivity.this, IndexActivity.class); + intent.putExtras(bundle); + startActivity(intent); + } else { + Looper.prepare(); + Toast.makeText(RegisterActivity.this, "注册失败!", Toast.LENGTH_SHORT).show(); + Looper.loop(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } else { + Looper.prepare(); + Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show(); + Looper.loop(); + } + } else { + Looper.prepare(); + Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show(); + Looper.loop(); + } + } else { + Looper.prepare(); + Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show(); + Looper.loop(); + } + } + }; +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/UserActivity.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/UserActivity.java new file mode 100644 index 0000000..f9ef766 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/activity/UserActivity.java @@ -0,0 +1,66 @@ +package com.example.orangesale_end.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_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/Adapter.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/Adapter.java new file mode 100644 index 0000000..7b5b02e --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/Adapter.java @@ -0,0 +1,69 @@ +package com.example.orangesale_end.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_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ListViewAdapter.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ListViewAdapter.java new file mode 100644 index 0000000..39c0e88 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ListViewAdapter.java @@ -0,0 +1,78 @@ +package com.example.orangesale_end.adapter; + +import android.content.Context; +import android.graphics.Color; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.example.orangesale_end.R; +import com.example.orangesale_end.entity.Condition; + +import java.util.List; + +public class ListViewAdapter extends BaseAdapter { + private List conditionList; + private LayoutInflater layoutInflater; + private int selectedPosition = -1; + private int selectColor = Color.GRAY; + + public ListViewAdapter(Context context, List conditionList) { + this.conditionList = conditionList; + this.layoutInflater = LayoutInflater.from(context); + } + + @Override + public int getCount() { + return conditionList.size(); + } + + @Override + public Object getItem(int position) { + return conditionList.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.product_condition_item, null); + viewHolder = new ViewHolder(); + viewHolder.imageView = convertView.findViewById(R.id.condition_icon); + viewHolder.jiange = convertView.findViewById(R.id.image_jiange); + viewHolder.textView = convertView.findViewById(R.id.condition_name); + viewHolder.linearLayout = convertView.findViewById(R.id.item_bg); + convertView.setTag(viewHolder); + } else { + viewHolder = (ViewHolder) convertView.getTag(); + } + Condition condition = conditionList.get(position); + if (condition != null) { + viewHolder.imageView.setBackgroundResource(condition.getConditionIcon()); + viewHolder.textView.setText(condition.getConditionName()); + viewHolder.jiange.setBackgroundColor(Color.rgb(207, 207, 207)); + if (selectedPosition == position) { + viewHolder.linearLayout.setBackgroundColor(selectColor); + } + + } + return convertView; + } + + class ViewHolder { + ImageView imageView, jiange; + TextView textView; + LinearLayout linearLayout; + } + + +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ProductAdapter.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ProductAdapter.java new file mode 100644 index 0000000..e708b71 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/adapter/ProductAdapter.java @@ -0,0 +1,83 @@ +package com.example.orangesale_end.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; + +import com.example.orangesale_end.R; +import com.example.orangesale_end.entity.OrangeProductPack; + +import java.util.List; + +public class ProductAdapter extends BaseAdapter { + //private List productList; + private List orangeProductList; + private LayoutInflater layoutInflater; + private View.OnClickListener onAddGoods; + + public ProductAdapter(Context context, List orangeProductList) { + this.orangeProductList = orangeProductList; + this.layoutInflater = LayoutInflater.from(context); + } + + public void setAddGoodsListener(View.OnClickListener onAddGoods) { + this.onAddGoods = onAddGoods; + } + + @Override + public int getCount() { + return orangeProductList.size(); + } + + @Override + public Object getItem(int position) { + return orangeProductList.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); + + viewHolder.addGoodsBtn = convertView.findViewById(R.id.add_goods); + viewHolder.addGoodsBtn.setOnClickListener(onAddGoods); + + convertView.setTag(viewHolder); + } else { + viewHolder = (ViewHolder) convertView.getTag(); + } + + OrangeProductPack product = orangeProductList.get(position); + if (product != null) { + viewHolder.productImage.setImageBitmap(product.getImgBitmap()); + viewHolder.productName.setText(product.getName()); + viewHolder.productPrice.setText(String.format("%s元", String.valueOf(product.getPrice()))); + + viewHolder.addGoodsBtn.setTag(product); + } + return convertView; + } + + + class ViewHolder { + ImageView productImage; + TextView productName, productPrice; + ImageButton addGoodsBtn; + } + +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Condition.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Condition.java new file mode 100644 index 0000000..960bf61 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Condition.java @@ -0,0 +1,30 @@ +package com.example.orangesale_end.entity; + +public class Condition { + private Integer conditionIcon; + private String conditionName; + + public Integer getConditionIcon() { + return conditionIcon; + } + + public void setConditionIcon(Integer conditionIcon) { + this.conditionIcon = conditionIcon; + } + + public String getConditionName() { + return conditionName; + } + + public void setConditionName(String conditionName) { + this.conditionName = conditionName; + } + + @Override + public String toString() { + return "Condition{" + + "conditionIcon=" + conditionIcon + + ", conditionName='" + conditionName + '\'' + + '}'; + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeMessage.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeMessage.java new file mode 100644 index 0000000..eb7a058 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeMessage.java @@ -0,0 +1,52 @@ +package com.example.orangesale_end.entity; + +import java.sql.Timestamp; + +public class OrangeMessage { + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Timestamp getSendTime() { + return sendTime; + } + + public void setSendTime(Timestamp sendTime) { + this.sendTime = sendTime; + } + + public String getUsed() { + return used; + } + + public void setUsed(String used) { + this.used = used; + } + + private Integer id; + private String content; + private Timestamp sendTime; + private String used; + + @Override + public String toString() { + return "OrangeMessage{" + + "id=" + id + + ", content='" + content + '\'' + + ", sendTime=" + sendTime + + ", used='" + used + '\'' + + '}'; + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProduct.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProduct.java new file mode 100644 index 0000000..6ce06d9 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProduct.java @@ -0,0 +1,64 @@ +package com.example.orangesale_end.entity; + +import java.math.BigDecimal; +import java.sql.Timestamp; + +public class OrangeProduct { + private Integer id; + private String name; + private BigDecimal price; + private String imgUrl; + + @Override + public String toString() { + return "OrangeProduct{" + + "id=" + id + + ", name='" + name + '\'' + + ", price=" + price + + ", imgUrl='" + imgUrl + '\'' + + ", addTime=" + addTime + + '}'; + } + + public Timestamp getAddTime() { + return addTime; + } + + public void setAddTime(Timestamp addTime) { + this.addTime = addTime; + } + + private Timestamp addTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public String getImgUrl() { + return imgUrl; + } + + public void setImgUrl(String imgUrl) { + this.imgUrl = imgUrl; + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProductPack.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProductPack.java new file mode 100644 index 0000000..0acf008 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeProductPack.java @@ -0,0 +1,66 @@ +package com.example.orangesale_end.entity; + +import android.graphics.Bitmap; + +import java.math.BigDecimal; +import java.sql.Timestamp; + +public class OrangeProductPack { + private Integer id; + private String name; + private Timestamp addTime; + private Bitmap imgBitmap; + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + private BigDecimal price; + + @Override + public String toString() { + return "OrangeProductPack{" + + "id=" + id + + ", name='" + name + '\'' + + ", addTime=" + addTime + + ", imgBitmap=" + imgBitmap + + ", price=" + price + + '}'; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Timestamp getAddTime() { + return addTime; + } + + public void setAddTime(Timestamp addTime) { + this.addTime = addTime; + } + + public Bitmap getImgBitmap() { + return imgBitmap; + } + + public void setImgBitmap(Bitmap imgBitmap) { + this.imgBitmap = imgBitmap; + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeUser.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeUser.java new file mode 100644 index 0000000..91c6ffc --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/OrangeUser.java @@ -0,0 +1,59 @@ +package com.example.orangesale_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Product.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Product.java new file mode 100644 index 0000000..f762103 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/Product.java @@ -0,0 +1,43 @@ +package com.example.orangesale_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/ShoppingCart.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/ShoppingCart.java new file mode 100644 index 0000000..fe38c7c --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/entity/ShoppingCart.java @@ -0,0 +1,44 @@ +package com.example.orangesale_end.entity; + +public class ShoppingCart { + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Integer getProductId() { + return ProductId; + } + + public void setProductId(Integer productId) { + ProductId = productId; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + private Integer id; + private Integer userId; + private Integer ProductId; + /** + * 购买数量 + */ + private Integer number; +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/IndexFragment.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/IndexFragment.java new file mode 100644 index 0000000..f91bfde --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/IndexFragment.java @@ -0,0 +1,139 @@ +package com.example.orangesale_end.fragment; + +import android.app.Fragment; +import android.os.AsyncTask; +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_end.R; +import com.example.orangesale_end.adapter.ProductAdapter; +import com.example.orangesale_end.entity.OrangeProductPack; +import com.example.orangesale_end.entity.Product; +import com.example.orangesale_end.netrequest.OkHttpClientProduct; + +import java.io.IOException; +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 ProductAdapter productAdapter; + private List productList; + private List list = new ArrayList<>(); + + @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(); + new SearchProductTask().execute(); + } + + + @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); + + } + + /** + * 发送网络请求获取数据 + */ + class SearchProductTask extends AsyncTask> { + + @Override + protected List doInBackground(Void... voids) { + OkHttpClientProduct clientProduct = new OkHttpClientProduct(); + try { + list = clientProduct.getProductPack(); + } catch (IOException e) { + e.printStackTrace(); + } + return list; + } + + @Override + protected void onPostExecute(List orangeProducts) { + if (getActivity() != null) { + productAdapter = new ProductAdapter(getActivity(), list); + gridView.setAdapter(productAdapter); + } + } + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/PearsonFragment.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/PearsonFragment.java new file mode 100644 index 0000000..0f3e8de --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/PearsonFragment.java @@ -0,0 +1,64 @@ +package com.example.orangesale_end.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_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ProductFragment.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ProductFragment.java new file mode 100644 index 0000000..89f8c9e --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ProductFragment.java @@ -0,0 +1,153 @@ +package com.example.orangesale_end.fragment; + +import android.app.Fragment; +import android.os.AsyncTask; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.GridView; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.Spinner; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.example.orangesale_end.R; +import com.example.orangesale_end.activity.RegisterActivity; +import com.example.orangesale_end.adapter.ListViewAdapter; +import com.example.orangesale_end.adapter.ProductAdapter; +import com.example.orangesale_end.entity.Condition; +import com.example.orangesale_end.entity.OrangeProductPack; +import com.example.orangesale_end.netrequest.OkHttpClientProduct; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public class ProductFragment extends Fragment implements View.OnClickListener { + private Spinner conditonListSpinner; + private ListViewAdapter listViewAdapter; + private List conditionList; + private GridView productGridView; + private List orangeProductList = new ArrayList<>(); + 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_product, container, false); + init(view); + return view; + } + + /** + * 组件初始化方法 + * + * @param view + */ + private void init(View view) { + conditonListSpinner = view.findViewById(R.id.product_select_condition); + initCondList(); + listViewAdapter = new ListViewAdapter(getActivity(), conditionList); + conditonListSpinner.setAdapter(listViewAdapter); + productGridView = view.findViewById(R.id.product_list); + new SearchProductTask().execute(); + + + +// productGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { +// @Override +// public void onItemClick(AdapterView adapterView, View view, int i, long l) { +// ImageView addBtn = view.findViewById(R.id.add_goods); +// if (addBtn != null) { +// Log.i("pos", String.valueOf(i)); +// +// } +// } +// }); + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.add_goods: + addGoods(view.getTag()); + } + } + + /** + * 点击GridView中的item的添加按钮,添加该商品 + */ + private void addGoods(Object tag) { + if (tag != null) { + OrangeProductPack product = (OrangeProductPack) tag; + OkHttpClientProduct clientProduct = new OkHttpClientProduct(); + try { + if (clientProduct.addProduct(product.getId())) { + Toast.makeText(getContext(), "添加成功", Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(getContext(), "添加成功", Toast.LENGTH_SHORT).show(); + } + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } + System.out.println("TAG: " + tag); + } + } + + /** + * 初始化conditionList + */ + private void initCondList() { + conditionList = new ArrayList<>(); + Condition allCondition = new Condition(); + allCondition.setConditionIcon(R.drawable.all); + allCondition.setConditionName("全部"); + Condition saleCondition = new Condition(); + saleCondition.setConditionIcon(R.drawable.salenum); + saleCondition.setConditionName("按销量高低排序"); + Condition timeCondition = new Condition(); + timeCondition.setConditionIcon(R.drawable.time); + timeCondition.setConditionName("按上市时间排序"); + Condition priceCondition = new Condition(); + priceCondition.setConditionIcon(R.drawable.price); + priceCondition.setConditionName("按商品价格排序"); + conditionList.add(allCondition); + conditionList.add(saleCondition); + conditionList.add(timeCondition); + conditionList.add(priceCondition); + } + + /** + * 发送网络请求获取数据 + */ + class SearchProductTask extends AsyncTask> { + + @Override + protected List doInBackground(Void... voids) { + OkHttpClientProduct clientProduct = new OkHttpClientProduct(); + try { + orangeProductList = clientProduct.getProductPack(); + } catch (IOException e) { + e.printStackTrace(); + } + return orangeProductList; + } + + @Override + protected void onPostExecute(List orangeProducts) { + if (getActivity() != null) { + productAdapter = new ProductAdapter(getActivity(), orangeProductList); + productGridView.setAdapter(productAdapter); + productAdapter.setAddGoodsListener(ProductFragment.this); + } + } + } + + +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/SetDetailFragment.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/SetDetailFragment.java new file mode 100644 index 0000000..211082d --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/SetDetailFragment.java @@ -0,0 +1,53 @@ +package com.example.orangesale_end.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_end.R; +import com.example.orangesale_end.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/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ShoppingCartFragment.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ShoppingCartFragment.java new file mode 100644 index 0000000..f37faae --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/fragment/ShoppingCartFragment.java @@ -0,0 +1,61 @@ +package com.example.orangesale_end.fragment; + +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.example.orangesale_end.R; +import com.example.orangesale_end.entity.ShoppingCart; + +import java.util.ArrayList; +import java.util.List; + +public class ShoppingCartFragment extends Fragment implements View.OnClickListener { + private Button walkButton; + private List cartList = new ArrayList<>(); + private ProductFragment productFragment; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view; + if (cartList.size() > 0) { + //有商品 + view = LayoutInflater.from(getActivity()).inflate(R.layout.cart_have_product, container, false); + } else { + view = LayoutInflater.from(getActivity()).inflate(R.layout.cart_no_product, container, false); + } + init(view); + return view; + } + + /** + * 组件初始化 + */ + private void init(View view) { + walkButton = view.findViewById(R.id.random_search); + walkButton.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.random_search: + //开启事务,fragment的控制是由事务来实现的 + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + if (productFragment == null) { + productFragment = new ProductFragment(); + } + transaction.replace(R.id.main_content0, productFragment); + transaction.commit(); + break; + } + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpClientProduct.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpClientProduct.java new file mode 100644 index 0000000..c467134 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpClientProduct.java @@ -0,0 +1,124 @@ +package com.example.orangesale_end.netrequest; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.widget.Toast; + +import androidx.annotation.NonNull; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.example.orangesale_end.entity.OrangeProduct; +import com.example.orangesale_end.entity.OrangeProductPack; +import com.example.orangesale_end.utils.IpConfig; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +public class OkHttpClientProduct { + + /** + * 查询商品信息 + * + * @return + */ + public List getProduct() throws IOException { + OkHttpClient okHttpClient = new OkHttpClient(); + String url = "http://" + IpConfig.getIpAddress() + ":8081/orange/product/search"; + Request request = new Request.Builder() + .url(url) + .build(); + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(Objects.requireNonNull(response.body()).string()); + List list = JSON.parseObject(jsonObject.getString("data"), new TypeReference>() { + }); + return list; + } + + /** + * + * @throws IOException + */ + public boolean addProduct(Integer id) throws IOException, InterruptedException { + OkHttpClient client = new OkHttpClient(); + FormBody.Builder formBody = new FormBody.Builder(); + formBody.add("id", String.valueOf(id)); + + String url = "http://" + IpConfig.getIpAddress() + ":8081/orange/shoppingCart/add/" + id; + + Request request = new Request.Builder() + .url(url) + .post(formBody.build()) + .build(); + + final boolean[] result = new boolean[1]; + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + result[0] = false; + e.printStackTrace(); + } + + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { + JSONObject jsonObject = JSON.parseObject(Objects.requireNonNull(response.body()).string()); + System.out.println(jsonObject); + result[0] = true; + } + }); + + Thread.sleep(1); + return result[0]; + } + + /** + * 获取图片 + * + * @param imgUrl + * @return + * @throws IOException + */ + public Bitmap getImageBitMap(String imgUrl) throws IOException { + Bitmap bitmap; + OkHttpClient okHttpClient = new OkHttpClient(); + Request request = new Request.Builder() + .url(imgUrl) + .build(); + Response response = okHttpClient.newCall(request).execute(); + byte[] bytes = Objects.requireNonNull(response.body()).bytes(); + bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); + return bitmap; + + } + + /** + * 封装信息 + * + * @return + * @throws IOException + */ + + public List getProductPack() throws IOException { + List packList = new ArrayList<>(); + List list = getProduct(); + for (OrangeProduct orangeProduct : list) { + OrangeProductPack orangeProductPack = new OrangeProductPack(); + orangeProductPack.setId(orangeProduct.getId()); + orangeProductPack.setImgBitmap(getImageBitMap(orangeProduct.getImgUrl())); + orangeProductPack.setAddTime(orangeProduct.getAddTime()); + orangeProductPack.setPrice(orangeProduct.getPrice()); + packList.add(orangeProductPack); + } + return packList; + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpMessage.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpMessage.java new file mode 100644 index 0000000..0bceaac --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpMessage.java @@ -0,0 +1,43 @@ +package com.example.orangesale_end.netrequest; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.example.orangesale_end.entity.OrangeMessage; +import com.example.orangesale_end.utils.IpConfig; + +import java.io.IOException; +import java.util.Objects; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +public class OkHttpMessage { + + /** + * 消费消息 + * + * @return + */ + public OrangeMessage consumeMessage() throws IOException { + OkHttpClient okHttpClient = new OkHttpClient(); + String url = "http://" + IpConfig.getIpAddress() + ":8081/orange/message/consumeMessage"; + Request request = new Request.Builder() + .url(url) + .build(); + Response response = okHttpClient.newCall(request).execute(); + JSONObject jsonObject = JSON.parseObject(Objects.requireNonNull(response.body()).string()); + OrangeMessage orangeMessage = JSON.toJavaObject(jsonObject.getJSONObject("data"), OrangeMessage.class); + /** + * 消费完消息以后,设置消息为已读 + */ + + String url2 = "http://" + IpConfig.getIpAddress() + ":8081/orange/message/updateMessage"; + Request request1 = new Request.Builder() + .url(url2) + .build(); + okHttpClient.newCall(request1).execute(); + return orangeMessage; + } + +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpUser.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpUser.java new file mode 100644 index 0000000..ff5a2ff --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/netrequest/OkHttpUser.java @@ -0,0 +1,78 @@ +package com.example.orangesale_end.netrequest; + +import android.app.Application; +import android.content.Context; +import android.util.Log; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.example.orangesale_end.R; +import com.example.orangesale_end.entity.OrangeUser; +import com.example.orangesale_end.utils.IpConfig; + +import java.io.IOException; + +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +public class OkHttpUser { + + /** + * 用户登录验证 + * + * @param orangeUser + */ + public OrangeUser userLogin(OrangeUser orangeUser) throws IOException { + OkHttpClient okHttpClient= new OkHttpClient(); + //数据类型为json格式 + MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); + //将对象转为JSON字符串 + String jsonStr = JSONObject.toJSONString(orangeUser); + + RequestBody requestBody = RequestBody.create(jsonStr, mediaType); + String url = "http://" + IpConfig.getIpAddress() + ":8081/orange/user/login"; + Request request = new Request.Builder() + .url(url) + .post(requestBody) + .build(); + + Response response = okHttpClient.newCall(request).execute(); + + String responseStr = response.body().string(); + System.out.println("responseStr = " + responseStr); + JSONObject jsonObject = JSON.parseObject(responseStr); + JSONObject jsonObject1 = jsonObject.getJSONObject("data"); + return JSON.toJavaObject(jsonObject1, OrangeUser.class); + } + + /** + * 用户注册 + * + * @param orangeUser + * @return + * @throws IOException + */ + public boolean userRegister(OrangeUser orangeUser) throws IOException { + OkHttpClient okHttpClient = new OkHttpClient(); + //数据类型为json格式 + MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); + //将对象转为JSON字符串 + String jsonStr = JSONObject.toJSONString(orangeUser); + RequestBody requestBody = RequestBody.create(jsonStr, mediaType); + String url = "http://" + IpConfig.getIpAddress() + ":8081/orange/user/register"; + Request request = new Request.Builder() + .url(url) + .post(requestBody) + .build(); + Response response = okHttpClient.newCall(request).execute(); + assert response.body() != null; + JSONObject jsonObject = JSON.parseObject(response.body().string()); + Log.i("register", "userRegister: "+jsonObject); + return jsonObject.getBoolean("flag"); + } + + +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/service/TimeService.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/service/TimeService.java new file mode 100644 index 0000000..ceecacc --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/service/TimeService.java @@ -0,0 +1,105 @@ +package com.example.orangesale_end.service; + +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.AsyncTask; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; + +import com.example.orangesale_end.R; +import com.example.orangesale_end.entity.OrangeMessage; +import com.example.orangesale_end.netrequest.OkHttpMessage; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Objects; +import java.util.Timer; +import java.util.TimerTask; + +public class TimeService extends Service { + private static Timer timer = null; + private NotificationManager manager; + private NotificationCompat.Builder builder; + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + /** + * 清除通知 + */ + private void cleanAllNotification() { + manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + manager.cancelAll(); + if (timer != null) { + timer.cancel(); + timer = null; + } + + } + + /** + * 添加通知 + */ + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + long period = 60 * 1000; //1分钟一个周期 + if (timer == null) { + timer = new Timer(); + } + timer.schedule(new TimerTask() { + @Override + public void run() { + new ConsumeMessageTask().execute(); + } + }, 0, period); + + return super.onStartCommand(intent, flags, startId); + } + + class ConsumeMessageTask extends AsyncTask { + @Override + protected Void doInBackground(Void... voids) { + /** + * NotificationChannel是android8.0新增的特性,如果App的targetSDKVersion>=26, + * 没有设置channel通知渠道的话,就会导致通知无法展示。 + * 报错内容:Failed to post notification on channel “null” + */ + OkHttpMessage okHttpMessage = new OkHttpMessage(); + OrangeMessage orangeMessage; + try { + orangeMessage = okHttpMessage.consumeMessage(); + if (!Objects.isNull(orangeMessage)) { + Log.i("orangeMessage", "run: " + orangeMessage.toString()); + NotificationChannel channel = new NotificationChannel("channel", "通知", NotificationManager.IMPORTANCE_DEFAULT); + manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + manager.createNotificationChannel(channel); + builder = new NotificationCompat.Builder(TimeService.this); + Date date = new Date(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + builder.setContentTitle("来自橙一色的系统通知消息" + " " + formatter.format(date)); + builder.setSmallIcon(R.drawable.chengzi); + builder.setChannelId("channel"); + builder.setContentText(orangeMessage.getContent()); + builder.setAutoCancel(true); + builder.setDefaults(Notification.DEFAULT_ALL); + Notification notification = builder.build(); + manager.notify(1, notification); + } + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + } +} diff --git a/OrangeSale_End/app/src/main/java/com/example/orangesale_end/utils/IpConfig.java b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/utils/IpConfig.java new file mode 100644 index 0000000..85578a3 --- /dev/null +++ b/OrangeSale_End/app/src/main/java/com/example/orangesale_end/utils/IpConfig.java @@ -0,0 +1,8 @@ +package com.example.orangesale_end.utils; + +public class IpConfig { + + public static String getIpAddress() { + return "192.168.67.103"; + } +} diff --git a/OrangeSale_End/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/OrangeSale_End/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..1f6bb29 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/OrangeSale_End/app/src/main/res/drawable/address.png b/OrangeSale_End/app/src/main/res/drawable/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@uVP)q?Rk(M)1uBc%`;<|FSx5J@HrrFBuT(1l9e zh(ZvONukA9qgdxFE!DQ#DilhW?LsLSsiHO;Gn1Cd%sb`Im~me6X5QCe@*s=MyZ785 z=YBuJCVyy?``{V46p3^SMQLQ_Mm&n9$6vem2#6OUuz(f)7WJj>cu9gQ;F6{d3g!*~ zhXCv-0|eu-L-&jx#sUcEQPAh8FZHcctRrAH66qx&-eRE3v>`KKWkI6r(De_gH~FPq zs4ZZ2WTYAS{7C>>&A?W`|0>Uca^n=Z@P`%D5||wx?gP=M0G_rA2Kzu6>Mj@|>P=j# z6}KjENmWk>;9X1DY5`}!QZ2#&1rpy>YojVKt7-edeA6~g7IXtFBB_f4@yljynF2Wy zX2s63c43@h3ECmvSmO#0bK!}v1%y}7u zl?@5JPTh%fhLve8WLZ_etGdovsl8;d6#GZ&NxWDUm{HXs0?t@Ds=oIQ1O#Py5lheFr#V5i1~f@ zy7E@1dx`-dCzRt`y3f6507ldNHh>9F!Kr{u%V(ZK$jV#v!aI|Dhd(d?$5I?2!i=Zr zbpjHxHr*CBcJXMM2L$l-W&i^Ga?BSlUJuH%cr?MCLV>qsrcN0|ex)V0U;Etvl>bE2 z{FmVpi8|K*q0J$RC*5ul{WdC<~2V;N7Bt+qPik z5$$fPBPboyzM=9d+OmsR3ydZB1yXR`Hqu1~nYe$ZEu5^@hUKS^H&fiyK*f8?OO{Xv zKn4~7gl2r9?`y@i1j@>h%e-~leS8E!o*An@c7cS?S9FY@_J`!oRXe0rfy(#MBtHjH zM4Cgbfj<#wV%irp+&G+Db;~v@ZhGKDEs|t7g22|C P00000NkvXXu0mjfWqIjS literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/apple.png b/OrangeSale_End/app/src/main/res/drawable/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..0810381d53b6ac6f3163f5dc3e3002e09562c290 GIT binary patch literal 1988 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 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#;++MNF`;1=4t%jLz7x z66gAkNl1ZFD5BBf-S#`PXI$I;Vf&q|H+z>iO8@RjQS35#cn;_y22WQ%mvv4FO#pGw BOn?9Y literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/button_login.xml b/OrangeSale_End/app/src/main/res/drawable/button_login.xml new file mode 100644 index 0000000..d093f1b --- /dev/null +++ b/OrangeSale_End/app/src/main/res/drawable/button_login.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/res/drawable/button_register.xml b/OrangeSale_End/app/src/main/res/drawable/button_register.xml new file mode 100644 index 0000000..3eb0673 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/drawable/button_register.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/res/drawable/cart.png b/OrangeSale_End/app/src/main/res/drawable/cart.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e1190318bac5a414c75ec24d955fae176d1a7c GIT binary patch literal 5573 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 J#XX0o{{y$Isht1- literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/chengzi.png b/OrangeSale_End/app/src/main/res/drawable/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/OrangeSale_End/app/src/main/res/drawable/city.png b/OrangeSale_End/app/src/main/res/drawable/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/OrangeSale_End/app/src/main/res/drawable/ic_launcher_foreground.xml b/OrangeSale_End/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..1f6bb29 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/OrangeSale_End/app/src/main/res/drawable/index.png b/OrangeSale_End/app/src/main/res/drawable/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/OrangeSale_End/app/src/main/res/drawable/juzi.png b/OrangeSale_End/app/src/main/res/drawable/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/OrangeSale_End/app/src/main/res/drawable/lemon.png b/OrangeSale_End/app/src/main/res/drawable/lemon.png new file mode 100644 index 0000000000000000000000000000000000000000..39f12cc86e2eee35fb7435398cb8dafd48007433 GIT binary patch literal 2954 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 Ad;kCd literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/lemonp.png b/OrangeSale_End/app/src/main/res/drawable/lemonp.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5eca84fc6fed54c0441a05ce0b9e3d333db3f7 GIT binary patch literal 10312 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 SP*iyU0000AEUC?Ys6gP-W=AflrvxD5k-<1)&) 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 kysS}tl^Sj`oj{`Y56voTT^KUvI4VJ~OqYP#V z=xUQ0uykCXRpEq1z_Xz*4_N4$N-_aXeyzF7%b2FW-7@f*(3eLowb#iq0S1x&0^IEq zP=!;|c^P)G$#jzhk(wvTHrGI_`o++f?Jl-X84M!*8@R(IKojj!=*xhu4{N|6(%*s2 zwvJPDODnf<-^_FJXPQ4Nz*3}h+VK=~1Ii-8?l3Puw}VUtEJb=$;gz&2&A5Lu^kr9O zz*1FTROPdb!R^eHcf%2RyOp?Q2KUYBz{Va<11%3(b9A7b7ueq{fWk3>hkys$(h9r6 zyqs*NX$cra8UW>Xj@O=TL8RXUI~w|!sjwgiCywj$B7BjO&JRLgCS3umzzb=0QW&51 zWya`&NdExtRG~PXm&$=Jb*NUuye70AZUufQ`|_|W;6Ffr8ep=o912GynU*K2T5y4@ z`(LTCWu_>^hQI*m^iGKXn&y^+sryX4`6PsIldvu9rAwDu%|FgTn<$ejBJdwAaHUC?BTvie6!0 z`XyQFZU)zR>!idNYiy_#rDg@VdSv|A?vPF#*=2A$%6lmp{5JIEN!MfM4dDH@jx7L< zed>u2^JZ9(rmoR_~c116cgIRh(k%y9i^>IiW4t~O0J}$laX>kVYWW~*!XY)tUC;7*u7Dn7;bH_Hee=%e>9oTgN@E|HP)nI)ZLW@$I2-Pz9GxpLn&d(QuV{(JVG zd(ORr#ie^0SMKHRSh>M*n5@E7Q7%{52kckn$EGIsHqYiei?kIeu>}|g%tv?$<;HrL z0;g4Y(Q9X&EpBT>-=gvqN@G-E^G$7Bn^RLJyloqx4;2YJYyk! z0Vf2mG$kJ4CvhTPBUZjKC9UbFZ1M_pm|_|U2}?YOT0aMNyFRnew~$Xz z?lmQ?oe9A(=;Qmq4`VZIYA4Dy>_lYuR@|C_p7kglr$wHTV0<;rkF+<>D$G% zGKQn3q_zAsW_8OPR+(ZN2}#JJ5(jjY2C5yk^02TIND?6DcVmGb+41!Rgl>Siw&nHCE(fZGv{NlYp3 zXJ5;0{9;O4&oAj3oF=BLLp#bfz}Jqlr@6rXdVV#9{Qe~uUfjxBU_NklEdUV?qI}@` zylg{I6tDu}p*r2dabWvjy>wo2C;txT93iBy$YO-G0+(h9P+&jGqi%s8ve*x|iHb}@ z*qrrXRXB;#*;3%0)IAaw`5a-MNk9UtT%XmA`1WL3p4Q|IG@;3xqO~RPiu4tE zN`$wpp~7*`uXL@cD-1Z6){L6Oq41=XyP2vnT?!YOfYk6w-ROh1HaC3oxOxT(m0l|> zu^g?m?YUOcnV#xpLajD?C~z_+jBDj+)(*RFP(o+&LR@Vc!+@Q@+&oHDd182boraf; z3nILohYzT}44*TPgaK*{JglwGf|F-#NbrZg2#*-7!hrR_Gg$(uR;eNFbR&L=t>O4E z;w8A|s2c?=ieZDmWpx8nijJ}@X`>qzFx0*>MhNRi>%c3Irm(cu3vlY?LsVpnI?N*G zCK09pQy2{C);EJy?I0o`X=K<`4Se!N}B_d71{=hL2~PV0Eh1-W_Q}l Z?|&mRgtdm$lv4lz002ovPDHLkV1jf(W2yiE literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/salenum.png b/OrangeSale_End/app/src/main/res/drawable/salenum.png new file mode 100644 index 0000000000000000000000000000000000000000..87ed2c910ea115b8c1f3c2324fcd21042b8c5011 GIT binary patch literal 1294 zcmV+p1@ZccP)&K~fcpjoMvnK>nz;g56CONr_SwstF=g1GNDWM8ING zO9Gl!zPl};5Cb6)n;m{wKO!N97!pI9)I@_83u?6N++$|iF1zi{+&i?I-efaB_I=NJ z=FZ$R_a4F+A2d?FD^C{{lOb{e&Lu{!9ghh;0QImXd#-Cc)jpCOz5%&>_Dz=6R{}y1 zj1mCZ3V>b^4ufGDM#f>$R;&jV6al>#VO2h< zYjbo2d}~C_f^?>|fL2-P4JO{8o#lp`VQkq6WM(-QKH3J^T(50+Aer7YT4V1HH4Oud zmxZ1I@g6_X>4|cP1uv&qtfghZuf8gZT|l1=w8r)(2TB37OG*4stHal7&CZ2bwFQ(n zIR#KQtOJ|J{oE())g2gb6egFT6hJE+dY!?W{6rPC^`L3@4zuu=UqIH?`Uy4gKGF&! z8rwW*OaMAx2-(-+rwF^jIq%`uCgkQ-&dhSxkNTj5E<R(QW99u6G@_$i$L;`!G=b4xv? zd}tTs{vDuc_d(Qt;ArK??}Lwjs*!>Y1){NeLjZ%908CK1>9H`x!YY*v+}Z@$)&yjY zgYn6+fmyf$`SvpK4`)>V%YmplF#+gonFJ~4pQhXmQL`1u$W$e`3JAd1x(B%BHpjzX z#UQt=R{JGCVsF))cQ76a%>(lRmCJ^s=`&QaevrW#oR|ZnA(|-S&ZDkb0zUV>cO0Vm zftJ|80l?r3VC?X6(B!EQ>$hvcIid?cgWHb+_sjxKnV#a~Bl{tDJ8Qsw5Echo%#R#E zD;!+Oz(!B~+)~(!V>AYzJq@|$RRtfaji~vaHlSF(4s?HLH29ntR>V6NAqg-ZQ9oj@ zqI@mXDnKMZVx2|u{{tp15}h(5Ua0{UJ$fyZHO!;)4svptaY{`%_`BB$O_W!{-ZhWL zkbAa)5AX8|)fTRG{5h`@vn$YIE=&as z2NwhIEOcVU22jC6BZA~3`yh93Q^lwZL`|nI``d0^eHdS!<|GPV3y|WzXx!^T> z>9`e?U{s|40x~K5I9{|RJpcdz07*qoM6N<$ Eg43}^wEzGB literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/search.png b/OrangeSale_End/app/src/main/res/drawable/search.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b5ac0dbdcef88a2050139005fe5704a4ae21fe GIT binary patch literal 1299 zcmV+u1?>8XP)w$0$^CL1&DqI@L}Le zzjajK(0;v(xCZP*LRDbi0AMJ9eIT3!qlpN=02E-BV~E9ANnB3AL;yc9I2^R%@#}&2 z0AC0j&oMzk+d%Y`7H#}AS23==cVI&LH!$#oiea#EJ@Bhw$22wqSPbI#v}k;Bp{sXl zjhT?xmx>pdrLD2|7m}L-J7MEl5Z+gkYBBrv>_lg2We~~YF&)rZMCI0!Fa#)suAR0%U@)NsHRm zUb`kIV$28QGiKBWWA=;L3288cRuXuHGFc#M-`Q&Fbp%=g#wiph%Q@*UA@E@kO8tUw z>Axo4oVT5vu<;fMwJhE8;M#AFrh^?bw3;9%kf6;{@=}2AQicQbCm98m^nYoVJx_hR zU>YAV@Fa*9<}+qWJtty(3&yldiNt{6n~q#kA2a1m1ra~bOc4M{FdhZLBIeD3SbUpf z8f!Gmu1$d>`b*5TUJ$J=i8e0Fzhl$*6O6V@Q(atk-%vMMbXK!$a!lg{fUyA22IwOK ze&eF#L)z+tt*Y?3S3)C(tZO`-T5v?4OiV{roMtsX<^{e2;784}r)35@rm+gZG6L5z zQw;mc1am@cCC~1%&H50CsDZJ;w{&1fWE-?3=qnZ0DJ9C(MWPY`svuw%7tZ}PXfkarp!zKE-`@f8n&gJ%9C(czZ|GH_1S8k8pT@25h z;FA0ffV%wm5a=DZQy$1RQfoLgiUibyA*ui!os#`UB2`Pl8;-ZU!NkY%E#MkiyWwjA zq>a`I@KJ&|#LT52OaU-1V@F$R_a5Iie?sY(Q%3}DYPp=m-~V)Qv5%4sO)U#@!E>Ic zW9mV>CgaktDXK+r}6@cxv_C!}krkvAF*|!vi9{`&`l&WTdkZeVEV1 zXg~Q99UcDWT&?nX)uc1}s6nNfi_CTI1%bVck~zO~;p9ImZw-$0g8%1W1uO*KC*VTh zeFpY|_bE6R{P&i&O??jT4X$3Z{|h(`9~10}EIH1@F_$x#yhk z&bi?QEb5+L#uClcOY47@0CC}xk5 zc-%E4a7zS-h1lr>xCw9ukcI{4KSSY!5WOVoJwV4a3Stx#>amF)P=>L|z{M7{6d^K@1RCI_8Jcz2<2>6X2nP;=SY zn$f8Po2HiQgyQxI3Od#Ve7}`^LP0JAyylqUO{EA}Xg_4x-w=3NL~Bn+8^2txQ}Bzc z0jyieuK?Lbkv5Nre(;JzT`CH?Wq$~utL#v_cL!kDbu83gN=F(m76Ms+%5J2}WTzsV zuNB&_>z{Z|H0?WgPi67!RHrez;)@>`xcXo=qq>wxi+e8%DRd!a8o6ix(k**Gh>%o6#Qhw(GejNw|&D;AL{#pil2Ec3c zGMNCF0r1HDtBg3&rfo&py|{5h3#@Bps6X){HC_;4lp^Dz$&cwsvkS0f)x{FWggod9 zHL&%z86I<=LsoJtAbkYF6xp4MHVv+bQasTnimf1?atn|GUSZwIH(J>>UeS-B5r-IPN>T# zmwi--?y8Z?&Ed>k_GX#sB#V0GrPE@kTeO@DsQO&V)CcShlEKrO!d4+(Ur@Q^n8ph$ z(#o=IY}9F}b2v`%5MSZ#YrovqCH_RWkLMy$8f;*S2WM zT#@kkK>+6*)7VigJyw%@sZ(~7aGmAbqF~aA8XGGEPL2@r>YCbOHTrQygFv2%MMfVz zWw&Yq0qbe3?+p TO|NVS00000NkvXXu0mjfhY}6P literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/sex.png b/OrangeSale_End/app/src/main/res/drawable/sex.png new file mode 100644 index 0000000000000000000000000000000000000000..acb8197caace6c0653da7f1ea3a90af3eac20179 GIT binary patch literal 1509 zcmVfmCLe z(i0-0qM`_b%)nljrlo%r6}^jyGTlsPz7uDdk=b>2=bPQ_z|699f9H39-}%lx_uNaU zV|{&n2eq`c{8JvPb9$jrIERQ%12CJ2rmN~l05+=X=b23A&DPe|Kk9K(J%IOq zv#PFR=H_}>8;_!BIT0-daNscbFIBbEIrrRfoOQ)TQFLt_$D7;R+rO4CNa| zQI3c@%Hs=}`N>+?F%jpzU!3=J_kM+{-lM8FI_F+&NL+V!_uM#+E%cu<^9|L`xm+&Y)YSA3fb_U= z%264A#1wlMRIMui!^ ztE=naR4Qc!`E_Q#Dv>zv{Q^~e3c$FsLu@$@;6Y|yX213I^&P%<@7|vP{LajWjzpaI z{!~@{48Wu5bo#zRp2&(SnmOmaw;U)%NL61TqMKB8D-j(I;E?L%7m;rO9MkAZ zt*VcA19%vKm80pE`e#LaKXD>*BY+pm&S9}w+?YzG-T|<#SS)s?QYkB#R?AlJ+O;d3 zIC0|3s(J|#nNRP|ojbR8c6RPa8buMYe7l*5&JDxxLlLpLz|3=o5+?vUnEC0huC9wK z;>jvl_=*bplWeJ5ZoQd@iPES zU=mx`-`{_EE|=R=3oIhm?MwkMV4+p8b?aOdMVAuM+xBz-j!L3vFouX`gkiX)@_SED z&r!u<@l60H6VduG3@@t1TT`5f%p;;}RCNXsoujJhk%+4JsOqoIxv5bUS;t}z`%ro8 zYi2%fDDGN0SJ{qAK18%bRma=@JQ{%j{snMAmEgOab2itIHb9(+{05*>uN;7v0n95e z^-*doxo-!sK91w3v)OE^Sx6+#d%s#$ZwK%rfGe5VRvbjc3goHvh!T#kV&=ONVo{2m z_x?IneF?xX%xs0WWchr4N)QAMogapc1kr{t3}+`6m&@fQHZ?U_lq@kXWajs(#GM}m z!M^{Kk`9BjE$|Bf+n9MlJwD3k^A!QFG4s{c4kBW&U}Zg$5sd%H%tzMqqbQ1&*wR+j zUgw;hn)aE9R65mqJdKRc&tx*2YPIEqNk~K<2e4RG7dz+HR0F*CR^vWsWac{9znOV* zQa%&+Dgf)F<}f_Ei%dr6_B3Wx#lM)Vxi{to;Y&QE=QZ9?!v8wvDb)(L? znh_EaJMJazL~72hs%xBci<1f~y;l1Y5i7vg0jOEQySuyXD#7a0NNoo*TWi#imBd-M zKty)WVIAmDt$T;6<{DxzgM%PAyREIw4nhstJ|QCV0DybVTUD=d&eLQ`5K(IxWbO0&aU5^ky?ghTNs}f`i{p4^9LFbA zUBV1Cr`;^A48zdQyCb&!USU3;pOs3bysFL`hINmswy3JzubmPE!6}A~<9I88t=VjL zOlo7z{IX_X{P^+L6Vd7Rv4{mh@Pn$_&E&`Fbo$+;OP5+J^}pJGUSnJtr>m4M00000 LNkvXXu0mjfbOPYO literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/shoppingcart.png b/OrangeSale_End/app/src/main/res/drawable/shoppingcart.png new file mode 100644 index 0000000000000000000000000000000000000000..76c06deb2ed9ec72af4b344e566c37590fb35144 GIT binary patch literal 1155 zcmV-}1bq96P)B7k%u8NqAP+9@^5%T!{O)<@ z-nsV?`|#pEWX1vXUcI&TOsC4_$5Q0{is#M4_nUhK5GPIx+5sES%&t2Su7aAU_+EXm zF@r}RUx?#8Db3BAzHs5rR5m+GV@9FqevqRSCS2gO)m=-a(qBnI^y_!qiI}aFCk6AN zfU}K4@l?Ogld|u+dZa6rR@pQP1wSc>e*JcZ&QvOM07B5dYGtaPwbeRML#gEIT>S>z z4g0Rp=}Pc7fx}w_YXYhQtO}@7sEVi(s!F_0vSxr<6h#XjP+PIKhRMmLor3oS?SdHL zSxI>Uc^Q)vkf)Rfkpqywr44t1vaJCERYBJY)Laux%?;98yI@Gy|8d3lf7{Gg&(MuR zair%AmCJ_)tj$G(sSz(SIVDK4T zK=(Yl4#P{AMzUep8l)k|MVx``8)0$c^z94XF@~*HuG=fqdj;*b0CB4!lg(aU9vk~} zD}5rFc1{V!hIX)Fp}6JSP6T=yIWh71o@P33S@fz)B-6bHk876*bS5aD7QOMf zP^1<^zxdRimdCz?j+^0Lb%~TmufgNm?F9N7r9)w{l#Lrat}ZroCJ3&8I0jxd6Rzc|&Y?_tBVdPelf7XciF z8lH?XXu^ZLlSXQKkTH-86Z*!*6xiO}940UzsRpvKOFRQ~$1>ms$bZ^Cspw+g zCl@D9S3Z5jzzmU)C-O*FgRX;NRHLZD*O;;2Z?E zSJ=2_Q_qEdX(kSMCJ3GZajrvK2T=+A;uEnZVq27*oxNAGKmX5(QHpl5@RAUx@+uv0J3KGYbW z_&zo?&YvI3+%a?ofcyS2w87CP$NXLg;C70jdA-Aa+0}Enw0t*CoN)b(Z=hG_&Mq4S zFN=74P2)bir(A!#b6!{fE*V2ZKeV8eF^wo#b;YAat|*XdXg35yP(6Hf5D`-4m$WO|zn{0H;p V6inAsQ~Ce^002ovPDHLkV1ht8FP8uS literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/shuiguo.png b/OrangeSale_End/app/src/main/res/drawable/shuiguo.png new file mode 100644 index 0000000000000000000000000000000000000000..d3161376511a914f0d6cd13ef5cd06cedd9d6a5a GIT binary patch literal 1212 zcmV;t1Vj6YP)1mm|F*YD-Knjz|=Cblp%;ExUVEkByCYZ3qY{ezYNalsv5-xOJfFEc~ zOuSH&!7hx{T|lCkIW9K08JGjzN}&}d0rj*~luQ^KFzClQk10@6DQ!>Np^M?%o%25b z|MPqQ?|X9IL%7Q?y36^n3K;JS{XY_Htu}IHljT2|jH;%s)y9d+CQDMh%N2`WE#OdP zlVx)(4dT_P0&J-^cI|7jJRWbeSo9GAKeH4c6dm%bvR>>b;)VkSoddBnid7R9u-Q^v zOGNMc&6)Y4$=F#OYqMB%VFArOCEo$qxd;gSZYtR{~y0w`0^tVxByM+r#P zk^CezHvAC|i0xShua`IaYP9*%x2h8incji}6Bhy=KsUO!3b#U^Vq97%!)aHQpY#(LNlAuVd?c`mEXy}9+rRLDd8*Vd zW${pUf->VhqA*YG_h`68Bd(P ze%X^aArFrw=TmZOF^_?f2%umo2od&+2FFRYfL{T4&Q~mghs%UNv4Py#k@jR<;{rdW z-R?ZA3eZ;+un(toP=2Yu90gQQk%uCyMDTS1;*+ZQPM#t4? zC#E{VaK=2Kf6(iq9M&k4T1A|MPM*a0nkgz8oQxJI=qnSi!Ak4zNP;T~xe6F>x~mDs ao8aFMAE`Ktk!Mu^0000 + + + + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/res/drawable/sure_apssword.png b/OrangeSale_End/app/src/main/res/drawable/sure_apssword.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7cee9bcb90d569021e5cb4e81dc999fffed57a GIT binary patch literal 799 zcmV+)1K|9LP)50008!Nkl%cOxuv3|CMvP= zfe#48!Uq-x3?jY))`CKsh;a9gY`6;{X74$BlSn|fJ!fXV^Pkz7IfNDT(F$Tg-7q53 zNJLEl_NeMUB6DtP4g&ZUX2`3#h824Gj%l`F#FI7N|@x#bR-%<2Yjg z)&sbqs$-7hy!AY9G7Q6}N~N-ki1q_G3!tp3=X~EEu?4b*>F@7fm&@h80r(D}i<$4H z1rd=G0ImX9OGM3{=e@Q8vW5|naRANCyxPWbyhlWS0+^nenb}Y%6v`$$E0`b%ibUiC zILgcqO-_?_5jg_j0e~T9?lIX}!HCFLBKqKY-a(VY`RidAK2gv`U*tT161wy5e$0B4x_ z_M%{tlQFXqyvE<9Hp&_U{D(=Cctt29B60IOrK&psv;laQHF@XkpS35VcdB}and7GV z$G2e4#2^5kFCw_fv~?k%G?;q;c2|3lb;UIiR4a1avnH7N`2788Fw+2@GV@7OfUN5x zG78`TGq16Qv8oHPvmgkLRaKnuegD1*uGSBcri>L#;y3}YDQwFEQ!Ew_Igaxv0Z4*W zDwV^%y}gg?DHU}qv(O1e#Hi@9C{rqxHkHfe&j2nk^K}t958zrZm)o4r=fC__W#V8W zG7O-jS`g#HHp0xQgL*aLXGe;K8gJd#l$<;Wf({}YR@F|M;d@!GDS;Un7-(}{cRY%s z_P)M8W6St=V5+$@&dlwmg178BV*@aEPd(QZckCR1i_AQcHDHbLGj6_D;@2iKw_5e4 zBq;&>0+4wKuL0izU{zYOr_R8GgM-_nD9RI2<5DT3s#C7(mU?=6-dhh>OBFn;ALHvF dtHZ_Y{|zt=$ul4FLf!xX002ovPDHLkV1iDBa5w+} literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/tab_menu_text.xml b/OrangeSale_End/app/src/main/res/drawable/tab_menu_text.xml new file mode 100644 index 0000000..fb06945 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/drawable/tab_menu_text.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/res/drawable/time.png b/OrangeSale_End/app/src/main/res/drawable/time.png new file mode 100644 index 0000000000000000000000000000000000000000..8a672eb7cb0fb490e90d02ce04eacf9f70725337 GIT binary patch literal 2219 zcmV;c2vqlpP)h8GxT}mqj3+1yMxA3pAdHM>r}Gt7sV$O+3=XE5@kJq-r##>KNsRXd-c{o1F8Ed46;=qjGYaPXf{I96gO(8i{uY=@KwmFQu!%)sM<3yLE$(y&~N5wW%yZZG}5+ z`q}78NtiNN6g1_aNx)>i%yQOm){Y8(KZ=*NTK2?@rTf%HE+L0q-$aYLhaB(qo{gRm z)R>HPR)&cC&Kx)eRL;pwLZZG9E#w8~(A$%3z^5 z1yl!<^)e6W?UoKO84YN(UQMbNUpzx@`dj>TDUT_M8a6Jk0q++;6G+d53})a zMT#(|fJxahN+USs30&5$&Gbu{f={cqHtHpp^^_c4$HmMH#*eJylOBg)^Uw41rL#Qq@C13s4-pw| zByHm|FqXjMEg)TNw0&j*=C)XKxIM;*)eeBO{Nl>H^geDWO+BExjgrWJtCOhxMB3=# zL18|nCqCx(rK@;>O6UM7>?J{(^YaaV75qcNF@LU_fmu9CCkyMQE>u8h3i9S== zDYyG8eMPA%u#`AOFKZ>}thL)|?{Qk`!S>Wj@CpJ$iDQ3xj|ELIsH>^E9c%||D+S*> zF#aU`WddkSkoY5PPPAl@>NMgO4rbJvGd4a)xA-H6t3HleHAK`4EP%;+Sq`+eC#cvm zfYb#p4q@I2a6JTe0WE+Bz)}-@`Uqlk;7BCA{w-{r00ylMVDR%g=Iyt8)72fj)ds>E z@F$?FJ)mLVL{g>|g5jK5bh!)EY2idaC=7&8Zo;8Z=%HF?LCz3R+h}At{H+c6)xgSa zkR1*?huZ)~PcaeyVGceWZ5OVjNMYf!22|Zf+5>w3l1<#h6k_^c08^2X*N(!G zLGU0P0$V~xgXNfq5Z4;~fa7;yPav$>Vip!phMo;Ys!rotAtd~v6Ek-dT8FintgQi? z+%*?(=)>mK{h@Y0WQ9OkOZd$>sPKWb$?&Q-Yy#d-gYSpHfq_pl^Hoa z+|iiJtcwP1ADgn7AH1N&%M{!+vG{{ivPFE)a6VqTRq2f;MH)>Xy~hgn=p4x04-Vt(|7DlT1PK%1!a+GG`z4f zLhQ3vcG&VKXUjh!SZMF@(e=~BSF9j0zNcAa%!j(;;58Jy22gOLoHth-rAiyjz=@0L z96Q}3C@Uq0?5Q#bz}07Eh*3u-lJ52qjxFiNk@N)1aKY81yp>WxMU9T3Q|9A8!e#kf z0z1o|Q$Tev`J9}LM4fhQK0UPu=~FnLR=*m=+aKi7K6(ayUR+3>blf&ICwYwIUm?)AL#a#9FNYyo&ri(uSAM>o6>iEaLy**Wl?TuVr!Fd3eW0GtY z8q%#VG~L;GltFtZie8RVFEBBG9qtP)`hrW+#7<0Py1T{tzhuyvlet+^7XSg?I{c|6 tKx!z}X?fsRN$KJk;kX-hmohu~{{Y=33sy2ehD!hd002ovPDHLkV1g6pIpzQW literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/user.png b/OrangeSale_End/app/src/main/res/drawable/user.png new file mode 100644 index 0000000000000000000000000000000000000000..47d83629275e35c23b93983c4a11e55c3abc515d GIT binary patch literal 2173 zcmV-@2!i*CP)% z4UAk>75>ibx~8dMqM)KiKoQfT!2p3mMIlO5sHor%LX4ue#2RDQ?mc&RG3nIUuJ_#8 zU4H@wK`l{)fS?70K>TSHwG}X0l`4_?6C)PT7`3~)%)Ddn`eyR>?QG}WH`CoFy~!k# znRCu}zWaaAIfNsu(GkWMi$-{CZ0x+gzP^(Hyqt(mQq_RHPgVC3(Y~pvsU6j7^*@Jt z01g@9$;rv%>h<~>0OzXe#Q>gNfXr>G`n`dHf$f8XgO3-Gj~3}U;Xrg|X67m)S_|NX z(H{L@;V-Is{lLJ$b-gCuQ^L-<^+a@a0it^WBmhq7&>?~N7HjRbB|C1OTF(fJ$d>?o zpp9ey0I)+8=So=SGNVYt|7W`f7iFzb(7|y!X!oP*c_SX6>r# zsI_*i8`5177LoS@_)5;H&DPp#H%>KmopV(p+LW_(B{Od;Yriz%TCH|^k|Yo1Ms|%c z=G$eRX{YDCzerW@&iNgzoi$e5ahl0*Qo0HjPB*kd~+FFMRi2vJpi%< zOLcPel%ANFSXQss{|w+c!C4}@&lvNjqK%E^;)eWhge=+mXF*c(Kd+%pd^%*HhjhRghV7Ia& zvIW3sI;EdB#tg*Rj3z81e+BUT6y$zpeq#(^x3b>*8&tLVRNT+ZFNm>OhVUZ*Rs;}L z-EXap0*rC4ovd^2ZX&uU{ckTbuZ*!-hVTObRyRS2=%vP(-^YM zh=jLyc!SS2RXy8U8y*#fTQuQdSwzAmK3wLT?X}GO!@{T~1V!Xr06)m6{)U-n_mY@a zmT-tS-<1KnotfVe0~{+WBHsYedIJ;DurbEP+9^difOzlkRMod+0HZJRMV%E929PE9 z;MCOAIn`>lUercYt~6m0$&WHBmC6}ILqiY8I&m=h1wu*hHpbjq2B$RPbS=*b^Mv0T zjmC*1BO`w(<4j&>Y;5d=zP`Tvk@rPrzN)PKt_Y{3Lm=<;oC94&7E` zk_~!Y6HcAeyc0xpm#T)*m=kgAkbA3wR#XoTzH*#O?zrc=Jj%$IcPtRnySjBq;AAuBMv5HJz_8^9h_4WERF zR;ubLnX6(u)lW0?ND(qcWO_YMt5x-aQ0f3+w(KF@F!zPBhfwm+Xf$>X z4-W^j^IDo@Uu~@ox2>*PSA=V|+VQIT`R4QuS^K`ezAZyTLm}?fb<0!}G!tq!)$8@a z(b3T-%Nj3D*n7V=96N1*!+Z6XFfGf5Z@u?nx4ukOF9Q%#r`a|YvL4pj8_ST6ChVMB zQK?iusj5XD3n5Ydn5sTjsZ<`VR4RKnZru22*3obzB}uX(Ns^O^=w$%Hr(@!qh;B`i zq-w1V- z_4{A5&Rs!7Asy1n@)aO+Fp=G1kFeH;Saf)Y zPXHLqDyZtc)6>&ys?};JlIhqA6ZYP3Q`Pt7EVjKfJLfJYqPGGF^;ySs^kS~SQvkx# zbGx%@^=onRf zZqOs5zp3g|s`@w){kqX;JW}MPl~(nI99OFm(S$K(V<&$)5*CpU1DI1MRjE`i9U2-6 zcjqN*wOZ|xBuQ@1Ik29YzfgLFH*MN<^z!A)Ly)W$J0hY%W6WokjA;hgd%r%h?xig7qcgE=r%>3DZvhAw|IkX6_bnCSfSaqy+|JBz>omflMmdz@ zhy3f#Ue!J?RwtyDw+s5;@$s-&jxH9?5l8rcSA1-0(oqx=00000NkvXXu0mjfzj!Im literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/user_account.png b/OrangeSale_End/app/src/main/res/drawable/user_account.png new file mode 100644 index 0000000000000000000000000000000000000000..e70142aef6c941e1cbd7a0b73cb636eaf598b665 GIT binary patch literal 1045 zcmV+w1nT>VP)OlMrbW68Wlw)p@P9uOm}uS&CZe8X7b$KnZ#V?)7*3azkAO; z=gb*lK4XVn$r9a+avLI*xuvSZ2;Xx_j&i^l4k{;s3}d6UNVpAnWYS*brwQ;a(=?8t z*>)1;C;fE&!LeiqA}zoW%3F{O%H~!KVEMP)jIuGaaSB__=Pzd~5n9 z9Oq}?B$ly0-`f0OGt~*&1gyg{2Id9zj7_@+_zI*8E7Ck$V=mZC-UV_RWG`0a%cC?A}e@b&U>13?=of|LZkvKvT9!{)n8S!`+BN3PUXI7p95Kr z=mz3OzyC+VvzV%4V`z30iSo|_-Fa;E0VI43SUNkB{ax)@H0ia3-C9c>NH?MfD2be< zT~aeP(WVhHsnw|L0Cn%Umu#e&E}0Pv!NHzoi`|C93ka1cV+el&BW|k)RG?HL?g<$t z#2dtoc0ca~FO9ALuD}WRfNUxt+D~ZwQ97=4>wxbF4mR!6fZHT=q1k>2pJIuQGtN4Y zI?x8-4=m$GUn;q%3@}Xlcc3a?Coz??_G7>&z!@xKji0JNxFyw%Y9p`(%lNdYpw~7D zuMsz1DrQ?89J8-S7zXLVifs2gMQ+|}6or+x(y zbe8ok3~Z)j;8^qOt-YRF*-659cY)wstNTj6T3ht=?r)D?(c#tke764q8UA!G0uacS P00000NkvXXu0mjfj0o`N literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/user_general.png b/OrangeSale_End/app/src/main/res/drawable/user_general.png new file mode 100644 index 0000000000000000000000000000000000000000..cf579477be3e1bb299522bba2a8bfc27fb1ef0c9 GIT binary patch literal 402 zcmV;D0d4+?P)T1>Z)AKXD*b39g)*r53M?X&D;=MB3EsVC^;DHkhleEIoF{rjJ9gvJ|eFHGDkbT=DYXe}B7u`Tgk=p*RM~zy9<_jG39KWU}j~=@bPuF_w{| whG4Zwj-kZp8MT<0P@;;O(V(VEFcM=30DI2tA7r+V#{d8T07*qoM6N<$f)V+|y8r+H literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/user_icon.png b/OrangeSale_End/app/src/main/res/drawable/user_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d5309b1e40b0dd814a99e7e4f33fdd00098705a2 GIT binary patch literal 5995 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 KlRg~8&& zy#Dr z?Y$gwW~*0rn$>a;)D-xdiK?J(IRxs!t%03*S_codHj9CGH%fPomTO+V=CGQehU2zG zH3tCK3)@r#y!QF&3*b4%A)-=v_@u%j;JknJV>6~i9EezQF{T(eUcuC2hQRN;8_ux{ z))u~F=GrE;Gp`QLr!=m9AAoE%gS8u_#Ih{$C^2&}IuW%pR?v9x*p>{lwv>yqwu$}B zlj2BeRKE6i#XAqnzZS2pJ7oz{A}le-IwHaIYVdHK?09PP@?ac-I=L`J3Zzb?M@GuG za>_INGiqutPG+?_&{q3UF9o$kH!U4%G))>~)zoN$?yQ)|a*5g|ZM;4B06Z9@ z#9Lx9l|mwAW(a9gl6vcd)`zlfk!=(K(ZoWOR=m+R(!I>?oX-rqOBb@cu&LSy-M86% z^Zm{_-*?U#!d3dwRdVq^{I9Ki)=T}k$!j?pC|MaO_+~%+IS|neP{glPx9O*BM!hUp z)2&Jp+{%CpK-td7G&b8ae4`8|zkd#(A=t8+8mqrrY7k4pZX>jZh~An@#60y*Xym$8 zY^`)2Cqx0h7ll|O0~agg>?LPVad0nr)weU@8DUMg?tIbrd-9~615j_KfTek;~#%DZEUUfsNM4B1?7Qn3$%U;tL8NM4NO#q$b zRqL~YJ*L&b;P(Nv81B5*c#UsDly9S^>K~GmJ=Pn#Sz-E`!Dmf({(9~hXn~++5O!0Y z`fgV66TQ}*l5qmyTq3@&XVzZ{qSpW%Ca?O)g61-}hmf&- zFX%aXYRj7$_pzrp`XIA?BnHS<2lw=a%h^UBfQrP+Tcdv*ci9(0WiqVzuPNd|<@(YI zv7)?yZM+&D>t7|Uhvy-}C?IO6u4*h9=L0?+1mFBV*7RTtglL{SqnO)?=$<$_%1rGf zcrO_17tg?D&m7tlo-8HsR%g3`&>KJ9DzFIWj)83u^cldvFE~Jw@i;I_3TpJ4ys_Hu z=@l}!xSZLpV4{*n>&K!y?2CoPGI{|l&j2(6JNG;1q~flV<$&x1V*!2{#^eGxw!HiW zKqWDl_8IQnUFqtS>HkzXY`Ziz<0N=tP5HOWcx*fUP52vN*)opH>QmzFwM?)Vp_fY@<002ovPDHLkV1ns25UT(H literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/xigua.png b/OrangeSale_End/app/src/main/res/drawable/xigua.png new file mode 100644 index 0000000000000000000000000000000000000000..20275c155e9937cc895a59708e3e81e05806f53f GIT binary patch literal 2622 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 literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/xiguap.png b/OrangeSale_End/app/src/main/res/drawable/xiguap.png new file mode 100644 index 0000000000000000000000000000000000000000..b76071235dd6bcb1131c7053f0d198ec2b696ef6 GIT binary patch literal 6605 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 LNkvXXu0mjfi^13> literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/youzi.png b/OrangeSale_End/app/src/main/res/drawable/youzi.png new file mode 100644 index 0000000000000000000000000000000000000000..53df9597b63d8e0f6e14d1d9703a308cb209f24e GIT binary patch literal 1798 zcmV+h2l@DkP)Gjf5y&T~1*QQ~>1Y!!DV2ofRA`i0Sc>boluI!!(qd*hxs*08leSpd zl%?W6W+iToj;Z64OA3f7B&jSuk&wp|-fh179-1t^d*8w|jpr|T-}%ltzkAMizVCil z;(sF2|Ad2^Af9A0W@C)WnsH@PWo~)2DK=hbKUO2Z{ZzbC}&|h|U|ZXM2-)%MrQ4 zad&V+SW{h40On4iO3c+I_HBjpaziVQU5b-T`t@>U^=6;|SgjVyuON{tdYFwmdAT*? z%oEn-XK0yzCqZ4CH5l9F0~e3kvdVtExVqqWU?yoG&P@o!y- z!DNbRD(P=A1RGiy9kvtY<@WsY>MMB_m#VCGvs@+50DkhMy!@IG;2|IZm;?j>Q-I$9 z@xDQ;{FOYbXk@U0)&12turKGT10&x%Y;I|#SC_Ql!v9KQjws;eG z?YaH{dD>uL?y@B~o=kqKjbwO;vXV5Kn4PZIZeU}|5LyGnw5$Pl(7py47aYu(l04c= zx){Ce$VF#(3dfbTATCD1bd!Z7;9hqDsvY+w$Skv&=SmBd`UlAZ@&zPa6i986 z^!FfFZANw+QHC9m6lft87^F7X8|nE9WT7E|LFI*nXb5VD(LzsP8StEjdG)IL0%Sfg z!F~ZGDFRs*``ERND1ZL@ch{JNSTqG0hGwJ#zqmS?$2{JG%mO9~2qivU3}Ri>=_pc! zv(&`;aFte#jwCU~(2T!;0j_T55sWt=Vo!Lt2Errn*Cy>TS~%@ZiFpdrPn?6C5N1~< zj?^uoI;pWBNtSxEcJL6n_a!3EFJYcM6i+~+TZD6P_f~=ksZi-(=wH*7bRDmj z+mKPLShflsAddH%L^DWiH2dbyrgJZG@bFs9AeogmEyQNyY>O!JZ8k*4&uTHR38Yg8 z(vtf&nKC(D4wdxXkgNAz|8%eZRyzc)a=PwXb>qyS*-f9U8 z4|BDte|c)CV`&OTir`q5wdmgaFIPJp%ArzqR#a!iVqx0op`=ZHho+i>(-&k~?-{^pMU_>rl*|+tR}|b9ODmu=a7c|gRUoY+ST}YQ z$*;bo#-wj_T1Js;y~tePV>K34fryjE(LJD)RXw7dr9`>7+Nc`G?sSr#=IG|_56eRATgn#94|VhysG+6T*v%|3@%zs{>u}UR{}LLx>rhwXLyx^FSm)#-iWek3-opF z@6Ca_{k~Q#ZfOUmure@^{-20yZA4kI8d66p4n;xNJyL50N$JP_E^)-AjcY^-;Ipq_ z{Hu!3?!X>*-rZ)T-xHh~mP*^ld%H8`+wl+Q!rN07n^C|ich=p31ocWFdteF?L!NhM z%D3aGBdN+*LxC*QR*mKQK-vRifWaeD3CcQQs_fCNGI)mS!-5*O?sXz!u@x07cfYDG zCu)O;KJos{DddbEGb}M6aAcFQO;)&>z*oZE8t zv8ZMA?=L#IjiujA;=|b=b3$BnHj>O)fbG2*9JJYpSL?FA(t52`OS+uS9zUQ$p2m^G znevyd0|8q!-Q!+ zOHzNxJ;{pG`O2+|YH6rzP3oP9dF`47Z`tKkmM(deO__UH`K@ZZ9x1*t8Gg(p|9CcS zv>Ip#L>!^#SC$SBy6pHU$-qK-Cce$mFCh93tuEB*kD371i=12k1GlQ1alO`!_K}(G zqLB{n?$uAy_YTfE{$^?KR#1Mv;k2O@Uv<5?7%gP5MNih16cbO&;s?J6tD4w;FI7IXic`H*|qGuP8* z!TCapyLBd`?=!sKsuks)S-Lh$6G+Xp$_q?9caFhpH*ojr_2{#5U{DGS8UP)|SM&Nr zR)Wn(;*dk;>%iv9w?dzZM<6xcWf_Cr%AJnthOasGGNm><`5}>%_$=yr40#3O&%m_W oz6qlBiTPXqW=8z|gtglL2kTlMQDP6NJ^%m!07*qoM6N<$g5iyKc>n+a literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/drawable/youzip.png b/OrangeSale_End/app/src/main/res/drawable/youzip.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7d9663eccb9588d9a2c22e15fa7cbe9d46698e GIT binary patch literal 9547 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

0IMX11QJG3X_Xb}+xn=(RwmuK*1BVMW5o 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 literal 0 HcmV?d00001 diff --git a/OrangeSale_End/app/src/main/res/layout/activity_main.xml b/OrangeSale_End/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..0352b13 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/res/layout/cart_have_product.xml b/OrangeSale_End/app/src/main/res/layout/cart_have_product.xml new file mode 100644 index 0000000..b7362e4 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/layout/cart_have_product.xml @@ -0,0 +1,15 @@ + + + + + + + + \ No newline at end of file diff --git a/OrangeSale_End/app/src/main/res/layout/cart_no_product.xml b/OrangeSale_End/app/src/main/res/layout/cart_no_product.xml new file mode 100644 index 0000000..8781e18 --- /dev/null +++ b/OrangeSale_End/app/src/main/res/layout/cart_no_product.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + +