init
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
package dji.sampleV5.aircraft
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.navigation.Navigation
|
||||
import dji.sampleV5.aircraft.databinding.ActivityMainBinding
|
||||
import dji.sampleV5.aircraft.databinding.ActivityTestingToolsBinding
|
||||
import dji.sampleV5.aircraft.models.MSDKCommonOperateVm
|
||||
import dji.sampleV5.aircraft.util.DJIToastUtil
|
||||
import dji.v5.ux.core.util.ToastUtils
|
||||
import dji.sampleV5.aircraft.views.MSDKInfoFragment
|
||||
import dji.v5.ux.core.util.ViewUtil
|
||||
|
||||
/**
|
||||
* Class Description
|
||||
*
|
||||
* @author Hoker
|
||||
* @date 2021/7/23
|
||||
*
|
||||
* Copyright (c) 2021, DJI All Rights Reserved.
|
||||
*/
|
||||
abstract class TestingToolsActivity : AppCompatActivity() {
|
||||
|
||||
protected lateinit var binding: ActivityTestingToolsBinding
|
||||
protected val msdkCommonOperateVm: MSDKCommonOperateVm by viewModels()
|
||||
|
||||
private val testToolsVM: TestToolsVM by viewModels()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityTestingToolsBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
window.decorView.apply {
|
||||
systemUiVisibility =
|
||||
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN or
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
}
|
||||
|
||||
// 设置Listener防止系统UI获取焦点后进入到非全屏状态
|
||||
window.decorView.setOnSystemUiVisibilityChangeListener() {
|
||||
if (it and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) {
|
||||
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
|
||||
View.SYSTEM_UI_FLAG_FULLSCREEN or
|
||||
View.SYSTEM_UI_FLAG_IMMERSIVE or
|
||||
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
|
||||
}
|
||||
}
|
||||
|
||||
loadTitleView()
|
||||
|
||||
DJIToastUtil.dJIToastLD = testToolsVM.djiToastResult
|
||||
testToolsVM.djiToastResult.observe(this) { result ->
|
||||
result?.msg?.let {
|
||||
ToastUtils.showToast(it)
|
||||
}
|
||||
}
|
||||
|
||||
msdkCommonOperateVm.mainPageInfoList.observe(this) { list ->
|
||||
list.iterator().forEach {
|
||||
addDestination(it.vavGraphId)
|
||||
}
|
||||
}
|
||||
|
||||
loadPages()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
ViewUtil.setKeepScreen(this, true)
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
ViewUtil.setKeepScreen(this, false)
|
||||
}
|
||||
|
||||
/**
|
||||
* 本activity的NavController,都是基于nav_host_fragment_container的
|
||||
*/
|
||||
private fun addDestination(id: Int) {
|
||||
val v = Navigation.findNavController(binding.navHostFragmentContainer).navInflater.inflate(id)
|
||||
Navigation.findNavController(binding.navHostFragmentContainer).graph.addAll(v)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
DJIToastUtil.dJIToastLD = null
|
||||
}
|
||||
|
||||
open fun loadTitleView() {
|
||||
supportFragmentManager.commit {
|
||||
replace(R.id.main_info_fragment_container, MSDKInfoFragment())
|
||||
}
|
||||
}
|
||||
|
||||
abstract fun loadPages()
|
||||
}
|
||||
Reference in New Issue
Block a user