Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b9fa519 authored by jiabin's avatar jiabin
Browse files

Use generic native routing event handler in MediaRecorder.

We already make a generic native routing event handler. There is no need
to keep the handler class in MediaRecorder.

Bug: 64038649
Test: runtest --path cts/tests/tests/media/src/android/media/cts/RoutingTest.java
Change-Id: I2d54977a6f990fb549d27aabf52f040bd9da58fa
parent cb37da8b
Loading
Loading
Loading
Loading
+2 −31
Original line number Diff line number Diff line
@@ -1380,7 +1380,8 @@ public class MediaRecorder implements AudioRouting
            if (listener != null && !mRoutingChangeListeners.containsKey(listener)) {
                enableNativeRoutingCallbacksLocked(true);
                mRoutingChangeListeners.put(
                        listener, new NativeRoutingEventHandlerDelegate(this, listener, handler));
                        listener, new NativeRoutingEventHandlerDelegate(this, listener,
                                handler != null ? handler : mEventHandler));
            }
        }
    }
@@ -1401,36 +1402,6 @@ public class MediaRecorder implements AudioRouting
        }
    }

    /**
     * Helper class to handle the forwarding of native events to the appropriate listener
     * (potentially) handled in a different thread
     */
    private class NativeRoutingEventHandlerDelegate {
        private MediaRecorder mMediaRecorder;
        private AudioRouting.OnRoutingChangedListener mOnRoutingChangedListener;
        private Handler mHandler;

        NativeRoutingEventHandlerDelegate(final MediaRecorder mediaRecorder,
                final AudioRouting.OnRoutingChangedListener listener, Handler handler) {
            mMediaRecorder = mediaRecorder;
            mOnRoutingChangedListener = listener;
            mHandler = handler != null ? handler : mEventHandler;
        }

        void notifyClient() {
            if (mHandler != null) {
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (mOnRoutingChangedListener != null) {
                            mOnRoutingChangedListener.onRoutingChanged(mMediaRecorder);
                        }
                    }
                });
            }
        }
    }

    private native final boolean native_setInputDevice(int deviceId);
    private native final int native_getRoutedDeviceId();
    private native final void native_enableDeviceCallback(boolean enabled);