|
@@ -15,6 +15,7 @@ import androidx.lifecycle.MutableLiveData
|
|
|
import androidx.lifecycle.ViewModel
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
import com.doverfuelingsolutions.issp.R
|
|
|
+import com.doverfuelingsolutions.issp.api.FuelInfoApi
|
|
|
import com.doverfuelingsolutions.issp.data.GlobalData
|
|
|
import com.doverfuelingsolutions.issp.databinding.ActivityMainBinding
|
|
|
import com.doverfuelingsolutions.issp.fusion.FusionError
|
|
@@ -22,9 +23,7 @@ import com.doverfuelingsolutions.issp.fusion.FusionManager
|
|
|
import com.doverfuelingsolutions.issp.fusion.callback.OnFusionEvent
|
|
|
import com.doverfuelingsolutions.issp.utils.ActivityUtil
|
|
|
import com.doverfuelingsolutions.issp.utils.StringUtil
|
|
|
-import com.doverfuelingsolutions.issp.view.fragment.FragmentHolder
|
|
|
-import com.doverfuelingsolutions.issp.view.fragment.FragmentNozzle
|
|
|
-import com.doverfuelingsolutions.issp.view.fragment.FragmentSelect
|
|
|
+import com.doverfuelingsolutions.issp.view.fragment.*
|
|
|
import com.wayne.www.waynelib.fdc.FdcClient
|
|
|
import com.youth.banner.adapter.BannerImageAdapter
|
|
|
import com.youth.banner.holder.BannerImageHolder
|
|
@@ -40,9 +39,6 @@ class MainActivity : AppCompatActivity(),
|
|
|
fun start(context: Context) {
|
|
|
Intent(context, MainActivity::class.java).let { context.startActivity(it) }
|
|
|
}
|
|
|
-
|
|
|
- const val keyOnBack = "back"
|
|
|
- const val keyOnHome = "home"
|
|
|
}
|
|
|
|
|
|
private val binding: ActivityMainBinding by lazy { DataBindingUtil.setContentView(this, R.layout.activity_main) }
|
|
@@ -50,7 +46,8 @@ class MainActivity : AppCompatActivity(),
|
|
|
|
|
|
private val fragmentHolder = FragmentHolder()
|
|
|
private val fragmentSelect = FragmentSelect()
|
|
|
- private val fragmentNozzle = FragmentNozzle()
|
|
|
+ private val fragmentNozzle: FragmentNozzle by lazyOf(FragmentNozzle())
|
|
|
+ private val fragmentOrderList: FragmentOrderList by lazyOf(FragmentOrderList())
|
|
|
private var isFragmentHoldBack = true
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
@@ -102,19 +99,31 @@ class MainActivity : AppCompatActivity(),
|
|
|
}
|
|
|
|
|
|
override fun onFragmentResult(requestKey: String, result: Bundle) {
|
|
|
- when (requestKey) {
|
|
|
- keyOnBack -> {
|
|
|
+ if (requestKey != FragmentConstants.fragmentEvent) return
|
|
|
+
|
|
|
+ when (result.getString(FragmentConstants.eventType)) {
|
|
|
+ FragmentConstants.eventHome -> {
|
|
|
+ if (supportFragmentManager.backStackEntryCount > 0)
|
|
|
+ supportFragmentManager.popBackStack(supportFragmentManager.getBackStackEntryAt(0).id, FragmentManager.POP_BACK_STACK_INCLUSIVE)
|
|
|
+ }
|
|
|
+ FragmentConstants.eventBack -> {
|
|
|
supportFragmentManager.popBackStack()
|
|
|
}
|
|
|
- keyOnHome -> {
|
|
|
- if (supportFragmentManager.backStackEntryCount > 0) {
|
|
|
- supportFragmentManager.popBackStack(supportFragmentManager.getBackStackEntryAt(0).id, FragmentManager.POP_BACK_STACK_INCLUSIVE)
|
|
|
+ FragmentConstants.eventSearchBy -> {
|
|
|
+ val type = result.getString(FragmentConstants.searchType)
|
|
|
+ if (type == FragmentConstants.typeNozzle) {
|
|
|
+ setFragment(fragmentNozzle, true)
|
|
|
+ } else if (type == FragmentConstants.typeOilName) {
|
|
|
+ setFragment(fragmentNozzle, true)
|
|
|
}
|
|
|
}
|
|
|
- FragmentSelect.keyOnSelect -> {
|
|
|
- val isNozzle = result.getBoolean(FragmentSelect.keyIsNozzle)
|
|
|
- // TODO 油品和枪号选择界面
|
|
|
- setFragment(if (isNozzle) fragmentNozzle else fragmentHolder, true)
|
|
|
+ FragmentConstants.eventOrderList -> {
|
|
|
+ val type = result.getString(FragmentConstants.searchType)
|
|
|
+ if (type == FragmentConstants.typeNozzle) {
|
|
|
+ fragmentOrderList.viewModel.type.value = FragmentConstants.typeNozzle
|
|
|
+ fragmentOrderList.viewModel.nozzle.value = result.getInt(FragmentConstants.pumpId)
|
|
|
+ setFragment(fragmentOrderList, true)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -135,6 +144,14 @@ class MainActivity : AppCompatActivity(),
|
|
|
when (code) {
|
|
|
FusionError.Success -> {
|
|
|
setFragment(fragmentSelect)
|
|
|
+ // Preload order data after first connect
|
|
|
+ lifecycleScope.launch {
|
|
|
+ FusionManager.getAllUnsettledOrder(-1).run {
|
|
|
+ if (success && data != null) {
|
|
|
+ GlobalData.orderList.set(data.toMutableList())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
FusionError.WrongAddress, FusionError.Timeout, FusionError.GetNozzleInfo -> {
|
|
|
setFragment(fragmentHolder)
|
|
@@ -181,9 +198,7 @@ class MainActivity : AppCompatActivity(),
|
|
|
}
|
|
|
binding.clock.setOnLongClickListener(this)
|
|
|
|
|
|
- supportFragmentManager.setFragmentResultListener(FragmentSelect.keyOnSelect, this, this)
|
|
|
- supportFragmentManager.setFragmentResultListener(keyOnBack, this, this)
|
|
|
- supportFragmentManager.setFragmentResultListener(keyOnHome, this, this)
|
|
|
+ supportFragmentManager.setFragmentResultListener(FragmentConstants.fragmentEvent, this, this)
|
|
|
setFragment(fragmentHolder)
|
|
|
}
|
|
|
|
|
@@ -194,19 +209,10 @@ class MainActivity : AppCompatActivity(),
|
|
|
|
|
|
private fun setFragment(fragment: Fragment, back: Boolean = false) {
|
|
|
val contain = supportFragmentManager.fragments.contains(fragment)
|
|
|
- val show = !fragment.isHidden
|
|
|
-
|
|
|
- if (contain && show) return
|
|
|
+ if (contain) return
|
|
|
|
|
|
supportFragmentManager.beginTransaction().run {
|
|
|
- supportFragmentManager.fragments.forEach {
|
|
|
- if (fragment != it && !it.isHidden) hide(it)
|
|
|
- }
|
|
|
- if (!contain) {
|
|
|
- add(R.id.fragmentBox, fragment)
|
|
|
- } else if (fragment.isHidden) {
|
|
|
- show(fragment)
|
|
|
- }
|
|
|
+ replace(R.id.fragmentBox, fragment)
|
|
|
if (back) {
|
|
|
addToBackStack(fragment.javaClass.simpleName)
|
|
|
}
|