diff --git a/Lib_Base/build.gradle b/Lib_Base/build.gradle index f9b5a23..39202a2 100644 --- a/Lib_Base/build.gradle +++ b/Lib_Base/build.gradle @@ -63,7 +63,7 @@ dependencies { api GitHub.RetrofitConverterGson api GitHub.Gson api GitHub.MMKV - api GitHub.AutoSize +// api GitHub.AutoSize api GitHub.Glide api GitHub.ARoute api GitHub.RecyclerViewAdapter diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/BaseApplication.kt b/Lib_Base/src/main/java/com/quyunshuo/base/BaseApplication.kt index 8168183..b41444f 100644 --- a/Lib_Base/src/main/java/com/quyunshuo/base/BaseApplication.kt +++ b/Lib_Base/src/main/java/com/quyunshuo/base/BaseApplication.kt @@ -9,4 +9,8 @@ import android.app.Application * @Remark: 自定义Application的基类 */ open class BaseApplication : Application() { + + override fun onCreate() { + super.onCreate() + } } \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/m/BaseRepository.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/m/BaseRepository.kt new file mode 100644 index 0000000..699d904 --- /dev/null +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/m/BaseRepository.kt @@ -0,0 +1,25 @@ +package com.quyunshuo.base.mvvm.m + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.FlowCollector +import kotlinx.coroutines.flow.flow +import kotlinx.coroutines.flow.flowOn + +/** + * @Author: QuYunShuo + * @Time: 2020/8/27 + * @Class: BaseRepository + * @Remark: 仓库层 Repository 基类 + */ +open class BaseRepository { + + /** + * 发起请求封装 + * @param requestBlock 请求的整体逻辑 + * @return Flow + */ + protected suspend fun flowRequest(requestBlock: suspend FlowCollector.() -> Unit) = + flow { + requestBlock() + }.flowOn(Dispatchers.IO) // 通过 flowOn 切换到 io 线程 +} \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseFrameActivity.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameActivity.kt similarity index 51% rename from Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseFrameActivity.kt rename to Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameActivity.kt index 72d4ddc..1148951 100644 --- a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseFrameActivity.kt +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameActivity.kt @@ -1,7 +1,9 @@ -package com.quyunshuo.base.ui +package com.quyunshuo.base.mvvm.v import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider import androidx.viewbinding.ViewBinding /** @@ -10,13 +12,17 @@ import androidx.viewbinding.ViewBinding * @Class: BaseFrameActivity * @Remark: Activity基类 与项目无关 */ -abstract class BaseFrameActivity : AppCompatActivity() { +abstract class BaseFrameActivity(private val vmClass: Class) : + AppCompatActivity() { - lateinit var mBinding: VB + protected val mViewModel: VM by lazy(mode = LazyThreadSafetyMode.NONE) { + ViewModelProvider(this).get(vmClass) + } + + protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { initViewBinding() } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - mBinding = initViewBinding() setContentView(mBinding.root) initView() } diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt new file mode 100644 index 0000000..5a6aeb7 --- /dev/null +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/v/BaseFrameFragment.kt @@ -0,0 +1,43 @@ +package com.quyunshuo.base.mvvm.v + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import androidx.viewbinding.ViewBinding + +/** + * @Author: QuYunShuo + * @Time: 2020/8/27 + * @Class: BaseFrameFragment + * @Remark: Fragment基类 与项目无关 + */ +abstract class BaseFrameFragment(private val vmClass: Class) : + Fragment() { + + protected val mViewModel: VM by lazy(mode = LazyThreadSafetyMode.NONE) { + ViewModelProvider(this).get(vmClass) + } + + protected val mBinding: VB by lazy(mode = LazyThreadSafetyMode.NONE) { initViewBinding() } + + protected abstract fun initViewBinding(): VB + + protected abstract fun initView() + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return mBinding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initView() + } +} \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/vm/BaseViewModel.kt b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/vm/BaseViewModel.kt new file mode 100644 index 0000000..4e4be96 --- /dev/null +++ b/Lib_Base/src/main/java/com/quyunshuo/base/mvvm/vm/BaseViewModel.kt @@ -0,0 +1,17 @@ +package com.quyunshuo.base.mvvm.vm + +import androidx.lifecycle.ViewModel +import com.quyunshuo.base.mvvm.m.BaseRepository + +/** + * @Author: QuYunShuo + * @Time: 2020/8/27 + * @Class: BaseViewModel + * @Remark: ViewModel 基类 + */ +abstract class BaseViewModel : ViewModel() { + + protected val mRepository: R by lazy { initRepository() } + + protected abstract fun initRepository(): R +} \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseFrameFragment.kt b/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseFrameFragment.kt deleted file mode 100644 index 729e554..0000000 --- a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseFrameFragment.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.quyunshuo.base.ui - -import androidx.fragment.app.Fragment - -/** - * @Author: QuYunShuo - * @Time: 2020/8/27 - * @Class: BaseFrameFragment - * @Remark: Fragment基类 与项目无关 - */ -abstract class BaseFrameFragment : Fragment() { -} \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseRepository.kt b/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseRepository.kt deleted file mode 100644 index d2cf1d4..0000000 --- a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseRepository.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.quyunshuo.base.ui - -/** - * @Author: QuYunShuo - * @Time: 2020/8/27 - * @Class: BaseRepository - * @Remark: 仓库层 Repository 基类 - */ -open class BaseRepository { -} \ No newline at end of file diff --git a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseViewModel.kt b/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseViewModel.kt deleted file mode 100644 index 1f56142..0000000 --- a/Lib_Base/src/main/java/com/quyunshuo/base/ui/BaseViewModel.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.quyunshuo.base.ui - -import androidx.lifecycle.ViewModel - -/** - * @Author: QuYunShuo - * @Time: 2020/8/27 - * @Class: BaseViewModel - * @Remark: ViewModel 基类 - */ -open class BaseViewModel : ViewModel() { -} \ No newline at end of file diff --git a/Lib_Base/src/main/res/values/styles.xml b/Lib_Base/src/main/res/values/styles.xml index 2e0648e..513275d 100644 --- a/Lib_Base/src/main/res/values/styles.xml +++ b/Lib_Base/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ -