Update JsonRpcClientBase to use CallbackHandlerV2

- Migrate JsonRpcClientBase._rpc() from the deprecated v1 callback_handler to
  callback_handler_v2.CallbackHandlerV2.
- Define _SOCKET_READ_TIMEOUT and _CALLBACK_DEFAULT_TIMEOUT_SEC directly in
  jsonrpc_client_base.py instead of importing callback_handler.
diff --git a/mobly/controllers/android_device_lib/jsonrpc_client_base.py b/mobly/controllers/android_device_lib/jsonrpc_client_base.py
index abdd8e7..7b867a0 100644
--- a/mobly/controllers/android_device_lib/jsonrpc_client_base.py
+++ b/mobly/controllers/android_device_lib/jsonrpc_client_base.py
@@ -56,7 +56,7 @@
 import socket
 import threading
 
-from mobly.controllers.android_device_lib import callback_handler
+from mobly.controllers.android_device_lib import callback_handler_v2
 from mobly.snippet import errors
 
 # UID of the 'unknown' jsonrpc session. Will cause creation of a new session.
@@ -66,7 +66,10 @@
 _SOCKET_CONNECTION_TIMEOUT = 60
 
 # Maximum time to wait for a response message on the socket.
-_SOCKET_READ_TIMEOUT = callback_handler.MAX_TIMEOUT
+_SOCKET_READ_TIMEOUT = 60 * 10
+
+# The default timeout for callback handlers returned by this client.
+_CALLBACK_DEFAULT_TIMEOUT_SEC = 60 * 2
 
 # Maximum logging length of Rpc response in DEBUG level when verbose logging is
 # off.
@@ -348,12 +351,14 @@
     if result.get('callback') is not None:
       if self._event_client is None:
         self._event_client = self._start_event_client()
-      return callback_handler.CallbackHandler(
+      return callback_handler_v2.CallbackHandlerV2(
           callback_id=result['callback'],
           event_client=self._event_client,
           ret_value=result['result'],
           method_name=method,
-          ad=self._ad,
+          device=self._ad,
+          rpc_max_timeout_sec=_SOCKET_READ_TIMEOUT,
+          default_timeout_sec=_CALLBACK_DEFAULT_TIMEOUT_SEC,
       )
     return result['result']
 
diff --git a/tests/mobly/controllers/android_device_lib/jsonrpc_client_base_test.py b/tests/mobly/controllers/android_device_lib/jsonrpc_client_base_test.py
index 1861cc0..334bd0a 100755
--- a/tests/mobly/controllers/android_device_lib/jsonrpc_client_base_test.py
+++ b/tests/mobly/controllers/android_device_lib/jsonrpc_client_base_test.py
@@ -17,6 +17,7 @@
 import unittest
 from unittest import mock
 
+from mobly.controllers.android_device_lib import callback_handler_v2
 from mobly.controllers.android_device_lib import jsonrpc_client_base
 from tests.lib import jsonrpc_client_test_base
 
@@ -164,6 +165,7 @@
     client._event_client = mock.Mock()
 
     callback = client.some_rpc(1, 2, 3)
+    self.assertIsInstance(callback, callback_handler_v2.CallbackHandlerV2)
     self.assertEqual(callback.ret_value, 123)
     self.assertEqual(callback._id, '1-0')