Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mmm-rain
AndroidUtilCode
提交
7068e6cc
A
AndroidUtilCode
项目概览
mmm-rain
/
AndroidUtilCode
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
AndroidUtilCode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7068e6cc
编写于
8月 30, 2017
作者:
B
Blankj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
see 08/30 log
上级
c54c4f81
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
68 addition
and
78 deletion
+68
-78
README-CN.md
README-CN.md
+2
-2
README.md
README.md
+2
-2
app/src/main/java/com/blankj/androidutilcode/core/snackbar/SnackbarActivity.java
...lankj/androidutilcode/core/snackbar/SnackbarActivity.java
+1
-1
app/src/main/java/com/blankj/androidutilcode/core/toast/ToastActivity.java
.../com/blankj/androidutilcode/core/toast/ToastActivity.java
+1
-1
build.gradle
build.gradle
+2
-2
settings.gradle
settings.gradle
+3
-1
update_log.md
update_log.md
+1
-0
utilcode/build.gradle
utilcode/build.gradle
+2
-2
utilcode/src/main/java/com/blankj/utilcode/util/CacheUtils.java
...de/src/main/java/com/blankj/utilcode/util/CacheUtils.java
+17
-7
utilcode/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
...src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
+1
-1
utilcode/src/main/java/com/blankj/utilcode/util/SpanUtils.java
...ode/src/main/java/com/blankj/utilcode/util/SpanUtils.java
+1
-1
utilcode/src/main/java/com/blankj/utilcode/util/ToastUtils.java
...de/src/main/java/com/blankj/utilcode/util/ToastUtils.java
+31
-57
utilcode/src/main/java/com/blankj/utilcode/util/Utils.java
utilcode/src/main/java/com/blankj/utilcode/util/Utils.java
+1
-0
utilcode/src/test/java/com/blankj/utilcode/util/CacheUtilsTest.java
...rc/test/java/com/blankj/utilcode/util/CacheUtilsTest.java
+3
-1
未找到文件。
README-CN.md
浏览文件 @
7068e6cc
...
...
@@ -618,7 +618,7 @@ getEntries : 获取压缩文件中的文件对象
Gradle:
```
groovy
compile
'com.blankj:utilcode:1.8.
4
'
compile
'com.blankj:utilcode:1.8.
5
'
```
...
...
@@ -641,7 +641,7 @@ Utils.init(context);
[
logo
]:
https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png
[
aucsvg
]:
https://img.shields.io/badge/AndroidUtilCode-v1.8.
4
-brightgreen.svg
[
aucsvg
]:
https://img.shields.io/badge/AndroidUtilCode-v1.8.
5
-brightgreen.svg
[
auc
]:
https://github.com/Blankj/AndroidUtilCode
[
apisvg
]:
https://img.shields.io/badge/API-14+-brightgreen.svg
...
...
README.md
浏览文件 @
7068e6cc
...
...
@@ -618,7 +618,7 @@ getEntries
Gradle:
```
groovy
compile
'com.blankj:utilcode:1.8.
4
'
compile
'com.blankj:utilcode:1.8.
5
'
```
...
...
@@ -641,7 +641,7 @@ Utils.init(context);
[
logo
]:
https://raw.githubusercontent.com/Blankj/AndroidUtilCode/master/art/logo.png
[
aucsvg
]:
https://img.shields.io/badge/AndroidUtilCode-v1.8.
4
-brightgreen.svg
[
aucsvg
]:
https://img.shields.io/badge/AndroidUtilCode-v1.8.
5
-brightgreen.svg
[
auc
]:
https://github.com/Blankj/AndroidUtilCode
[
apisvg
]:
https://img.shields.io/badge/API-14+-brightgreen.svg
...
...
app/src/main/java/com/blankj/androidutilcode/core/snackbar/SnackbarActivity.java
浏览文件 @
7068e6cc
...
...
@@ -26,7 +26,7 @@ import com.blankj.utilcode.util.ToastUtils;
*/
public
class
SnackbarActivity
extends
BaseBackActivity
{
private
View
snackBarRootView
;
View
snackBarRootView
;
public
static
void
start
(
Context
context
)
{
Intent
starter
=
new
Intent
(
context
,
SnackbarActivity
.
class
);
...
...
app/src/main/java/com/blankj/androidutilcode/core/toast/ToastActivity.java
浏览文件 @
7068e6cc
...
...
@@ -120,7 +120,7 @@ public class ToastActivity extends BaseBackActivity {
}
private
void
resetToast
()
{
ToastUtils
.
setMessageColor
(
0x
12000000
);
ToastUtils
.
setMessageColor
(
0x
FFFFFFFF
);
ToastUtils
.
setBgResource
(-
1
);
ToastUtils
.
setView
(
null
);
ToastUtils
.
setGravity
(
Gravity
.
BOTTOM
|
Gravity
.
CENTER_HORIZONTAL
,
0
,
getResources
().
getDimensionPixelSize
(
R
.
dimen
.
offset_64
));
...
...
build.gradle
浏览文件 @
7068e6cc
...
...
@@ -29,8 +29,8 @@ ext {
minSdkVersion
=
14
targetSdkVersion
=
25
versionCode
=
100800
4
00
versionName
=
'1.8.
4
'
versionCode
=
100800
5
00
versionName
=
'1.8.
5
'
// App dependencies
supportVersion
=
'25.3.1'
...
...
settings.gradle
浏览文件 @
7068e6cc
include
':app'
,
':utilcode'
,
':subutil'
include
':app'
,
':utilcode'
,
':subutil'
update_log.md
浏览文件 @
7068e6cc
*
17/08/30 修复ToastUtils弱引用带来的问题,修复CacheUtils异步问题,发布版本1.8.5
*
17/08/28 修复ToastUtils内存泄露,新增toast可根据系统字体显示不同字体,发布版本1.8.4
*
17/08/20 新增监听Activity生命周期,退出App,发布版本1.8.3
*
17/08/11 LogUtils的Builder改为Config,发布版本1.8.2
...
...
utilcode/build.gradle
浏览文件 @
7068e6cc
...
...
@@ -37,7 +37,7 @@ android {
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
release
{
minifyEnabled
tru
e
minifyEnabled
fals
e
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
...
...
@@ -63,4 +63,4 @@ dependencies {
testCompile
"com.google.truth:truth:0.31"
}
//apply from: "https://raw.githubusercontent.com/xiaopansky/android-library-publish-to-jcenter/master/bintrayUpload.gradle"
//gradle
w
bintrayUpload
//gradle bintrayUpload
utilcode/src/main/java/com/blankj/utilcode/util/CacheUtils.java
浏览文件 @
7068e6cc
...
...
@@ -550,6 +550,7 @@ public class CacheUtils {
/**
* 获取缓存大小
* <p>单位:字节</p>
* <p>调用了Thread.join(),需异步调用,否则可能主线程会卡顿</p>
*
* @return 缓存大小
*/
...
...
@@ -559,6 +560,7 @@ public class CacheUtils {
/**
* 获取缓存个数
* <p>调用了Thread.join(),需异步调用,否则可能主线程会卡顿</p>
*
* @return 缓存个数
*/
...
...
@@ -591,7 +593,8 @@ public class CacheUtils {
private
final
long
sizeLimit
;
private
final
int
countLimit
;
private
final
Map
<
File
,
Long
>
lastUsageDates
=
Collections
.
synchronizedMap
(
new
HashMap
<
File
,
Long
>());
private
final
File
cacheDir
;
private
final
File
cacheDir
;
private
final
Thread
mThread
;
private
CacheManager
(
final
File
cacheDir
,
final
long
sizeLimit
,
final
int
countLimit
)
{
this
.
cacheDir
=
cacheDir
;
...
...
@@ -599,11 +602,7 @@ public class CacheUtils {
this
.
countLimit
=
countLimit
;
cacheSize
=
new
AtomicLong
();
cacheCount
=
new
AtomicInteger
();
calculateCacheSizeAndCacheCount
();
}
private
void
calculateCacheSizeAndCacheCount
()
{
new
Thread
(
new
Runnable
()
{
mThread
=
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
int
size
=
0
;
...
...
@@ -619,14 +618,25 @@ public class CacheUtils {
cacheCount
.
getAndAdd
(
count
);
}
}
}).
start
();
});
mThread
.
start
();
}
private
long
getCacheSize
()
{
try
{
mThread
.
join
();
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
cacheSize
.
get
();
}
private
int
getCacheCount
()
{
try
{
mThread
.
join
();
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
return
cacheCount
.
get
();
}
...
...
utilcode/src/main/java/com/blankj/utilcode/util/SnackbarUtils.java
浏览文件 @
7068e6cc
...
...
@@ -28,7 +28,7 @@ import java.lang.ref.WeakReference;
*/
public
final
class
SnackbarUtils
{
private
static
final
int
DEFAULT_COLOR
=
0x
12000000
;
private
static
final
int
DEFAULT_COLOR
=
0x
FEFFFFFF
;
public
static
final
int
LENGTH_INDEFINITE
=
-
2
;
...
...
utilcode/src/main/java/com/blankj/utilcode/util/SpanUtils.java
浏览文件 @
7068e6cc
...
...
@@ -69,7 +69,7 @@ import static android.graphics.BlurMaskFilter.Blur;
*/
public
final
class
SpanUtils
{
private
static
final
int
DEFAULT_COLOR
=
0x
12000000
;
private
static
final
int
DEFAULT_COLOR
=
0x
FEFFFFFF
;
public
static
final
int
ALIGN_BOTTOM
=
0
;
public
static
final
int
ALIGN_BASELINE
=
1
;
...
...
utilcode/src/main/java/com/blankj/utilcode/util/ToastUtils.java
浏览文件 @
7068e6cc
...
...
@@ -9,10 +9,6 @@ import android.support.annotation.LayoutRes;
import
android.support.annotation.NonNull
;
import
android.support.annotation.StringRes
;
import
android.support.v4.widget.TextViewCompat
;
import
android.text.SpannableString
;
import
android.text.Spanned
;
import
android.text.style.ForegroundColorSpan
;
import
android.util.Log
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
...
...
@@ -31,11 +27,10 @@ import java.lang.ref.WeakReference;
*/
public
final
class
ToastUtils
{
private
static
final
String
TAG
=
"ToastUtils"
;
private
static
final
int
DEFAULT_COLOR
=
0x12000000
;
private
static
final
Handler
sHandler
=
new
Handler
(
Looper
.
getMainLooper
());
private
static
WeakReference
<
Toast
>
sToastWeakReference
;
private
static
WeakReference
<
View
>
sViewWeakReference
;
private
static
final
int
DEFAULT_COLOR
=
0xFEFFFFFF
;
private
static
final
Handler
HANDLER
=
new
Handler
(
Looper
.
getMainLooper
());
private
static
Toast
sToast
;
private
static
WeakReference
<
View
>
sViewWeakReference
;
private
static
int
gravity
=
Gravity
.
CENTER_HORIZONTAL
|
Gravity
.
BOTTOM
;
private
static
int
xOffset
=
0
;
private
static
int
yOffset
=
(
int
)
(
64
*
Utils
.
getApp
().
getResources
().
getDisplayMetrics
().
density
+
0.5
);
...
...
@@ -89,9 +84,8 @@ public final class ToastUtils {
if
(
view
!=
null
)
{
return
view
;
}
final
Toast
toast
=
getToastFromWR
();
if
(
toast
!=
null
)
{
return
toast
.
getView
();
if
(
sToast
!=
null
)
{
return
sToast
.
getView
();
}
return
null
;
}
...
...
@@ -129,7 +123,7 @@ public final class ToastUtils {
* @param text 文本
*/
public
static
void
showShortSafe
(
@NonNull
final
CharSequence
text
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
text
,
Toast
.
LENGTH_SHORT
);
...
...
@@ -143,7 +137,7 @@ public final class ToastUtils {
* @param resId 资源Id
*/
public
static
void
showShortSafe
(
@StringRes
final
int
resId
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
resId
,
Toast
.
LENGTH_SHORT
);
...
...
@@ -158,7 +152,7 @@ public final class ToastUtils {
* @param args 参数
*/
public
static
void
showShortSafe
(
@StringRes
final
int
resId
,
final
Object
...
args
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
resId
,
Toast
.
LENGTH_SHORT
,
args
);
...
...
@@ -173,7 +167,7 @@ public final class ToastUtils {
* @param args 参数
*/
public
static
void
showShortSafe
(
final
String
format
,
final
Object
...
args
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
format
,
Toast
.
LENGTH_SHORT
,
args
);
...
...
@@ -187,7 +181,7 @@ public final class ToastUtils {
* @param text 文本
*/
public
static
void
showLongSafe
(
@NonNull
final
CharSequence
text
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
text
,
Toast
.
LENGTH_LONG
);
...
...
@@ -201,7 +195,7 @@ public final class ToastUtils {
* @param resId 资源Id
*/
public
static
void
showLongSafe
(
@StringRes
final
int
resId
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
resId
,
Toast
.
LENGTH_LONG
);
...
...
@@ -216,7 +210,7 @@ public final class ToastUtils {
* @param args 参数
*/
public
static
void
showLongSafe
(
@StringRes
final
int
resId
,
final
Object
...
args
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
resId
,
Toast
.
LENGTH_LONG
,
args
);
...
...
@@ -231,7 +225,7 @@ public final class ToastUtils {
* @param args 参数
*/
public
static
void
showLongSafe
(
final
String
format
,
final
Object
...
args
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
show
(
format
,
Toast
.
LENGTH_LONG
,
args
);
...
...
@@ -319,7 +313,7 @@ public final class ToastUtils {
* 安全地显示短时自定义吐司
*/
public
static
void
showCustomShortSafe
(
@LayoutRes
final
int
layoutId
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
setView
(
layoutId
);
...
...
@@ -332,7 +326,7 @@ public final class ToastUtils {
* 安全地显示长时自定义吐司
*/
public
static
void
showCustomLongSafe
(
@LayoutRes
final
int
layoutId
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
setView
(
layoutId
);
...
...
@@ -361,7 +355,7 @@ public final class ToastUtils {
* 安全地显示短时自定义吐司
*/
public
static
void
showCustomShortSafe
(
@NonNull
final
View
view
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
setView
(
view
);
...
...
@@ -374,7 +368,7 @@ public final class ToastUtils {
* 安全地显示长时自定义吐司
*/
public
static
void
showCustomLongSafe
(
@NonNull
final
View
view
)
{
sHandler
.
post
(
new
Runnable
()
{
HANDLER
.
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
setView
(
view
);
...
...
@@ -439,55 +433,36 @@ public final class ToastUtils {
*/
private
static
void
show
(
final
CharSequence
text
,
final
int
duration
)
{
cancel
();
Toast
toast
;
final
View
view
=
getViewFromWR
();
if
(
view
!=
null
)
{
t
oast
=
new
Toast
(
Utils
.
getApp
());
t
oast
.
setView
(
view
);
t
oast
.
setDuration
(
duration
);
sT
oast
=
new
Toast
(
Utils
.
getApp
());
sT
oast
.
setView
(
view
);
sT
oast
.
setDuration
(
duration
);
}
else
{
if
(
messageColor
!=
DEFAULT_COLOR
)
{
SpannableString
spannableString
=
new
SpannableString
(
text
);
ForegroundColorSpan
colorSpan
=
new
ForegroundColorSpan
(
messageColor
);
spannableString
.
setSpan
(
colorSpan
,
0
,
spannableString
.
length
(),
Spanned
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
toast
=
Toast
.
makeText
(
Utils
.
getApp
(),
spannableString
,
duration
);
}
else
{
toast
=
Toast
.
makeText
(
Utils
.
getApp
(),
text
,
duration
);
}
sToast
=
Toast
.
makeText
(
Utils
.
getApp
(),
text
,
duration
);
// solve the font of toast
TextViewCompat
.
setTextAppearance
((
TextView
)
toast
.
getView
().
findViewById
(
android
.
R
.
id
.
message
),
android
.
R
.
style
.
TextAppearance
);
TextView
tvMessage
=
(
TextView
)
sToast
.
getView
().
findViewById
(
android
.
R
.
id
.
message
);
TextViewCompat
.
setTextAppearance
(
tvMessage
,
android
.
R
.
style
.
TextAppearance
);
tvMessage
.
setTextColor
(
messageColor
);
}
View
toastView
=
t
oast
.
getView
();
View
toastView
=
sT
oast
.
getView
();
if
(
bgResource
!=
-
1
)
{
toastView
.
setBackgroundResource
(
bgResource
);
}
else
if
(
backgroundColor
!=
DEFAULT_COLOR
)
{
toastView
.
setBackgroundColor
(
backgroundColor
);
}
toast
.
setGravity
(
gravity
,
xOffset
,
yOffset
);
sToastWeakReference
=
new
WeakReference
<>(
toast
);
toast
.
show
();
sToast
.
setGravity
(
gravity
,
xOffset
,
yOffset
);
sToast
.
show
();
}
/**
* 取消吐司显示
*/
public
static
void
cancel
()
{
Toast
toast
=
getToastFromWR
();
if
(
toast
!=
null
)
{
toast
.
cancel
();
}
sToastWeakReference
=
null
;
}
private
static
Toast
getToastFromWR
()
{
if
(
sToastWeakReference
!=
null
)
{
final
Toast
toast
=
sToastWeakReference
.
get
();
if
(
toast
!=
null
)
{
return
toast
;
}
if
(
sToast
!=
null
)
{
sToast
.
cancel
();
sToast
=
null
;
}
Log
.
e
(
TAG
,
"getToastFromWR: "
,
new
NullPointerException
(
"Toast is null"
));
return
null
;
}
private
static
View
getViewFromWR
()
{
...
...
@@ -497,7 +472,6 @@ public final class ToastUtils {
return
view
;
}
}
Log
.
e
(
TAG
,
"getViewFromWR: "
,
new
NullPointerException
(
"The custom view of toast is null"
));
return
null
;
}
}
utilcode/src/main/java/com/blankj/utilcode/util/Utils.java
浏览文件 @
7068e6cc
...
...
@@ -61,6 +61,7 @@ public final class Utils {
@Override
public
void
onActivityDestroyed
(
Activity
activity
)
{
sActivityList
.
remove
(
activity
);
ToastUtils
.
cancel
();
}
};
...
...
utilcode/src/test/java/com/blankj/utilcode/util/CacheUtilsTest.java
浏览文件 @
7068e6cc
...
...
@@ -319,7 +319,9 @@ public class CacheUtilsTest {
}
static
class
SerializableTest
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8021039743766780051L
;
private
static
final
long
serialVersionUID
=
-
5806706668736895024L
;
String
author
;
String
className
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录