Skip to content

Commit 531187f

Browse files
committed
test: add test sample code
1 parent 9e53953 commit 531187f

File tree

3 files changed

+80
-106
lines changed

3 files changed

+80
-106
lines changed

immersionbar-sample/build.gradle

+2
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,6 @@ dependencies {
8989
implementation project(":library")
9090
implementation 'androidx.core:core-ktx:1.7.0'
9191
implementation 'com.blankj:utilcodex:1.31.1'
92+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'
93+
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.4.0")
9294
}

immersionbar-sample/src/main/java/com/gyf/immersionbar/sample/activity/ParamsActivity.kt

+62-91
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@ import android.view.LayoutInflater
55
import android.view.View
66
import androidx.core.view.ViewCompat
77
import androidx.core.view.WindowInsetsCompat
8+
import androidx.lifecycle.lifecycleScope
89
import cn.jailedbird.edgeutils.EdgeUtils
910
import cn.jailedbird.edgeutils.EdgeUtils.edgeHasNavigationBar
1011
import cn.jailedbird.edgeutils.EdgeUtils.edgeHasStatusBar
1112
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideNavigationBar
1213
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideStatusBar
1314
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideSystemBar
1415
import cn.jailedbird.edgeutils.EdgeUtils.edgeIsNavigationBarLight
16+
import cn.jailedbird.edgeutils.EdgeUtils.edgeNavigationBarHeight
17+
import cn.jailedbird.edgeutils.EdgeUtils.edgeNavigationBarHeightIgnoringVisibility
1518
import cn.jailedbird.edgeutils.EdgeUtils.edgeSetNavigationBarColor
1619
import cn.jailedbird.edgeutils.EdgeUtils.edgeSetNavigationBarLight
1720
import cn.jailedbird.edgeutils.EdgeUtils.edgeShowNavigationBar
@@ -22,6 +25,7 @@ import cn.jailedbird.edgeutils.paddingTopSystemWindowInsets
2225
import com.blankj.utilcode.util.BarUtils
2326
import com.gyf.immersionbar.sample.R
2427
import com.gyf.immersionbar.sample.databinding.ActivityParamsBinding
28+
import kotlinx.coroutines.launch
2529

2630
class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
2731

@@ -31,65 +35,44 @@ class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
3135
@SuppressLint("SetTextI18n")
3236
override fun initView() {
3337
super.initView()
34-
// 状态栏视觉冲突解决
3538
binding.mEdgeLayout.paddingTopSystemWindowInsets()
3639
binding.root.paddingBottomSystemWindowInsets()
3740
edgeSetNavigationBarLight(false)
3841
edgeSetNavigationBarColor(R.color.btn13)
3942

40-
// 底部添加margin
41-
// binding.root.marginBottomSystemWindowInsets()
42-
// 设置状态栏颜色
43-
// edgeSetNavigationBarColor(R.color.btn13)
44-
initViewAgain()
45-
}
46-
47-
private fun initViewAgain() {
48-
binding.mTvHasStatus.post {
49-
binding.mTvHasStatus.text = getText(
50-
"是否有StatusBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.hasStatusBar(this)
51-
)
52-
}
53-
54-
binding.mTvStatus.post {
55-
binding.mTvStatus.text = getText(
56-
"StatusBar Height(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.statusBarHeight(
57-
this
58-
)
59-
)
60-
}
61-
62-
binding.mTvStatusHide.post {
63-
binding.mTvStatusHide.text = getText(
64-
"StatusBar Height(不管是否隐藏)(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.statusBarHeightIgnoringVisibility(
65-
this
66-
)
67-
)
43+
lifecycleScope.launch {
44+
if (edgeHasStatusBar() && edgeHasNavigationBar()) {
45+
edgeHideSystemBar()
46+
} else {
47+
edgeShowSystemBar()
48+
}
49+
initViewAgain()
6850
}
51+
}
6952

70-
binding.mTvHasNav.post {
71-
binding.mTvHasNav.text = getText(
72-
"是否有NavigationBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.hasNavigationBar(
73-
this
74-
)
53+
private suspend fun initViewAgain() {
54+
binding.mTvHasStatus.text = getText(
55+
"是否有StatusBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.hasStatusBar(this@ParamsActivity)
56+
)
57+
binding.mTvStatus.text = getText(
58+
"StatusBar Height(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.statusBarHeight(
59+
this@ParamsActivity
7560
)
76-
}
77-
78-
binding.mTvNav.post {
79-
binding.mTvNav.text = getText(
80-
"NavigationBar Height:(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.navigationBarHeight(
81-
this
82-
)
61+
)
62+
binding.mTvStatusHide.text = getText(
63+
"StatusBar Height(不管是否隐藏)(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.statusBarHeightIgnoringVisibility(
64+
this@ParamsActivity
8365
)
84-
}
85-
86-
binding.mTvNavHide.post {
87-
binding.mTvNavHide.text = getText(
88-
"NavigationBar Height(不管是否隐藏):(Api不可靠, 加延时(View.post)才能获取否则为0):" + EdgeUtils.navigationBarHeightIgnoringVisibility(
89-
this
90-
)
91-
)
92-
}
66+
)
67+
binding.mTvHasNav.text = getText(
68+
"是否有NavigationBar(Api不可靠, 加延时(View.post)才能获取否则为0):" + edgeHasNavigationBar()
69+
)
70+
binding.mTvNav.text = getText(
71+
"NavigationBar Height:(Api不可靠, 加延时(View.post)才能获取否则为0):" + edgeNavigationBarHeight()
72+
)
73+
binding.mTvNavHide.text = getText(
74+
"NavigationBar Height(不管是否隐藏):(Api不可靠, 加延时(View.post)才能获取否则为0):" + edgeNavigationBarHeightIgnoringVisibility()
75+
)
9376
}
9477

9578
@SuppressLint("SetTextI18n")
@@ -103,7 +86,6 @@ class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
10386
)
10487
windowInsetsCompat
10588
}
106-
/*ImmersionBar(this).barParams*/
10789
BarUtils.getStatusBarHeight()
10890
/* 调整状态栏前景色*/
10991
binding.mTvStatusDark.setOnClickListener {
@@ -112,68 +94,57 @@ class ParamsActivity : BaseViewBindingActivity<ActivityParamsBinding>() {
11294
} else {
11395
EdgeUtils.setStatusBarLight(this, true)
11496
}
115-
initViewAgain()
97+
lifecycleScope.launch {
98+
initViewAgain()
99+
}
116100
}
117101
/* 调整导航栏前景色 手势导航模式下无效 导航条会自动变色 形成反差色*/
118102
binding.mTvNavigationDark.setOnClickListener {
119-
/*if (EdgeUtils.isNavigationBarLight(this)) {
120-
EdgeUtils.setNavigationBarLight(this, false)
121-
} else {
122-
EdgeUtils.setNavigationBarLight(this, true)
123-
}*/
124103
// 在全面屏模式系,存在2种变体 存在导航条 和 不存在导航条
125104
if (edgeIsNavigationBarLight()) {
126105
edgeSetNavigationBarLight(false)
127106
} else {
128107
edgeSetNavigationBarLight(true)
129108
}
130-
initViewAgain()
109+
lifecycleScope.launch {
110+
initViewAgain()
111+
}
131112
}
132113
/* 显示隐藏状态栏*/
133114
binding.mBtnStatus.setOnClickListener {
134-
/*if (EdgeUtils.hasStatusBar(this@ParamsActivity)) {
135-
EdgeUtils.hideStatusBar(
136-
this@ParamsActivity,
137-
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE
138-
)
139-
} else {
140-
EdgeUtils.showStatusBar(this@ParamsActivity)
141-
}*/
142-
if (edgeHasStatusBar()) {
143-
edgeHideStatusBar()
144-
} else {
145-
edgeShowStatusBar()
115+
lifecycleScope.launch {
116+
if (edgeHasStatusBar()) {
117+
edgeHideStatusBar()
118+
} else {
119+
edgeShowStatusBar()
120+
}
121+
initViewAgain()
146122
}
147-
initViewAgain()
123+
148124
}
149125
/* 显示隐藏导航栏*/
150126
binding.mBtnNav.setOnClickListener {
151-
/*if (EdgeUtils.hasNavigationBar(this)) {
152-
EdgeUtils.hideNavigationBar(this@ParamsActivity)
153-
} else {
154-
EdgeUtils.showNavigationBar(this@ParamsActivity)
155-
}*/
156-
if (edgeHasNavigationBar()) {
157-
edgeHideNavigationBar()
158-
} else {
159-
edgeShowNavigationBar()
127+
lifecycleScope.launch {
128+
if (edgeHasNavigationBar()) {
129+
edgeHideNavigationBar()
130+
} else {
131+
edgeShowNavigationBar()
132+
}
133+
initViewAgain()
160134
}
161-
initViewAgain()
162135
}
163136

164137
/* 显示隐藏系统栏*/
165138
binding.mBtnSystemBar.setOnClickListener {
166-
/*if (EdgeUtils.hasStatusBar(this) && EdgeUtils.hasNavigationBar(this)) {
167-
EdgeUtils.hideSystemBar(this@ParamsActivity)
168-
} else {
169-
EdgeUtils.showSystemBar(this@ParamsActivity)
170-
}*/
171-
if (edgeHasStatusBar() && edgeHasNavigationBar()) {
172-
edgeHideSystemBar()
173-
} else {
174-
edgeShowSystemBar()
139+
140+
lifecycleScope.launch {
141+
if (edgeHasStatusBar() && edgeHasNavigationBar()) {
142+
edgeHideSystemBar()
143+
} else {
144+
edgeShowSystemBar()
145+
}
146+
initViewAgain()
175147
}
176-
initViewAgain()
177148
}
178149

179150
}

immersionbar-sample/src/main/java/com/gyf/immersionbar/sample/activity/PicAndColorActivity.kt

+16-15
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@ import android.view.LayoutInflater
55
import android.widget.SeekBar
66
import android.widget.SeekBar.OnSeekBarChangeListener
77
import android.widget.Toast
8+
import androidx.lifecycle.lifecycleScope
89
import cn.jailedbird.edgeutils.EdgeUtils
10+
import cn.jailedbird.edgeutils.EdgeUtils.edgeHasStatusBar
11+
import cn.jailedbird.edgeutils.EdgeUtils.edgeHideStatusBar
12+
import cn.jailedbird.edgeutils.EdgeUtils.edgeShowStatusBar
913
import cn.jailedbird.edgeutils.paddingTopSystemWindowInsets
1014
import com.blankj.utilcode.util.ColorUtils
1115
import com.bumptech.glide.Glide
1216
import com.bumptech.glide.request.RequestOptions
1317
import com.gyf.immersionbar.sample.R
1418
import com.gyf.immersionbar.sample.databinding.ActivityPicColorBinding
1519
import com.gyf.immersionbar.sample.utils.Utils
20+
import kotlinx.coroutines.launch
1621

1722
class PicAndColorActivity : BaseViewBindingActivity<ActivityPicColorBinding>(),
1823
OnSeekBarChangeListener {
@@ -41,13 +46,14 @@ class PicAndColorActivity : BaseViewBindingActivity<ActivityPicColorBinding>(),
4146
}
4247

4348
binding.btnNavigationColor.setOnClickListener {
44-
it.post {
45-
if (EdgeUtils.hasNavigationBar(this)) {
46-
EdgeUtils.setNavigationBarColor(this, R.color.colorAccent)
49+
lifecycleScope.launch {
50+
if (EdgeUtils.hasNavigationBar(this@PicAndColorActivity)) {
51+
EdgeUtils.setNavigationBarColor(this@PicAndColorActivity, R.color.colorAccent)
4752
} else {
48-
Toast.makeText(this, "当前设备没有导航栏", Toast.LENGTH_SHORT).show()
53+
Toast.makeText(this@PicAndColorActivity, "当前设备没有导航栏", Toast.LENGTH_SHORT).show()
4954
}
5055
}
56+
5157
}
5258

5359
binding.btnColor.setOnClickListener {
@@ -58,22 +64,17 @@ class PicAndColorActivity : BaseViewBindingActivity<ActivityPicColorBinding>(),
5864
}
5965

6066
binding.btnStatusControl.setOnClickListener {
61-
if (EdgeUtils.hasStatusBar(this)) {
62-
EdgeUtils.hideStatusBar(this)
63-
} else {
64-
EdgeUtils.showStatusBar(this)
67+
lifecycleScope.launch {
68+
if (edgeHasStatusBar()) {
69+
edgeHideStatusBar()
70+
} else {
71+
edgeShowStatusBar()
72+
}
6573
}
6674
}
6775
}
6876

6977
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
70-
val alpha = progress.toFloat() / 100
71-
/*ImmersionBar.with(this)
72-
.statusBarColorTransform(R.color.orange)
73-
.navigationBarColorTransform(R.color.tans)
74-
.addViewSupportTransformColor(binding.toolbar)
75-
.barAlpha(alpha)
76-
.init()*/
7778
binding.toolbarWrapper.background = ColorDrawable(ColorUtils.getRandomColor(true))
7879
}
7980

0 commit comments

Comments
 (0)