Extract scan timeout configuration in ScanManager

Extracts the logic for configuring scan timeouts into a dedicated
private method `configureTimeout`.

Bug: 394958283
Test: atest ScanManagerTest
Flag: EXEMPT refactor no-op
Change-Id: Iddb56e809e2ebd27eba7141376f9d4ae7b498116
diff --git a/android/app/src/com/android/bluetooth/le_scan/ScanManager.java b/android/app/src/com/android/bluetooth/le_scan/ScanManager.java
index ffed4fa..dd11b66 100644
--- a/android/app/src/com/android/bluetooth/le_scan/ScanManager.java
+++ b/android/app/src/com/android/bluetooth/le_scan/ScanManager.java
@@ -641,42 +641,42 @@
             startRegularScan(client);
             if (!isOpportunisticScanClient(client)) {
                 configureRegularScanParams();
-
-                if (!isExemptFromScanTimeout(client)) {
-                    if (Flags.scanControllerThread()) {
-                        // Ensure only one timeout runnable exists per client.
-                        Runnable oldRunnable = mScanTimeoutRunnables.remove(client);
-                        if (oldRunnable != null) {
-                            mHandler.removeCallbacks(oldRunnable);
-                        }
-
-                        final Runnable timeoutRunnable =
-                                () -> {
-                                    if (!mIsAvailable) return;
-                                    mScanTimeoutRunnables.remove(client);
-                                    regularScanTimeout(client);
-                                };
-                        mScanTimeoutRunnables.put(client, timeoutRunnable);
-                        mHandler.postDelayed(
-                                timeoutRunnable, mAdapterService.getScanTimeoutMillis());
-                    } else {
-                        Message msg = mClientHandler.obtainMessage(MSG_SCAN_TIMEOUT);
-                        msg.obj = client;
-                        // Only one timeout message should exist at any time
-                        mClientHandler.removeMessages(MSG_SCAN_TIMEOUT, client);
-                        mClientHandler.sendMessageDelayed(
-                                msg, mAdapterService.getScanTimeoutMillis());
-                    }
-                    Log.d(
-                            TAG,
-                            ("Apply scan timeout (" + mAdapterService.getScanTimeoutMillis() + ")")
-                                    + (" to " + client));
-                }
+                configureTimeout(client);
             }
         }
         client.setStarted(true);
     }
 
+    private void configureTimeout(ScanClient client) {
+        if (isExemptFromScanTimeout(client)) {
+            return;
+        }
+        if (Flags.scanControllerThread()) {
+            // Ensure only one timeout runnable exists per client
+            Runnable oldRunnable = mScanTimeoutRunnables.remove(client);
+            if (oldRunnable != null) {
+                mHandler.removeCallbacks(oldRunnable);
+            }
+            final Runnable timeoutRunnable =
+                    () -> {
+                        if (!mIsAvailable) return;
+                        mScanTimeoutRunnables.remove(client);
+                        regularScanTimeout(client);
+                    };
+            mScanTimeoutRunnables.put(client, timeoutRunnable);
+            mHandler.postDelayed(timeoutRunnable, mAdapterService.getScanTimeoutMillis());
+        } else {
+            Message msg = mClientHandler.obtainMessage(MSG_SCAN_TIMEOUT);
+            msg.obj = client;
+            // Only one timeout message should exist at any time
+            mClientHandler.removeMessages(MSG_SCAN_TIMEOUT, client);
+            mClientHandler.sendMessageDelayed(msg, mAdapterService.getScanTimeoutMillis());
+        }
+        Log.d(
+                TAG,
+                "Apply scan timeout (" + mAdapterService.getScanTimeoutMillis() + ") to " + client);
+    }
+
     private void handleStopScan(ScanClient tmpClient) {
         int scannerIdToStop = tmpClient.getScannerId();
         ScanClient client = getBatchScanClient(scannerIdToStop);