|  | @@ -22,7 +22,9 @@ import com.doverfuelingsolutions.issp.fusion.callback.OnFusionStatus
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.utils.DFSToastUtil
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.utils.WindowUtil
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.utils.log.DFSLog
 | 
	
		
			
				|  |  | +import com.doverfuelingsolutions.issp.utils.sp.SPKeys
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.utils.sp.SPUtil
 | 
	
		
			
				|  |  | +import com.doverfuelingsolutions.issp.view.fragment.FragmentNozzle
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.view.fragment.FragmentReconnect
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.view.fragment.router.FragmentRouter
 | 
	
		
			
				|  |  |  import com.doverfuelingsolutions.issp.view.fragment.FragmentSelect
 | 
	
	
		
			
				|  | @@ -104,15 +106,14 @@ class MainActivity : AppCompatActivity(),
 | 
	
		
			
				|  |  |              when (requestCode) {
 | 
	
		
			
				|  |  |                  PreferenceActivity.codeRequestResult -> {
 | 
	
		
			
				|  |  |                      data?.let {
 | 
	
		
			
				|  |  | -                        val isMiddleModified =
 | 
	
		
			
				|  |  | -                            it.getBooleanExtra(PreferenceActivity.isMiddleModified, false)
 | 
	
		
			
				|  |  | -                        val isFuelModified =
 | 
	
		
			
				|  |  | -                            it.getBooleanExtra(PreferenceActivity.isFuelModified, false)
 | 
	
		
			
				|  |  | -                        if (!isFuelModified && !isMiddleModified) return@let
 | 
	
		
			
				|  |  | +                        val isMiddleModified = it.getBooleanExtra(PreferenceActivity.isMiddleModified, false)
 | 
	
		
			
				|  |  | +                        val isFuelModified = it.getBooleanExtra(PreferenceActivity.isFuelModified, false)
 | 
	
		
			
				|  |  | +                        val isChooseOrderTypeModified = it.getBooleanExtra(PreferenceActivity.isChooseOrderTypeModified, false)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          if (isMiddleModified || FusionManager.stateFusion != FdcClient.FdcClientState.Connected) {
 | 
	
		
			
				|  |  |                              setFusionLinkingLoading()
 | 
	
		
			
				|  |  |                              FusionManager.restart(true)
 | 
	
		
			
				|  |  | +                            return@let
 | 
	
		
			
				|  |  |                          } else if (isFuelModified && FusionManager.stateFusion == FdcClient.FdcClientState.Connected) {
 | 
	
		
			
				|  |  |                              val dialog = LoadingDialogBuilder(this@MainActivity)
 | 
	
		
			
				|  |  |                                  .setLoadingText(R.string.in_get_fuel)
 | 
	
	
		
			
				|  | @@ -123,8 +124,14 @@ class MainActivity : AppCompatActivity(),
 | 
	
		
			
				|  |  |                                  DFSToastUtil.success(R.string.get_fuel_success)
 | 
	
		
			
				|  |  |                              } else {
 | 
	
		
			
				|  |  |                                  DFSToastUtil.fail(R.string.get_fuel_failed)
 | 
	
		
			
				|  |  | +                                onFusionStatus(FusionStatus.ConnectedWithoutInfo)
 | 
	
		
			
				|  |  | +                                return@let
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        if (isChooseOrderTypeModified) {
 | 
	
		
			
				|  |  | +                            initFragmentEntry()
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -178,15 +185,14 @@ class MainActivity : AppCompatActivity(),
 | 
	
		
			
				|  |  |                      setFusionLinkingLoading()
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  FusionStatus.Connected -> {
 | 
	
		
			
				|  |  | -                    // TODO 直接油枪模式
 | 
	
		
			
				|  |  |                      DFSToastUtil.success(R.string.connect_fusion_success)
 | 
	
		
			
				|  |  | -                    fragmentRouter.push(FragmentSelect())
 | 
	
		
			
				|  |  | +                    initFragmentEntry()
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  FusionStatus.ConnectedWithoutInfo -> {
 | 
	
		
			
				|  |  |                      DFSToastUtil.fail(R.string.get_fuel_failed)
 | 
	
		
			
				|  |  |                      fragmentRouter.push(FragmentReconnect.build {
 | 
	
		
			
				|  |  |                          DFSToastUtil.success(R.string.get_fuel_success)
 | 
	
		
			
				|  |  | -                        fragmentRouter.push(FragmentSelect())
 | 
	
		
			
				|  |  | +                        initFragmentEntry()
 | 
	
		
			
				|  |  |                      })
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  FusionStatus.Disconnected -> {
 | 
	
	
		
			
				|  | @@ -256,6 +262,16 @@ class MainActivity : AppCompatActivity(),
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private fun initFragmentEntry() {
 | 
	
		
			
				|  |  | +        fragmentRouter.setHomeFragment(
 | 
	
		
			
				|  |  | +            if (SPUtil.getString(SPKeys.ORDER_CHOOSE) == "nozzle") {
 | 
	
		
			
				|  |  | +                FragmentNozzle.build(FusionManager.pumpList)
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                FragmentSelect()
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // TODO 当本地未处理订单无法按预期处理时(如本地锁的单,但在服务器上被其他渠道解锁了,造成解锁失败;消单同理;)
 | 
	
		
			
				|  |  |      private fun handleUnsolvedOrder() {
 | 
	
		
			
				|  |  |          GlobalScope.launch(Dispatchers.IO) {
 |