Fix error for taking actions of notis when entering port forward setting

Bug: 385259292
Bug: 385105455
Test: Run VmTerminalApp

Change-Id: I3613c252fb436c2f5883ec1bfcdafbe091990cf9
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.kt b/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.kt
index 7e53cce..317ca8e 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.kt
@@ -55,12 +55,12 @@
     }
 
     fun updateActivePorts(ports: Set<Int>) {
+        val oldPorts = getActivePorts()
         synchronized(lock) {
-            val oldPorts = getActivePorts()
             activePorts.clear()
             activePorts.addAll(ports)
-            notifyPortsStateUpdated(oldPorts, getActivePorts())
         }
+        notifyPortsStateUpdated(oldPorts, getActivePorts())
     }
 
     fun updateEnabledPort(port: Int, enabled: Boolean) {
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt
index c46effa..1bfa390 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActiveAdapter.kt
@@ -50,6 +50,7 @@
         val port = mItems[position].port
         viewHolder.port.text = port.toString()
         viewHolder.enabledSwitch.contentDescription = viewHolder.port.text
+        viewHolder.enabledSwitch.setOnCheckedChangeListener(null)
         viewHolder.enabledSwitch.isChecked = mItems[position].enabled
         viewHolder.enabledSwitch.setOnCheckedChangeListener { _, isChecked ->
             mPortsStateManager.updateEnabledPort(port, isChecked)
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
index 27d6ce7..b4ca77b 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsPortForwardingActivity.kt
@@ -140,8 +140,10 @@
     }
 
     private fun refreshAdapters() {
-        mActivePortsAdapter.refreshItems()
-        mInactivePortsAdapter.refreshItems()
+        runOnUiThread {
+            mActivePortsAdapter.refreshItems()
+            mInactivePortsAdapter.refreshItems()
+        }
     }
 
     override fun onResume() {