├── .gitignore
├── LICENSE
├── README.md
├── aat
├── compared.png
├── qrcode_1715829336053.png
└── 架构UI图.ai
├── app
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── just
│ │ └── machine
│ │ ├── App.kt
│ │ ├── api
│ │ ├── BaseApiService.kt
│ │ └── UserRepository.kt
│ │ ├── dao
│ │ ├── AppDatabase.kt
│ │ ├── Plant.kt
│ │ ├── PlantDao.kt
│ │ └── PlantRepository.kt
│ │ ├── di
│ │ ├── AppModule.kt
│ │ └── DatabaseModule.kt
│ │ ├── helper
│ │ ├── GlideApp.kt
│ │ ├── Net.kt
│ │ ├── UriConfig.kt
│ │ └── binding
│ │ │ └── Binding.java
│ │ ├── model
│ │ ├── Canstants.kt
│ │ ├── DataStoreHelper.kt
│ │ ├── LoginBean.kt
│ │ ├── LoginData.kt
│ │ ├── NewResponse.kt
│ │ ├── OrderListBean.kt
│ │ ├── OrderListData.kt
│ │ ├── OrdersShipmentsBean.kt
│ │ └── SharedPreferencesUtils.kt
│ │ ├── ui
│ │ ├── activity
│ │ │ ├── LoginActivity.kt
│ │ │ ├── MainActivity.kt
│ │ │ └── WelComeActivity.kt
│ │ ├── adapter
│ │ │ ├── GoodsAdapter.kt
│ │ │ └── OrderAdapter.kt
│ │ ├── dialog
│ │ │ ├── AllDialogFragment.kt
│ │ │ ├── LoadingDialogFragment.kt
│ │ │ └── OrderDetailsDialogFragment.kt
│ │ ├── fragment
│ │ │ ├── LoginFragment.kt
│ │ │ ├── MainFragment.kt
│ │ │ ├── MeFragment.kt
│ │ │ ├── NewFragment.kt
│ │ │ ├── OrderFragment.kt
│ │ │ └── SettingFragment.kt
│ │ └── viewmodel
│ │ │ └── MainViewModel.kt
│ │ └── workers
│ │ └── SeedDatabaseWorker.kt
│ └── res
│ ├── color
│ └── main_bottom_tab_color.xml
│ ├── drawable
│ ├── arrow_back.xml
│ ├── bg_input.xml
│ ├── check_click_yes.xml
│ ├── check_no.xml
│ ├── custom_checkbox_selector.xml
│ ├── ic_back.xml
│ ├── ic_home.xml
│ ├── ic_home_on.xml
│ ├── ic_launcher_background.xml
│ ├── ic_logo.xml
│ ├── ic_new.xml
│ ├── ic_new_on.xml
│ ├── ic_personal.xml
│ ├── ic_personal_on.xml
│ ├── main_home.xml
│ ├── main_new.xml
│ ├── main_personal.xml
│ ├── order.xml
│ ├── order_bg.xml
│ └── succeed_blue_btn.xml
│ ├── layout
│ ├── activity_login.xml
│ ├── activity_main.xml
│ ├── activity_organization.xml
│ ├── activity_succeed_prison.xml
│ ├── activity_web.xml
│ ├── activity_welcome.xml
│ ├── dialog_fragment_all.xml
│ ├── dialog_fragment_order_details.xml
│ ├── fragmelayout_succeed.xml
│ ├── fragment_dialog_loading.xml
│ ├── fragment_login.xml
│ ├── fragment_main.xml
│ ├── fragment_me.xml
│ ├── fragment_new.xml
│ ├── fragment_order.xml
│ ├── fragment_setting.xml
│ ├── item_goods.xml
│ ├── item_order.xml
│ ├── printer_list.xml
│ └── view_toolbar.xml
│ ├── menu
│ └── bottom_navigation_main.xml
│ ├── mipmap-xxxhdpi
│ └── logo.png
│ ├── navigation
│ ├── nav_login.xml
│ └── nav_main.xml
│ └── values
│ ├── colors.xml
│ ├── strings.xml
│ └── styles.xml
├── autosize
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ └── java
│ └── me
│ └── jessyan
│ └── autosize
│ ├── ActivityLifecycleCallbacksImpl.kt
│ ├── AutoAdaptStrategy.kt
│ ├── AutoSize.kt
│ ├── AutoSizeCompat.kt
│ ├── AutoSizeConfig.kt
│ ├── DefaultAutoAdaptStrategy.kt
│ ├── DisplayMetricsInfo.kt
│ ├── FragmentLifecycleCallbacksImpl.kt
│ ├── FragmentLifecycleCallbacksImplToAndroidx.kt
│ ├── InitProvider.kt
│ ├── WrapperAutoAdaptStrategy.kt
│ ├── external
│ ├── ExternalAdaptInfo.kt
│ └── ExternalAdaptManager.kt
│ ├── internal
│ ├── CancelAdapt.kt
│ └── CustomAdapt.kt
│ ├── onAdaptListener.kt
│ ├── unit
│ ├── Subunits.kt
│ └── UnitsManager.kt
│ └── utils
│ ├── AutoSizeLog.java
│ ├── AutoSizeUtils.java
│ ├── Preconditions.java
│ └── ScreenUtils.java
├── build.gradle
├── common
├── build.gradle
├── consumer-rules.pro
├── libs
│ └── log4j-1.2.13.jar
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ └── java
│ └── com
│ └── common
│ ├── BaseResponse.kt
│ ├── base
│ ├── BaseDataBingViewHolder.java
│ ├── BaseDialogFragment.kt
│ ├── BaseFrameLayout.kt
│ ├── BasePageAdapter.kt
│ ├── BaseRecyclerViewAdapter.kt
│ ├── CommonBaseActivity.kt
│ ├── CommonBaseFragment.kt
│ └── base.kt
│ ├── log
│ ├── LogCatAppender.java
│ ├── LogConfigurator.java
│ ├── MyDailyRollingFileAppender.java
│ └── ThinkerLogger.java
│ ├── network
│ ├── LogUtils.java
│ └── RequestObserver.kt
│ ├── throwe
│ ├── BaseResponseThrowable.kt
│ └── ThrowableHandler.kt
│ └── viewmodel
│ ├── BaseLifeViewModel.kt
│ ├── BaseViewModel.kt
│ ├── LiveDataEvent.kt
│ ├── SingleLiveEvent.kt
│ ├── StateView.kt
│ └── ViewEvent.kt
├── dependencies.gradle
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libview
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── com
│ │ └── justsafe
│ │ └── libview
│ │ ├── invite
│ │ ├── CrumbView.kt
│ │ └── KeyWordUtil.kt
│ │ ├── nav
│ │ ├── FragmentNavigatorHideShow.kt
│ │ └── NavHostFragmentHideShow.kt
│ │ ├── text
│ │ ├── MarqueeTextView.kt
│ │ ├── RequiredTextView.kt
│ │ └── SuperEditText.kt
│ │ └── util
│ │ ├── BaseUtil.kt
│ │ ├── DateUtils.kt
│ │ ├── InputFilterUtils.kt
│ │ └── SystemUtil.kt
│ └── res
│ ├── drawable-v24
│ ├── alert_bg.9.png
│ ├── elab_tab_bg.xml
│ ├── ic_launcher_foreground.xml
│ └── ic_loading.xml
│ ├── drawable-xxhdpi
│ ├── arrow.png
│ ├── ic_submit.xml
│ ├── public_waiting.png
│ └── succeed_bg.xml
│ ├── drawable-xxxhdpi
│ ├── btn_100.png
│ ├── btn_100_h.png
│ ├── btn_alpha50.png
│ ├── btn_close.png
│ ├── icon_arrow_right.png
│ ├── icon_back.png
│ ├── icon_organization.png
│ ├── icon_radio.png
│ ├── icon_radio_selected.png
│ ├── icon_search.png
│ └── img_head_smal.png
│ ├── drawable
│ ├── bg_search.xml
│ ├── bg_white.xml
│ ├── btn_100_bg.xml
│ ├── cv_bg_material.xml
│ ├── ic_back.xml
│ ├── ic_delete.xml
│ ├── ic_launcher_background.xml
│ ├── ic_user_img.xml
│ ├── org_selector.xml
│ ├── public_progress.xml
│ ├── super_edittext_bg.xml
│ └── super_edittext_cursor.xml
│ ├── layout
│ ├── activity_invite_people.xml
│ ├── crumb_item_layout.xml
│ ├── cv_layout_calendar_view.xml
│ ├── cv_week_bar.xml
│ ├── fragment_play_movie_view.xml
│ ├── fragment_search.xml
│ ├── item_search.xml
│ ├── item_type_org.xml
│ ├── item_type_staff.xml
│ ├── message_item.xml
│ ├── message_list_item.xml
│ ├── message_list_item2.xml
│ ├── search_layout.xml
│ ├── view_dialog.xml
│ ├── view_toolbar.xml
│ ├── wheel_dialog_base.xml
│ ├── wheel_dialog_title_bar.xml
│ └── wheel_fragment_dialog.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── mipmap-hdpi
│ ├── fragment_chat_play_video.png
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ ├── ic_launcher.png
│ ├── ic_launcher_round.png
│ └── trans_bg.png
│ ├── mipmap-xhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ ├── back.png
│ ├── clear.png
│ ├── date.png
│ ├── ic_launcher.png
│ ├── ic_launcher_round.png
│ └── search.png
│ ├── mipmap-xxxhdpi
│ ├── ic_launcher.png
│ └── ic_launcher_round.png
│ ├── values-night
│ ├── circleprgbar_attrs.xml
│ └── themes.xml
│ └── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── strings.xml
│ ├── style.xml
│ └── themes.xml
├── settings.gradle
└── xp460b
├── .cxx
└── Debug
│ ├── 1o3e4g18
│ └── x86
│ │ ├── .cmake
│ │ └── api
│ │ │ └── v1
│ │ │ ├── query
│ │ │ └── client-agp
│ │ │ │ ├── cache-v2
│ │ │ │ ├── cmakeFiles-v1
│ │ │ │ └── codemodel-v2
│ │ │ └── reply
│ │ │ ├── cache-v2-fe0f62849f987ff42220.json
│ │ │ ├── cmakeFiles-v1-a0390a5de1b95f436d6c.json
│ │ │ ├── codemodel-v2-819c4144758e644b6a21.json
│ │ │ ├── index-2024-03-01T07-28-20-0231.json
│ │ │ └── target-xp460b-Debug-76e6cf918218d064ba15.json
│ │ ├── .ninja_deps
│ │ ├── .ninja_log
│ │ ├── CMakeCache.txt
│ │ ├── CMakeFiles
│ │ ├── 3.18.1-g262b901
│ │ │ ├── CMakeCCompiler.cmake
│ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ └── CMakeSystem.cmake
│ │ ├── TargetDirectories.txt
│ │ ├── cmake.check_cache
│ │ └── rules.ninja
│ │ ├── android_gradle_build.json
│ │ ├── build.ninja
│ │ ├── cmake_install.cmake
│ │ ├── compile_commands.json
│ │ ├── compile_commands.json.bin
│ │ ├── metadata_generation_command.txt
│ │ └── prefab_config.json
│ └── 2z4w301x
│ ├── arm64-v8a
│ ├── .cmake
│ │ └── api
│ │ │ └── v1
│ │ │ ├── query
│ │ │ └── client-agp
│ │ │ │ ├── cache-v2
│ │ │ │ ├── cmakeFiles-v1
│ │ │ │ └── codemodel-v2
│ │ │ └── reply
│ │ │ ├── cache-v2-07f7fceb6942dd782c98.json
│ │ │ ├── cmakeFiles-v1-fffc0c383048d827523f.json
│ │ │ ├── codemodel-v2-7bbaf92080a5aa935bac.json
│ │ │ ├── index-2024-08-02T09-04-01-0323.json
│ │ │ └── target-xp460b-Debug-fb7cdc1d28f5653a7391.json
│ ├── .ninja_deps
│ ├── .ninja_log
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ │ ├── 3.18.1-g262b901
│ │ │ ├── CMakeCCompiler.cmake
│ │ │ ├── CMakeCXXCompiler.cmake
│ │ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ │ └── CMakeSystem.cmake
│ │ ├── TargetDirectories.txt
│ │ ├── cmake.check_cache
│ │ ├── rules.ninja
│ │ └── xp460b.dir
│ │ │ └── xp460b.cpp.o
│ ├── android_gradle_build.json
│ ├── android_gradle_build_command_xp460b_arm64-v8a.txt
│ ├── android_gradle_build_stderr_xp460b_arm64-v8a.txt
│ ├── android_gradle_build_stdout_xp460b_arm64-v8a.txt
│ ├── build.ninja
│ ├── cmake_install.cmake
│ ├── compile_commands.json
│ ├── compile_commands.json.bin
│ ├── metadata_generation_command.txt
│ └── prefab_config.json
│ └── x86
│ ├── .cmake
│ └── api
│ │ └── v1
│ │ ├── query
│ │ └── client-agp
│ │ │ ├── cache-v2
│ │ │ ├── cmakeFiles-v1
│ │ │ └── codemodel-v2
│ │ └── reply
│ │ ├── cache-v2-3d026f07d75375047360.json
│ │ ├── cmakeFiles-v1-5d238ced76e207bbdf0a.json
│ │ ├── codemodel-v2-285482eff219e552c3f3.json
│ │ ├── index-2024-08-02T09-03-49-0182.json
│ │ └── target-xp460b-Debug-12387b5d59e21718b7ef.json
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ ├── 3.18.1-g262b901
│ │ ├── CMakeCCompiler.cmake
│ │ ├── CMakeCXXCompiler.cmake
│ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ └── CMakeSystem.cmake
│ ├── TargetDirectories.txt
│ ├── cmake.check_cache
│ └── rules.ninja
│ ├── android_gradle_build.json
│ ├── build.ninja
│ ├── cmake_install.cmake
│ ├── compile_commands.json
│ ├── compile_commands.json.bin
│ ├── metadata_generation_command.txt
│ └── prefab_config.json
├── .gitignore
├── build.gradle
├── consumer-rules.pro
├── libs
└── posprinterconnectandsendsdk_1.1.13.jar
├── proguard-rules.pro
└── src
└── main
├── AndroidManifest.xml
├── cpp
├── CMakeLists.txt
└── xp460b.cpp
├── java
└── com
│ └── example
│ └── xp460b
│ ├── Conts.java
│ ├── MainActivity.java
│ ├── P76Activity.java
│ ├── PictureHelper.java
│ └── PosActivity.java
└── res
├── drawable-mdpi
└── ic_launcher.png
├── layout
├── activity_main.xml
├── p76_activity.xml
├── pos_activity.xml
├── printer_list.xml
└── usb_link.xml
└── values
├── strings.xml
└── styles.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the ART/Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 | out/
15 |
16 | # Gradle files
17 | .gradle/
18 | build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Log Files
27 | *.log
28 |
29 | # Android Studio Navigation editor temp files
30 | .navigation/
31 |
32 | # Android Studio captures folder
33 | captures/
34 |
35 | # ShareSDK临时生成的文件夹
36 | tmpmob/
37 |
38 | # IntelliJ
39 | *.iml
40 | .idea/
41 |
42 | # Keystore files
43 | # Uncomment the following line if you do not want to check your keystore files in.
44 | #*.jks
45 |
46 | # External native build folder generated in Android Studio 2.2 and later
47 | .externalNativeBuild
48 |
49 | # Google Services (e.g. APIs or Firebase)
50 | google-services.json
51 |
52 | # Freeline
53 | freeline.py
54 | freeline/
55 | freeline_project_description.json
56 |
57 | # fastlane
58 | fastlane/report.xml
59 | fastlane/Preview.html
60 | fastlane/screenshots
61 | fastlane/test_output
62 | fastlane/readme.md
63 | /app/app.iml
--------------------------------------------------------------------------------
/aat/compared.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/aat/compared.png
--------------------------------------------------------------------------------
/aat/qrcode_1715829336053.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/aat/qrcode_1715829336053.png
--------------------------------------------------------------------------------
/aat/架构UI图.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/aat/架构UI图.ai
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
18 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/App.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine
2 |
3 | import android.app.Activity
4 | import android.app.Application
5 | import com.common.log.ThinkerLogger
6 | import com.just.machine.helper.UriConfig
7 |
8 | import dagger.hilt.android.HiltAndroidApp
9 | import me.jessyan.autosize.AutoSize
10 | import me.jessyan.autosize.AutoSizeConfig
11 | import me.jessyan.autosize.onAdaptListener
12 | import me.jessyan.autosize.utils.AutoSizeLog
13 | import java.util.*
14 |
15 | @HiltAndroidApp
16 | open class App : Application() {
17 | companion object {
18 | var instance: App? = null
19 | }
20 |
21 | override fun onCreate() {
22 | super.onCreate()
23 |
24 | instance = this
25 |
26 | ThinkerLogger.getInstance().init(UriConfig.LOG_PATH)//日志输出本地
27 |
28 | AutoSize.initCompatMultiProcess(this)//今日头条终极适配
29 | AutoSizeConfig.instance!! //是否让框架支持自定义 Fragment 的适配参数, 由于这个需求是比较少见的, 所以须要使用者手动开启
30 | .setUseDeviceSize(true)
31 | .setBaseOnWidth(false)//全局适配宽高
32 | //如果没有这个需求建议不开启
33 | .setCustomFragment(true).onAdaptListener = object : onAdaptListener {
34 | override fun onAdaptBefore(target: Any?, activity: Activity?) {
35 | AutoSizeLog.d(
36 | String.format(
37 | Locale.ENGLISH,
38 | "%s onAdaptBefore!",
39 | target?.javaClass?.name
40 | )
41 | )
42 | }
43 |
44 | override fun onAdaptAfter(target: Any?, activity: Activity?) {
45 | AutoSizeLog.d(
46 | String.format(
47 | Locale.ENGLISH,
48 | "%s onAdaptAfter!",
49 | target?.javaClass?.name
50 | )
51 | )
52 | }
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/api/BaseApiService.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.api
2 |
3 | import com.just.machine.model.LoginBean
4 | import com.just.machine.model.LoginData
5 | import com.just.machine.model.NewResponse
6 | import com.just.machine.model.OrderListBean
7 | import com.just.machine.model.OrderListData
8 | import com.just.machine.model.OrdersShipmentsBean
9 | import retrofit2.http.Body
10 | import retrofit2.http.GET
11 | import retrofit2.http.POST
12 | import retrofit2.http.Query
13 |
14 | /**
15 | *create by 2020/3/19
16 | *@author zt
17 | */
18 | interface BaseApiService {
19 |
20 | @POST("auth/login")
21 | suspend fun login(@Body loginBean: LoginBean?): NewResponse
22 |
23 | @GET("order/list")
24 | suspend fun orderList(
25 | @Query("page") page: Int?,
26 | @Query("limit") limit: Int?,
27 | @Query("showType") showType: Int?,
28 | @Query("sort") sort: String?,
29 | @Query("order") order: String?,
30 | @Query("start") start: String?,
31 | @Query("end") end: String?
32 | ): NewResponse
33 |
34 |
35 | @POST("order/batchShip")
36 | suspend fun ordersShipments(@Body ordersShipmentsBean: OrdersShipmentsBean?): NewResponse
37 |
38 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/api/UserRepository.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.api
2 |
3 | import com.just.machine.model.LoginBean
4 | import com.just.machine.model.LoginData
5 | import com.just.machine.model.NewResponse
6 | import com.just.machine.model.OrderListData
7 | import com.just.machine.model.OrdersShipmentsBean
8 | import javax.inject.Inject
9 |
10 | /**
11 | *create by 2020/3/19
12 | *@author zt
13 | */
14 | class UserRepository @Inject internal constructor(private val apiService: BaseApiService) {
15 | /**
16 | * 协程请求
17 | */
18 | suspend fun login(loginBean: LoginBean): NewResponse = apiService.login(loginBean)
19 | suspend fun orderList(
20 | page: Int?,
21 | limit: Int?,
22 | showType: Int?,
23 | sort: String?,
24 | order: String?,
25 | start: String?,
26 | end: String?
27 | ): NewResponse =
28 | apiService.orderList(
29 | page,
30 | limit,
31 | showType,
32 | sort,
33 | order,
34 | start,
35 | end
36 | )
37 |
38 | suspend fun ordersShipments(orders: OrdersShipmentsBean): NewResponse = apiService.ordersShipments(orders)
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/dao/AppDatabase.kt:
--------------------------------------------------------------------------------
1 |
2 | package com.just.machine.dao
3 |
4 | import android.content.Context
5 | import androidx.room.Database
6 | import androidx.room.Room
7 | import androidx.room.RoomDatabase
8 | import androidx.sqlite.db.SupportSQLiteDatabase
9 | import androidx.work.OneTimeWorkRequestBuilder
10 | import androidx.work.WorkManager
11 | import androidx.work.workDataOf
12 | import com.just.machine.workers.SeedDatabaseWorker
13 | import com.just.machine.workers.SeedDatabaseWorker.Companion.KEY_FILENAME
14 | import com.just.machine.helper.UriConfig.DATABASE_NAME
15 | import com.just.machine.helper.UriConfig.PLANT_DATA_FILENAME
16 |
17 | /**
18 | *create by 2021/9/18
19 | *@author zt
20 | * 此应用程序的房间数据库
21 | */
22 | @Database(entities = [Plant::class], version = 2, exportSchema = false)
23 | //@TypeConverters(Converters::class)
24 | abstract class AppDatabase : RoomDatabase() {
25 |
26 | abstract fun plantDao(): PlantDao
27 |
28 | companion object {
29 |
30 | // For Singleton instantiation
31 | @Volatile private var instance: AppDatabase? = null
32 |
33 | fun getInstance(context: Context): AppDatabase {
34 | return instance ?: synchronized(this) {
35 | instance ?: buildDatabase(context).also { instance = it }
36 | }
37 | }
38 |
39 | // 创建并预填充数据库。 有关更多详细信息,请参阅这篇文章:
40 | // https://medium.com/google-developers/7-pro-tips-for-room-fbadea4bfbd1#4785
41 | private fun buildDatabase(context: Context): AppDatabase {
42 | return Room.databaseBuilder(context, AppDatabase::class.java, DATABASE_NAME)
43 | .addCallback(
44 | object : RoomDatabase.Callback() {
45 | override fun onCreate(db: SupportSQLiteDatabase) {
46 | super.onCreate(db)
47 | val request = OneTimeWorkRequestBuilder()
48 | .setInputData(workDataOf(KEY_FILENAME to PLANT_DATA_FILENAME))
49 | .build()
50 | WorkManager.getInstance(context).enqueue(request)
51 | }
52 | }
53 | )
54 | .build()
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/dao/Plant.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.dao
2 |
3 | import androidx.room.ColumnInfo
4 | import androidx.room.Entity
5 | import androidx.room.PrimaryKey
6 |
7 | @Entity(tableName = "plants")
8 | data class Plant(
9 | @PrimaryKey @ColumnInfo(name = "id") val plantId: String,
10 | val name: String,
11 | val description: String,
12 | val growZoneNumber: Int,
13 | val wateringInterval: Int = 7, // how often the plant should be watered, in days
14 | val imageUrl: String = ""
15 | ) {
16 | override fun toString() = name
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/dao/PlantDao.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.dao
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Insert
5 | import androidx.room.OnConflictStrategy
6 | import androidx.room.Query
7 | import kotlinx.coroutines.flow.Flow
8 |
9 | /**
10 | * Plant 类的数据访问对象。
11 | */
12 | @Dao
13 | interface PlantDao {
14 | @Query("SELECT * FROM plants ORDER BY name")
15 | fun getPlants(): Flow>
16 |
17 | @Query("SELECT * FROM plants WHERE growZoneNumber = :growZoneNumber ORDER BY name")
18 | fun getPlantsWithGrowZoneNumber(growZoneNumber: Int): Flow>
19 |
20 | @Query("SELECT * FROM plants WHERE id = :plantId")
21 | fun getPlant(plantId: String): Flow
22 |
23 | @Insert(onConflict = OnConflictStrategy.REPLACE)
24 | suspend fun insertAll(plants: List)
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/dao/PlantRepository.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.dao
2 |
3 | import kotlinx.coroutines.flow.Flow
4 | import javax.inject.Inject
5 |
6 | /**
7 | * 用于处理数据操作的存储库模块。
8 | *
9 | * 从 [PlantDao] 中的 Flow 中收集是主要安全的。 Room 支持 Coroutines 并移动
10 | * 主线程外的查询执行。
11 | */
12 | class PlantRepository @Inject constructor(private val plantDao: PlantDao) {
13 |
14 | fun getPlants() = plantDao.getPlants()
15 |
16 | fun getPlant(plantId: String): Flow = plantDao.getPlant(plantId)
17 |
18 | suspend fun insertAll(plants: List) = plantDao.insertAll(plants)
19 |
20 | fun getPlantsWithGrowZoneNumber(growZoneNumber: Int) =
21 | plantDao.getPlantsWithGrowZoneNumber(growZoneNumber)
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/di/AppModule.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.di
2 |
3 | import com.just.machine.helper.Net
4 | import com.just.machine.api.BaseApiService
5 | import com.just.machine.helper.UriConfig
6 | import dagger.Module
7 | import dagger.Provides
8 | import dagger.hilt.InstallIn
9 | import dagger.hilt.components.SingletonComponent
10 | import retrofit2.Retrofit
11 | import javax.inject.Singleton
12 |
13 | @Module
14 | @InstallIn(SingletonComponent::class)
15 | object AppModule {
16 | @Provides
17 | @Singleton
18 | fun providerBaseApi(): BaseApiService {
19 | return providerRetrofit().create(BaseApiService::class.java)
20 | }
21 |
22 | @Provides
23 | @Singleton
24 | fun providerRetrofit(): Retrofit {
25 | return Net.getRetrofit(UriConfig.BASE_URL, 6000L)
26 | }
27 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/di/DatabaseModule.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.di
2 |
3 |
4 |
5 | import android.content.Context
6 | import com.just.machine.dao.AppDatabase
7 | import com.just.machine.dao.PlantDao
8 | import dagger.Module
9 | import dagger.Provides
10 | import dagger.hilt.InstallIn
11 | import dagger.hilt.android.qualifiers.ApplicationContext
12 | import dagger.hilt.components.SingletonComponent
13 | import javax.inject.Singleton
14 |
15 | @Module
16 | @InstallIn(SingletonComponent::class)
17 | object DatabaseModule {
18 | @Singleton
19 | @Provides
20 | fun provideAppDatabase(@ApplicationContext context: Context): AppDatabase {
21 | return AppDatabase.getInstance(context)
22 | }
23 |
24 | @Singleton
25 | @Provides
26 | fun providePlantDao(appDatabase: AppDatabase): PlantDao {
27 | return appDatabase.plantDao()
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/helper/UriConfig.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.helper
2 |
3 | import com.just.machine.App
4 |
5 | /**
6 | *create by 2020/6/19
7 | *@author zt
8 | */
9 | object UriConfig {
10 | const val BASE_URL = "https://www.xmdd1679.com/admin" //线上正式
11 | // const val BASE_URL = "http://119.3.234.32:6913/admin" //线上测试
12 | // const val BASE_URL = "http://localhost:9527/admin/" //本地测试
13 |
14 | const val DATABASE_NAME = "news-db"
15 |
16 | const val PLANT_DATA_FILENAME = "plants.json"
17 |
18 | val LOG_PATH: String = App.instance?.getExternalFilesDir("log")!!.path//本地日志输出
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/helper/binding/Binding.java:
--------------------------------------------------------------------------------
1 | package com.just.machine.helper.binding;
2 |
3 |
4 | import android.text.TextUtils;
5 |
6 | import androidx.annotation.DrawableRes;
7 | import androidx.appcompat.widget.AppCompatImageView;
8 | import androidx.appcompat.widget.AppCompatTextView;
9 | import androidx.databinding.BindingAdapter;
10 | import androidx.recyclerview.widget.RecyclerView;
11 |
12 | import com.common.base.BaseRecyclerViewAdapter;
13 |
14 | import java.util.List;
15 |
16 | public class Binding {
17 |
18 | @BindingAdapter(value = {"setText"}, requireAll = false)
19 | public static void onText(AppCompatTextView textView, String string) {
20 | if (!TextUtils.isEmpty(string)) {
21 | textView.setText(string);
22 | }
23 | }
24 |
25 | @BindingAdapter("setImage")
26 | public static void onImage(AppCompatImageView imageView, @DrawableRes int res) {
27 | if (res != 0) {
28 | imageView.setBackgroundResource(res);
29 | }
30 | }
31 |
32 | // @BindingAdapter({"itmes"})
33 | // public static void addItem(RecyclerView recyclerView, ObservableList it) {
34 | // BaseRecyclerViewAdapter adapter = (BaseRecyclerViewAdapter) recyclerView.getAdapter();
35 | // if (adapter != null) {
36 | // adapter.onSetItem(it);
37 | // }
38 | // }
39 | //
40 | // @BindingAdapter({"setItmes"})
41 | // public static void setItem(RecyclerView recyclerView, ObservableList it) {
42 | // if (it != null) {
43 | // recyclerView.setAdapter(new PatientsAdapter((ObservableList) it,
44 | // R.layout.item_new,
45 | // 0));
46 | // }
47 | //
48 | // }
49 |
50 | @BindingAdapter({"listener"})
51 | public static void setListener(RecyclerView recyclerView, List it) {
52 | BaseRecyclerViewAdapter adapter = (BaseRecyclerViewAdapter) recyclerView.getAdapter();
53 |
54 | }
55 |
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/model/Canstants.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.model
2 |
3 | interface Constants {
4 | companion object {
5 | const val succeedName = "首页"
6 | const val succeed = "交班"
7 | const val news = "首页"
8 | const val me = "我的"
9 | const val setting = "设置"
10 | const val orderManger = "订单管理"
11 | const val dialog = "dialog"//loading弹窗文案
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/model/LoginBean.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.model
2 |
3 | data class LoginBean(
4 | var username: String? = "",
5 | var password: String? = "",
6 | var code: String? = "",
7 | var appid: String? = "",
8 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/model/LoginData.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.model
2 |
3 | data class LoginData(
4 | val token: String,
5 | val tenantId: String,
6 | val adminInfo: AdminInfo
7 | )
8 |
9 | data class AdminInfo(
10 | val username: String,
11 | val avatar: String,
12 | val openid: String,
13 | val mobile: String,
14 | val mail: String,
15 | val gender: Int,
16 | val roleIds: List,
17 | val addTime: String
18 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/model/NewResponse.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.model
2 |
3 | /**
4 | *create by 2020/6/19
5 | *@author zt
6 | */
7 | data class NewResponse(
8 | val errno: String,
9 | val errmsg: String,
10 | val data: T
11 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/model/OrderListBean.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.model
2 |
3 | /**
4 | * 表示列表查询参数的数据类。
5 | *
6 | * @property page 页码,用于分页。默认为 1。
7 | * @property limit 每页显示的项目数量。默认为 50。
8 | * @property showType 显示类型,例如 '0' 表示默认类型。默认为 '0'。
9 | * @property shipSn 运输序列号,可以为空。默认为 null。
10 | * @property goodsId 商品 ID,可以为空。默认为 null。
11 | * @property brandId 品牌 ID,可以为空。默认为 null。
12 | * @property mobile 关联订单的手机号,可以为空。默认为 null。
13 | * @property orderSn 订单序列号,可以为空。默认为 null。
14 | * @property timeArray 时间过滤数组。默认为空列表。
15 | * @property orderStatusArray 订单状态过滤数组。默认为空列表。
16 | * @property sort 排序字段,例如 'add_time'。默认为 'add_time'。
17 | * @property order 排序方式,例如 'desc' 表示降序。默认为 'desc'。
18 | */
19 | data class OrderListBean(
20 | val page: Int = 1, // 页码,默认为 1
21 | val limit: Int = 50, // 每页显示的项目数量,默认为 50
22 | val showType: String = "0", // 显示类型,默认为 '0'
23 | val shipSn: String? = null, // 运输序列号,默认为 null
24 | val goodsId: String? = null, // 商品 ID,默认为 null
25 | val brandId: String? = null, // 品牌 ID,默认为 null
26 | val mobile: String? = null, // 手机号,默认为 null
27 | val orderSn: String? = null, // 订单序列号,默认为 null
28 | val timeArray: List = emptyList(), // 时间过滤数组,默认为空列表
29 | val orderStatusArray: List = emptyList(), // 订单状态过滤数组,默认为空列表
30 | val sort: String = "add_time", // 排序字段,默认为 'add_time'
31 | val order: String = "desc" // 排序方式,默认为 'desc'
32 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/model/OrdersShipmentsBean.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.model
2 |
3 | data class OrdersShipmentsBean(
4 | var orders: MutableList? = ArrayList()
5 | )
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/activity/LoginActivity.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.activity
2 |
3 | import android.content.Context
4 | import android.content.Intent
5 | import androidx.activity.viewModels
6 | import com.common.base.CommonBaseActivity
7 | import com.just.news.databinding.ActivityLoginBinding
8 | import com.just.machine.ui.viewmodel.MainViewModel
9 | import dagger.hilt.android.AndroidEntryPoint
10 |
11 | @AndroidEntryPoint
12 | class LoginActivity : CommonBaseActivity() {//布局ID
13 |
14 | private val viewModel by viewModels()//委托
15 |
16 | companion object {
17 | /**
18 | * @param context -
19 | */
20 | fun startJUSTLoginActivity(context: Context) {
21 | val intent = Intent(context, LoginActivity::class.java)
22 | context.startActivity(intent)
23 | }
24 | }
25 |
26 | override fun initView() {
27 |
28 | }
29 |
30 | override fun getViewBinding() = ActivityLoginBinding.inflate(layoutInflater)
31 |
32 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/activity/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.activity
2 |
3 | import android.content.Context
4 | import android.content.Intent
5 | import androidx.navigation.Navigation
6 | import androidx.navigation.fragment.NavHostFragment
7 | import com.common.base.CommonBaseActivity
8 | import com.just.news.R
9 | import com.just.news.databinding.ActivityMainBinding
10 | import com.justsafe.libview.nav.FragmentNavigatorHideShow
11 | import dagger.hilt.android.AndroidEntryPoint
12 |
13 | @AndroidEntryPoint
14 | class MainActivity : CommonBaseActivity() {
15 |
16 | companion object {
17 | /**
18 | * @param context -跳转主界面
19 | */
20 | fun startMainActivity(context: Context?) {
21 | val intent = Intent(context, MainActivity::class.java)
22 | intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
23 | context?.startActivity(intent)
24 | }
25 | }
26 |
27 | override fun initView() {
28 | initNavigationView()
29 | }
30 |
31 | private fun initNavigationView() {
32 | val navHostFragment =
33 | supportFragmentManager.findFragmentById(R.id.main_layout) as NavHostFragment
34 | val navControllerNavigation = Navigation.findNavController(this, R.id.main_layout)
35 | val navigator =
36 | FragmentNavigatorHideShow(this, navHostFragment.childFragmentManager, R.id.main_layout)
37 | navControllerNavigation.navigatorProvider.addNavigator(navigator)
38 | navControllerNavigation.setGraph(R.navigation.nav_main)
39 | }
40 |
41 |
42 | override fun getViewBinding() = ActivityMainBinding.inflate(layoutInflater)
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/activity/WelComeActivity.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.activity
2 |
3 | import com.common.base.CommonBaseActivity
4 | import com.just.news.databinding.ActivityLoginBinding
5 | import com.just.news.databinding.ActivityWelcomeBinding
6 | import dagger.hilt.android.AndroidEntryPoint
7 |
8 | @AndroidEntryPoint
9 | class WelComeActivity : CommonBaseActivity() {
10 |
11 | override fun initView() {}
12 |
13 | override fun getViewBinding() = ActivityWelcomeBinding.inflate(layoutInflater)
14 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/adapter/GoodsAdapter.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.adapter
2 |
3 | import android.content.Context
4 | import com.common.base.BaseRecyclerViewAdapter
5 | import com.just.machine.helper.GlideApp
6 | import com.just.machine.model.Goods
7 | import com.just.news.R
8 | import com.just.news.databinding.ItemGoodsBinding
9 |
10 | //单向绑定适配器,用dataBanding去绑定item里的控件参数
11 | //(双向绑定的话得用ObserveList之类的参数要修改适配器)
12 | class GoodsAdapter(val context: Context) :
13 | BaseRecyclerViewAdapter() {
14 |
15 | override fun bindData(item: Goods, position: Int) {
16 | binding.item = item
17 | GlideApp.loadImage(context,item.picUrl,binding.image)
18 | }
19 |
20 | override fun getLayoutRes(): Int {
21 | return R.layout.item_goods
22 | }
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/dialog/LoadingDialogFragment.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.dialog
2 |
3 | import android.app.Dialog
4 | import android.os.Bundle
5 | import androidx.fragment.app.FragmentManager
6 | import com.common.base.BaseDialogFragment
7 | import com.just.machine.model.Constants
8 | import com.just.news.R
9 | import com.just.news.databinding.FragmentDialogLoadingBinding
10 | /**
11 | * 订单详情弹窗
12 | */
13 | class LoadingDialogFragment: BaseDialogFragment() {
14 |
15 | private var dialogContent = ""
16 |
17 | companion object {
18 | /**
19 | * @param fragmentManager FragmentManager
20 | */
21 | fun startLoadingDialogFragment(
22 | fragmentManager: FragmentManager,
23 | content:String
24 | ): LoadingDialogFragment {
25 |
26 | val dialogFragment = LoadingDialogFragment()
27 | dialogFragment.show(
28 | fragmentManager,
29 | LoadingDialogFragment::javaClass.toString()
30 | )
31 |
32 | val bundle = Bundle()
33 |
34 | bundle.putString(Constants.dialog, content)
35 |
36 | dialogFragment.arguments = bundle
37 |
38 | return dialogFragment
39 | }
40 | }
41 |
42 | override fun start(dialog: Dialog?) {
43 | dialog?.setCancelable(false)
44 | dialog?.setCanceledOnTouchOutside(false)
45 | }
46 |
47 | override fun initView() {
48 | binding.loadingTips.text = dialogContent
49 | }
50 |
51 | override fun initListener() {
52 |
53 | }
54 |
55 | override fun initData() {
56 | dialogContent = arguments?.getString(Constants.dialog, "").toString()
57 | }
58 |
59 | override fun getLayout(): Int {
60 | return R.layout.fragment_dialog_loading
61 | }
62 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/fragment/MainFragment.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.fragment
2 |
3 | import android.view.LayoutInflater
4 | import android.view.ViewGroup
5 | import androidx.fragment.app.viewModels
6 | import com.common.base.CommonBaseFragment
7 | import com.common.base.gone
8 | import com.common.base.setNoRepeatListener
9 | import com.common.viewmodel.LiveDataEvent
10 | import com.just.news.R
11 | import com.just.news.databinding.FragmentMainBinding
12 | import com.just.machine.model.Constants
13 | import com.just.machine.ui.viewmodel.MainViewModel
14 | import dagger.hilt.android.AndroidEntryPoint
15 | import com.common.base.toast
16 |
17 |
18 | /**
19 | *create by 2024/6/19
20 | * 主界面
21 | *@author zt
22 | */
23 | @AndroidEntryPoint
24 | class MainFragment : CommonBaseFragment() {
25 |
26 | private val viewModel by viewModels()
27 |
28 |
29 | override fun loadData() {//懒加载
30 | }
31 |
32 | override fun initView() {
33 | initToolbar()
34 |
35 | binding.btnOrder.setOnClickListener {
36 | navigate(it, R.id.orderFragment)
37 | }
38 |
39 | binding.llOrder.setNoRepeatListener {
40 | navigate(it, R.id.orderFragment)
41 | }
42 |
43 | viewModel.getDates("")//插入或者请求网络数据
44 |
45 | viewModel.getPlant()
46 |
47 | viewModel.mEventHub.observe(this) {
48 | when (it.action) {
49 | LiveDataEvent.LOGIN_FAIL or LiveDataEvent.JUST_ERROR_FAIL -> {//请求成功返回
50 |
51 | }
52 |
53 | LiveDataEvent.LOGIN_FAIL -> {//请求失败返回
54 | if (it.any is String) {
55 | toast(it.toString())
56 | }
57 | }
58 | }
59 | }
60 | }
61 |
62 |
63 | private fun initToolbar() {
64 | binding.toolbar.title = Constants.succeedName
65 | binding.toolbar.tvRight.gone()
66 | binding.toolbar.ivTitleBack.gone()
67 | }
68 |
69 |
70 | override fun getViewBinding(inflater: LayoutInflater, container: ViewGroup?) =
71 | FragmentMainBinding.inflate(inflater, container, false)
72 |
73 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/fragment/MeFragment.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.fragment
2 |
3 | import android.view.LayoutInflater
4 | import android.view.ViewGroup
5 | import androidx.fragment.app.viewModels
6 | import androidx.navigation.fragment.findNavController
7 | import com.common.base.CommonBaseFragment
8 | import com.common.base.gone
9 | import com.common.network.LogUtils
10 | import com.just.machine.model.Constants
11 | import com.just.news.R
12 | import com.just.news.databinding.FragmentMeBinding
13 | import com.just.machine.ui.viewmodel.MainViewModel
14 | import dagger.hilt.android.AndroidEntryPoint
15 |
16 |
17 | /**
18 | *create by 2020/6/19
19 | *@author zt
20 | */
21 | @AndroidEntryPoint
22 | class MeFragment : CommonBaseFragment() {
23 |
24 | private val viewModel by viewModels()
25 |
26 | override fun loadData() {//懒加载
27 |
28 | }
29 |
30 | private fun initToolbar() {
31 | binding.toolbar.title = Constants.me//标题
32 | binding.toolbar.tvRight.gone()
33 | binding.toolbar.ivTitleBack.gone()
34 | }
35 |
36 | override fun initView() {
37 | initToolbar()
38 |
39 | binding.btnMe.setOnClickListener {
40 | navigate(it, R.id.settingFragment)//fragment跳转
41 | }
42 |
43 | val navController = findNavController()//fragment返回数据处理
44 |
45 | navController.currentBackStackEntry?.savedStateHandle?.getLiveData("key")
46 | ?.observe(this
47 | ) {
48 | LogUtils.e(TAG + it.toString())
49 | }
50 |
51 | }
52 |
53 | override fun getViewBinding(inflater: LayoutInflater, container: ViewGroup?) =
54 | FragmentMeBinding.inflate(inflater, container, false)
55 |
56 | }
57 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/fragment/NewFragment.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.fragment
2 |
3 | import android.annotation.SuppressLint
4 | import android.view.LayoutInflater
5 | import android.view.ViewGroup
6 | import androidx.navigation.Navigation
7 | import com.common.base.*
8 | import com.just.machine.model.Constants
9 | import com.just.news.databinding.FragmentNewBinding
10 | import dagger.hilt.android.AndroidEntryPoint
11 |
12 | /**
13 | *create by 2020/6/19
14 | *@author zt
15 | */
16 | @AndroidEntryPoint
17 | class NewFragment : CommonBaseFragment() {
18 |
19 | private fun initToolbar() {
20 | binding.toolbar.title = Constants.news//标题
21 | binding.toolbar.tvRight.gone()
22 | binding.toolbar.ivTitleBack.visible()
23 | }
24 |
25 | @SuppressLint("UseRequireInsteadOfGet")
26 | override fun initView() {
27 | initToolbar()
28 | }
29 |
30 | override fun loadData() {
31 | binding.toolbar.ivTitleBack.setNoRepeatListener {
32 | Navigation.findNavController(it).popBackStack()
33 | }
34 | }
35 |
36 | override fun getViewBinding(inflater: LayoutInflater, container: ViewGroup?) =
37 | FragmentNewBinding.inflate(inflater, container, false)
38 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/ui/fragment/SettingFragment.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.ui.fragment
2 |
3 | import android.view.LayoutInflater
4 | import android.view.ViewGroup
5 | import androidx.navigation.fragment.findNavController
6 | import com.common.base.CommonBaseFragment
7 | import com.just.news.databinding.FragmentSettingBinding
8 | import com.just.machine.model.Constants
9 | import dagger.hilt.android.AndroidEntryPoint
10 |
11 | /**
12 | *create by 2020/6/19
13 | * 设置界面
14 | *@author zt
15 | */
16 | @AndroidEntryPoint
17 | class SettingFragment : CommonBaseFragment() {
18 |
19 | override fun initView() {
20 | initToolbar()
21 | }
22 |
23 | private fun initToolbar() {
24 | binding.toolbar.title = Constants.setting//标题
25 | binding.toolbar.ivTitleBack.setOnClickListener {//返回
26 | val navController = findNavController()//fragment返回数据处理
27 | navController.previousBackStackEntry?.savedStateHandle?.set("key", "傻逼")
28 | navController.popBackStack()
29 | }
30 | }
31 |
32 | override fun loadData() {
33 |
34 | }
35 |
36 | override fun getViewBinding(inflater: LayoutInflater, container: ViewGroup?) =
37 | FragmentSettingBinding.inflate(inflater, container, false)
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/app/src/main/java/com/just/machine/workers/SeedDatabaseWorker.kt:
--------------------------------------------------------------------------------
1 | package com.just.machine.workers
2 |
3 | import android.content.Context
4 | import android.util.Log
5 | import androidx.work.CoroutineWorker
6 | import androidx.work.WorkerParameters
7 | import com.google.gson.Gson
8 | import com.google.gson.reflect.TypeToken
9 | import com.google.gson.stream.JsonReader
10 | import com.just.machine.dao.AppDatabase
11 | import com.just.machine.dao.Plant
12 | import kotlinx.coroutines.Dispatchers
13 | import kotlinx.coroutines.withContext
14 |
15 | class SeedDatabaseWorker(
16 | context: Context,
17 | workerParams: WorkerParameters
18 | ) : CoroutineWorker(context, workerParams) {
19 | override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
20 | try {
21 | val filename = inputData.getString(KEY_FILENAME)
22 | if (filename != null) {
23 | applicationContext.assets.open(filename).use { inputStream ->
24 | JsonReader(inputStream.reader()).use { jsonReader ->
25 | val plantType = object : TypeToken>() {}.type
26 | val plantList: List = Gson().fromJson(jsonReader, plantType)
27 |
28 | val database = AppDatabase.getInstance(applicationContext)
29 | database.plantDao().insertAll(plantList)
30 |
31 | Result.success()
32 | }
33 | }
34 | } else {
35 | Log.e(TAG, "Error seeding database - no valid filename")
36 | Result.failure()
37 | }
38 | } catch (ex: Exception) {
39 | Log.e(TAG, "Error seeding database", ex)
40 | Result.failure()
41 | }
42 | }
43 |
44 | companion object {
45 | private const val TAG = "SeedDatabaseWorker"
46 | const val KEY_FILENAME = "PLANT_DATA_FILENAME"
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/app/src/main/res/color/main_bottom_tab_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/arrow_back.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_input.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/check_click_yes.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
14 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/check_no.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/custom_checkbox_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_on.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_new.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_new_on.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_personal.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_personal_on.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/main_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/main_new.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/main_personal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/order.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
15 |
18 |
21 |
24 |
27 |
30 |
33 |
34 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/order_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/succeed_blue_btn.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
14 |
17 |
18 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
20 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_organization.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_succeed_prison.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_web.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_welcome.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_fragment_all.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
23 |
24 |
29 |
30 |
35 |
36 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragmelayout_succeed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_dialog_loading.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
22 |
23 |
33 |
34 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
15 |
19 |
20 |
25 |
26 |
34 |
35 |
40 |
41 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_me.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
15 |
16 |
22 |
23 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_new.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
16 |
17 |
23 |
24 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_setting.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
10 |
11 |
15 |
16 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/printer_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
19 |
20 |
21 |
26 |
27 |
33 |
39 |
40 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/bottom_navigation_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/app/src/main/res/mipmap-xxxhdpi/logo.png
--------------------------------------------------------------------------------
/app/src/main/res/navigation/nav_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/navigation/nav_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
17 |
20 |
21 |
22 |
27 |
28 |
33 |
36 |
37 |
38 |
43 |
46 |
47 |
48 |
53 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3A5FCD
4 | #3700B3
5 | #03DAC5
6 | #333333
7 | #999999
8 | #FF0000
9 | #259000
10 | #fff
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | 蟹名鼎鼎小程序
3 | 首页
4 | 我的
5 | 最新
6 | 设置
7 | 查询数据库
8 | 账号
9 | 密码
10 | 登录
11 | 下单时间:
12 | 订单状态:
13 | 订单编号:
14 | User Avatar
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/autosize/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 |
4 | android {
5 | def globalConfiguration = rootProject.extensions.getByName("ext")
6 | compileSdkVersion androidCompileSdkVersion
7 | buildToolsVersion androidBuildToolsVersion
8 |
9 | defaultConfig {
10 | minSdkVersion globalConfiguration["androidMinSdkVersion"]
11 | targetSdkVersion globalConfiguration["androidTargetSdkVersion"]
12 | versionCode globalConfiguration["androidVersionCode"]
13 | versionName globalConfiguration["androidVersionName"]
14 | ndkVersion globalConfiguration["androidNdkVersion"]
15 |
16 | multiDexEnabled globalConfiguration["androidMultiDexEnabled"]
17 | testInstrumentationRunner globalConfiguration["testInstrumentationRunner"]
18 | }
19 |
20 | buildTypes {
21 | release {
22 | minifyEnabled false
23 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
24 | }
25 | }
26 |
27 | lintOptions {
28 | abortOnError false
29 | warning 'InvalidPackage'
30 | }
31 |
32 | kotlinOptions{
33 | jvmTarget = '11'
34 | }
35 |
36 | viewBinding {
37 | enabled = true
38 | }
39 |
40 | }
41 |
42 | dependencies {
43 | implementation "com.android.support:appcompat-v7:28.0.0"
44 | implementation "androidx.appcompat:appcompat:1.3.1"
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/autosize/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
23 | -keep class me.jessyan.autosize.** { *; }
24 | -keep interface me.jessyan.autosize.** { *; }
--------------------------------------------------------------------------------
/autosize/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/AutoAdaptStrategy.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize
17 |
18 | import android.app.Activity
19 | import android.util.DisplayMetrics
20 |
21 | /**
22 | * ================================================
23 | * 屏幕适配逻辑策略类, 可通过 [AutoSizeConfig.init]
24 | * 和 [AutoSizeConfig.setAutoAdaptStrategy] 切换策略
25 | *
26 | * @see DefaultAutoAdaptStrategy
27 | * Created by JessYan on 2018/8/9 15:13
28 | * [Contact me](mailto:jess.yan.effort@gmail.com)
29 | * [Follow me](https://github.com/JessYanCoding)
30 | * ================================================
31 | */
32 | interface AutoAdaptStrategy {
33 | /**
34 | * 开始执行屏幕适配逻辑
35 | *
36 | * @param target 需要屏幕适配的对象 (可能是 [Activity] 或者 Fragment)
37 | * @param activity 需要拿到当前的 [Activity] 才能修改 [DisplayMetrics.density]
38 | */
39 | fun applyAdapt(target: Any, activity: Activity?)
40 | }
41 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/FragmentLifecycleCallbacksImpl.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize
17 |
18 | import android.os.Bundle
19 | import androidx.fragment.app.Fragment
20 | import androidx.fragment.app.FragmentManager
21 |
22 | /**
23 | * ================================================
24 | * [FragmentLifecycleCallbacksImpl] 可用来代替在 BaseFragment 中加入适配代码的传统方式
25 | * [FragmentLifecycleCallbacksImpl] 这种方案类似于 AOP, 面向接口, 侵入性低, 方便统一管理, 扩展性强, 并且也支持适配三方库的 [Fragment]
26 | *
27 | *
28 | * Created by JessYan on 2018/8/25 13:52
29 | * [Contact me](mailto:jess.yan.effort@gmail.com)
30 | * [Follow me](https://github.com/JessYanCoding)
31 | * ================================================
32 | */
33 | class FragmentLifecycleCallbacksImpl(
34 | /**
35 | * 屏幕适配逻辑策略类
36 | */
37 | private var mAutoAdaptStrategy: AutoAdaptStrategy?
38 | ) : FragmentManager.FragmentLifecycleCallbacks() {
39 | override fun onFragmentCreated(fm: FragmentManager, f: Fragment, savedInstanceState: Bundle?) {
40 | if (mAutoAdaptStrategy != null) {
41 | mAutoAdaptStrategy!!.applyAdapt(f, f.activity)
42 | }
43 | }
44 |
45 | /**
46 | * 设置屏幕适配逻辑策略类
47 | *
48 | * @param autoAdaptStrategy [AutoAdaptStrategy]
49 | */
50 | fun setAutoAdaptStrategy(autoAdaptStrategy: AutoAdaptStrategy?) {
51 | mAutoAdaptStrategy = autoAdaptStrategy
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/FragmentLifecycleCallbacksImplToAndroidx.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize
17 |
18 | import android.os.Bundle
19 | import androidx.fragment.app.Fragment
20 | import androidx.fragment.app.FragmentManager
21 |
22 | /**
23 | * ================================================
24 | * [FragmentLifecycleCallbacksImplToAndroidx] 可用来代替在 BaseFragment 中加入适配代码的传统方式
25 | * [FragmentLifecycleCallbacksImplToAndroidx] 这种方案类似于 AOP, 面向接口, 侵入性低, 方便统一管理, 扩展性强, 并且也支持适配三方库的 [Fragment]
26 | *
27 | *
28 | * Created by JessYan on 2018/8/25 13:52
29 | * [Contact me](mailto:jess.yan.effort@gmail.com)
30 | * [Follow me](https://github.com/JessYanCoding)
31 | * ================================================
32 | */
33 | class FragmentLifecycleCallbacksImplToAndroidx(
34 | /**
35 | * 屏幕适配逻辑策略类
36 | */
37 | private var mAutoAdaptStrategy: AutoAdaptStrategy?
38 | ) : FragmentManager.FragmentLifecycleCallbacks() {
39 | override fun onFragmentCreated(fm: FragmentManager, f: Fragment, savedInstanceState: Bundle?) {
40 | if (mAutoAdaptStrategy != null) {
41 | mAutoAdaptStrategy!!.applyAdapt(f, f.activity)
42 | }
43 | }
44 |
45 | /**
46 | * 设置屏幕适配逻辑策略类
47 | *
48 | * @param autoAdaptStrategy [AutoAdaptStrategy]
49 | */
50 | fun setAutoAdaptStrategy(autoAdaptStrategy: AutoAdaptStrategy?) {
51 | mAutoAdaptStrategy = autoAdaptStrategy
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/WrapperAutoAdaptStrategy.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize
17 |
18 | import android.app.Activity
19 |
20 | /**
21 | * ================================================
22 | * [AutoAdaptStrategy] 的包装者, 用于给 [AutoAdaptStrategy] 的实现类增加一些额外的职责
23 | *
24 | *
25 | * Created by JessYan on 2018/10/30 15:07
26 | * [Contact me](mailto:jess.yan.effort@gmail.com)
27 | * [Follow me](https://github.com/JessYanCoding)
28 | * ================================================
29 | */
30 | class WrapperAutoAdaptStrategy(private val mAutoAdaptStrategy: AutoAdaptStrategy?) :
31 | AutoAdaptStrategy {
32 | override fun applyAdapt(target: Any, activity: Activity?) {
33 | val onAdaptListener: onAdaptListener? =
34 | AutoSizeConfig.instance?.onAdaptListener
35 | onAdaptListener?.onAdaptBefore(target, activity)
36 | mAutoAdaptStrategy?.applyAdapt(target, activity)
37 | onAdaptListener?.onAdaptAfter(target, activity)
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/internal/CancelAdapt.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize.internal
17 |
18 | /**
19 | * ================================================
20 | * AndroidAutoSize 默认项目中的所有模块都使用适配功能, 三方库的 [Activity] 也不例外
21 | * 如果某个页面不想使用适配功能, 请让该页面 [Activity] 实现此接口
22 | * 实现此接口表示放弃适配, 所有的适配效果都将失效
23 | *
24 | *
25 | * Created by JessYan on 2018/8/9 09:54
26 | * [Contact me](mailto:jess.yan.effort@gmail.com)
27 | * [Follow me](https://github.com/JessYanCoding)
28 | * ================================================
29 | */
30 | interface CancelAdapt
31 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/internal/CustomAdapt.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize.internal
17 |
18 | /**
19 | * ================================================
20 | * 如果某些页面不想使用 AndroidAutoSize 初始化时设置的默认适配参数, 请让该页面 [Activity] 实现此接口
21 | * 实现此接口即可自定义用于适配的一些参数, 从而影响最终的适配效果
22 | *
23 | *
24 | * Created by JessYan on 2018/8/9 10:25
25 | * [Contact me](mailto:jess.yan.effort@gmail.com)
26 | * [Follow me](https://github.com/JessYanCoding)
27 | * ================================================
28 | */
29 | interface CustomAdapt {
30 | /**
31 | * 是否按照宽度进行等比例适配 (为了保证在高宽比不同的屏幕上也能正常适配, 所以只能在宽度和高度之中选一个作为基准进行适配)
32 | *
33 | * @return `true` 为按照宽度适配, `false` 为按照高度适配
34 | */
35 | val isBaseOnWidth: Boolean
36 |
37 | /**
38 | * 返回设计图上的设计尺寸, 单位 dp
39 | * [.getSizeInDp] 须配合 [.isBaseOnWidth] 使用, 规则如下:
40 | * 如果 [.isBaseOnWidth] 返回 `true`, [.getSizeInDp] 则应该返回设计图的总宽度
41 | * 如果 [.isBaseOnWidth] 返回 `false`, [.getSizeInDp] 则应该返回设计图的总高度
42 | * 如果您不需要自定义设计图上的设计尺寸, 想继续使用在 AndroidManifest 中填写的设计图尺寸, [.getSizeInDp] 则返回 `0`
43 | *
44 | * @return 设计图上的设计尺寸, 单位 dp
45 | */
46 | val sizeInDp: Float
47 | }
48 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/onAdaptListener.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize
17 |
18 | import android.app.Activity
19 |
20 | /**
21 | * ================================================
22 | * 屏幕适配监听器,用于监听屏幕适配时的一些事件
23 | *
24 | *
25 | * Created by JessYan on 2018/10/30 16:29
26 | * [Contact me](mailto:jess.yan.effort@gmail.com)
27 | * [Follow me](https://github.com/JessYanCoding)
28 | * ================================================
29 | */
30 | interface onAdaptListener {
31 | /**
32 | * 在屏幕适配前调用
33 | *
34 | * @param target 需要屏幕适配的对象 (可能是 [Activity] 或者 Fragment)
35 | * @param activity 当前 [Activity]
36 | */
37 | fun onAdaptBefore(target: Any?, activity: Activity?)
38 |
39 | /**
40 | * 在屏幕适配后调用
41 | *
42 | * @param target 需要屏幕适配的对象 (可能是 [Activity] 或者 Fragment)
43 | * @param activity 当前 [Activity]
44 | */
45 | fun onAdaptAfter(target: Any?, activity: Activity?)
46 | }
47 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/unit/Subunits.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize.unit
17 |
18 | /**
19 | * ================================================
20 | * AndroidAutoSize 支持一些在 Android 系统上比较少见的单位作为副单位, 用于规避修改 [DisplayMetrics.density]
21 | * 所造成的对于其他使用 dp 布局的系统控件或三方库控件的不良影响
22 | *
23 | *
24 | * Created by JessYan on 2018/8/28 10:27
25 | * [Contact me](mailto:jess.yan.effort@gmail.com)
26 | * [Follow me](https://github.com/JessYanCoding)
27 | * ================================================
28 | */
29 | enum class Subunits {
30 | /**
31 | * 不使用副单位
32 | */
33 | NONE,
34 |
35 | /**
36 | * 单位 pt
37 | *
38 | * @see android.util.TypedValue.COMPLEX_UNIT_PT
39 | */
40 | PT,
41 |
42 | /**
43 | * 单位 in
44 | *
45 | * @see android.util.TypedValue.COMPLEX_UNIT_IN
46 | */
47 | IN,
48 |
49 | /**
50 | * 单位 mm
51 | *
52 | * @see android.util.TypedValue.COMPLEX_UNIT_MM
53 | */
54 | MM
55 | }
56 |
--------------------------------------------------------------------------------
/autosize/src/main/java/me/jessyan/autosize/utils/AutoSizeLog.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2018 JessYan
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package me.jessyan.autosize.utils;
17 |
18 | import android.util.Log;
19 |
20 | /**
21 | * ================================================
22 | * Created by JessYan on 2018/8/8 18:48
23 | * Contact me
24 | * Follow me
25 | * ================================================
26 | */
27 | public class AutoSizeLog {
28 | private static final String TAG = "AndroidAutoSize";
29 | private static boolean debug;
30 |
31 | private AutoSizeLog() {
32 | throw new IllegalStateException("you can't instantiate me!");
33 | }
34 |
35 | public static boolean isDebug() {
36 | return debug;
37 | }
38 |
39 | public static void setDebug(boolean debug) {
40 | AutoSizeLog.debug = debug;
41 | }
42 |
43 | public static void d(String message) {
44 | if (debug) {
45 | Log.d(TAG, message);
46 | }
47 | }
48 |
49 | public static void w(String message) {
50 | if (debug) {
51 | Log.w(TAG, message);
52 | }
53 | }
54 |
55 | public static void e(String message) {
56 | if (debug) {
57 | Log.e(TAG, message);
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | apply from: 'dependencies.gradle'
3 | buildscript {
4 | repositories {
5 | maven { url 'https://maven.aliyun.com/repository/google' }
6 | maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
7 | maven { url 'https://maven.aliyun.com/repository/public' }
8 | maven { url 'https://maven.aliyun.com/repository/jcenter' }
9 | google()
10 | mavenCentral()
11 |
12 | }
13 | dependencies {
14 | classpath 'com.android.tools.build:gradle:7.0.3'
15 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21"
16 | classpath "com.google.dagger:hilt-android-gradle-plugin:2.36"
17 | }
18 | }
19 |
20 | allprojects {
21 | // build.gradle
22 | allprojects {
23 | repositories {
24 | maven {
25 | url "https://androidx.dev/snapshots/builds/6543454/artifacts/repository/"
26 | }
27 | }
28 | }
29 |
30 | repositories {
31 | maven { url 'https://maven.aliyun.com/repository/google' }
32 | maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
33 | maven { url 'https://maven.aliyun.com/repository/public' }
34 | maven { url 'https://maven.aliyun.com/repository/jcenter' }
35 | maven { url 'https://www.jitpack.io' }
36 | google()
37 | mavenCentral()
38 | }
39 |
40 | ext {
41 | //发布debug版本修改此参数,发布release版本同时去掉debug
42 | androidApplicationId = 'com.just.news'
43 | testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
44 | releaseVersionNameSuffix = androidTargetSdkVersion
45 | androidVersionName = "1.0"
46 | androidVersionCode = 1
47 | apkVersion = "" + androidVersionName
48 | androidNdkVersion = '22.1.7171670'
49 | androidMultiDexEnabled = true
50 | }
51 | }
52 |
53 | task clean(type: Delete) {
54 | delete rootProject.buildDir
55 | }
56 |
--------------------------------------------------------------------------------
/common/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/common/consumer-rules.pro
--------------------------------------------------------------------------------
/common/libs/log4j-1.2.13.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/common/libs/log4j-1.2.13.jar
--------------------------------------------------------------------------------
/common/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/common/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/common/src/main/java/com/common/BaseResponse.kt:
--------------------------------------------------------------------------------
1 | package com.common
2 |
3 | /**
4 | *create by 2020/9/10
5 | *@author yx
6 | */
7 | data class BaseResponse(
8 | val errorMsg: String,
9 | val code: Int,
10 | val data: T
11 | )
--------------------------------------------------------------------------------
/common/src/main/java/com/common/base/BaseDataBingViewHolder.java:
--------------------------------------------------------------------------------
1 | package com.common.base;
2 |
3 |
4 | import androidx.databinding.ViewDataBinding;
5 | import androidx.recyclerview.widget.RecyclerView;
6 |
7 | public class BaseDataBingViewHolder extends RecyclerView.ViewHolder {
8 |
9 | public VB binding;
10 |
11 | public BaseDataBingViewHolder(VB binding) {
12 | super(binding.getRoot());
13 | this.binding = binding;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/common/src/main/java/com/common/base/BaseFrameLayout.kt:
--------------------------------------------------------------------------------
1 | package com.common.base
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.LayoutInflater
6 | import android.widget.FrameLayout
7 | import androidx.annotation.LayoutRes
8 | import androidx.databinding.DataBindingUtil
9 | import androidx.databinding.ViewDataBinding
10 |
11 |
12 | abstract class BaseFrameLayout : FrameLayout {
13 |
14 | protected val TAG = BaseFrameLayout::class.java.simpleName
15 |
16 | lateinit var binding: Vb
17 | lateinit var mContext: Context
18 |
19 | constructor(context: Context) : super(context) {
20 | mContext = context
21 | var layoutInflater = LayoutInflater.from(context)
22 | binding = DataBindingUtil.inflate(layoutInflater, getLayout(), this, true)
23 | initView()
24 | }
25 |
26 | constructor(context: Context, attributes: AttributeSet) : super(context, attributes) {
27 | mContext = context
28 | var layoutInflater = LayoutInflater.from(context)
29 | binding = DataBindingUtil.inflate(layoutInflater, getLayout(), this, true)
30 | initView()
31 | }
32 |
33 | constructor(context: Context, attributes: AttributeSet, int: Int) : super(
34 | context,
35 | attributes,
36 | int
37 | ) {
38 | mContext = context
39 | var layoutInflater = LayoutInflater.from(context)
40 | binding = DataBindingUtil.inflate(layoutInflater, getLayout(), this, true)
41 | initView()
42 | }
43 |
44 |
45 | abstract fun initView()
46 |
47 | @LayoutRes
48 | protected abstract fun getLayout(): Int
49 |
50 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/common/base/CommonBaseActivity.kt:
--------------------------------------------------------------------------------
1 | package com.common.base
2 |
3 | import android.os.Bundle
4 | import androidx.appcompat.app.AppCompatActivity
5 | import androidx.databinding.ViewDataBinding
6 |
7 | /**
8 | * create by 2021/3/2
9 | *
10 | * @author zt
11 | */
12 | abstract class CommonBaseActivity : AppCompatActivity() {
13 |
14 | private lateinit var _binding: VB
15 |
16 | protected val binding get() = _binding
17 |
18 | override fun onCreate(savedInstanceState: Bundle?) {
19 | super.onCreate(savedInstanceState)
20 | _binding = getViewBinding()
21 | setContentView(_binding.root)
22 | initView()
23 | }
24 |
25 | protected abstract fun getViewBinding(): VB
26 |
27 | protected val tag: String = CommonBaseActivity::class.java.simpleName
28 |
29 | protected abstract fun initView()
30 |
31 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/common/log/ThinkerLogger.java:
--------------------------------------------------------------------------------
1 | package com.common.log;
2 |
3 | import java.io.File;
4 |
5 | import org.apache.log4j.Level;
6 | import org.apache.log4j.Logger;
7 |
8 |
9 | /**
10 | * create by 2022/6/30
11 | * log本地输出日志
12 | *
13 | * @author zt
14 | */
15 | public class ThinkerLogger {
16 | private static ThinkerLogger instance;
17 |
18 | public static ThinkerLogger getInstance() {
19 | if (instance == null)
20 | instance = new ThinkerLogger();
21 | return instance;
22 | }
23 |
24 | public void init(String logDir) {
25 | try {
26 | File srcFolder = new File(logDir);
27 | if (!srcFolder.exists()) {
28 | srcFolder.mkdirs();
29 | }
30 | LogConfigurator logConfigurator = new LogConfigurator();
31 | logConfigurator.setFileName(srcFolder + File.separator + "log");
32 | logConfigurator.setRootLevel(Level.DEBUG); //日志开
33 | // logConfigurator.setRootLevel(Level.OFF); //日志关
34 | logConfigurator.setLevel("org.apache", Level.ERROR);
35 | logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
36 |
37 | //按照文件的大小分割log(互斥)
38 | // logConfigurator.setUseFileAppender(true);
39 | // logConfigurator.setMaxFileSize(1024 * 1024 * 10);
40 | //按照文件的日期分割log
41 | logConfigurator.setUseFileAppender(false);
42 |
43 | //本地缓存文件个数
44 | logConfigurator.setMaxBackupSize(3);
45 | //设置所有消息是否被立刻输出 默认为true,false 不输出
46 | logConfigurator.setImmediateFlush(true);
47 | logConfigurator.configure();
48 | } catch (Exception e) {
49 | e.printStackTrace();
50 | }
51 | }
52 |
53 | public Logger getLogger(String className) {
54 | return Logger.getLogger(className);
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/common/src/main/java/com/common/network/RequestObserver.kt:
--------------------------------------------------------------------------------
1 | package com.common.network
2 |
3 | import com.common.throwe.BaseResponseThrowable
4 | import com.common.throwe.ThrowableHandler.handleThrowable
5 | import io.reactivex.SingleObserver
6 | import io.reactivex.disposables.Disposable
7 | import io.reactivex.exceptions.CompositeException
8 | import io.reactivex.exceptions.Exceptions
9 | import io.reactivex.internal.disposables.DisposableHelper
10 | import io.reactivex.plugins.RxJavaPlugins
11 | import java.util.concurrent.atomic.AtomicReference
12 |
13 | /**
14 | * create by 2020/9/12
15 | * rxjavaObserver
16 | * @author zt
17 | */
18 | class RequestObserver(
19 | val onSuccesses:(T)->Unit,
20 | val onErrors: (BaseResponseThrowable)->Unit
21 | ) : AtomicReference(), SingleObserver, Disposable {
22 | override fun onError(e: Throwable) {
23 | lazySet(DisposableHelper.DISPOSED)
24 | try {
25 | onErrors(handleThrowable(e))
26 | } catch (ex: Throwable) {
27 | Exceptions.throwIfFatal(ex)
28 | RxJavaPlugins.onError(CompositeException(e, ex))
29 | }
30 | }
31 |
32 | override fun onSubscribe(d: Disposable) {
33 | DisposableHelper.setOnce(this, d)
34 | }
35 |
36 | override fun onSuccess(value: T) {
37 | lazySet(DisposableHelper.DISPOSED)
38 | try {
39 | onSuccesses(value)
40 | } catch (ex: Throwable) {
41 | Exceptions.throwIfFatal(ex)
42 | RxJavaPlugins.onError(ex)
43 | }
44 | }
45 |
46 | override fun dispose() {
47 | DisposableHelper.dispose(this)
48 | }
49 |
50 | override fun isDisposed(): Boolean {
51 | return get() === DisposableHelper.DISPOSED
52 | }
53 |
54 |
55 | companion object {
56 | private const val serialVersionUID = -7012088219455310786L
57 | }
58 |
59 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/common/throwe/BaseResponseThrowable.kt:
--------------------------------------------------------------------------------
1 | package com.common.throwe
2 |
3 | /**
4 | * create by 2020/5/15
5 | *
6 | * @author yx
7 | */
8 | class BaseResponseThrowable : Throwable {
9 | var code: Int
10 | var errMsg: String
11 | constructor(code: Int, msg: String, e: Throwable? = null) : super(e) {
12 | this.code = code
13 | this.errMsg = msg
14 | }
15 |
16 | constructor(code: Int, errMsg: String) {
17 | this.code = code
18 | this.errMsg = errMsg
19 | }
20 |
21 |
22 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/common/throwe/ThrowableHandler.kt:
--------------------------------------------------------------------------------
1 | package com.common.throwe
2 |
3 | import java.net.ConnectException
4 |
5 |
6 | /**
7 | * create by 2020/5/15
8 | * @author zt
9 | */
10 | object ThrowableHandler {
11 |
12 | private var tag = ThrowableHandler::javaClass.name
13 |
14 | fun handleThrowable(e: Throwable): BaseResponseThrowable {
15 |
16 | var message = e.message
17 |
18 | when (e.cause) {
19 | is ConnectException -> {
20 | message = "网络异常或服务器异常!"
21 | }
22 | }
23 |
24 | e.printStackTrace()
25 | //这里自定义异常显比如说404或者后台返回的相关code
26 | return BaseResponseThrowable(-1, message!!, e)
27 | }
28 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/common/viewmodel/BaseLifeViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.common.viewmodel
2 |
3 | import androidx.lifecycle.ViewModel
4 | import com.uber.autodispose.AutoDispose
5 | import com.uber.autodispose.AutoDisposeConverter
6 | import com.uber.autodispose.ScopeProvider
7 | import com.uber.autodispose.lifecycle.CorrespondingEventsFunction
8 | import com.uber.autodispose.lifecycle.LifecycleEndedException
9 | import com.uber.autodispose.lifecycle.LifecycleScopeProvider
10 | import io.reactivex.Observable
11 | import io.reactivex.subjects.BehaviorSubject
12 |
13 | /**
14 | *create by 2020/9/16
15 | *@author zt
16 | */
17 | open class BaseLifeViewModel() : ViewModel(),
18 | LifecycleScopeProvider {
19 | private val lifecycleEvents = BehaviorSubject.createDefault(ViewEvent.CREATED)
20 |
21 | override fun lifecycle(): Observable {
22 | return lifecycleEvents.hide()
23 | }
24 |
25 | override fun correspondingEvents(): CorrespondingEventsFunction {
26 | return CORRESPONDING_EVENTS
27 | }
28 |
29 | /**
30 | * Emit the [ViewModelEvent.CLEARED] event to
31 | * dispose off any subscriptions in the ViewModel.
32 | */
33 | override fun onCleared() {
34 | lifecycleEvents.onNext(ViewEvent.DESTROY)
35 | super.onCleared()
36 | }
37 |
38 | override fun peekLifecycle(): ViewEvent {
39 | return lifecycleEvents.value as ViewEvent
40 | }
41 |
42 | companion object {
43 | var CORRESPONDING_EVENTS: CorrespondingEventsFunction = CorrespondingEventsFunction { event ->
44 | when (event) {
45 | ViewEvent.CREATED -> ViewEvent.DESTROY
46 | else -> throw LifecycleEndedException(
47 | "Cannot bind to ViewModel lifecycle after onCleared.")
48 | }
49 | }
50 | }
51 | fun auto(provider: ScopeProvider): AutoDisposeConverter {
52 | return AutoDispose.autoDisposable(provider)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/common/src/main/java/com/common/viewmodel/LiveDataEvent.kt:
--------------------------------------------------------------------------------
1 | package com.common.viewmodel
2 |
3 |
4 | class LiveDataEvent {
5 |
6 | companion object {
7 | const val SUCCESS: Int = 200
8 |
9 | /**
10 | * 登录状态
11 | *
12 | * @param LOGIN_SUCCESS
13 | * @return
14 | */
15 | const val LOGIN_SUCCESS: Int = 0x01
16 |
17 |
18 | const val ORDERLIST_SUCCESS: Int = 0x03
19 |
20 | const val ORDERS_SUCCESS: Int = 0x05
21 | /**
22 | * 登录错误
23 | *
24 | * @param LOGIN_FAIL
25 | * @return -
26 | */
27 | const val LOGIN_FAIL: Int = 0x02
28 |
29 |
30 | const val ORDERLIST_FAIL: Int = 0x04
31 |
32 | const val ORDERS_FAIL: Int = 0x06
33 |
34 | /**
35 | * 可判断所有错误
36 | */
37 | val JUST_ERROR_FAIL: Int = 0x37
38 | }
39 |
40 | var action = 0
41 | var any: Any? = null
42 | var anyOne: Any? = null
43 |
44 |
45 | //有参次构造器
46 | constructor(action:Int,any:Any){
47 | this.action=action
48 | this.any=any
49 | }
50 |
51 | //有双参次构造器
52 | constructor(action:Int,any:Any,anyOne: Any?){
53 | this.action=action
54 | this.any=any
55 | this.anyOne=anyOne
56 | }
57 | }
--------------------------------------------------------------------------------
/common/src/main/java/com/common/viewmodel/SingleLiveEvent.kt:
--------------------------------------------------------------------------------
1 | package com.common.viewmodel
2 |
3 | import android.util.Log
4 | import androidx.annotation.MainThread
5 | import androidx.lifecycle.LifecycleOwner
6 | import androidx.lifecycle.MutableLiveData
7 | import androidx.lifecycle.Observer
8 | import java.util.concurrent.atomic.AtomicBoolean
9 |
10 |
11 |
12 | /**
13 | * A lifecycle-aware observable that sends only new updates after subscription, used for events like
14 | * navigation and Snackbar messages.
15 | *
16 | * This avoids a common problem with events: on configuration change (like rotation) an update
17 | * can be emitted if the observer is active. This LiveData only calls the observable if there's an
18 | * explicit call to setValue() or call().
19 | *
20 | * Note that only one observer is going to be notified of changes.
21 | */
22 | class SingleLiveEvent : MutableLiveData() {
23 | private val mPending = AtomicBoolean(false)
24 |
25 | @MainThread
26 | override fun observe(owner: LifecycleOwner, observer: Observer) {
27 | if (hasActiveObservers()) {
28 | Log.w(TAG, "Multiple observers registered but only one will be notified of changes.")
29 | }
30 |
31 | // Observe the internal MutableLiveData
32 | super.observe(owner, Observer { t ->
33 | if (mPending.compareAndSet(true, false)) {
34 | observer.onChanged(t)
35 | }
36 | })
37 | }
38 |
39 | @MainThread
40 | override fun setValue(t: T?) {
41 | mPending.set(true)
42 | super.setValue(t)
43 | }
44 |
45 | @MainThread
46 | override fun postValue(value: T) {
47 | mPending.set(true)
48 | super.postValue(value)
49 | }
50 |
51 | /**
52 | * Used for cases where T is Void, to make calls cleaner.
53 | */
54 | @MainThread
55 | fun call() {
56 | setValue(null)
57 | }
58 |
59 | companion object {
60 | private const val TAG = "SingleLiveEvent"
61 | }
62 | }
63 |
64 |
--------------------------------------------------------------------------------
/common/src/main/java/com/common/viewmodel/StateView.kt:
--------------------------------------------------------------------------------
1 | package com.common.viewmodel
2 |
3 | import androidx.lifecycle.MutableLiveData
4 |
5 |
6 | class StateView {
7 | val isEmpty = MutableLiveData()
8 | val isErr = MutableLiveData()
9 | val isContent = MutableLiveData()
10 | val isLoading = MutableLiveData()
11 | }
12 |
--------------------------------------------------------------------------------
/common/src/main/java/com/common/viewmodel/ViewEvent.kt:
--------------------------------------------------------------------------------
1 | package com.common.viewmodel
2 |
3 | enum class ViewEvent {
4 | CREATED, DESTROY
5 | }
6 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx1536m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app's APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 | # Kotlin code style for this project: "official" or "obsolete":
21 | kotlin.code.style=official
22 |
23 | LogDebug=true
24 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Mar 03 09:28:53 CST 2021
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
7 |
--------------------------------------------------------------------------------
/libview/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 |
4 | android {
5 | def globalConfiguration = rootProject.extensions.getByName("ext")
6 | compileSdkVersion androidCompileSdkVersion
7 | buildToolsVersion androidBuildToolsVersion
8 |
9 | defaultConfig {
10 | minSdkVersion globalConfiguration["androidMinSdkVersion"]
11 | targetSdkVersion globalConfiguration["androidTargetSdkVersion"]
12 | ndkVersion globalConfiguration["androidNdkVersion"]
13 |
14 | multiDexEnabled globalConfiguration["androidMultiDexEnabled"]
15 | testInstrumentationRunner globalConfiguration["testInstrumentationRunner"]
16 | }
17 |
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 | compileOptions {
25 | sourceCompatibility JavaVersion.VERSION_1_8
26 | targetCompatibility JavaVersion.VERSION_1_8
27 | }
28 |
29 | kotlinOptions{
30 | jvmTarget = '11'
31 | }
32 |
33 | dataBinding {
34 | //noinspection DataBindingWithoutKapt
35 | enabled = true
36 | }
37 |
38 | }
39 |
40 | dependencies {
41 | implementation fileTree(include: ['*.jar'], dir: 'libs')
42 | implementation gradleBase.appcompat
43 | implementation gradleBase.core
44 | testImplementation gradleBase.junit
45 |
46 | implementation presentationDependencies.recyclerview
47 | annotationProcessor presentationDependencies.compiler
48 | implementation presentationDependencies.constraintlayout
49 | implementation presentationDependencies.navigation_fragment
50 | implementation presentationDependencies.navigation_ui
51 | implementation presentationDependencies.navigation_fragment_ktx
52 | implementation presentationDependencies.navigation_ui_ktx
53 | implementation presentationDependencies.glide
54 | implementation presentationDependencies.gson
55 | }
--------------------------------------------------------------------------------
/libview/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/libview/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/libview/src/main/java/com/justsafe/libview/invite/KeyWordUtil.kt:
--------------------------------------------------------------------------------
1 | package com.justsafe.libview.invite
2 |
3 | import android.text.SpannableString
4 | import android.text.Spanned
5 | import android.text.TextUtils
6 | import android.text.style.ForegroundColorSpan
7 | import java.util.regex.Pattern
8 |
9 | /**
10 | * 文字变色工具类
11 | */
12 | object KeyWordUtil {
13 | /**
14 | * 关键字高亮变色
15 | *
16 | * @param color 变化的色值
17 | * @param text 文字
18 | * @param keyword 文字中的关键字
19 | * @return 结果SpannableString
20 | */
21 | fun matcherSearchTitle(color: Int, text: String, keyword: String): SpannableString {
22 | var text = text
23 | var keyword = keyword
24 | val s = SpannableString(text)
25 | keyword = escapeExprSpecialWord(keyword)
26 | text = escapeExprSpecialWord(text)
27 | if (text.contains(keyword) && !TextUtils.isEmpty(keyword)) {
28 | try {
29 | val p = Pattern.compile(keyword)
30 | val m = p.matcher(s)
31 | while (m.find()) {
32 | val start = m.start()
33 | val end = m.end()
34 | s.setSpan(
35 | ForegroundColorSpan(color),
36 | start,
37 | end,
38 | Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
39 | )
40 | }
41 | } catch (e: Exception) {
42 | }
43 | }
44 | return s
45 | }
46 |
47 | /**
48 | * 转义正则特殊字符 ($()*+.[]?\^{},|)
49 | *
50 | * @param keyword
51 | * @return keyword
52 | */
53 | fun escapeExprSpecialWord(keyword: String): String {
54 | var keyword = keyword
55 | if (!TextUtils.isEmpty(keyword)) {
56 | val fbsArr =
57 | arrayOf("\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|")
58 | for (key in fbsArr) {
59 | if (keyword.contains(key)) {
60 | keyword = keyword.replace(key, "\\" + key)
61 | }
62 | }
63 | }
64 | return keyword
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/libview/src/main/java/com/justsafe/libview/nav/NavHostFragmentHideShow.kt:
--------------------------------------------------------------------------------
1 | package com.justsafe.libview.nav
2 |
3 | import android.view.View
4 | import androidx.navigation.Navigator
5 | import androidx.navigation.fragment.FragmentNavigator
6 | import androidx.navigation.fragment.NavHostFragment
7 | import androidx.navigation.fragment.R
8 |
9 |
10 | /**
11 | * 作者 : zt
12 | * 时间 : 2021/6/29
13 | * 描述 : Hide - Show NavHostFragment
14 | */
15 | class NavHostFragmentHideShow : NavHostFragment() {
16 |
17 | /**
18 | * @return 使用自己的FragmentNavigator
19 | */
20 | @Deprecated("Use {@link #onCreateNavController(NavController)}")
21 | override fun createFragmentNavigator(): Navigator {
22 | return FragmentNavigatorHideShow(requireContext(), childFragmentManager, containerId)
23 | }
24 |
25 | private val containerId: Int
26 | get() {
27 | // 如果此 Fragment 不是通过 add(containerViewId, Fragment) 添加的,则回退到使用我们自己的 ID
28 | val id = id
29 | return if (id != 0 && id != View.NO_ID) {
30 | id
31 | } else R.id.nav_host_fragment_container
32 | }
33 | }
--------------------------------------------------------------------------------
/libview/src/main/java/com/justsafe/libview/text/MarqueeTextView.kt:
--------------------------------------------------------------------------------
1 | package com.justsafe.libview.text
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import androidx.appcompat.widget.AppCompatTextView
6 |
7 | /**
8 | * 跑马灯
9 | */
10 |
11 | class MarqueeTextView @JvmOverloads constructor(
12 | context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
13 | ) : AppCompatTextView(context, attrs, defStyleAttr) {
14 |
15 | override fun isFocused(): Boolean {
16 | return true // 关键之处
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/libview/src/main/java/com/justsafe/libview/text/RequiredTextView.kt:
--------------------------------------------------------------------------------
1 | package com.justsafe.libview.text
2 |
3 | import android.content.Context
4 | import android.graphics.Color
5 | import android.text.Spannable
6 | import android.text.SpannableString
7 | import android.text.TextUtils
8 | import android.text.style.ForegroundColorSpan
9 | import android.util.AttributeSet
10 | import androidx.appcompat.widget.AppCompatTextView
11 | import com.justsafe.libview.R
12 |
13 | class RequiredTextView : AppCompatTextView {
14 | private var prefix: String? = "*"
15 | private var prefixColor = Color.RED
16 |
17 | constructor(context: Context?) : super(context!!)
18 |
19 | constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
20 | init(context, attrs)
21 | }
22 |
23 | constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
24 | context,
25 | attrs,
26 | defStyleAttr
27 | ) {
28 | init(context, attrs)
29 | }
30 |
31 | private fun init(context: Context, attrs: AttributeSet?) {
32 | val ta = context.obtainStyledAttributes(attrs, R.styleable.RequiredTextView)
33 |
34 | prefix = ta.getString(R.styleable.RequiredTextView_prefix)
35 | prefixColor = ta.getInteger(R.styleable.RequiredTextView_prefix_color, Color.RED)
36 | var text = ta.getString(R.styleable.RequiredTextView_android_text)
37 | if (TextUtils.isEmpty(prefix)) {
38 | prefix = "*"
39 | }
40 | if (TextUtils.isEmpty(text)) {
41 | text = ""
42 | }
43 | ta.recycle()
44 | setText(text)
45 | }
46 |
47 | fun setText(text: String?) {
48 | val span: Spannable = SpannableString(prefix + text)
49 | span.setSpan(
50 | ForegroundColorSpan(prefixColor),
51 | 0,
52 | prefix!!.length,
53 | Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
54 | )
55 | setText(span)
56 | }
57 | }
--------------------------------------------------------------------------------
/libview/src/main/java/com/justsafe/libview/util/BaseUtil.kt:
--------------------------------------------------------------------------------
1 | package com.justsafe.libview.util
2 |
3 | class BaseUtil {
4 | }
--------------------------------------------------------------------------------
/libview/src/main/java/com/justsafe/libview/util/InputFilterUtils.kt:
--------------------------------------------------------------------------------
1 | package com.justsafe.libview.util
2 |
3 | import android.text.InputFilter
4 | import android.widget.EditText
5 | import java.util.regex.Pattern
6 |
7 | object InputFilterUtils {
8 | /**
9 | * 禁止EditText输入空格
10 | *
11 | * @param editText
12 | */
13 | fun setEditTextInhibitInputSpaChat(editText: EditText) {
14 | val filter_space =
15 | InputFilter { source, start, end, dest, dstart, dend -> if (source == " ") "" else null }
16 | val filter_speChat =
17 | InputFilter { charSequence, i, i1, spanned, i2, i3 ->
18 | val speChat = "[`~!@#_$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()— +|{}【】‘;:”“’。,、?]"
19 | val pattern = Pattern.compile(speChat)
20 | val matcher = pattern.matcher(charSequence.toString())
21 | if (matcher.find() || containsEmoji(charSequence.toString())) "" else null
22 | }
23 | editText.filters = arrayOf(filter_space, filter_speChat)
24 | }
25 |
26 | /**
27 | * 检测是否有emoji表情
28 | *
29 | * @param source -
30 | * @return -
31 | */
32 | fun containsEmoji(source: String): Boolean {
33 | val len = source.length
34 | for (i in 0 until len) {
35 | val codePoint = source[i]
36 | if (!isEmojiCharacter(codePoint)) { //如果不能匹配,则该字符是Emoji表情
37 | return false
38 | }
39 | }
40 | return true
41 | }
42 |
43 | /**
44 | * 判断是否是Emoji
45 | *
46 | * @param codePoint 比较的单个字符
47 | * @return -
48 | */
49 | private fun isEmojiCharacter(codePoint: Char): Boolean {
50 | return codePoint.toInt() == 0x0 || codePoint.toInt() == 0x9 || codePoint.toInt() == 0xA || codePoint.toInt() == 0xD || codePoint.toInt() >= 0x20 && codePoint.toInt() <= 0xD7FF || codePoint.toInt() >= 0xE000 && codePoint.toInt() <= 0xFFFD
51 | }
52 | }
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-v24/alert_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-v24/alert_bg.9.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-v24/elab_tab_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
5 |
6 |
7 |
8 |
9 |
10 |
12 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-v24/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
15 |
18 |
21 |
22 |
23 |
24 |
30 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxhdpi/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxhdpi/arrow.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxhdpi/ic_submit.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxhdpi/public_waiting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxhdpi/public_waiting.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxhdpi/succeed_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/btn_100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/btn_100.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/btn_100_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/btn_100_h.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/btn_alpha50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/btn_alpha50.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/btn_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/btn_close.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/icon_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/icon_arrow_right.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/icon_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/icon_back.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/icon_organization.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/icon_organization.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/icon_radio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/icon_radio.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/icon_radio_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/icon_radio_selected.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/icon_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/icon_search.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable-xxxhdpi/img_head_smal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/drawable-xxxhdpi/img_head_smal.png
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/bg_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/bg_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/btn_100_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/cv_bg_material.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 | -
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/ic_back.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/ic_delete.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/ic_user_img.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/org_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/public_progress.xml:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/super_edittext_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 | -
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/libview/src/main/res/drawable/super_edittext_cursor.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/crumb_item_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
26 |
27 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/cv_layout_calendar_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
20 |
21 |
27 |
28 |
36 |
37 |
38 |
39 |
47 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/item_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
21 |
22 |
31 |
32 |
33 |
40 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/item_type_org.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
30 |
31 |
37 |
38 |
45 |
46 |
47 |
51 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/wheel_dialog_base.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
22 |
33 |
34 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/wheel_dialog_title_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
18 |
19 |
31 |
32 |
44 |
45 |
--------------------------------------------------------------------------------
/libview/src/main/res/layout/wheel_fragment_dialog.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
22 |
23 |
24 |
29 |
30 |
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-hdpi/fragment_chat_play_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-hdpi/fragment_chat_play_video.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-mdpi/trans_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-mdpi/trans_bg.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxhdpi/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxhdpi/back.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxhdpi/clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxhdpi/clear.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxhdpi/date.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxhdpi/date.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxhdpi/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxhdpi/search.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/libview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/libview/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/libview/src/main/res/values-night/circleprgbar_attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/libview/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/libview/src/main/res/values/style.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/libview/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name='mall'
2 | include ':app'
3 | include ':common'
4 | include ':libview'
5 | include ':autosize'
6 | include ':xp460b'
7 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/query/client-agp/cache-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/query/client-agp/cache-v2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/query/client-agp/codemodel-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/query/client-agp/codemodel-v2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/reply/codemodel-v2-819c4144758e644b6a21.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations" :
3 | [
4 | {
5 | "directories" :
6 | [
7 | {
8 | "build" : ".",
9 | "minimumCMakeVersion" :
10 | {
11 | "string" : "3.6.0"
12 | },
13 | "projectIndex" : 0,
14 | "source" : ".",
15 | "targetIndexes" :
16 | [
17 | 0
18 | ]
19 | }
20 | ],
21 | "name" : "Debug",
22 | "projects" :
23 | [
24 | {
25 | "directoryIndexes" :
26 | [
27 | 0
28 | ],
29 | "name" : "xp460b",
30 | "targetIndexes" :
31 | [
32 | 0
33 | ]
34 | }
35 | ],
36 | "targets" :
37 | [
38 | {
39 | "directoryIndex" : 0,
40 | "id" : "xp460b::@6890427a1f51a3e7e1df",
41 | "jsonFile" : "target-xp460b-Debug-76e6cf918218d064ba15.json",
42 | "name" : "xp460b",
43 | "projectIndex" : 0
44 | }
45 | ]
46 | }
47 | ],
48 | "kind" : "codemodel",
49 | "paths" :
50 | {
51 | "build" : "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86",
52 | "source" : "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/src/main/cpp"
53 | },
54 | "version" :
55 | {
56 | "major" : 2,
57 | "minor" : 1
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.cmake/api/v1/reply/index-2024-03-01T07-28-20-0231.json:
--------------------------------------------------------------------------------
1 | {
2 | "cmake" :
3 | {
4 | "generator" :
5 | {
6 | "multiConfig" : false,
7 | "name" : "Ninja"
8 | },
9 | "paths" :
10 | {
11 | "cmake" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cmake",
12 | "cpack" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cpack",
13 | "ctest" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ctest",
14 | "root" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/share/cmake-3.18"
15 | },
16 | "version" :
17 | {
18 | "isDirty" : false,
19 | "major" : 3,
20 | "minor" : 18,
21 | "patch" : 1,
22 | "string" : "3.18.1-g262b901",
23 | "suffix" : "g262b901"
24 | }
25 | },
26 | "objects" :
27 | [
28 | {
29 | "jsonFile" : "codemodel-v2-819c4144758e644b6a21.json",
30 | "kind" : "codemodel",
31 | "version" :
32 | {
33 | "major" : 2,
34 | "minor" : 1
35 | }
36 | },
37 | {
38 | "jsonFile" : "cache-v2-fe0f62849f987ff42220.json",
39 | "kind" : "cache",
40 | "version" :
41 | {
42 | "major" : 2,
43 | "minor" : 0
44 | }
45 | },
46 | {
47 | "jsonFile" : "cmakeFiles-v1-a0390a5de1b95f436d6c.json",
48 | "kind" : "cmakeFiles",
49 | "version" :
50 | {
51 | "major" : 1,
52 | "minor" : 0
53 | }
54 | }
55 | ],
56 | "reply" :
57 | {
58 | "client-agp" :
59 | {
60 | "cache-v2" :
61 | {
62 | "jsonFile" : "cache-v2-fe0f62849f987ff42220.json",
63 | "kind" : "cache",
64 | "version" :
65 | {
66 | "major" : 2,
67 | "minor" : 0
68 | }
69 | },
70 | "cmakeFiles-v1" :
71 | {
72 | "jsonFile" : "cmakeFiles-v1-a0390a5de1b95f436d6c.json",
73 | "kind" : "cmakeFiles",
74 | "version" :
75 | {
76 | "major" : 1,
77 | "minor" : 0
78 | }
79 | },
80 | "codemodel-v2" :
81 | {
82 | "jsonFile" : "codemodel-v2-819c4144758e644b6a21.json",
83 | "kind" : "codemodel",
84 | "version" :
85 | {
86 | "major" : 2,
87 | "minor" : 1
88 | }
89 | }
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.ninja_deps:
--------------------------------------------------------------------------------
1 | # ninjadeps
2 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/.ninja_log:
--------------------------------------------------------------------------------
1 | # ninja log v5
2 | 0 27 0 clean b2565f0b791926a6
3 | 0 27 0 clean b2565f0b791926a6
4 | 0 22 0 clean b2565f0b791926a6
5 | 0 22 0 clean b2565f0b791926a6
6 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/3.18.1-g262b901/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-23.0.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "23.0.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/user/StudioProjects/SDK/ndk/22.1.7171670/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "i686")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/rebuild_cache.dir
2 | /Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/edit_cache.dir
3 | /Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/xp460b.dir
4 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/src/main/cpp/CMakeLists.txt"
4 | ],
5 | "cleanCommandsComponents": [
6 | [
7 | "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja",
8 | "-C",
9 | "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86",
10 | "clean"
11 | ]
12 | ],
13 | "buildTargetsCommandComponents": [
14 | "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja",
15 | "-C",
16 | "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86",
17 | "{LIST_OF_TARGETS_TO_BUILD}"
18 | ],
19 | "libraries": {
20 | "xp460b::@6890427a1f51a3e7e1df": {
21 | "toolchain": "toolchain",
22 | "abi": "x86",
23 | "artifactName": "xp460b",
24 | "output": "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/build/intermediates/cxx/Debug/1o3e4g18/obj/x86/libxp460b.so",
25 | "runtimeFiles": []
26 | }
27 | },
28 | "toolchains": {
29 | "toolchain": {
30 | "cCompilerExecutable": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld",
31 | "cppCompilerExecutable": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld"
32 | }
33 | },
34 | "cFileExtensions": [],
35 | "cppFileExtensions": [
36 | "cpp"
37 | ]
38 | }
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/user/StudioProjects/Demo/ManagementSystem/xp460b/src/main/cpp
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | # Set default install directory permissions.
41 | if(NOT DEFINED CMAKE_OBJDUMP)
42 | set(CMAKE_OBJDUMP "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-objdump")
43 | endif()
44 |
45 | if(CMAKE_INSTALL_COMPONENT)
46 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
47 | else()
48 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
49 | endif()
50 |
51 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
52 | "${CMAKE_INSTALL_MANIFEST_FILES}")
53 | file(WRITE "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86/${CMAKE_INSTALL_MANIFEST}"
54 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
55 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86",
4 | "command": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android21 --gcc-toolchain=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -Dxp460b_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -o CMakeFiles/xp460b.dir/xp460b.cpp.o -c /Users/user/StudioProjects/Demo/ManagementSystem/xp460b/src/main/cpp/xp460b.cpp",
5 | "file": "/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/src/main/cpp/xp460b.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/compile_commands.json.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/1o3e4g18/x86/compile_commands.json.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/metadata_generation_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cmake
2 | arguments :
3 | -H/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/src/main/cpp
4 | -DCMAKE_SYSTEM_NAME=Android
5 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
6 | -DCMAKE_SYSTEM_VERSION=21
7 | -DANDROID_PLATFORM=android-21
8 | -DANDROID_ABI=x86
9 | -DCMAKE_ANDROID_ARCH_ABI=x86
10 | -DANDROID_NDK=/Users/user/StudioProjects/SDK/ndk/22.1.7171670
11 | -DCMAKE_ANDROID_NDK=/Users/user/StudioProjects/SDK/ndk/22.1.7171670
12 | -DCMAKE_TOOLCHAIN_FILE=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/build/cmake/android.toolchain.cmake
13 | -DCMAKE_MAKE_PROGRAM=/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja
14 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/build/intermediates/cxx/Debug/1o3e4g18/obj/x86
15 | -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/build/intermediates/cxx/Debug/1o3e4g18/obj/x86
16 | -DCMAKE_BUILD_TYPE=Debug
17 | -B/Users/user/StudioProjects/Demo/ManagementSystem/xp460b/.cxx/Debug/1o3e4g18/x86
18 | -GNinja
19 | jvmArgs :
20 |
21 |
22 | Build command args: []
23 | Version: 2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/1o3e4g18/x86/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-7bbaf92080a5aa935bac.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations" :
3 | [
4 | {
5 | "directories" :
6 | [
7 | {
8 | "build" : ".",
9 | "minimumCMakeVersion" :
10 | {
11 | "string" : "3.6.0"
12 | },
13 | "projectIndex" : 0,
14 | "source" : ".",
15 | "targetIndexes" :
16 | [
17 | 0
18 | ]
19 | }
20 | ],
21 | "name" : "Debug",
22 | "projects" :
23 | [
24 | {
25 | "directoryIndexes" :
26 | [
27 | 0
28 | ],
29 | "name" : "xp460b",
30 | "targetIndexes" :
31 | [
32 | 0
33 | ]
34 | }
35 | ],
36 | "targets" :
37 | [
38 | {
39 | "directoryIndex" : 0,
40 | "id" : "xp460b::@6890427a1f51a3e7e1df",
41 | "jsonFile" : "target-xp460b-Debug-fb7cdc1d28f5653a7391.json",
42 | "name" : "xp460b",
43 | "projectIndex" : 0
44 | }
45 | ]
46 | }
47 | ],
48 | "kind" : "codemodel",
49 | "paths" :
50 | {
51 | "build" : "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a",
52 | "source" : "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp"
53 | },
54 | "version" :
55 | {
56 | "major" : 2,
57 | "minor" : 1
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.cmake/api/v1/reply/index-2024-08-02T09-04-01-0323.json:
--------------------------------------------------------------------------------
1 | {
2 | "cmake" :
3 | {
4 | "generator" :
5 | {
6 | "multiConfig" : false,
7 | "name" : "Ninja"
8 | },
9 | "paths" :
10 | {
11 | "cmake" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cmake",
12 | "cpack" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cpack",
13 | "ctest" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ctest",
14 | "root" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/share/cmake-3.18"
15 | },
16 | "version" :
17 | {
18 | "isDirty" : false,
19 | "major" : 3,
20 | "minor" : 18,
21 | "patch" : 1,
22 | "string" : "3.18.1-g262b901",
23 | "suffix" : "g262b901"
24 | }
25 | },
26 | "objects" :
27 | [
28 | {
29 | "jsonFile" : "codemodel-v2-7bbaf92080a5aa935bac.json",
30 | "kind" : "codemodel",
31 | "version" :
32 | {
33 | "major" : 2,
34 | "minor" : 1
35 | }
36 | },
37 | {
38 | "jsonFile" : "cache-v2-07f7fceb6942dd782c98.json",
39 | "kind" : "cache",
40 | "version" :
41 | {
42 | "major" : 2,
43 | "minor" : 0
44 | }
45 | },
46 | {
47 | "jsonFile" : "cmakeFiles-v1-fffc0c383048d827523f.json",
48 | "kind" : "cmakeFiles",
49 | "version" :
50 | {
51 | "major" : 1,
52 | "minor" : 0
53 | }
54 | }
55 | ],
56 | "reply" :
57 | {
58 | "client-agp" :
59 | {
60 | "cache-v2" :
61 | {
62 | "jsonFile" : "cache-v2-07f7fceb6942dd782c98.json",
63 | "kind" : "cache",
64 | "version" :
65 | {
66 | "major" : 2,
67 | "minor" : 0
68 | }
69 | },
70 | "cmakeFiles-v1" :
71 | {
72 | "jsonFile" : "cmakeFiles-v1-fffc0c383048d827523f.json",
73 | "kind" : "cmakeFiles",
74 | "version" :
75 | {
76 | "major" : 1,
77 | "minor" : 0
78 | }
79 | },
80 | "codemodel-v2" :
81 | {
82 | "jsonFile" : "codemodel-v2-7bbaf92080a5aa935bac.json",
83 | "kind" : "codemodel",
84 | "version" :
85 | {
86 | "major" : 2,
87 | "minor" : 1
88 | }
89 | }
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.ninja_deps:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.ninja_deps
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/.ninja_log:
--------------------------------------------------------------------------------
1 | # ninja log v5
2 | 0 373 1722589441 CMakeFiles/xp460b.dir/xp460b.cpp.o 4aaf8ceed24f3b8
3 | 373 463 1722589441 /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/arm64-v8a/libxp460b.so 3c0f78c6b8071413
4 | 0 23 0 clean b2565f0b791926a6
5 | 0 25 0 clean b2565f0b791926a6
6 | 1 349 1722748615 CMakeFiles/xp460b.dir/xp460b.cpp.o 4aaf8ceed24f3b8
7 | 349 453 1722748615 /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/arm64-v8a/libxp460b.so 3c0f78c6b8071413
8 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/3.18.1-g262b901/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-23.0.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "23.0.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/user/StudioProjects/SDK/ndk/22.1.7171670/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "aarch64")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/rebuild_cache.dir
2 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/edit_cache.dir
3 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/xp460b.dir
4 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/xp460b.dir/xp460b.cpp.o:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/CMakeFiles/xp460b.dir/xp460b.cpp.o
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp/CMakeLists.txt"
4 | ],
5 | "cleanCommandsComponents": [
6 | [
7 | "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja",
8 | "-C",
9 | "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a",
10 | "clean"
11 | ]
12 | ],
13 | "buildTargetsCommandComponents": [
14 | "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja",
15 | "-C",
16 | "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a",
17 | "{LIST_OF_TARGETS_TO_BUILD}"
18 | ],
19 | "libraries": {
20 | "xp460b::@6890427a1f51a3e7e1df": {
21 | "toolchain": "toolchain",
22 | "abi": "arm64-v8a",
23 | "artifactName": "xp460b",
24 | "output": "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/arm64-v8a/libxp460b.so",
25 | "runtimeFiles": []
26 | }
27 | },
28 | "toolchains": {
29 | "toolchain": {
30 | "cCompilerExecutable": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld",
31 | "cppCompilerExecutable": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld"
32 | }
33 | },
34 | "cFileExtensions": [],
35 | "cppFileExtensions": [
36 | "cpp"
37 | ]
38 | }
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/android_gradle_build_command_xp460b_arm64-v8a.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja
2 | arguments :
3 | -C
4 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a
5 | xp460b
6 | jvmArgs :
7 |
8 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/android_gradle_build_stderr_xp460b_arm64-v8a.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/android_gradle_build_stderr_xp460b_arm64-v8a.txt
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/android_gradle_build_stdout_xp460b_arm64-v8a.txt:
--------------------------------------------------------------------------------
1 | ninja: Entering directory `/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a'
2 | ninja: no work to do.
3 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | # Set default install directory permissions.
41 | if(NOT DEFINED CMAKE_OBJDUMP)
42 | set(CMAKE_OBJDUMP "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-objdump")
43 | endif()
44 |
45 | if(CMAKE_INSTALL_COMPONENT)
46 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
47 | else()
48 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
49 | endif()
50 |
51 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
52 | "${CMAKE_INSTALL_MANIFEST_FILES}")
53 | file(WRITE "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/${CMAKE_INSTALL_MANIFEST}"
54 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
55 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a",
4 | "command": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --gcc-toolchain=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -Dxp460b_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -o CMakeFiles/xp460b.dir/xp460b.cpp.o -c /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp/xp460b.cpp",
5 | "file": "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp/xp460b.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/compile_commands.json.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/compile_commands.json.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/metadata_generation_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cmake
2 | arguments :
3 | -H/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp
4 | -DCMAKE_SYSTEM_NAME=Android
5 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
6 | -DCMAKE_SYSTEM_VERSION=19
7 | -DANDROID_PLATFORM=android-19
8 | -DANDROID_ABI=arm64-v8a
9 | -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
10 | -DANDROID_NDK=/Users/user/StudioProjects/SDK/ndk/22.1.7171670
11 | -DCMAKE_ANDROID_NDK=/Users/user/StudioProjects/SDK/ndk/22.1.7171670
12 | -DCMAKE_TOOLCHAIN_FILE=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/build/cmake/android.toolchain.cmake
13 | -DCMAKE_MAKE_PROGRAM=/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja
14 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/arm64-v8a
15 | -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/arm64-v8a
16 | -DCMAKE_BUILD_TYPE=Debug
17 | -B/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/arm64-v8a
18 | -GNinja
19 | jvmArgs :
20 |
21 |
22 | Build command args: []
23 | Version: 2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/arm64-v8a/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/query/client-agp/cache-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/query/client-agp/cache-v2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/query/client-agp/codemodel-v2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/query/client-agp/codemodel-v2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/reply/codemodel-v2-285482eff219e552c3f3.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations" :
3 | [
4 | {
5 | "directories" :
6 | [
7 | {
8 | "build" : ".",
9 | "minimumCMakeVersion" :
10 | {
11 | "string" : "3.6.0"
12 | },
13 | "projectIndex" : 0,
14 | "source" : ".",
15 | "targetIndexes" :
16 | [
17 | 0
18 | ]
19 | }
20 | ],
21 | "name" : "Debug",
22 | "projects" :
23 | [
24 | {
25 | "directoryIndexes" :
26 | [
27 | 0
28 | ],
29 | "name" : "xp460b",
30 | "targetIndexes" :
31 | [
32 | 0
33 | ]
34 | }
35 | ],
36 | "targets" :
37 | [
38 | {
39 | "directoryIndex" : 0,
40 | "id" : "xp460b::@6890427a1f51a3e7e1df",
41 | "jsonFile" : "target-xp460b-Debug-12387b5d59e21718b7ef.json",
42 | "name" : "xp460b",
43 | "projectIndex" : 0
44 | }
45 | ]
46 | }
47 | ],
48 | "kind" : "codemodel",
49 | "paths" :
50 | {
51 | "build" : "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86",
52 | "source" : "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp"
53 | },
54 | "version" :
55 | {
56 | "major" : 2,
57 | "minor" : 1
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/.cmake/api/v1/reply/index-2024-08-02T09-03-49-0182.json:
--------------------------------------------------------------------------------
1 | {
2 | "cmake" :
3 | {
4 | "generator" :
5 | {
6 | "multiConfig" : false,
7 | "name" : "Ninja"
8 | },
9 | "paths" :
10 | {
11 | "cmake" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cmake",
12 | "cpack" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cpack",
13 | "ctest" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ctest",
14 | "root" : "/Users/user/StudioProjects/SDK/cmake/3.18.1/share/cmake-3.18"
15 | },
16 | "version" :
17 | {
18 | "isDirty" : false,
19 | "major" : 3,
20 | "minor" : 18,
21 | "patch" : 1,
22 | "string" : "3.18.1-g262b901",
23 | "suffix" : "g262b901"
24 | }
25 | },
26 | "objects" :
27 | [
28 | {
29 | "jsonFile" : "codemodel-v2-285482eff219e552c3f3.json",
30 | "kind" : "codemodel",
31 | "version" :
32 | {
33 | "major" : 2,
34 | "minor" : 1
35 | }
36 | },
37 | {
38 | "jsonFile" : "cache-v2-3d026f07d75375047360.json",
39 | "kind" : "cache",
40 | "version" :
41 | {
42 | "major" : 2,
43 | "minor" : 0
44 | }
45 | },
46 | {
47 | "jsonFile" : "cmakeFiles-v1-5d238ced76e207bbdf0a.json",
48 | "kind" : "cmakeFiles",
49 | "version" :
50 | {
51 | "major" : 1,
52 | "minor" : 0
53 | }
54 | }
55 | ],
56 | "reply" :
57 | {
58 | "client-agp" :
59 | {
60 | "cache-v2" :
61 | {
62 | "jsonFile" : "cache-v2-3d026f07d75375047360.json",
63 | "kind" : "cache",
64 | "version" :
65 | {
66 | "major" : 2,
67 | "minor" : 0
68 | }
69 | },
70 | "cmakeFiles-v1" :
71 | {
72 | "jsonFile" : "cmakeFiles-v1-5d238ced76e207bbdf0a.json",
73 | "kind" : "cmakeFiles",
74 | "version" :
75 | {
76 | "major" : 1,
77 | "minor" : 0
78 | }
79 | },
80 | "codemodel-v2" :
81 | {
82 | "jsonFile" : "codemodel-v2-285482eff219e552c3f3.json",
83 | "kind" : "codemodel",
84 | "version" :
85 | {
86 | "major" : 2,
87 | "minor" : 1
88 | }
89 | }
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_C.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_C.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_CXX.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/3.18.1-g262b901/CMakeDetermineCompilerABI_CXX.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/3.18.1-g262b901/CMakeSystem.cmake:
--------------------------------------------------------------------------------
1 | set(CMAKE_HOST_SYSTEM "Darwin-23.0.0")
2 | set(CMAKE_HOST_SYSTEM_NAME "Darwin")
3 | set(CMAKE_HOST_SYSTEM_VERSION "23.0.0")
4 | set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
5 |
6 | include("/Users/user/StudioProjects/SDK/ndk/22.1.7171670/build/cmake/android.toolchain.cmake")
7 |
8 | set(CMAKE_SYSTEM "Android-1")
9 | set(CMAKE_SYSTEM_NAME "Android")
10 | set(CMAKE_SYSTEM_VERSION "1")
11 | set(CMAKE_SYSTEM_PROCESSOR "i686")
12 |
13 | set(CMAKE_CROSSCOMPILING "TRUE")
14 |
15 | set(CMAKE_SYSTEM_LOADED 1)
16 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/TargetDirectories.txt:
--------------------------------------------------------------------------------
1 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/rebuild_cache.dir
2 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/edit_cache.dir
3 | /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/xp460b.dir
4 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/CMakeFiles/cmake.check_cache:
--------------------------------------------------------------------------------
1 | # This file is generated by cmake for dependency checking of the CMakeCache.txt file
2 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/android_gradle_build.json:
--------------------------------------------------------------------------------
1 | {
2 | "buildFiles": [
3 | "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp/CMakeLists.txt"
4 | ],
5 | "cleanCommandsComponents": [
6 | [
7 | "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja",
8 | "-C",
9 | "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86",
10 | "clean"
11 | ]
12 | ],
13 | "buildTargetsCommandComponents": [
14 | "/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja",
15 | "-C",
16 | "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86",
17 | "{LIST_OF_TARGETS_TO_BUILD}"
18 | ],
19 | "libraries": {
20 | "xp460b::@6890427a1f51a3e7e1df": {
21 | "toolchain": "toolchain",
22 | "abi": "x86",
23 | "artifactName": "xp460b",
24 | "output": "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/x86/libxp460b.so",
25 | "runtimeFiles": []
26 | }
27 | },
28 | "toolchains": {
29 | "toolchain": {
30 | "cCompilerExecutable": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang.lld",
31 | "cppCompilerExecutable": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++.lld"
32 | }
33 | },
34 | "cFileExtensions": [],
35 | "cppFileExtensions": [
36 | "cpp"
37 | ]
38 | }
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/cmake_install.cmake:
--------------------------------------------------------------------------------
1 | # Install script for directory: /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp
2 |
3 | # Set the install prefix
4 | if(NOT DEFINED CMAKE_INSTALL_PREFIX)
5 | set(CMAKE_INSTALL_PREFIX "/usr/local")
6 | endif()
7 | string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
8 |
9 | # Set the install configuration name.
10 | if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
11 | if(BUILD_TYPE)
12 | string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
13 | CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
14 | else()
15 | set(CMAKE_INSTALL_CONFIG_NAME "Debug")
16 | endif()
17 | message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
18 | endif()
19 |
20 | # Set the component getting installed.
21 | if(NOT CMAKE_INSTALL_COMPONENT)
22 | if(COMPONENT)
23 | message(STATUS "Install component: \"${COMPONENT}\"")
24 | set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
25 | else()
26 | set(CMAKE_INSTALL_COMPONENT)
27 | endif()
28 | endif()
29 |
30 | # Install shared libraries without execute permission?
31 | if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
32 | set(CMAKE_INSTALL_SO_NO_EXE "0")
33 | endif()
34 |
35 | # Is this installation the result of a crosscompile?
36 | if(NOT DEFINED CMAKE_CROSSCOMPILING)
37 | set(CMAKE_CROSSCOMPILING "TRUE")
38 | endif()
39 |
40 | # Set default install directory permissions.
41 | if(NOT DEFINED CMAKE_OBJDUMP)
42 | set(CMAKE_OBJDUMP "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/i686-linux-android-objdump")
43 | endif()
44 |
45 | if(CMAKE_INSTALL_COMPONENT)
46 | set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
47 | else()
48 | set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
49 | endif()
50 |
51 | string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
52 | "${CMAKE_INSTALL_MANIFEST_FILES}")
53 | file(WRITE "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86/${CMAKE_INSTALL_MANIFEST}"
54 | "${CMAKE_INSTALL_MANIFEST_CONTENT}")
55 |
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/compile_commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "directory": "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86",
4 | "command": "/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=i686-none-linux-android19 --gcc-toolchain=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64 --sysroot=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -Dxp460b_EXPORTS -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -o CMakeFiles/xp460b.dir/xp460b.cpp.o -c /Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp/xp460b.cpp",
5 | "file": "/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp/xp460b.cpp"
6 | }
7 | ]
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/compile_commands.json.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/.cxx/Debug/2z4w301x/x86/compile_commands.json.bin
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/metadata_generation_command.txt:
--------------------------------------------------------------------------------
1 | Executable : /Users/user/StudioProjects/SDK/cmake/3.18.1/bin/cmake
2 | arguments :
3 | -H/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/src/main/cpp
4 | -DCMAKE_SYSTEM_NAME=Android
5 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
6 | -DCMAKE_SYSTEM_VERSION=19
7 | -DANDROID_PLATFORM=android-19
8 | -DANDROID_ABI=x86
9 | -DCMAKE_ANDROID_ARCH_ABI=x86
10 | -DANDROID_NDK=/Users/user/StudioProjects/SDK/ndk/22.1.7171670
11 | -DCMAKE_ANDROID_NDK=/Users/user/StudioProjects/SDK/ndk/22.1.7171670
12 | -DCMAKE_TOOLCHAIN_FILE=/Users/user/StudioProjects/SDK/ndk/22.1.7171670/build/cmake/android.toolchain.cmake
13 | -DCMAKE_MAKE_PROGRAM=/Users/user/StudioProjects/SDK/cmake/3.18.1/bin/ninja
14 | -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/x86
15 | -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/build/intermediates/cxx/Debug/2z4w301x/obj/x86
16 | -DCMAKE_BUILD_TYPE=Debug
17 | -B/Users/user/IdeaProjects/xmdd/litemall-app/xp460b/.cxx/Debug/2z4w301x/x86
18 | -GNinja
19 | jvmArgs :
20 |
21 |
22 | Build command args: []
23 | Version: 2
--------------------------------------------------------------------------------
/xp460b/.cxx/Debug/2z4w301x/x86/prefab_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "enabled": false,
3 | "packages": []
4 | }
--------------------------------------------------------------------------------
/xp460b/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/xp460b/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | id 'org.jetbrains.kotlin.android'
4 | id 'kotlin-android-extensions'
5 | id 'kotlin-kapt'
6 | }
7 |
8 | android {
9 | def globalConfiguration = rootProject.extensions.getByName("ext")
10 | compileSdkVersion androidCompileSdkVersion
11 | buildToolsVersion androidBuildToolsVersion
12 |
13 | defaultConfig {
14 | minSdkVersion globalConfiguration["androidMinSdkVersion"]
15 | targetSdkVersion globalConfiguration["androidTargetSdkVersion"]
16 | ndkVersion globalConfiguration["androidNdkVersion"]
17 |
18 | multiDexEnabled globalConfiguration["androidMultiDexEnabled"]
19 | testInstrumentationRunner globalConfiguration["testInstrumentationRunner"]
20 | }
21 |
22 | buildTypes {
23 | release {
24 | minifyEnabled false
25 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
26 | }
27 | }
28 |
29 | // buildTypes {
30 | // release {,
31 | // minifyEnabled false
32 | // proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
33 | // }
34 | // }
35 | externalNativeBuild {
36 | cmake {
37 | path "src/main/cpp/CMakeLists.txt"
38 | version "3.18.1"
39 | }
40 | }
41 | compileOptions {
42 | sourceCompatibility JavaVersion.VERSION_1_8
43 | targetCompatibility JavaVersion.VERSION_1_8
44 | }
45 | kotlinOptions {
46 | jvmTarget = '1.8'
47 | }
48 | }
49 |
50 | dependencies {
51 |
52 | implementation gradleBase.core
53 | implementation 'com.google.android.material:material:1.4.0'
54 |
55 | implementation fileTree(dir: 'libs', include: ['*.jar'])
56 | implementation gradleBase.appcompat
57 | api files('libs/posprinterconnectandsendsdk_1.1.13.jar')
58 | }
--------------------------------------------------------------------------------
/xp460b/consumer-rules.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/consumer-rules.pro
--------------------------------------------------------------------------------
/xp460b/libs/posprinterconnectandsendsdk_1.1.13.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/libs/posprinterconnectandsendsdk_1.1.13.jar
--------------------------------------------------------------------------------
/xp460b/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/xp460b/src/main/cpp/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # For more information about using CMake with Android Studio, read the
2 | # documentation: https://d.android.com/studio/projects/add-native-code.html
3 |
4 | # Sets the minimum version of CMake required to build the native library.
5 |
6 | cmake_minimum_required(VERSION 3.18.1)
7 |
8 | # Declares and names the project.
9 |
10 | project("xp460b")
11 |
12 | # Creates and names a library, sets it as either STATIC
13 | # or SHARED, and provides the relative paths to its source code.
14 | # You can define multiple libraries, and CMake builds them for you.
15 | # Gradle automatically packages shared libraries with your APK.
16 |
17 | add_library( # Sets the name of the library.
18 | xp460b
19 |
20 | # Sets the library as a shared library.
21 | SHARED
22 |
23 | # Provides a relative path to your source file(s).
24 | xp460b.cpp )
25 |
26 | # Searches for a specified prebuilt library and stores the path as a
27 | # variable. Because CMake includes system libraries in the search path by
28 | # default, you only need to specify the name of the public NDK library
29 | # you want to add. CMake verifies that the library exists before
30 | # completing its build.
31 |
32 | find_library( # Sets the name of the path variable.
33 | log-lib
34 |
35 | # Specifies the name of the NDK library that
36 | # you want CMake to locate.
37 | log )
38 |
39 | # Specifies libraries CMake should link to your target library. You
40 | # can link multiple libraries, such as libraries you define in this
41 | # build script, prebuilt third-party libraries, or system libraries.
42 |
43 | target_link_libraries( # Specifies the target library.
44 | xp460b
45 |
46 | # Links the target library to the log library
47 | # included in the NDK.
48 | ${log-lib} )
--------------------------------------------------------------------------------
/xp460b/src/main/cpp/xp460b.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | extern "C" JNIEXPORT jstring JNICALL
5 | Java_com_example_xp460b_NativeLib_stringFromJNI(
6 | JNIEnv* env,
7 | jobject /* this */) {
8 | std::string hello = "Hello from C++";
9 | return env->NewStringUTF(hello.c_str());
10 | }
--------------------------------------------------------------------------------
/xp460b/src/main/java/com/example/xp460b/Conts.java:
--------------------------------------------------------------------------------
1 | package com.example.xp460b;
2 |
3 | public class Conts {
4 | //public static final String ACTION_SELECT="android.net.xprinter.selectreceiver";
5 | public static final String ACTION_EDIT="android.net.xprinter.receiver";
6 | public static final String ACTION_FRAGMENT_LABEL_EDIT="android.net.xprinter.fragmentreceiver1";
7 | public static final String ACTION_FRAGMENT_BARCODE_EDIT="android.net.xprinter.fragmentreceiver2";
8 | public static final String ACTION_FRAGMENT_D2BARCODE_EDIT="android.net.xprinter.fragmentreceiver3";
9 | public static final String ACTION_FRAGMENT_MOBAN1_EDIT="android.net.xprinter.fragmentreceiver4";
10 | public static final String ACTION_FRAGMENT_MOBAN2_EDIT="android.net.xprinter.fragmentreceiver5";
11 | public static final String ACTION_FRAGMENT_MOBAN3_EDIT="android.net.xprinter.fragmentreceiver6";
12 | public static final String ACTION_FRAGMENT_MOBAN4_EDIT="android.net.xprinter.fragmentreceiver7";
13 | public static final String ACTION_FRAGMENT_IMAGE_EDIT="android.net.xprinter.fragmentreceiver8";
14 | public static final int ENABLE_BLUETOOTH=1;
15 | public static final int LABEL_PRINT=2;
16 | public static final int type_moban1=5;
17 | public static final int type_moban2=6;
18 | public static final int type_moban3=7;
19 | public static final int type_moban4=8;
20 | public static final int TAKE_PICTURE=100;
21 | public static final int LOAD_PICTURE_KITKAK=101;
22 | public static final int LOAD_PICTURE=102;
23 | }
24 |
--------------------------------------------------------------------------------
/xp460b/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Primary-hacker1/MVVMJetpack/77ee003b620856c7e3c515fb5033a149bceb192a/xp460b/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/xp460b/src/main/res/layout/p76_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/xp460b/src/main/res/layout/pos_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
15 |
16 |
25 |
26 |
35 |
36 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/xp460b/src/main/res/layout/printer_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
19 |
20 |
21 |
26 |
27 |
33 |
39 |
40 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/xp460b/src/main/res/layout/usb_link.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/xp460b/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | PosConSendTest
4 | Hello world!
5 |
6 | - NET
7 | - BLE
8 | - USB
9 |
10 | 连接
11 | 它是连接
12 | 请输入IP
13 | 打印背景下,线,BarCodeAndQRcode
14 | 读到缓冲区
15 | 印刷图像
16 | 打印光栅图像
17 | 打印文本 text
18 | 打印条码
19 | 请选择BLE开发
20 | 请选择USB开发
21 | 断开连接成功
22 | 断开连接成功
23 | 没有联系
24 | 发送成功
25 | 发送失败了
26 | 没有连接打印机
27 | 目前连接的Usb开发:
28 | 连接成功
29 | 连接失败了
30 | 连接已断开
31 | 选择
32 | 发射 PosPrint
33 | 打印QRcode
34 | 读取Excel缓冲区
35 | 检查纸
36 |
37 |
--------------------------------------------------------------------------------
/xp460b/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------