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

Commit bf85f43e authored by Adam Powell's avatar Adam Powell
Browse files

Add protection for ActionMode-related window callbacks that may not

implement new methods.

Change-Id: Id4463ee97366187ba43b0966f79aa8bd34f7fa1d
parent debf3bed
Loading
Loading
Loading
Loading
+16 −3
Original line number Original line Diff line number Diff line
@@ -1832,7 +1832,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
            }
            }


            final ActionMode.Callback wrappedCallback = new ActionModeCallbackWrapper(callback);
            final ActionMode.Callback wrappedCallback = new ActionModeCallbackWrapper(callback);
            ActionMode mode = getCallback().onWindowStartingActionMode(wrappedCallback);
            ActionMode mode = null;
            try {
                mode = getCallback().onWindowStartingActionMode(wrappedCallback);
            } catch (AbstractMethodError ame) {
                // Older apps might not implement this callback method.
            }
            if (mode != null) {
            if (mode != null) {
                mActionMode = mode;
                mActionMode = mode;
            } else {
            } else {
@@ -1877,7 +1882,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
                }
                }
            }
            }
            if (mActionMode != null) {
            if (mActionMode != null) {
                try {
                    getCallback().onActionModeStarted(mActionMode);
                    getCallback().onActionModeStarted(mActionMode);
                } catch (AbstractMethodError ame) {
                    // Older apps might not implement this callback method.
                }
            }
            }
            return mActionMode;
            return mActionMode;
        }
        }
@@ -2094,7 +2103,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
                if (mActionModeView != null) {
                if (mActionModeView != null) {
                    mActionModeView.removeAllViews();
                    mActionModeView.removeAllViews();
                }
                }
                try {
                    getCallback().onActionModeFinished(mActionMode);
                    getCallback().onActionModeFinished(mActionMode);
                } catch (AbstractMethodError ame) {
                    // Older apps might not implement this callback method.
                }
                mActionMode = null;
                mActionMode = null;
            }
            }
        }
        }