This repository has been archived by the owner on Dec 2, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
StatusViewActivity.kt
92 lines (82 loc) · 2.83 KB
/
StatusViewActivity.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package com.android.statuslayout.sample
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.android.status.layout.Status
import com.android.status.layout.StatusView
class StatusViewActivity : AppCompatActivity() {
companion object {
const val CUSTOM = 10
}
private lateinit var statusView: StatusView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
title = "StatusView"
statusView = Status.bind(this)
.apply {
addView(
Status(
Status.NORMAL,
view = this.createView(R.layout.layout_normal)
)
)
addView(
Status(
Status.ERROR,
view = this.createView(R.layout.layout_status_error)
)
)
addView(
Status(
Status.EMPTY,
view = this.createView(R.layout.layout_status_empty)
)
)
addView(
Status(
Status.SUCCESS,
view = this.createView(R.layout.layout_success)
)
)
addView(
Status(
Status.LOADING,
view = this.createView(R.layout.layout_status_loading)
)
)
show(Status.LOADING)
}
statusView.onClick(CUSTOM) {
Toast.makeText(this, "custom", Toast.LENGTH_LONG).show()
}
statusView.onClick(22) {
Toast.makeText(this, "null", Toast.LENGTH_LONG).show()
}
Toast.makeText(this, statusView.currentView.toString(), Toast.LENGTH_LONG).show()
statusView.postDelayed({
statusView.addView(
Status(
CUSTOM,
view = statusView.createView(R.layout.layout_status_custom)
)
)
}, 2000)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.status_menu, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.normal -> statusView.show(Status.NORMAL)
R.id.error -> statusView.show(Status.ERROR)
R.id.empty -> statusView.show(Status.EMPTY)
R.id.success -> statusView.show(Status.SUCCESS)
R.id.loading -> statusView.show(Status.LOADING)
R.id.custom -> statusView.show(CUSTOM)
}
return true
}
}