Skip to content

Commit 0c4779d

Browse files
committed
see 01/17 log
1 parent 71e69e2 commit 0c4779d

18 files changed

+204
-125
lines changed

config.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ ext {
55
compileSdkVersion = 27
66
minSdkVersion = 14
77
targetSdkVersion = 27
8-
versionCode = 1_022_011
9-
versionName = '1.22.11'// E.g. 1.9.72 => 1,009,072
8+
versionCode = 1_023_000
9+
versionName = '1.23.0'// E.g. 1.9.72 => 1,009,072
1010

1111
bus = [
1212
isDebug: false,

utilcode/lib/src/main/java/com/blankj/utilcode/util/AntiShakeUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ public static boolean isValid(@NonNull View view) {
2828
public static boolean isValid(@NonNull View view, @IntRange(from = 0) long duration) {
2929
long curTime = System.currentTimeMillis();
3030
Object tag = view.getTag(TAG_KEY);
31-
if (!(tag instanceof Long)) return true;
31+
if (!(tag instanceof Long)) {
32+
view.setTag(TAG_KEY, curTime);
33+
return true;
34+
}
3235
long preTime = (Long) tag;
3336
if (curTime - preTime <= duration) return false;
3437
view.setTag(TAG_KEY, curTime);

utilcode/lib/src/main/java/com/blankj/utilcode/util/BarUtils.java

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.annotation.SuppressLint;
44
import android.app.Activity;
55
import android.content.Context;
6+
import android.content.ContextWrapper;
67
import android.content.res.Resources;
78
import android.graphics.Color;
89
import android.graphics.Point;
@@ -221,8 +222,10 @@ public static View setStatusBarColor(@NonNull final Activity activity,
221222
public static void setStatusBarColor(@NonNull final View fakeStatusBar,
222223
@ColorInt final int color) {
223224
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
225+
Activity activity = getActivityByView(fakeStatusBar);
226+
if (activity == null) return;
227+
transparentStatusBar(activity);
224228
fakeStatusBar.setVisibility(View.VISIBLE);
225-
transparentStatusBar((Activity) fakeStatusBar.getContext());
226229
ViewGroup.LayoutParams layoutParams = fakeStatusBar.getLayoutParams();
227230
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
228231
layoutParams.height = getStatusBarHeight();
@@ -236,23 +239,20 @@ public static void setStatusBarColor(@NonNull final View fakeStatusBar,
236239
*/
237240
public static void setStatusBarCustom(@NonNull final View fakeStatusBar) {
238241
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
239-
Context context = fakeStatusBar.getContext();
240-
if (context instanceof Activity) {
241-
fakeStatusBar.setVisibility(View.VISIBLE);
242-
transparentStatusBar((Activity) context);
243-
ViewGroup.LayoutParams layoutParams = fakeStatusBar.getLayoutParams();
244-
if (layoutParams == null) {
245-
layoutParams = new ViewGroup.LayoutParams(
246-
ViewGroup.LayoutParams.MATCH_PARENT,
247-
getStatusBarHeight()
248-
);
249-
fakeStatusBar.setLayoutParams(layoutParams);
250-
} else {
251-
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
252-
layoutParams.height = getStatusBarHeight();
253-
}
242+
Activity activity = getActivityByView(fakeStatusBar);
243+
if (activity == null) return;
244+
transparentStatusBar(activity);
245+
fakeStatusBar.setVisibility(View.VISIBLE);
246+
ViewGroup.LayoutParams layoutParams = fakeStatusBar.getLayoutParams();
247+
if (layoutParams == null) {
248+
layoutParams = new ViewGroup.LayoutParams(
249+
ViewGroup.LayoutParams.MATCH_PARENT,
250+
getStatusBarHeight()
251+
);
252+
fakeStatusBar.setLayoutParams(layoutParams);
254253
} else {
255-
Log.e("BarUtils", "fakeStatusBar's context is not instance of Activity.");
254+
layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
255+
layoutParams.height = getStatusBarHeight();
256256
}
257257
}
258258

@@ -284,20 +284,18 @@ public static void setStatusBarColor4Drawer(@NonNull final DrawerLayout drawer,
284284
@ColorInt final int color,
285285
final boolean isTop) {
286286
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
287+
Activity activity = getActivityByView(fakeStatusBar);
288+
if (activity == null) return;
289+
transparentStatusBar(activity);
287290
drawer.setFitsSystemWindows(false);
288-
Context context = fakeStatusBar.getContext();
289-
if (context instanceof Activity) {
290-
final Activity activity = (Activity) context;
291-
transparentStatusBar(activity);
292-
setStatusBarColor(fakeStatusBar, color);
293-
for (int i = 0, count = drawer.getChildCount(); i < count; i++) {
294-
drawer.getChildAt(i).setFitsSystemWindows(false);
295-
}
296-
if (isTop) {
297-
hideStatusBarView(activity);
298-
} else {
299-
setStatusBarColor(activity, color, false);
300-
}
291+
setStatusBarColor(fakeStatusBar, color);
292+
for (int i = 0, count = drawer.getChildCount(); i < count; i++) {
293+
drawer.getChildAt(i).setFitsSystemWindows(false);
294+
}
295+
if (isTop) {
296+
hideStatusBarView(activity);
297+
} else {
298+
setStatusBarColor(activity, color, false);
301299
}
302300
}
303301

@@ -580,4 +578,16 @@ public static boolean isSupportNavBar() {
580578
boolean back = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
581579
return !menu && !back;
582580
}
581+
582+
private static Activity getActivityByView(@NonNull final View view) {
583+
Context context = view.getContext();
584+
while (context instanceof ContextWrapper) {
585+
if (context instanceof Activity) {
586+
return (Activity) context;
587+
}
588+
context = ((ContextWrapper) context).getBaseContext();
589+
}
590+
Log.e("BarUtils", "the view's Context is not an Activity.");
591+
return null;
592+
}
583593
}

utilcode/lib/src/main/java/com/blankj/utilcode/util/ColorUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ public static int getRandomColor() {
201201
* @return the random color
202202
*/
203203
public static int getRandomColor(final boolean supportAlpha) {
204-
int high = supportAlpha ? (int) (Math.random() * 0x100) << 24 : 0xFF000000;
205-
return high | (int) (Math.random() * 0x1000000);
204+
int high = supportAlpha ? (int) (Math.random() * 0xFF) << 24 : 0xFF000000;
205+
return high | (int) (Math.random() * 0xFF0000);
206206
}
207207
}

utilcode/lib/src/test/java/com/blankj/utilcode/util/BaseTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public BaseTest() {
3030
@Test
3131
public void test() throws Exception {
3232

33+
3334
// final CountDownLatch countDownLatch = new CountDownLatch(1);
3435
// final Scanner scanner = new Scanner(System.in);
3536
// ExecutorService singlePool = ThreadUtils.getSinglePool();

utilcode/pkg/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@
7373
<activity
7474
android:name=".feature.bar.BarStatusActivity"
7575
android:launchMode="singleTop" />
76+
<activity
77+
android:name=".feature.bar.BarStatusAlphaActivity"
78+
android:launchMode="singleTop" />
7679
<activity
7780
android:name=".feature.bar.BarStatusColorActivity"
7881
android:launchMode="singleTop" />

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarActivity.kt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@ class BarActivity : BaseBackActivity() {
3636
override fun initView(savedInstanceState: Bundle?, contentView: View) {
3737
setTitle(R.string.demo_bar)
3838

39-
statusBarAboutBtn.setOnClickListener(this);
40-
statusBarSetColorBtn.setOnClickListener(this);
41-
statusBarSetCustomBtn.setOnClickListener(this);
42-
statusBarSetImageViewBtn.setOnClickListener(this);
43-
statusBarSetFragmentBtn.setOnClickListener(this);
44-
statusBarSetSwipeBackBtn.setOnClickListener(this);
45-
statusBarSetDrawerBtn.setOnClickListener(this);
46-
notificationBarAboutBtn.setOnClickListener(this);
47-
navBarAboutBtn.setOnClickListener(this);
39+
statusBarAboutBtn.setOnClickListener(this)
40+
statusBarSetColorBtn.setOnClickListener(this)
41+
statusBarSetAlphaBtn.setOnClickListener(this)
42+
statusBarSetImageViewBtn.setOnClickListener(this)
43+
statusBarSetCustomBtn.setOnClickListener(this)
44+
statusBarSetFragmentBtn.setOnClickListener(this)
45+
statusBarSetSwipeBackBtn.setOnClickListener(this)
46+
statusBarSetDrawerBtn.setOnClickListener(this)
47+
notificationBarAboutBtn.setOnClickListener(this)
48+
navBarAboutBtn.setOnClickListener(this)
4849
}
4950

5051
override fun doBusiness() {
@@ -55,8 +56,9 @@ class BarActivity : BaseBackActivity() {
5556
when (view.id) {
5657
R.id.statusBarAboutBtn -> BarStatusActivity.start(this)
5758
R.id.statusBarSetColorBtn -> BarStatusColorActivity.start(this)
58-
R.id.statusBarSetCustomBtn -> BarStatusCustomActivity.start(this)
59+
R.id.statusBarSetAlphaBtn -> BarStatusAlphaActivity.start(this)
5960
R.id.statusBarSetImageViewBtn -> BarStatusImageViewActivity.start(this)
61+
R.id.statusBarSetCustomBtn -> BarStatusCustomActivity.start(this)
6062
R.id.statusBarSetFragmentBtn -> BarStatusFragmentActivity.start(this)
6163
R.id.statusBarSetSwipeBackBtn -> BarStatusSwipeBackActivity.start(this)
6264
R.id.statusBarSetDrawerBtn -> BarStatusDrawerActivity.start(this)
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.blankj.utilcode.pkg.feature.bar
2+
3+
import android.content.Context
4+
import android.content.Intent
5+
import android.graphics.Color
6+
import android.os.Bundle
7+
import android.view.View
8+
import android.widget.SeekBar
9+
import com.blankj.lib.base.BaseActivity
10+
import com.blankj.utilcode.pkg.R
11+
import com.blankj.utilcode.util.BarUtils
12+
import kotlinx.android.synthetic.main.activity_bar_status_alpha.*
13+
14+
/**
15+
* ```
16+
* author: Blankj
17+
* blog : http://blankj.com
18+
* time : 2017/05/27
19+
* desc : demo about BarUtils
20+
* ```
21+
*/
22+
class BarStatusAlphaActivity : BaseActivity() {
23+
24+
companion object {
25+
fun start(context: Context) {
26+
val starter = Intent(context, BarStatusAlphaActivity::class.java)
27+
context.startActivity(starter)
28+
}
29+
}
30+
31+
private var mAlpha: Int = 0
32+
33+
private val translucentListener = object : SeekBar.OnSeekBarChangeListener {
34+
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
35+
mAlpha = progress
36+
statusAlphaTv.text = mAlpha.toString()
37+
updateStatusBar()
38+
}
39+
40+
override fun onStartTrackingTouch(seekBar: SeekBar) {
41+
42+
}
43+
44+
override fun onStopTrackingTouch(seekBar: SeekBar) {
45+
46+
}
47+
}
48+
49+
override fun initData(bundle: Bundle?) {
50+
mAlpha = 112
51+
}
52+
53+
override fun bindLayout(): Int {
54+
return R.layout.activity_bar_status_alpha
55+
}
56+
57+
override fun initView(savedInstanceState: Bundle?, contentView: View) {
58+
findViewById<View>(R.id.setTransparentBtn).setOnClickListener(this)
59+
changeAlphaSb.setOnSeekBarChangeListener(translucentListener)
60+
statusAlphaTv.text = mAlpha.toString()
61+
62+
updateStatusBar()
63+
}
64+
65+
66+
override fun doBusiness() {
67+
68+
}
69+
70+
override fun onWidgetClick(view: View) {
71+
when (view.id) {
72+
R.id.setTransparentBtn -> changeAlphaSb.progress = 0
73+
}
74+
}
75+
76+
private fun updateStatusBar() {
77+
BarUtils.setStatusBarColor(this, Color.argb(mAlpha, 0, 0, 0))
78+
BarUtils.addMarginTopEqualStatusBarHeight(statusAlphaTv)// 其实这个只需要调用一次即可
79+
}
80+
}

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusColorActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import android.content.Intent
55
import android.os.Bundle
66
import android.support.v4.content.ContextCompat
77
import android.view.View
8-
import com.blankj.lib.base.BaseBackActivity
8+
import com.blankj.lib.base.BaseActivity
99
import com.blankj.utilcode.pkg.R
1010
import com.blankj.utilcode.util.BarUtils
1111
import com.blankj.utilcode.util.ColorUtils
@@ -20,7 +20,7 @@ import kotlinx.android.synthetic.main.activity_bar_status_color.*
2020
* desc : demo about BarUtils
2121
* ```
2222
*/
23-
class BarStatusColorActivity : BaseBackActivity() {
23+
class BarStatusColorActivity : BaseActivity() {
2424

2525
companion object {
2626
fun start(context: Context) {

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusColorFragment.kt

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ package com.blankj.utilcode.pkg.feature.bar
33
import android.os.Bundle
44
import android.support.v4.content.ContextCompat
55
import android.view.View
6-
import android.widget.SeekBar
76
import com.blankj.lib.base.BaseLazyFragment
87
import com.blankj.utilcode.pkg.R
98
import com.blankj.utilcode.util.BarUtils
9+
import com.blankj.utilcode.util.ColorUtils
1010
import com.blankj.utilcode.util.LogUtils
1111
import com.blankj.utilcode.util.Utils
1212
import kotlinx.android.synthetic.main.fragment_bar_status_color.*
13-
import java.util.*
1413

1514
/**
1615
* ```
@@ -28,29 +27,10 @@ class BarStatusColorFragment : BaseLazyFragment() {
2827
}
2928
}
3029

31-
private var mRandom: Random = Random()
3230
private var mColor: Int = 0
33-
private var mAlpha: Int = 0
34-
35-
private val colorListener = object : SeekBar.OnSeekBarChangeListener {
36-
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
37-
mAlpha = progress
38-
statusAlphaTv.text = mAlpha.toString()
39-
updateFakeStatusBar()
40-
}
41-
42-
override fun onStartTrackingTouch(seekBar: SeekBar) {
43-
44-
}
45-
46-
override fun onStopTrackingTouch(seekBar: SeekBar) {
47-
48-
}
49-
}
5031

5132
override fun initData(bundle: Bundle?) {
5233
mColor = ContextCompat.getColor(Utils.getApp(), R.color.colorPrimary)
53-
mAlpha = 112
5434
}
5535

5636
override fun bindLayout(): Int {
@@ -59,29 +39,24 @@ class BarStatusColorFragment : BaseLazyFragment() {
5939

6040
override fun initView(savedInstanceState: Bundle?, contentView: View) {
6141
randomColorBtn.setOnClickListener(this)
62-
setTransparentBtn.setOnClickListener(this)
63-
changeAlphaSb.setOnSeekBarChangeListener(colorListener)
64-
statusAlphaTv.text = mAlpha.toString()
65-
6642
updateFakeStatusBar()
6743
}
6844

69-
7045
override fun doLazyBusiness() {
7146
LogUtils.d("doLazyBusiness() called")
7247
}
7348

7449
override fun onWidgetClick(view: View) {
7550
when (view.id) {
7651
R.id.randomColorBtn -> {
77-
mColor = -0x1000000 or mRandom.nextInt(0xffffff)
52+
mColor = ColorUtils.getRandomColor()
7853
updateFakeStatusBar()
7954
}
80-
R.id.setTransparentBtn -> changeAlphaSb.progress = 0
8155
}
8256
}
8357

84-
fun updateFakeStatusBar() {
58+
private fun updateFakeStatusBar() {
8559
BarUtils.setStatusBarColor(fakeStatusBar, mColor)
60+
statusColorTv.text = String.format(ColorUtils.int2ArgbString(mColor))
8661
}
8762
}

utilcode/pkg/src/main/java/com/blankj/utilcode/pkg/feature/bar/BarStatusCustomActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import android.content.Intent
55
import android.graphics.Color
66
import android.os.Bundle
77
import android.view.View
8-
import com.blankj.lib.base.BaseBackActivity
8+
import com.blankj.lib.base.BaseActivity
99
import com.blankj.utilcode.pkg.R
1010
import com.blankj.utilcode.util.BarUtils
1111

@@ -18,7 +18,7 @@ import com.blankj.utilcode.util.BarUtils
1818
* desc : demo about BarUtils
1919
* ```
2020
*/
21-
class BarStatusCustomActivity : BaseBackActivity() {
21+
class BarStatusCustomActivity : BaseActivity() {
2222

2323
companion object {
2424
fun start(context: Context) {

0 commit comments

Comments
 (0)