Skip to content

Commit 58a2ff9

Browse files
committed
日常修改:2024-01-09.
1 parent a8e1aec commit 58a2ff9

16 files changed

Lines changed: 235 additions & 194 deletions

File tree

Quick/src/main/java/com/wpf/app/quick/activity/QuickActivity.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.wpf.app.quick.activity
22

3+
import android.content.Context
34
import android.os.Bundle
45
import android.view.View
56
import androidx.annotation.LayoutRes
@@ -54,6 +55,8 @@ abstract class QuickActivity @JvmOverloads constructor(
5455
return window.decorView
5556
}
5657

58+
fun requireContext() = this
59+
5760
override fun onDestroy() {
5861
super.onDestroy()
5962
cancelJob()
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.wpf.app.quick.activity
2+
3+
import androidx.annotation.LayoutRes
4+
import androidx.databinding.ViewDataBinding
5+
import com.wpf.app.quick.activity.viewmodel.QuickVBModel
6+
7+
/**
8+
* Created by 王朋飞 on 2024/01/09
9+
*
10+
*/
11+
abstract class QuickBindingFragment<VB : ViewDataBinding> @JvmOverloads constructor(
12+
@LayoutRes layoutId: Int = 0,
13+
titleName: String = ""
14+
) : QuickVBFragment<QuickVBModel<VB>, VB>(layoutId, titleName = titleName)

Quick/src/main/java/com/wpf/app/quick/activity/QuickVBActivity.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,31 +25,33 @@ abstract class QuickVBActivity<VM : QuickVBModel<VB>, VB : ViewDataBinding> @Jvm
2525
set(value) {
2626
field = value
2727
if (value != null) {
28+
QuickBind.bind(this, value)
2829
setViewBinding()
30+
value.onBindingCreated(viewBinding)
2931
}
3032
}
3133

3234
private var viewBinding: VB? = null
3335

3436
private fun setViewBinding() {
35-
viewBinding = DataBindingUtil.setContentView(this, layoutId)
36-
viewBinding?.lifecycleOwner = this
37+
if (viewBinding == null) {
38+
viewBinding = DataBindingUtil.setContentView(this, layoutId)
39+
viewBinding?.lifecycleOwner = this
40+
}
3741
viewBinding?.setVariable(BRConstant.viewModel, mViewModel)
3842
setBindingVariable(viewBinding)
3943
viewBinding?.executePendingBindings()
4044
mViewModel?.mViewBinding = viewBinding
4145
}
4246

4347
override fun dealContentView() {
44-
super.dealContentView()
48+
// super.dealContentView()
4549
val viewModelCls: Class<VM>? = ViewModelEx.get0Clazz(this)
4650
if (viewModelCls != null && this !is QuickBindingActivity && viewModelCls != QuickVBModel::class.java) {
4751
mViewModel = ViewModelProvider(
4852
this,
4953
ViewModelProvider.AndroidViewModelFactory(application)
5054
)[viewModelCls]
51-
QuickBind.bind(this, mViewModel)
52-
mViewModel?.onBindingCreated(viewBinding)
5355
} else {
5456
setViewBinding()
5557
}

Quick/src/main/java/com/wpf/app/quick/activity/QuickVBFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ abstract class QuickVBFragment<VM : QuickVBModel<VB>, VB : ViewDataBinding> @Jvm
6767

6868
open fun initViewModel(obj: Any) {
6969
val viewModelCls: Class<VM>? = ViewModelEx.get0Clazz(obj)
70-
if (viewModelCls != null && viewModelCls != QuickVBModel::class.java) {
70+
if (viewModelCls != null && this !is QuickBindingFragment && viewModelCls != QuickVBModel::class.java) {
7171
mViewModel = ViewModelProvider(
7272
this,
7373
ViewModelProvider.AndroidViewModelFactory(requireContext().applicationContext as Application)
@@ -97,6 +97,7 @@ abstract class QuickVBFragment<VM : QuickVBModel<VB>, VB : ViewDataBinding> @Jvm
9797
mViewModel?.onStop()
9898
}
9999

100+
@Deprecated("Deprecated by Fragment")
100101
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
101102
super.onActivityResult(requestCode, resultCode, data)
102103
mViewModel?.onActivityResult(requestCode, resultCode, data)
@@ -109,7 +110,9 @@ abstract class QuickVBFragment<VM : QuickVBModel<VB>, VB : ViewDataBinding> @Jvm
109110
}
110111

111112
override fun initView(view: View?) {}
112-
abstract fun initView(view: VB?)
113+
open fun initView(view: VB?) {
114+
115+
}
113116

114117
open fun setBindingVariable(view: VB?) {
115118

QuickBind/src/main/java/com/wpf/app/quickbind/quickview/helper/GotoThis.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.wpf.app.quickbind.quickview.QuickBindView
88
import com.wpf.app.quickutil.bind.runOnContext
99
import com.wpf.app.quickutil.activity.quickStartActivity
1010

11+
@Deprecated("预览不了")
1112
open class GotoThis @JvmOverloads constructor(
1213
mContext: Context,
1314
attributeSet: AttributeSet? = null,

QuickUtil/src/main/java/com/wpf/app/quickutil/widgets/quickview/QuickItemView.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ abstract class QuickItemView @JvmOverloads constructor(
5252
val parentGroup = parent as? ViewGroup ?: return@post
5353
position = parentGroup.indexOfChild(this)
5454
parentGroup.removeView(this)
55-
parentGroup.addView(mView, position, ViewGroup.LayoutParams(layoutParams.width, layoutParams.height))
55+
parentGroup.addView(
56+
mView,
57+
position,
58+
ViewGroup.LayoutParams(layoutParams.width, layoutParams.height)
59+
)
5660
visibility = GONE
5761
onCreateViewHolder()
5862
onBindViewHolder(position)
@@ -86,7 +90,7 @@ abstract class QuickItemView @JvmOverloads constructor(
8690

8791
//预览可见
8892
override fun onDraw(canvas: Canvas) {
93+
getView()?.draw(canvas)
8994
super.onDraw(canvas)
90-
return getView()?.draw(canvas) ?: super.onDraw(canvas)
9195
}
9296
}

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
<activity android:name=".ViewPagerBindFragmentTestActivity"/>
3838
<activity android:name=".RequestTestActivity"/>
3939
<activity android:name=".DialogTestActivity"/>
40+
<activity android:name=".ShadowViewTestActivity"/>
4041
<activity android:name=".wanandroid.WanAndroidHomeActivity"/>
4142
<activity android:name=".wanandroid.WebViewActivity"/>
4243
</application>

app/src/main/java/com/wpf/app/quick/demo/DialogTestActivity.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ import com.wpf.app.quick.demo.dialog.TestDialog
1111
import com.wpf.app.quickdialog.DialogManager
1212
import com.wpf.app.quickdialog.showInManager
1313
import com.wpf.app.quickutil.bind.runOnContext
14+
import com.wpf.app.quickutil.other.dp2px
1415

1516
class DialogTestActivity : QuickActivity(
1617
layoutViewInContext = runOnContext {
1718
LinearLayout(it).apply {
19+
setPadding(16.dp2px(it), 0, 16.dp2px(it), 0)
1820
orientation = LinearLayout.VERTICAL
1921
gravity = Gravity.CENTER
2022
addView(MaterialButton(it).apply {
21-
text = "弹窗1"
23+
text = "弹窗"
2224
id = R.id.btnNext
2325
})
2426
}
@@ -27,9 +29,9 @@ class DialogTestActivity : QuickActivity(
2729

2830
override fun initView() {
2931
findViewById<Button>(R.id.btnNext).setOnClickListener {
30-
Test3Dialog(this).showInManager()
32+
Test3Dialog(this).showInManager(showWithOther = true)
3133
it.postDelayed({
32-
Test2Dialog(this).showInManager()
34+
Test2Dialog(this).showInManager(recoverInDismiss = false)
3335
}, 1000)
3436
it.postDelayed({
3537
TestDialog(this).showInManager()
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
package com.wpf.app.quick.demo
22

3-
import android.content.Context
4-
import android.util.AttributeSet
53
import com.wpf.app.quick.activity.QuickVBActivity
4+
import com.wpf.app.quick.annotations.getclass.GetClass
65
import com.wpf.app.quick.demo.databinding.ActivityRequestTestBinding
76
import com.wpf.app.quick.demo.viewmodel.RequestTestModel
8-
import com.wpf.app.quickbind.quickview.helper.GotoThis
97

8+
@GetClass
109
class RequestTestActivity : QuickVBActivity<RequestTestModel, ActivityRequestTestBinding>(
1110
R.layout.activity_request_test,
1211
titleName = "接口测试页"
13-
) {
14-
class GotoRequestTest(
15-
mContext: Context,
16-
attributeSet: AttributeSet? = null,
17-
): GotoThis(
18-
mContext, attributeSet, "接口请求测试", RequestTestActivity::class.java
19-
)
20-
}
12+
)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.wpf.app.quick.demo
2+
3+
import android.annotation.SuppressLint
4+
import androidx.core.view.isVisible
5+
import com.wpf.app.quick.activity.QuickBindingActivity
6+
import com.wpf.app.quick.annotations.getclass.GetClass
7+
import com.wpf.app.quick.demo.databinding.ActivityShadowTestBinding
8+
import com.wpf.app.quickutil.TimeDelayHelper
9+
import com.wpf.app.quickutil.other.toColor
10+
11+
@GetClass
12+
class ShadowViewTestActivity: QuickBindingActivity<ActivityShadowTestBinding>(
13+
R.layout.activity_shadow_test,
14+
titleName = "同步测试页"
15+
) {
16+
@SuppressLint("SetTextI18n")
17+
override fun initView(view: ActivityShadowTestBinding?) {
18+
val colorList = arrayOf(
19+
R.color.black.toColor(requireContext()),
20+
R.color.colorPrimary.toColor(requireContext()),
21+
R.color.white.toColor(requireContext())
22+
)
23+
var pos = 0
24+
TimeDelayHelper.registerTimeDelay("1s", 1) {
25+
view?.shadow1?.post {
26+
val index = (pos++) % colorList.size
27+
view.shadow1.text = (index + 1).toString()
28+
val newColor = colorList[index]
29+
view.shadow1.setTextColor(newColor)
30+
view.shadow1.visibility
31+
}
32+
}
33+
view?.shadow6?.setOnCheckedChangeListener { _, isChecked ->
34+
view.shadow8.isVisible = isChecked
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)