Merge remote-tracking branch 'origin/main'

# Conflicts:
#	app/build.gradle.kts
This commit is contained in:
fengge 2026-04-18 17:39:26 +08:00
commit 55841872ba
5 changed files with 133 additions and 120 deletions

4
app/.gitignore vendored
View File

@ -1 +1,5 @@
/build /build
/release/baselineProfiles/0/app-release.dm
/release/baselineProfiles/1/app-release.dm
/release/app-release-V1.0.3.apk
/release/output-metadata.json

View File

@ -173,7 +173,7 @@ class AndroidInterface(private val activity: MainActivity) {
fun onPageFinished() { fun onPageFinished() {
Handler(Looper.getMainLooper()).post { Handler(Looper.getMainLooper()).post {
try { try {
activity.cancelTimeoutTimer() // activity.cancelTimeoutTimer()
activity.findViewById<android.view.View>(R.id.loading_layout)?.visibility = android.view.View.GONE activity.findViewById<android.view.View>(R.id.loading_layout)?.visibility = android.view.View.GONE
} catch (e: Exception) { } catch (e: Exception) {
Log.e("UI", "隐藏加载布局失败", e) Log.e("UI", "隐藏加载布局失败", e)

View File

@ -13,12 +13,12 @@ import com.stand.standapp.R
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private var mAgentWeb: AgentWeb? = null private var mAgentWeb: AgentWeb? = null
private val mHandler = android.os.Handler(android.os.Looper.getMainLooper()) // private val mHandler = android.os.Handler(android.os.Looper.getMainLooper())
private val TIMEOUT_MS = 30000L // private val TIMEOUT_MS = 30000L
//
private val timeoutRunnable = Runnable { // private val timeoutRunnable = Runnable {
showErrorPage() // showErrorPage()
} // }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -29,15 +29,16 @@ class MainActivity : AppCompatActivity() {
val container = findViewById<LinearLayout>(R.id.container) val container = findViewById<LinearLayout>(R.id.container)
if (container == null) return if (container == null) return
findViewById<android.widget.Button>(R.id.btn_retry)?.setOnClickListener { // findViewById<android.widget.Button>(R.id.btn_retry)?.setOnClickListener {
hideErrorPage() // hideErrorPage()
mAgentWeb?.webCreator?.webView?.reload() // mAgentWeb?.webCreator?.webView?.reload()
startTimeoutTimer() // startTimeoutTimer()
} // }
// 从配置中获取服务器地址 // 从配置中获取服务器地址
val serverUrl = AppConfig.getServerUrl(this) val serverUrl = AppConfig.getServerUrl(this)
val finalUrl = "$serverUrl/example/print_demo.html?t=${System.currentTimeMillis()}" val finalUrl = "$serverUrl/example/print_demo.html?t=\${System.currentTimeMillis()}"
// val finalUrl = "$serverUrl/example/print_demo.html?t=${System.currentTimeMillis()}"
Log.d("MainActivity", "Loading URL: $finalUrl") Log.d("MainActivity", "Loading URL: $finalUrl")
mAgentWeb = AgentWeb.with(this) mAgentWeb = AgentWeb.with(this)
@ -48,7 +49,7 @@ class MainActivity : AppCompatActivity() {
.ready() .ready()
.go(finalUrl) .go(finalUrl)
startTimeoutTimer() // startTimeoutTimer()
// 配置 WebView 属性以支持 SSE 和跨域 // 配置 WebView 属性以支持 SSE 和跨域
@ -119,26 +120,26 @@ class MainActivity : AppCompatActivity() {
override fun onDestroy() { override fun onDestroy() {
mAgentWeb?.webLifeCycle?.onDestroy() mAgentWeb?.webLifeCycle?.onDestroy()
cancelTimeoutTimer() // cancelTimeoutTimer()
super.onDestroy() super.onDestroy()
} }
private fun startTimeoutTimer() { // private fun startTimeoutTimer() {
cancelTimeoutTimer() // cancelTimeoutTimer()
mHandler.postDelayed(timeoutRunnable, TIMEOUT_MS) // mHandler.postDelayed(timeoutRunnable, TIMEOUT_MS)
} // }
//
fun cancelTimeoutTimer() { // fun cancelTimeoutTimer() {
mHandler.removeCallbacks(timeoutRunnable) // mHandler.removeCallbacks(timeoutRunnable)
} // }
//
private fun showErrorPage() { // private fun showErrorPage() {
findViewById<android.view.View>(R.id.loading_layout)?.visibility = android.view.View.GONE // findViewById<android.view.View>(R.id.loading_layout)?.visibility = android.view.View.GONE
findViewById<android.view.View>(R.id.error_layout)?.visibility = android.view.View.VISIBLE // findViewById<android.view.View>(R.id.error_layout)?.visibility = android.view.View.VISIBLE
} // }
//
private fun hideErrorPage() { // private fun hideErrorPage() {
findViewById<android.view.View>(R.id.error_layout)?.visibility = android.view.View.GONE // findViewById<android.view.View>(R.id.error_layout)?.visibility = android.view.View.GONE
findViewById<android.view.View>(R.id.loading_layout)?.visibility = android.view.View.VISIBLE // findViewById<android.view.View>(R.id.loading_layout)?.visibility = android.view.View.VISIBLE
} // }
} }

View File

@ -1,89 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/container" android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" /> android:orientation="vertical">
</LinearLayout>
<!-- 加载等待页 -->
<LinearLayout
android:id="@+id/loading_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible">
<ProgressBar
android:layout_width="60dp"
android:layout_height="60dp"
android:indeterminateTint="#004A8F" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="消防值守台系统加载中..."
android:textColor="#333333"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="正在初始化智能调度引擎..."
android:textColor="#999999"
android:textSize="14sp" />
</LinearLayout>
<!-- 异常提示页 (超时或网络错误) -->
<LinearLayout
android:id="@+id/error_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F8F9FA"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@android:drawable/stat_notify_error"
android:tint="#D62828" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="系统响应超时"
android:textColor="#333333"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:gravity="center"
android:text="检测到网络环境不稳定或服务器未响应,请检查网络连接后重试。"
android:textColor="#666666"
android:textSize="14sp" />
<Button
android:id="@+id/btn_retry"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginTop="30dp"
android:backgroundTint="#004A8F"
android:text="重新加载"
android:textColor="#FFFFFF" />
</LinearLayout>
</FrameLayout>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />
<!-- 加载等待页 -->
<LinearLayout
android:id="@+id/loading_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible">
<ProgressBar
android:layout_width="60dp"
android:layout_height="60dp"
android:indeterminateTint="#004A8F" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="消防值守台系统加载中..."
android:textColor="#333333"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="正在初始化智能调度引擎..."
android:textColor="#999999"
android:textSize="14sp" />
</LinearLayout>
<!-- 异常提示页 (超时或网络错误) -->
<LinearLayout
android:id="@+id/error_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F8F9FA"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@android:drawable/stat_notify_error"
android:tint="#D62828" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="系统响应超时"
android:textColor="#333333"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:gravity="center"
android:text="检测到网络环境不稳定或服务器未响应,请检查网络连接后重试。"
android:textColor="#666666"
android:textSize="14sp" />
<Button
android:id="@+id/btn_retry"
android:layout_width="160dp"
android:layout_height="50dp"
android:layout_marginTop="30dp"
android:backgroundTint="#004A8F"
android:text="重新加载"
android:textColor="#FFFFFF" />
</LinearLayout>
</FrameLayout>