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

Commit 0bb70091 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Rely on com.android.internal.os.SomeArgs"

parents 1704c627 ce82eb2d
Loading
Loading
Loading
Loading
+86 −59
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.view;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.SomeArgs;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -74,13 +75,6 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
    @GuardedBy("mLock")
    private boolean mFinished = false;

    static class SomeArgs {
        Object arg1;
        Object arg2;
        IInputContextCallback callback;
        int seq;
    }
    
    class MyHandler extends Handler {
        MyHandler(Looper looper) {
            super(looper);
@@ -241,80 +235,100 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
            case DO_GET_TEXT_AFTER_CURSOR: {
                SomeArgs args = (SomeArgs)msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "getTextAfterCursor on inactive InputConnection");
                        args.callback.setTextAfterCursor(null, args.seq);
                        callback.setTextAfterCursor(null, callbackSeq);
                        return;
                    }
                    args.callback.setTextAfterCursor(ic.getTextAfterCursor(
                            msg.arg1, msg.arg2), args.seq);
                    callback.setTextAfterCursor(ic.getTextAfterCursor(
                            msg.arg1, msg.arg2), callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling setTextAfterCursor", e);
                } finally {
                    args.recycle();
                }
                return;
            }
            case DO_GET_TEXT_BEFORE_CURSOR: {
                SomeArgs args = (SomeArgs)msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "getTextBeforeCursor on inactive InputConnection");
                        args.callback.setTextBeforeCursor(null, args.seq);
                        callback.setTextBeforeCursor(null, callbackSeq);
                        return;
                    }
                    args.callback.setTextBeforeCursor(ic.getTextBeforeCursor(
                            msg.arg1, msg.arg2), args.seq);
                    callback.setTextBeforeCursor(ic.getTextBeforeCursor(
                            msg.arg1, msg.arg2), callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling setTextBeforeCursor", e);
                } finally {
                    args.recycle();
                }
                return;
            }
            case DO_GET_SELECTED_TEXT: {
                SomeArgs args = (SomeArgs)msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "getSelectedText on inactive InputConnection");
                        args.callback.setSelectedText(null, args.seq);
                        callback.setSelectedText(null, callbackSeq);
                        return;
                    }
                    args.callback.setSelectedText(ic.getSelectedText(
                            msg.arg1), args.seq);
                    callback.setSelectedText(ic.getSelectedText(
                            msg.arg1), callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling setSelectedText", e);
                } finally {
                    args.recycle();
                }
                return;
            }
            case DO_GET_CURSOR_CAPS_MODE: {
                SomeArgs args = (SomeArgs)msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "getCursorCapsMode on inactive InputConnection");
                        args.callback.setCursorCapsMode(0, args.seq);
                        callback.setCursorCapsMode(0, callbackSeq);
                        return;
                    }
                    args.callback.setCursorCapsMode(ic.getCursorCapsMode(msg.arg1),
                            args.seq);
                    callback.setCursorCapsMode(ic.getCursorCapsMode(msg.arg1),
                            callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling setCursorCapsMode", e);
                } finally {
                    args.recycle();
                }
                return;
            }
            case DO_GET_EXTRACTED_TEXT: {
                SomeArgs args = (SomeArgs)msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "getExtractedText on inactive InputConnection");
                        args.callback.setExtractedText(null, args.seq);
                        callback.setExtractedText(null, callbackSeq);
                        return;
                    }
                    args.callback.setExtractedText(ic.getExtractedText(
                            (ExtractedTextRequest)args.arg1, msg.arg1), args.seq);
                    callback.setExtractedText(ic.getExtractedText(
                            (ExtractedTextRequest)args.arg1, msg.arg1), callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling setExtractedText", e);
                } finally {
                    args.recycle();
                }
                return;
            }
@@ -469,29 +483,37 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
                return;
            }
            case DO_PERFORM_PRIVATE_COMMAND: {
                final SomeArgs args = (SomeArgs) msg.obj;
                try {
                    final String action = (String) args.arg1;
                    final Bundle data = (Bundle) args.arg2;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "performPrivateCommand on inactive InputConnection");
                        return;
                    }
                SomeArgs args = (SomeArgs)msg.obj;
                ic.performPrivateCommand((String)args.arg1,
                        (Bundle)args.arg2);
                return;
                    ic.performPrivateCommand(action, data);
                } finally {
                    args.recycle();
                }
            }
            case DO_REQUEST_UPDATE_CURSOR_ANCHOR_INFO: {
                SomeArgs args = (SomeArgs)msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "requestCursorAnchorInfo on inactive InputConnection");
                        args.callback.setRequestUpdateCursorAnchorInfoResult(false, args.seq);
                        callback.setRequestUpdateCursorAnchorInfoResult(false, callbackSeq);
                        return;
                    }
                    args.callback.setRequestUpdateCursorAnchorInfoResult(
                            ic.requestCursorUpdates(msg.arg1), args.seq);
                    callback.setRequestUpdateCursorAnchorInfoResult(
                            ic.requestCursorUpdates(msg.arg1), callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling requestCursorAnchorInfo", e);
                } finally {
                    args.recycle();
                }
                return;
            }
@@ -529,24 +551,28 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
                final int flags = msg.arg1;
                SomeArgs args = (SomeArgs) msg.obj;
                try {
                    final IInputContextCallback callback = (IInputContextCallback) args.arg6;
                    final int callbackSeq = args.argi6;
                    InputConnection ic = getInputConnection();
                    if (ic == null || !isActive()) {
                        Log.w(TAG, "commitContent on inactive InputConnection");
                        args.callback.setCommitContentResult(false, args.seq);
                        callback.setCommitContentResult(false, callbackSeq);
                        return;
                    }
                    final InputContentInfo inputContentInfo = (InputContentInfo) args.arg1;
                    if (inputContentInfo == null || !inputContentInfo.validate()) {
                        Log.w(TAG, "commitContent with invalid inputContentInfo="
                                + inputContentInfo);
                        args.callback.setCommitContentResult(false, args.seq);
                        callback.setCommitContentResult(false, callbackSeq);
                        return;
                    }
                    final boolean result =
                            ic.commitContent(inputContentInfo, flags, (Bundle) args.arg2);
                    args.callback.setCommitContentResult(result, args.seq);
                    callback.setCommitContentResult(result, callbackSeq);
                } catch (RemoteException e) {
                    Log.w(TAG, "Got RemoteException calling commitContent", e);
                } finally {
                    args.recycle();
                }
                return;
            }
@@ -566,36 +592,37 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
        return mH.obtainMessage(what, 0, 0, arg1);
    }

    Message obtainMessageISC(int what, int arg1, int seq, IInputContextCallback callback) {
        SomeArgs args = new SomeArgs();
        args.callback = callback;
        args.seq = seq;
    Message obtainMessageISC(int what, int arg1, int callbackSeq, IInputContextCallback callback) {
        final SomeArgs args = SomeArgs.obtain();
        args.arg6 = callback;
        args.argi6 = callbackSeq;
        return mH.obtainMessage(what, arg1, 0, args);
    }

    Message obtainMessageIISC(int what, int arg1, int arg2, int seq, IInputContextCallback callback) {
        SomeArgs args = new SomeArgs();
        args.callback = callback;
        args.seq = seq;
    Message obtainMessageIISC(int what, int arg1, int arg2, int callbackSeq,
            IInputContextCallback callback) {
        final SomeArgs args = SomeArgs.obtain();
        args.arg6 = callback;
        args.argi6 = callbackSeq;
        return mH.obtainMessage(what, arg1, arg2, args);
    }

    Message obtainMessageIOOSC(int what, int arg1, Object objArg1, Object objArg2, int seq,
    Message obtainMessageIOOSC(int what, int arg1, Object objArg1, Object objArg2, int callbackSeq,
            IInputContextCallback callback) {
        SomeArgs args = new SomeArgs();
        final SomeArgs args = SomeArgs.obtain();
        args.arg1 = objArg1;
        args.arg2 = objArg2;
        args.callback = callback;
        args.seq = seq;
        args.arg6 = callback;
        args.argi6 = callbackSeq;
        return mH.obtainMessage(what, arg1, 0, args);
    }

    Message obtainMessageIOSC(int what, int arg1, Object arg2, int seq,
    Message obtainMessageIOSC(int what, int arg1, Object arg2, int callbackSeq,
            IInputContextCallback callback) {
        SomeArgs args = new SomeArgs();
        final SomeArgs args = SomeArgs.obtain();
        args.arg1 = arg2;
        args.callback = callback;
        args.seq = seq;
        args.arg6 = callback;
        args.argi6 = callbackSeq;
        return mH.obtainMessage(what, arg1, 0, args);
    }

@@ -604,7 +631,7 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
    }

    Message obtainMessageOO(int what, Object arg1, Object arg2) {
        SomeArgs args = new SomeArgs();
        final SomeArgs args = SomeArgs.obtain();
        args.arg1 = arg1;
        args.arg2 = arg2;
        return mH.obtainMessage(what, 0, 0, args);