You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
4.9 KiB
148 lines
4.9 KiB
package com.novel.read.activity
|
|
|
|
import android.annotation.SuppressLint
|
|
import android.content.Context
|
|
import android.content.Intent
|
|
import android.os.Bundle
|
|
import android.util.Log
|
|
import android.view.KeyEvent
|
|
import android.view.View
|
|
import androidx.fragment.app.Fragment
|
|
import com.mango.mangolib.event.EventManager
|
|
import com.novel.read.R
|
|
import com.novel.read.base.NovelBaseActivity
|
|
import com.novel.read.constants.Constant
|
|
import com.novel.read.event.*
|
|
import com.novel.read.fragment.BookFragment
|
|
import com.novel.read.fragment.MoreFragment
|
|
import com.novel.read.fragment.RecommendFragment
|
|
import com.novel.read.fragment.StackFragment
|
|
import com.novel.read.http.AccountManager
|
|
import com.novel.read.model.db.dbManage.BookRepository
|
|
import com.novel.read.showToast
|
|
import com.novel.read.utlis.SpUtil
|
|
import com.squareup.otto.Subscribe
|
|
import kotlinx.android.synthetic.main.activity_main.*
|
|
|
|
class NovelMainActivity(override val layoutId: Int = R.layout.activity_main) : NovelBaseActivity() {
|
|
|
|
private lateinit var mCurrentFrag: Fragment
|
|
private lateinit var mMainFragment: BookFragment
|
|
private lateinit var mRecommendFragment: RecommendFragment
|
|
private lateinit var mStackFragment: StackFragment
|
|
private lateinit var mMoreFragment: MoreFragment
|
|
|
|
//记录用户首次点击返回键的时间
|
|
private var firstTime: Long = 0
|
|
|
|
override fun initView() {
|
|
mCurrentFrag = Fragment()
|
|
mMainFragment = BookFragment.newInstance()
|
|
mRecommendFragment = RecommendFragment.newInstance()
|
|
mStackFragment = StackFragment.newInstance()
|
|
mMoreFragment = MoreFragment.newInstance()
|
|
AccountManager.getInstance().login(this)
|
|
}
|
|
|
|
override fun initData() {
|
|
bottom_bar.setOnNavigationItemSelectedListener { menuItem ->
|
|
when (menuItem.itemId) {
|
|
R.id.tab_one -> {
|
|
switchFragment(mMainFragment)
|
|
return@setOnNavigationItemSelectedListener true
|
|
}
|
|
R.id.tab_two -> {
|
|
switchFragment(mRecommendFragment)
|
|
return@setOnNavigationItemSelectedListener true
|
|
}
|
|
R.id.tab_three -> {
|
|
switchFragment(mStackFragment)
|
|
return@setOnNavigationItemSelectedListener true
|
|
}
|
|
R.id.tab_four -> {
|
|
switchFragment(mMoreFragment)
|
|
return@setOnNavigationItemSelectedListener true
|
|
}
|
|
}
|
|
false
|
|
}
|
|
|
|
if (BookRepository.getInstance().collBooks.size > 0) {
|
|
switchFragment(mMainFragment)
|
|
} else {
|
|
bottom_bar.selectedItemId = R.id.tab_two
|
|
}
|
|
}
|
|
|
|
private fun switchFragment(targetFragment: Fragment) {
|
|
val transaction = supportFragmentManager.beginTransaction()
|
|
if (!targetFragment.isAdded) {
|
|
transaction.hide(mCurrentFrag)
|
|
transaction.add(R.id.fl_content, targetFragment, targetFragment.javaClass.name)
|
|
} else {
|
|
transaction.hide(mCurrentFrag).show(targetFragment)
|
|
}
|
|
mCurrentFrag = targetFragment
|
|
transaction.commit()
|
|
}
|
|
|
|
override fun onResume() {
|
|
super.onResume()
|
|
EventManager.instance.registerSubscriber(this)
|
|
}
|
|
|
|
override fun onPause() {
|
|
super.onPause()
|
|
EventManager.instance.unregisterSubscriber(this)
|
|
}
|
|
|
|
@Subscribe
|
|
fun login(event: LoginEvent) {
|
|
if (event.isFail) {
|
|
Log.e("NovelMainActivity", "login: " + event.er!!.msg)
|
|
} else {
|
|
SpUtil.setStringValue(Constant.Uid, event.result!!.uid.toString())
|
|
}
|
|
}
|
|
|
|
override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
|
|
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
|
|
if (!isVisible(bottom_bar)) {
|
|
bottom_bar.visibility = View.VISIBLE
|
|
mMainFragment.updateBook(UpdateBookEvent())
|
|
} else {
|
|
val secondTime = System.currentTimeMillis()
|
|
if (secondTime - firstTime > 1000) {
|
|
firstTime = secondTime
|
|
showToast("再次点击退出界面")
|
|
} else {
|
|
finish()
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
return super.onKeyUp(keyCode, event)
|
|
}
|
|
|
|
@Subscribe
|
|
fun setBottomBar(event: HideBottomBarEvent) {
|
|
if (event.result!!) {
|
|
bottom_bar.visibility = View.GONE
|
|
} else {
|
|
bottom_bar.visibility = View.VISIBLE
|
|
}
|
|
}
|
|
|
|
@Subscribe
|
|
fun toRecommendFragment(event: SwitchFragmentEvent) {
|
|
bottom_bar.selectedItemId = R.id.tab_two
|
|
}
|
|
|
|
companion object {
|
|
fun reStart(context: Context) {
|
|
val intent = Intent(context, NovelMainActivity::class.java)
|
|
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
|
|
context.startActivity(intent)
|
|
}
|
|
}
|
|
}
|
|
|