Skip to content

Commit 1cc71d0

Browse files
committed
Refactor EasyToast
1 parent ed70d9d commit 1cc71d0

File tree

3 files changed

+23
-32
lines changed

3 files changed

+23
-32
lines changed

app/src/main/java/com/haoge/sample/easyandroid/activities/EasyToastActivity.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.haoge.sample.easyandroid.activities
22

33
import android.view.Gravity
4+
import android.widget.Toast
45
import butterknife.OnClick
56
import com.haoge.easyandroid.easy.EasyToast
67
import com.haoge.sample.easyandroid.BaseActivity
@@ -15,9 +16,11 @@ class EasyToastActivity : BaseActivity(){
1516

1617
val default by lazy { EasyToast.DEFAULT }
1718
val creator by lazy {
19+
// 创建自定义的Toast.
1820
EasyToast.newBuilder(R.layout.toast_style, R.id.toast_tv)
19-
.setGravity(Gravity.CENTER, 0, 0)
20-
.build()
21+
.setDuration(Toast.LENGTH_LONG)
22+
.setGravity(Gravity.CENTER, 0, 0)
23+
.build()
2124
}
2225

2326
override fun getLayoutId(): Int {

utils/src/main/java/com/haoge/easyandroid/EasyAndroid.kt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,6 @@ import android.content.Context
99
@SuppressLint("StaticFieldLeak")
1010
object EasyAndroid {
1111

12-
/**
13-
* 提供给框架内部使用的常量。判断是否是debug|release包
14-
*
15-
* 其为**BuildConfig.DEBUG**的值
16-
*/
17-
internal val DEBUG by lazy {
18-
return@lazy try {
19-
val clazz = Class.forName(context!!.packageName + ".BuildConfig")
20-
val field = clazz.getDeclaredField("DEBUG")
21-
field.get(clazz) as Boolean
22-
} catch (e:Exception) {
23-
false
24-
}
25-
}
26-
2712
private var context:Context? = null
2813

2914
fun getApplicationContext():Context {

utils/src/main/java/com/haoge/easyandroid/easy/EasyToast.kt

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.haoge.easyandroid.easy
22

33
import android.annotation.SuppressLint
4+
import android.content.Context
45
import android.os.Handler
56
import android.os.Looper
67
import android.text.TextUtils
@@ -18,8 +19,12 @@ import com.haoge.easyandroid.EasyAndroid
1819
*/
1920
class EasyToast private constructor(private val builder:Builder) {
2021

22+
private val context: Context = EasyAndroid.getApplicationContext()
23+
private var toast:Toast? = null
24+
private var tv:TextView? = null
25+
2126
fun show(resId:Int) {
22-
show(EasyAndroid.getApplicationContext().getString(resId))
27+
show(context.getString(resId))
2328
}
2429

2530
fun show(message:String?, vararg any: Any) {
@@ -43,29 +48,29 @@ class EasyToast private constructor(private val builder:Builder) {
4348
createToastIfNeeded()
4449

4550
if (builder.isDefault) {
46-
builder.toast?.setText(message)
47-
builder.toast?.show()
51+
toast?.setText(message)
52+
toast?.show()
4853
} else {
49-
builder.tv?.text = message
50-
builder.toast?.show()
54+
tv?.text = message
55+
toast?.show()
5156
}
5257
}
5358

5459
@SuppressLint("ShowToast")
5560
private fun createToastIfNeeded() {
56-
if (builder.toast == null) {
61+
if (toast == null) {
5762
if (builder.isDefault) {
58-
builder.toast = Toast.makeText(EasyAndroid.getApplicationContext(), "", Toast.LENGTH_SHORT)
63+
toast = Toast.makeText(context, "", Toast.LENGTH_SHORT)
5964
} else {
60-
val container = LayoutInflater.from(EasyAndroid.getApplicationContext()).inflate(builder.layoutId, null)
61-
builder.tv = container.findViewById(builder.tvId)
62-
builder.toast = Toast(EasyAndroid.getApplicationContext())
63-
builder.toast?.view = container
64-
builder.toast?.duration = builder.duration
65+
val container = LayoutInflater.from(context).inflate(builder.layoutId, null)
66+
tv = container.findViewById(builder.tvId)
67+
toast = Toast(context)
68+
toast?.view = container
69+
toast?.duration = builder.duration
6570
}
6671

6772
if (builder.gravity != 0) {
68-
builder.toast?.setGravity(builder.gravity, builder.offsetX, builder.offsetY)
73+
toast?.setGravity(builder.gravity, builder.offsetX, builder.offsetY)
6974
}
7075
}
7176
}
@@ -94,8 +99,6 @@ class EasyToast private constructor(private val builder:Builder) {
9499
class Builder(internal var isDefault: Boolean,
95100
internal var layoutId: Int,
96101
internal var tvId: Int) {
97-
internal var toast:Toast? = null
98-
internal var tv:TextView? = null
99102

100103
internal var duration:Int = Toast.LENGTH_SHORT
101104
internal var gravity:Int = 0

0 commit comments

Comments
 (0)