Skip to content

Commit 2a66b98

Browse files
AriesHooAriesHoo
AriesHoo
authored and
AriesHoo
committed
1、更新三方库修改FastUtil 设置Drawable颜色方法
1 parent 50243fd commit 2a66b98

File tree

7 files changed

+40
-32
lines changed

7 files changed

+40
-32
lines changed

app/src/main/java/com/aries/library/fast/demo/impl/ActivityControlImpl.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import com.didichuxing.doraemonkit.ui.base.BaseActivity;
4848
import com.luck.picture.lib.PictureBaseActivity;
4949
import com.luck.picture.lib.PicturePreviewActivity;
50-
import com.squareup.leakcanary.internal.DisplayLeakActivity;
5150
import com.umeng.analytics.MobclickAgent;
5251

5352
import java.util.List;
@@ -215,16 +214,19 @@ public void setRequestedOrientation(Activity activity) {
215214
*/
216215
@Override
217216
public boolean setStatusBar(Activity activity, StatusViewHelper helper, View topView) {
217+
LoggerManager.e("setStatusBar:" + Thread.currentThread());
218218
boolean isSupportStatusBarFont = StatusBarUtil.isSupportStatusBarFontChange();
219-
helper.setTransEnable(isSupportStatusBarFont || activity instanceof DisplayLeakActivity)
220-
.setPlusStatusViewEnable(!(activity instanceof DisplayLeakActivity))
221-
.setStatusLayoutColor(activity instanceof DisplayLeakActivity ?
222-
ContextCompat.getColor(activity, R.color.leak_canary_background_color) :
223-
Color.WHITE);
219+
helper.setTransEnable(isSupportStatusBarFont || isLeak(activity))
220+
.setPlusStatusViewEnable(!isLeak(activity))
221+
.setStatusLayoutColor(Color.WHITE);
224222
setStatusBarActivity(activity);
225223
return true;
226224
}
227225

226+
private boolean isLeak(Activity activity) {
227+
return activity.getClass().getSimpleName().equals("DisplayLeakActivity");
228+
}
229+
228230
/**
229231
* {@link FastLifecycleCallbacks#onActivityStarted(Activity)}
230232
*
@@ -243,7 +245,7 @@ public boolean setNavigationBar(Activity activity, NavigationViewHelper helper,
243245
.setOnKeyboardVisibilityChangedListener(mOnKeyboardVisibilityChangedListener)
244246
.setBottomView(PicturePreviewActivity.class.isAssignableFrom(activity.getClass()) ?
245247
FindViewUtil.getTargetView(bottomView, R.id.select_bar_layout) : bottomView)
246-
.setNavigationViewColor(activity instanceof DisplayLeakActivity ? Color.BLACK : Color.argb(isDarkIcon() && isPlusView(activity) ? 0 : 102, 0, 0, 0))
248+
.setNavigationViewColor(isLeak(activity) ? Color.BLACK : Color.argb(isDarkIcon() && isPlusView(activity) ? 0 : 102, 0, 0, 0))
247249
.setNavigationLayoutColor(ContextCompat.getColor(activity, R.color.colorTabBackground));
248250
if (!isControlNavigation() && !(activity instanceof MainActivity)) {
249251
KeyboardHelper.with(activity)
@@ -273,7 +275,7 @@ protected boolean isDarkIcon() {
273275
protected boolean isPlusView(Activity activity) {
274276
return !(activity instanceof SplashActivity)
275277
&& !(activity instanceof TestStatusActivity)
276-
&& !(activity instanceof DisplayLeakActivity);
278+
&& !isLeak(activity);
277279
}
278280

279281
private KeyboardHelper.OnKeyboardVisibilityChangedListener mOnKeyboardVisibilityChangedListener = (activity, isOpen, heightDiff, navigationHeight) -> {
@@ -412,7 +414,7 @@ private void setStatusBarActivity(Activity activity) {
412414
.subscribe(new FastObserver<Long>() {
413415
@Override
414416
public void _onNext(Long entity) {
415-
if (activity instanceof DisplayLeakActivity) {
417+
if (isLeak(activity)) {
416418
return;
417419
}
418420
StatusBarUtil.setStatusBarLightMode(activity);

app/src/main/java/com/aries/library/fast/demo/impl/AppImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
import com.aries.library.fast.i.ToastControl;
1818
import com.aries.library.fast.manager.LoggerManager;
1919
import com.aries.library.fast.util.FastStackUtil;
20-
import com.aries.library.fast.util.FastUtil;
2120
import com.aries.library.fast.util.SizeUtil;
2221
import com.aries.library.fast.util.ToastUtil;
2322
import com.aries.library.fast.widget.FastLoadDialog;
2423
import com.aries.library.fast.widget.FastLoadMoreView;
24+
import com.aries.ui.util.DrawableUtil;
2525
import com.aries.ui.util.StatusBarUtil;
2626
import com.aries.ui.view.radius.RadiusTextView;
2727
import com.aries.ui.view.title.TitleBarView;
@@ -180,7 +180,7 @@ public FastLoadDialog createLoadingDialog(@Nullable Activity activity) {
180180
@Override
181181
public boolean createTitleBarViewControl(TitleBarView titleBar, Class<?> cls) {
182182
//默认的MD风格返回箭头icon如使用该风格可以不用设置
183-
Drawable mDrawable = FastUtil.getTintDrawable(ContextCompat.getDrawable(mContext, R.drawable.fast_ic_back),
183+
Drawable mDrawable = DrawableUtil.setTintDrawable(ContextCompat.getDrawable(mContext, R.drawable.fast_ic_back),
184184
ContextCompat.getColor(mContext, R.color.colorTitleText));
185185
//是否支持状态栏白色
186186
boolean isSupport = StatusBarUtil.isSupportStatusBarFontChange();

app/src/main/java/com/aries/library/fast/demo/module/SplashActivity.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.graphics.Color;
44
import android.graphics.drawable.Drawable;
55
import android.os.Bundle;
6-
import androidx.core.content.ContextCompat;
76
import android.view.View;
87
import android.view.WindowManager;
98
import android.widget.TextView;
@@ -16,10 +15,12 @@
1615
import com.aries.library.fast.retrofit.FastObserver;
1716
import com.aries.library.fast.util.FastStackUtil;
1817
import com.aries.library.fast.util.FastUtil;
18+
import com.aries.ui.util.DrawableUtil;
1919
import com.aries.ui.util.StatusBarUtil;
2020
import com.aries.ui.view.title.TitleBarView;
2121
import com.trello.rxlifecycle3.android.ActivityEvent;
2222

23+
import androidx.core.content.ContextCompat;
2324
import butterknife.BindView;
2425

2526
/**
@@ -36,7 +37,7 @@ public class SplashActivity extends FastTitleActivity {
3637

3738
@Override
3839
public void beforeSetContentView() {
39-
LoggerManager.i(TAG,"isTaskRoot:"+isTaskRoot()+";getCurrent:"+FastStackUtil.getInstance().getCurrent());
40+
LoggerManager.i(TAG, "isTaskRoot:" + isTaskRoot() + ";getCurrent:" + FastStackUtil.getInstance().getCurrent());
4041
//防止应用后台后点击桌面图标造成重启的假象---MIUI及Flyme上发现过(原生未发现)
4142
if (!isTaskRoot()) {
4243
finish();
@@ -66,8 +67,8 @@ public void initView(Bundle savedInstanceState) {
6667
//隐藏状态栏
6768
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
6869
}
69-
Drawable drawable = ContextCompat.getDrawable(mContext,R.drawable.ic_launcher);
70-
FastUtil.getTintDrawable(drawable, Color.WHITE);
70+
Drawable drawable = ContextCompat.getDrawable(mContext, R.drawable.ic_launcher);
71+
DrawableUtil.setTintDrawable(drawable, Color.WHITE);
7172
tvApp.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null);
7273
mContentView.setBackgroundResource(R.drawable.img_bg_login);
7374
tvVersion.setText("V" + FastUtil.getVersionName(mContext));

app/src/main/java/com/aries/library/fast/demo/util/ViewColorUtil.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import android.widget.ImageView;
88
import android.widget.TextView;
99

10-
import com.aries.library.fast.util.FastUtil;
10+
import com.aries.ui.util.DrawableUtil;
1111

1212
/**
1313
* @Author: AriesHoo on 2018/11/2 13:27
@@ -42,8 +42,7 @@ public void changeColor(View rootView, int alpha, boolean mIsLight, boolean show
4242
for (Drawable item : drawables) {
4343
if (item != null) {
4444
//使用该方法避免同一Drawable被全局修改
45-
item = item.mutate();
46-
FastUtil.getTintDrawable(item, Color.argb(mIsLight ? alpha : 255 - alpha, mIsLight ? 0 : 252, mIsLight ? 0 : 252, mIsLight ? 0 : 252));
45+
DrawableUtil.setTintDrawable(item, Color.argb(mIsLight ? alpha : 255 - alpha, mIsLight ? 0 : 252, mIsLight ? 0 : 252, mIsLight ? 0 : 252));
4746
}
4847
}
4948
if (!showText) {
@@ -54,7 +53,7 @@ public void changeColor(View rootView, int alpha, boolean mIsLight, boolean show
5453
} else if (rootView instanceof ImageView) {
5554
//使用该方法避免同一Drawable被全局修改
5655
Drawable drawable = ((ImageView) rootView).getDrawable().mutate();
57-
FastUtil.getTintDrawable(drawable, Color.argb(mIsLight ? alpha : 255 - alpha, mIsLight ? 0 : 252, mIsLight ? 0 : 252, mIsLight ? 0 : 252));
56+
DrawableUtil.setTintDrawable(drawable, Color.argb(mIsLight ? alpha : 255 - alpha, mIsLight ? 0 : 252, mIsLight ? 0 : 252, mIsLight ? 0 : 252));
5857
} else if (rootView instanceof ViewGroup) {
5958
ViewGroup contentView = (ViewGroup) rootView;
6059
int size = contentView.getChildCount();

library/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ dependencies {
6565
//图片加载
6666
compileOnly 'com.github.bumptech.glide:glide:4.8.0'
6767
//常用UI控件(TitleBarView、RadiusView等)
68-
api 'com.github.AriesHoo.UIWidget:widget-core:3.2.12'
68+
api 'com.github.AriesHoo.UIWidget:widget-core:3.2.13'
6969
//日志打印
7070
api 'com.orhanobut:logger:2.2.0'
7171
//注解
@@ -85,7 +85,7 @@ dependencies {
8585
//滑动返回Activity
8686
api 'cn.bingoogolapple:bga-swipebacklayout:1.2.0@aar'
8787
//快速Tab库
88-
api 'com.github.AriesHoo:TabLayout:1.0.5'
88+
api 'com.github.AriesHoo:TabLayout:1.0.6'
8989
//页面事件交互
9090
api 'org.simple:androideventbus:1.0.5.1'
9191
//多状态视图切换

library/src/main/java/com/aries/library/fast/module/activity/FastWebActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.aries.library.fast.util.FastUtil;
2222
import com.aries.library.fast.util.ToastUtil;
2323
import com.aries.ui.helper.navigation.NavigationViewHelper;
24+
import com.aries.ui.util.DrawableUtil;
2425
import com.aries.ui.view.title.TitleBarView;
2526
import com.aries.ui.widget.BasisDialog;
2627
import com.aries.ui.widget.action.sheet.UIActionSheetDialog;
@@ -137,7 +138,7 @@ public void onClick(View v) {
137138
onBackPressed();
138139
}
139140
})
140-
.setRightTextDrawable(FastUtil.getTintDrawable(
141+
.setRightTextDrawable(DrawableUtil.setTintDrawable(
141142
ContextCompat.getDrawable(mContext, R.drawable.fast_ic_more),
142143
ContextCompat.getColor(mContext, R.color.colorTitleText)))
143144
.setOnRightTextClickListener(new View.OnClickListener() {
@@ -147,7 +148,7 @@ public void onClick(View v) {
147148
}
148149
})
149150
.addLeftAction(titleBar.new ImageAction(
150-
FastUtil.getTintDrawable(ContextCompat.getDrawable(mContext, R.drawable.fast_ic_close),
151+
DrawableUtil.setTintDrawable(ContextCompat.getDrawable(mContext, R.drawable.fast_ic_close),
151152
ContextCompat.getColor(mContext, R.color.colorTitleText)), new View.OnClickListener() {
152153
@Override
153154
public void onClick(View v) {

library/src/main/java/com/aries/library/fast/util/FastUtil.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.view.ViewGroup;
2121

2222
import com.aries.library.fast.manager.LoggerManager;
23+
import com.aries.ui.util.DrawableUtil;
2324

2425
import java.util.List;
2526
import java.util.Random;
@@ -38,6 +39,7 @@
3839
* 3、2019-2-15 11:28:53 修改startActivity 方法增加single tag设置方法{@link #setActivitySingleFlag(int)}
3940
* 4、2019-2-22 13:49:12 修改{@link #getRootView(Activity)} 判断逻辑
4041
* 5、2019-4-19 17:02:01 修改{@link #getTintDrawable(Drawable, int)}以支持5.0以下版本并增加{@link #getTintDrawable(Drawable, ColorStateList)}
42+
* 6、2019-4-22 17:44:14 修改{@link #getTintDrawable(Drawable, int)}以支持5.0以下版本并增加{@link #getTintDrawable(Drawable, ColorStateList)}
4143
*/
4244
public class FastUtil {
4345

@@ -104,11 +106,13 @@ public static View getRootView(Activity activity) {
104106

105107
/**
106108
* 给一个Drawable变换线框颜色
109+
* {@link DrawableUtil#setTintDrawable(Drawable, int)}
107110
*
108111
* @param drawable 需要变换颜色的drawable
109112
* @param color 需要变换的颜色
110113
* @return
111114
*/
115+
@Deprecated
112116
public static Drawable getTintDrawable(Drawable drawable, @ColorInt int color) {
113117
if (drawable != null) {
114118
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
@@ -117,18 +121,19 @@ public static Drawable getTintDrawable(Drawable drawable, @ColorInt int color) {
117121
drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
118122
}
119123
}
120-
return drawable;
124+
return DrawableUtil.setTintDrawable(drawable, color);
121125
}
122126

127+
/**
128+
* {@link DrawableUtil#setTintDrawable(Drawable, ColorStateList)}
129+
*
130+
* @param drawable
131+
* @param tint
132+
* @return
133+
*/
134+
@Deprecated
123135
public static Drawable getTintDrawable(Drawable drawable, @Nullable ColorStateList tint) {
124-
if (drawable != null && tint != null) {
125-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
126-
DrawableCompat.setTintList(drawable, tint);
127-
} else {
128-
drawable.setColorFilter(tint.getDefaultColor(), PorterDuff.Mode.SRC_ATOP);
129-
}
130-
}
131-
return drawable;
136+
return DrawableUtil.setTintDrawable(drawable, tint);
132137
}
133138

134139
/**

0 commit comments

Comments
 (0)