Skip to content

Commit 4816f38

Browse files
committed
抽取bindingStatus
1 parent 4c509de commit 4816f38

File tree

6 files changed

+50
-52
lines changed

6 files changed

+50
-52
lines changed

app/src/main/kotlin/com/rayfantasy/icode/ui/activity/AccountSettingActivity.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,16 @@ import org.jetbrains.anko.onClick
2626
import java.io.File
2727
import java.net.URI
2828

29-
class AccountSettingActivity : ActivityBindingStatus() {
29+
class AccountSettingActivity : ActivityBase() {
3030
private val glide by lazy { Glide.with(this) }
3131
private val circleTransformation by lazy { CropCircleTransformation(this) }
3232
final val REQUEST_SELECT_PICTURE: Int = 0x01
3333
lateinit var tagetUri: Uri
3434
lateinit var DestinationUri: Uri
35+
36+
override val bindingStatus: Boolean
37+
get() = true
38+
3539
override fun onCreate(savedInstanceState: Bundle?) {
3640
super.onCreate(savedInstanceState)
3741
DataBindingUtil.setContentView<ActivityAccountSettingBinding>(this, R.layout.activity_account_setting).theme = ICodeTheme

app/src/main/kotlin/com/rayfantasy/icode/ui/activity/ActivityBase.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,25 @@
11
package com.rayfantasy.icode.ui.activity
22

3+
import android.databinding.Observable
4+
import android.os.Build
35
import android.support.v7.widget.Toolbar
46
import android.view.MenuItem
57
import com.rayfantasy.icode.BaseApplication
68
import com.rayfantasy.icode.R
9+
import com.rayfantasy.icode.model.ICodeTheme
10+
import org.jetbrains.anko.configuration
711
import org.jetbrains.anko.find
812

913
abstract class ActivityBase : ActivityConverter() {
14+
open val bindingStatus = false
15+
private val callback by lazy {
16+
object : Observable.OnPropertyChangedCallback() {
17+
override fun onPropertyChanged(sender: Observable?, propertyId: Int) {
18+
window.statusBarColor = ICodeTheme.colorPrimaryDark.get()
19+
}
20+
}
21+
}
22+
1023
override fun setContentView(layoutResID: Int) {
1124
super.setContentView(layoutResID)
1225
val toolbar = find<Toolbar>(R.id.toolbar)
@@ -26,4 +39,21 @@ abstract class ActivityBase : ActivityConverter() {
2639
}
2740
else -> false
2841
}
42+
43+
override fun onResume() {
44+
super.onResume()
45+
if (bindingStatus)
46+
configuration(fromSdk = Build.VERSION_CODES.LOLLIPOP) {
47+
window.statusBarColor = ICodeTheme.colorPrimaryDark.get()
48+
ICodeTheme.colorPrimaryDark.addOnPropertyChangedCallback(callback)
49+
}
50+
}
51+
52+
override fun onPause() {
53+
super.onPause()
54+
if (bindingStatus)
55+
configuration(fromSdk = Build.VERSION_CODES.LOLLIPOP) {
56+
ICodeTheme.colorPrimaryDark.removeOnPropertyChangedCallback(callback)
57+
}
58+
}
2959
}

app/src/main/kotlin/com/rayfantasy/icode/ui/activity/ActivityBindingStatus.kt

Lines changed: 0 additions & 47 deletions
This file was deleted.

app/src/main/kotlin/com/rayfantasy/icode/ui/activity/BlocksActivity.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import org.jetbrains.anko.onClick
2525
import org.jetbrains.anko.startActivity
2626
import org.jetbrains.anko.toast
2727

28-
class BlocksActivity : ActivityBindingStatus() {
28+
class BlocksActivity : ActivityBase() {
2929
companion object {
3030
private const val TRANSFORM_DURATION_BG: Long = 300
3131
private const val TRANSFORM_DURATION_MENU: Int = (TRANSFORM_DURATION_BG * 1.5).toInt()
@@ -41,6 +41,9 @@ class BlocksActivity : ActivityBindingStatus() {
4141
private var scaleY = 0f
4242
private var translationY = 0f
4343

44+
override val bindingStatus: Boolean
45+
get() = true
46+
4447
override fun onCreate(savedInstanceState: Bundle?) {
4548
super.onCreate(savedInstanceState)
4649
binding = DataBindingUtil.setContentView(this, R.layout.activity_blocks)

app/src/main/kotlin/com/rayfantasy/icode/ui/activity/ReplyActivity.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,20 @@ import org.jetbrains.anko.onClick
2222
import org.jetbrains.anko.support.v4.onRefresh
2323
import org.jetbrains.anko.toast
2424

25-
class ReplyActivity : ActivityBindingStatus() {
26-
companion object{
25+
class ReplyActivity : ActivityBase() {
26+
companion object {
2727
const val LOAD_ONCE = 5
2828
}
29+
2930
private var id: Int = 1
3031
private lateinit var adapter: ReplyListAdapter
3132
private val isRefreshing: Boolean
3233
get() = request != null
3334
private var request: Request<*>? = null
35+
36+
override val bindingStatus: Boolean
37+
get() = true
38+
3439
override fun onCreate(savedInstanceState: Bundle?) {
3540
super.onCreate(savedInstanceState)
3641
DataBindingUtil.setContentView<ActivityReplyBinding>(this, R.layout.activity_reply).theme = ICodeTheme

app/src/main/kotlin/com/rayfantasy/icode/ui/activity/WriteCodeActivity.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ import kotlinx.android.synthetic.main.activity_write_code.*
2020
import kotlinx.android.synthetic.main.content_write_code.*
2121
import org.jetbrains.anko.onClick
2222

23-
class WriteCodeActivity : ActivityBindingStatus() {
23+
class WriteCodeActivity : ActivityBase() {
2424
private var request: Request<*>? = null
2525

26+
override val bindingStatus: Boolean
27+
get() = true
28+
2629
override fun onCreate(savedInstanceState: Bundle?) {
2730
super.onCreate(savedInstanceState)
2831
DataBindingUtil.setContentView<ActivityWriteCodeBinding>(this, R.layout.activity_write_code).theme = ICodeTheme

0 commit comments

Comments
 (0)