Skip to content

Commit

Permalink
feat:升级gradle,JDK版本
Browse files Browse the repository at this point in the history
增加扩展方法
  • Loading branch information
aleyn97 committed Jun 8, 2023
1 parent ce4277c commit 7a102b3
Show file tree
Hide file tree
Showing 22 changed files with 171 additions and 156 deletions.
6 changes: 5 additions & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 14 additions & 9 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import com.aleyn.AndroidX
import com.aleyn.BuildConfig
import com.aleyn.Depend
import com.aleyn.AndroidX
import com.aleyn.Retrofit

plugins {
Expand All @@ -11,7 +11,7 @@ plugins {

android {
compileSdk = BuildConfig.compileSdkVersion

namespace = "com.pcl.mvvm"
defaultConfig {
applicationId = BuildConfig.applicationId
minSdk = BuildConfig.minSdkVersion
Expand All @@ -21,28 +21,33 @@ android {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
@Suppress("UnstableApiUsage") buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
)
}
}

buildFeatures {
@Suppress("UnstableApiUsage") buildFeatures {
buildConfig = true
dataBinding = true
viewBinding = true
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "1.8"
jvmTarget = "11"
}

kotlin {
jvmToolchain(11)
}

}

dependencies {
Expand Down
10 changes: 6 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.pcl.mvvm">
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="32"
tools:ignore="ScopedStorage" />

<application
android:name=".app.MyApplication"
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/pcl/mvvm/ui/detail/DetailActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import android.webkit.WebSettings
import android.webkit.WebView
import android.webkit.WebViewClient
import com.aleyn.mvvm.base.BaseActivity
import com.aleyn.mvvm.base.NoViewModel
import com.pcl.mvvm.databinding.ActivityDetailBinding

class DetailActivity : BaseActivity<ActivityDetailBinding>() {
Expand All @@ -31,7 +30,6 @@ class DetailActivity : BaseActivity<ActivityDetailBinding>() {
setSupportZoom(true)
builtInZoomControls = true
displayZoomControls = false
setAppCacheEnabled(true)
cacheMode = WebSettings.LOAD_DEFAULT
useWideViewPort = true
blockNetworkImage = false
Expand Down
46 changes: 32 additions & 14 deletions app/src/main/java/com/pcl/mvvm/ui/home/HomeFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import android.content.Intent
import android.os.Bundle
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.flowWithLifecycle
import androidx.recyclerview.widget.LinearLayoutManager
import com.aleyn.mvvm.base.BaseFragment
import com.aleyn.mvvm.base.BaseVMFragment
import com.blankj.utilcode.util.LogUtils
import com.aleyn.mvvm.extend.flowLaunch
import com.pcl.mvvm.R
import com.pcl.mvvm.databinding.HomeFragmentBinding
import com.pcl.mvvm.network.entity.ArticlesBean
Expand Down Expand Up @@ -59,21 +60,26 @@ class HomeFragment : BaseVMFragment<HomeViewModel, HomeFragmentBinding>() {
}

override fun initObserve() {
viewModel.refreshState.observe(this@HomeFragment) {
if (mBinding.refreshHome.isRefreshing) mBinding.refreshHome.finishRefresh()
flowLaunch {
viewModel.refreshState.flowWithLifecycle(lifecycle).collect {
if (mBinding.refreshHome.isRefreshing) mBinding.refreshHome.finishRefresh()
}
}

lifecycleScope.launchWhenCreated {
viewModel.mBanners.collect { banner.setDatas(it) }

flowLaunch {
viewModel.mBanners.collect {
banner.setDatas(it)
}
}
lifecycleScope.launchWhenCreated {
flowLaunch {
viewModel.projectData.collect {
if (it.curPage == 1) mAdapter.setList(it.datas)
else mAdapter.addData(it.datas)
if (it.curPage == it.pageCount) mAdapter.loadMoreModule.loadMoreEnd()
else mAdapter.loadMoreModule.loadMoreComplete()
page = it.curPage
}
if (it.curPage == 1) mAdapter.setList(it.datas)
else mAdapter.addData(it.datas)
if (it.curPage == it.pageCount) mAdapter.loadMoreModule.loadMoreEnd()
else mAdapter.loadMoreModule.loadMoreComplete()
page = it.curPage
}
}
}

Expand All @@ -98,4 +104,16 @@ class HomeFragment : BaseVMFragment<HomeViewModel, HomeFragmentBinding>() {
viewModel.getHomeList(page + 1)
}


override fun onResume() {
super.onResume()
}

override val defaultViewModelProviderFactory: ViewModelProvider.Factory
get() = super.defaultViewModelProviderFactory

override fun getViewLifecycleOwner(): LifecycleOwner {
return super.getViewLifecycleOwner()
}

}
10 changes: 3 additions & 7 deletions app/src/main/java/com/pcl/mvvm/ui/home/HomeViewModel.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
package com.pcl.mvvm.ui.home

import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.aleyn.mvvm.base.BaseViewModel
import com.aleyn.mvvm.event.SingleLiveEvent
import com.aleyn.mvvm.extend.asResponse
import com.aleyn.mvvm.extend.bindLoading
import com.aleyn.mvvm.extend.getOrThrow
import com.pcl.mvvm.network.entity.BannerBean
import com.pcl.mvvm.network.entity.HomeListBean
import com.pcl.mvvm.utils.InjectorUtil
Expand All @@ -24,8 +20,8 @@ class HomeViewModel : BaseViewModel() {
private val _projectData = MutableSharedFlow<HomeListBean>()
val projectData: SharedFlow<HomeListBean> = _projectData

private val _refreshState = SingleLiveEvent<Boolean>()
val refreshState: LiveData<Boolean> = _refreshState
private val _refreshState = MutableSharedFlow<Unit>()
val refreshState: SharedFlow<Unit> = _refreshState

/**
* Banner
Expand All @@ -46,7 +42,7 @@ class HomeViewModel : BaseViewModel() {
launch {
homeRepository.getHomeList(page, refresh)
.asResponse()
.onCompletion { if (refresh) _refreshState.call() }
.onCompletion { if (refresh) _refreshState.emit(Unit) }
.bindLoading(this@HomeViewModel)
.collect(_projectData)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class ProjectViewModel : BaseViewModel() {
private val homeRepository by lazy { InjectorUtil.getHomeRepository() }
private val itemOnClickListener = object : OnItemClickListener {
override fun onItemClick(item: ArticlesBean) {
defUI.msgEvent.postValue(Message(0, obj = item))
launch { defUI.msgEvent.emit(Message(0, obj = item)) }
}
}
var navTitle = ObservableArrayList<String>()
Expand Down
7 changes: 3 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@

plugins {
id("com.android.application").version("7.2.1") apply (false)
id("com.android.library").version("7.2.1") apply (false)
kotlin("android").version("1.7.10").apply(false)
id("com.android.application").version("8.0.2") apply (false)
id("com.android.library").version("8.0.2") apply (false)
kotlin("android") version ("1.8.20") apply (false)
}

tasks.register("clean", Delete::class) {
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/com/aleyn/BuildConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ package com.aleyn
* @Date : 2021/2/5 17:45
*/
object BuildConfig {
const val compileSdkVersion = 32
const val compileSdkVersion = 33
const val applicationId = "com.aleyn.mvvm"
const val minSdkVersion = 21
const val targetSdkVersion = 32
const val targetSdkVersion = 33
const val versionCode = 7
const val versionName = "1.0.6"
}
8 changes: 4 additions & 4 deletions buildSrc/src/main/kotlin/com/aleyn/Deps.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ package com.aleyn
object Versions {
const val retrofit = "2.9.0"
const val appcompat = "1.4.2"
const val coreKtx = "1.7.0"
const val material = "1.6.1"
const val runtimeKtx = "2.5.0"
const val coreKtx = "1.10.1"
const val material = "1.9.0"
const val runtimeKtx = "2.6.1"
const val junit = "4.13.2"
const val junitExt = "1.1.3"
const val espressoCore = "3.4.0"
Expand All @@ -25,7 +25,7 @@ object AndroidX {
const val appcompat = "androidx.appcompat:appcompat:${Versions.appcompat}"
const val coreKtx = "androidx.core:core-ktx:${Versions.coreKtx}"
const val material = "com.google.android.material:material:${Versions.material}"
const val viewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0"
const val viewModelKtx = "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
const val runtimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.runtimeKtx}"
const val recyclerview = "androidx.recyclerview:recyclerview:1.2.1"
val values = arrayListOf(
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip
18 changes: 11 additions & 7 deletions mvvmlin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,34 +12,38 @@ plugins {

android {
compileSdk = BuildConfig.compileSdkVersion

namespace = "com.aleyn.mvvm"
defaultConfig {
minSdk = BuildConfig.minSdkVersion
targetSdk = BuildConfig.targetSdkVersion
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

@Suppress("UnstableApiUsage")
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
)
}
}

@Suppress("UnstableApiUsage")
buildFeatures {
dataBinding = true
viewBinding = true
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

kotlinOptions {
jvmTarget = "1.8"
jvmTarget = "11"
}
kotlin {
jvmToolchain(11)
}
}

Expand Down
3 changes: 1 addition & 2 deletions mvvmlin/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.aleyn.mvvm">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.INTERNET" />

Expand Down
19 changes: 13 additions & 6 deletions mvvmlin/src/main/java/com/aleyn/mvvm/base/BaseVMActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.aleyn.mvvm.base
import android.os.Bundle
import androidx.lifecycle.ViewModelProvider
import androidx.viewbinding.ViewBinding
import com.aleyn.mvvm.extend.flowLaunch
import java.lang.reflect.ParameterizedType

/**
Expand All @@ -25,14 +26,20 @@ abstract class BaseVMActivity<VM : BaseViewModel, VB : ViewBinding> : BaseActivi
* 注册 UI 事件
*/
private fun registorDefUIChange() {
viewModel.defUI.showDialog.observe(this) {
showLoading()
flowLaunch {
viewModel.defUI.showDialog.collect {
showLoading()
}
}
viewModel.defUI.dismissDialog.observe(this) {
dismissLoading()
flowLaunch {
viewModel.defUI.dismissDialog.collect {
dismissLoading()
}
}
viewModel.defUI.msgEvent.observe(this) {
handleEvent(it)
flowLaunch {
viewModel.defUI.msgEvent.collect {
handleEvent(it)
}
}
}

Expand Down
Loading

0 comments on commit 7a102b3

Please sign in to comment.