Skip to content

Commit b0b0b83

Browse files
committed
AndroidBaseLibrary1.2.0
迁移网络库 去除部分内容
1 parent 72a814d commit b0b0b83

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+240
-836
lines changed

app/build.gradle

+14-8
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ plugins {
44
}
55

66
android {
7-
compileSdk 32
7+
compileSdk 30
88

99
defaultConfig {
1010
applicationId "wsdydeni.widget.library"
1111
minSdk 21
12-
targetSdk 32
12+
targetSdk 30
1313
versionCode 1
1414
versionName "1.0"
1515

@@ -29,15 +29,21 @@ android {
2929
kotlinOptions {
3030
jvmTarget = '1.8'
3131
}
32+
viewBinding {
33+
enabled = true
34+
}
3235
}
3336

3437
dependencies {
3538
implementation project(':baselib')
36-
implementation 'androidx.core:core-ktx:1.7.0'
37-
implementation 'androidx.appcompat:appcompat:1.4.1'
38-
implementation 'com.google.android.material:material:1.5.0'
39+
implementation 'androidx.core:core-ktx:1.3.2'
40+
implementation 'androidx.appcompat:appcompat:1.3.1'
41+
implementation 'com.google.android.material:material:1.3.0'
3942
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
40-
testImplementation 'junit:junit:4.13.2'
41-
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
42-
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
43+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1")
44+
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1")
45+
}
46+
47+
dependencies {
48+
implementation 'com.github.wsdydeni:AndroidBaseLibraryNetwork:1.2.0'
4349
}

app/src/main/AndroidManifest.xml

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:tools="http://schemas.android.com/tools"
43
package="wsdydeni.widget.library">
54

65
<application
@@ -10,7 +9,6 @@
109
android:label="@string/app_name"
1110
android:roundIcon="@mipmap/ic_launcher_round"
1211
android:supportsRtl="true"
13-
tools:replace="android:name"
1412
android:theme="@style/Theme.AndroidBaseLibrary">
1513
<activity
1614
android:windowSoftInputMode="adjustNothing"

app/src/main/java/wsdydeni/widget/library/MainActivity.kt

+25-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package wsdydeni.widget.library
22

3+
import android.view.MotionEvent
34
import android.view.View
45
import android.widget.EditText
56
import android.widget.LinearLayout
67
import androidx.core.content.ContextCompat
8+
import androidx.lifecycle.Lifecycle
79
import wsdydeni.library.android.base.BaseActivity
10+
import wsdydeni.library.android.base.BaseViewModel
811
import wsdydeni.library.android.utils.another.LogUtil
912
import wsdydeni.library.android.utils.density.AutoDensity
1013
import wsdydeni.library.android.utils.display.PixelUtil
@@ -15,6 +18,8 @@ import wsdydeni.library.android.utils.keyboard.addKeyboardMonitor
1518

1619
class MainActivity : BaseActivity(R.layout.activity_main) {
1720

21+
private var lastClickTime: Long = 0L
22+
1823
override var isLightSystemBar = true
1924

2025
override var immersiveNavigation = true
@@ -27,8 +32,7 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
2732
return@addKeyboardMonitor
2833
}
2934
if(keyboardHeight == 0) {
30-
val inputLayout = findViewById<LinearLayout>(R.id.input_layout) as LinearLayout
31-
// val content = findViewById<View>(android.R.id.content) as ViewGroup
35+
val inputLayout = findViewById<LinearLayout>(R.id.input_layout)
3236
inputLayout.translationY = 0f
3337
return@addKeyboardMonitor
3438
}
@@ -50,15 +54,28 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
5054
val difference = (generalHeight + getStatusBarHeight()) - (focusBottom + keyboardHeight)
5155
LogUtil.d("布局纵向偏移量: $difference")
5256
LogUtil.d("偏移量dp: ${PixelUtil.px2dp(this,difference)}")
53-
val inputLayout = findViewById<LinearLayout>(R.id.input_layout) as LinearLayout
54-
// val content = findViewById<View>(android.R.id.content) as ViewGroup
57+
val inputLayout = findViewById<LinearLayout>(R.id.input_layout)
5558
inputLayout.translationY = difference.toFloat()
5659
}
5760
}
5861
}
59-
showStatusBarView(
60-
findViewById(wsdydeni.library.android.R.id.fillStatusBarView),
61-
ContextCompat.getColor(this, wsdydeni.library.android.R.color.color_6d7174)
62-
)
62+
showStatusBarView(findViewById(R.id.fillStatusBarView), ContextCompat.getColor(this, R.color.color_6d7174))
63+
}
64+
65+
/**
66+
* 防止多次点击
67+
*/
68+
override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
69+
if(ev?.action == MotionEvent.ACTION_DOWN) {
70+
if(System.currentTimeMillis() - lastClickTime < 500L) {
71+
return true
72+
}
73+
lastClickTime = System.currentTimeMillis()
74+
}
75+
return super.dispatchTouchEvent(ev)
76+
}
77+
78+
private fun observeEffect(viewModel: BaseViewModel) {
79+
Lifecycle.State.STARTED
6380
}
6481
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package wsdydeni.widget.library
2+
3+
import wsdydeni.library.android.base.BaseFragment
4+
5+
class MainFragment : BaseFragment(R.layout.activity_main) {
6+
override fun initView() {
7+
viewLifecycleOwner.lifecycle
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package wsdydeni.widget.library
2+
3+
import androidx.lifecycle.viewModelScope
4+
import kotlinx.coroutines.CoroutineExceptionHandler
5+
import kotlinx.coroutines.Dispatchers
6+
import kotlinx.coroutines.Job
7+
import kotlinx.coroutines.launch
8+
import wsdydeni.library.android.utils.another.LogUtil
9+
import wsdydeni.library.android_network.network.BaseResponse
10+
import wsdydeni.library.android_network.network.associatedView
11+
import wsdydeni.widget.library.base.BaseViewModel
12+
13+
class MainViewModel : BaseViewModel() {
14+
15+
class TestResponse : BaseResponse<Int>() {
16+
override fun getResponseCode(): String = "200"
17+
override fun getResponseData(): Int = 20
18+
override fun getResponseMsg(): String = "success"
19+
override fun isSuccess(): Boolean = true
20+
}
21+
22+
private suspend fun request1() : TestResponse {
23+
return TestResponse()
24+
}
25+
26+
fun send() {
27+
val coroutineExceptionHandler = CoroutineExceptionHandler { coroutineContext, throwable ->
28+
coroutineContext[Job]?.cancel()
29+
LogUtil.d("MainViewModel coroutineExceptionHandler send" + throwable.message)
30+
}
31+
viewModelScope.launch(Dispatchers.IO + coroutineExceptionHandler) {
32+
associatedView(suspend { request1() },{
33+
// show dialog
34+
},{
35+
// close dialog
36+
}) { errorMsg, errorCode ->
37+
// close dialog
38+
// show error message
39+
}
40+
}
41+
}
42+
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package wsdydeni.widget.library
22

33
import android.app.Application
4+
import wsdydeni.library.android.utils.another.LogUtil
45
import wsdydeni.library.android.utils.density.AutoDensity
56
import wsdydeni.library.android.utils.density.DesignDraft
67

78
class MyApplication : Application() {
89
override fun onCreate() {
910
super.onCreate()
11+
LogUtil.init(true)
1012
AutoDensity.instance.init(this, DesignDraft(designSize = 360f))
1113
}
1214
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package wsdydeni.widget.library.base
2+
3+
import androidx.lifecycle.ViewModel
4+
import kotlinx.coroutines.channels.Channel
5+
import kotlinx.coroutines.flow.receiveAsFlow
6+
7+
open class BaseViewModel : ViewModel() {
8+
private val _effect = Channel<ViewModelEffect>()
9+
val effect = _effect.receiveAsFlow()
10+
11+
suspend fun setEffect(builder: () -> ViewModelEffect) {
12+
val newEffect = builder()
13+
_effect.send(newEffect)
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package wsdydeni.widget.library.base
2+
3+
sealed class ViewModelEffect
4+
5+
object DialogShowEffect : ViewModelEffect()
6+
7+
object DialogDismissEffect : ViewModelEffect()

baselib/src/main/kotlin/wsdydeni/library/android/view/LoadingDialog.kt app/src/main/java/wsdydeni/widget/library/dialog/LoadingDialog.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package wsdydeni.library.android.view
1+
package wsdydeni.widget.library.dialog
22

33
import android.app.Dialog
44
import android.content.Context
55
import android.view.Gravity
66
import android.view.LayoutInflater
77
import android.view.WindowManager
88
import kotlinx.coroutines.Job
9-
import wsdydeni.library.android.R
10-
import wsdydeni.library.android.databinding.DialogLoadingBinding
9+
import wsdydeni.widget.library.R
10+
import wsdydeni.widget.library.databinding.DialogLoadingBinding
1111

1212

1313
class LoadingDialog(context: Context) : Dialog(context, R.style.TransparentDialog) {

baselib/src/main/kotlin/wsdydeni/library/android/utils/viewbind/ActivityViewBindings.kt app/src/main/java/wsdydeni/widget/library/viewbind/ActivityViewBindings.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wsdydeni.library.android.utils.viewbind
1+
package wsdydeni.widget.library.viewbind
22

33
import android.view.View
44
import androidx.activity.ComponentActivity

baselib/src/main/kotlin/wsdydeni/library/android/utils/viewbind/BindUtils.kt app/src/main/java/wsdydeni/widget/library/viewbind/BindUtils.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wsdydeni.library.android.utils.viewbind
1+
package wsdydeni.widget.library.viewbind
22

33
import android.app.Activity
44
import android.view.View

baselib/src/main/kotlin/wsdydeni/library/android/utils/viewbind/DialogFragmentViewBindings.kt app/src/main/java/wsdydeni/widget/library/viewbind/DialogFragmentViewBindings.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wsdydeni.library.android.utils.viewbind
1+
package wsdydeni.widget.library.viewbind
22

33
import androidx.annotation.RestrictTo
44
import androidx.fragment.app.DialogFragment

baselib/src/main/kotlin/wsdydeni/library/android/utils/viewbind/FragmentViewbindings.kt app/src/main/java/wsdydeni/widget/library/viewbind/FragmentViewbindings.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wsdydeni.library.android.utils.viewbind
1+
package wsdydeni.widget.library.viewbind
22

33
import android.view.View
44
import androidx.annotation.IdRes

baselib/src/main/kotlin/wsdydeni/library/android/utils/viewbind/ViewBindingProperty.kt app/src/main/java/wsdydeni/widget/library/viewbind/ViewBindingProperty.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wsdydeni.library.android.utils.viewbind
1+
package wsdydeni.widget.library.viewbind
22

33
import android.os.Handler
44
import android.os.Looper
@@ -29,7 +29,7 @@ interface ViewBindingProperty<in R : Any, out T : ViewBinding> : ReadOnlyPropert
2929
*/
3030
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
3131
open class LazyViewBindingProperty<in R : Any, out T : ViewBinding>(protected val viewBinder: (R) -> T) :
32-
ViewBindingProperty<R, T> {
32+
ViewBindingProperty<R, T> {
3333

3434
private var viewBinding: Any? = null
3535

@@ -53,7 +53,7 @@ open class LazyViewBindingProperty<in R : Any, out T : ViewBinding>(protected va
5353
*/
5454
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
5555
abstract class LifecycleViewBindingProperty<in R : Any, out T : ViewBinding>(private val viewBinder: (R) -> T) :
56-
ViewBindingProperty<R, T> {
56+
ViewBindingProperty<R, T> {
5757

5858
private var viewBinding: T? = null
5959

baselib/src/main/kotlin/wsdydeni/library/android/utils/viewbind/ViewGroupBindings.kt app/src/main/java/wsdydeni/widget/library/viewbind/ViewGroupBindings.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package wsdydeni.library.android.utils.viewbind
1+
package wsdydeni.widget.library.viewbind
22

33
import android.view.View
44
import android.view.ViewGroup

app/src/main/res/layout/activity_main.xml

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
32
<LinearLayout
43
xmlns:android="http://schemas.android.com/apk/res/android"
54
xmlns:app="http://schemas.android.com/apk/res-auto"

app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

-5
This file was deleted.

app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

-5
This file was deleted.
-1.37 KB
Binary file not shown.
Binary file not shown.
-1.86 KB
Binary file not shown.
Binary file not shown.
-2.82 KB
Binary file not shown.
Binary file not shown.
-3.75 KB
Binary file not shown.
Binary file not shown.

app/src/main/res/values-night/themes.xml

-16
This file was deleted.

app/src/main/res/values/colors.xml

+13-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<color name="purple_200">#FFBB86FC</color>
4-
<color name="purple_500">#FF6200EE</color>
5-
<color name="purple_700">#FF3700B3</color>
6-
<color name="teal_200">#FF03DAC5</color>
7-
<color name="teal_700">#FF018786</color>
83
<color name="black">#FF000000</color>
94
<color name="white">#FFFFFFFF</color>
5+
<color name="thirty_percent_transparent">#80FFFFFF</color>
6+
7+
<color name="silver_chalice">#A0A0A0</color>
8+
<color name="endeavour">#00599B</color>
9+
<color name="cinder">#181819</color>
10+
<color name="swirl">#D4D1CD</color>
11+
<color name="oslo_gray">#949697</color>
12+
<color name="color_FAFAFA">#FAFAFA</color>
13+
<color name="color_FEFEFE">#fefefe</color>
14+
<color name="color_ffd4d4d4">#ffd4d4d4</color>
15+
<color name="color_6d7174">#6d7174</color>
16+
<color name="color_9ca3a8">#9ca3a8</color>
17+
<color name="color_ebebeb">#ebebeb</color>
1018
</resources>
File renamed without changes.

0 commit comments

Comments
 (0)