Fix EthernetManager.addListener dependency in Tethering settings.

Ethernet service related files are going to be moved into Connectivity
module. EthernetManager.addListener(listener, exectuor) will be exposed
out as module-lib API. Replace the current API usage with the one to be
exposed.

android.os.HandlerExecutor is a hidden API which isn't visible to modules,
try to replace HanlderExecutor class with Handler.post itself although
Setttings can still access this API.

Bug: 210586283
Test: m
Change-Id: I618b43769c68897f4724fae8213181be1cc770c6
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index 1a21b55..e485d1e 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -39,7 +39,6 @@
 import android.os.Bundle;
 import android.os.Environment;
 import android.os.Handler;
-import android.os.HandlerExecutor;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.SearchIndexableResource;
@@ -324,14 +323,14 @@
 
         mStartTetheringCallback = new OnStartTetheringCallback(this);
         mTetheringEventCallback = new TetheringEventCallback();
-        mTm.registerTetheringEventCallback(new HandlerExecutor(mHandler), mTetheringEventCallback);
+        mTm.registerTetheringEventCallback(r -> mHandler.post(r), mTetheringEventCallback);
 
         mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
         registerReceiver();
 
         mEthernetListener = new EthernetListener();
         if (mEm != null)
-            mEm.addListener(mEthernetListener);
+            mEm.addListener(mEthernetListener, r -> mHandler.post(r));
 
         updateUsbState();
         updateBluetoothAndEthernetState();
diff --git a/src/com/android/settings/network/EthernetTetherPreferenceController.java b/src/com/android/settings/network/EthernetTetherPreferenceController.java
index 06cd6a7..5b2cab7 100644
--- a/src/com/android/settings/network/EthernetTetherPreferenceController.java
+++ b/src/com/android/settings/network/EthernetTetherPreferenceController.java
@@ -48,13 +48,12 @@
 
     @OnLifecycleEvent(Lifecycle.Event.ON_START)
     public void onStart() {
-        mEthernetListener = new EthernetManager.Listener() {
-            @Override
-            public void onAvailabilityChanged(String iface, boolean isAvailable) {
-                new Handler(Looper.getMainLooper()).post(() -> updateState(mPreference));
-            }
-        };
-        mEthernetManager.addListener(mEthernetListener);
+        mEthernetListener = (iface, isAvailable) -> updateState(mPreference);
+        final Handler handler = new Handler(Looper.getMainLooper());
+        // Executor will execute to post the updateState event to a new handler which is created
+        // from the main looper when the {@link EthernetManager.Listener.onAvailabilityChanged}
+        // is triggerd.
+        mEthernetManager.addListener(mEthernetListener, r -> handler.post(r));
     }
 
     @OnLifecycleEvent(Lifecycle.Event.ON_STOP)