Merge "Fix calling ActionMode optional title methods pre-v16" into klp-ub-dev
diff --git a/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateICS.java b/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateICS.java
index 7b3bb59..22d23f9 100644
--- a/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateICS.java
+++ b/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateICS.java
@@ -177,14 +177,14 @@
Context context = getActionBarThemedContext();
- ActionModeWrapper.CallbackWrapper wrappedCallback = new ActionModeWrapper.CallbackWrapper(
+ ActionModeWrapper.CallbackWrapper wrappedCallback = createActionModeCallbackWrapper(
context, callback);
ActionModeWrapper wrappedMode = null;
android.view.ActionMode frameworkMode = mActivity.startActionMode(wrappedCallback);
if (frameworkMode != null) {
- wrappedMode = new ActionModeWrapper(context, frameworkMode);
+ wrappedMode = createActionModeWrapper(context, frameworkMode);
wrappedCallback.setLastStartedActionMode(wrappedMode);
}
@@ -193,7 +193,7 @@
public void onActionModeStarted(android.view.ActionMode mode) {
mActivity.onSupportActionModeStarted(
- new ActionModeWrapper(getActionBarThemedContext(), mode));
+ createActionModeWrapper(getActionBarThemedContext(), mode));
}
@Override
@@ -218,7 +218,7 @@
public void onActionModeFinished(android.view.ActionMode mode) {
mActivity.onSupportActionModeFinished(
- new ActionModeWrapper(getActionBarThemedContext(), mode));
+ createActionModeWrapper(getActionBarThemedContext(), mode));
}
@Override
@@ -236,6 +236,16 @@
return android.R.attr.homeAsUpIndicator;
}
+ ActionModeWrapper.CallbackWrapper createActionModeCallbackWrapper(Context context,
+ ActionMode.Callback callback) {
+ return new ActionModeWrapper.CallbackWrapper(context, callback);
+ }
+
+ ActionModeWrapper createActionModeWrapper(Context context,
+ android.view.ActionMode frameworkMode) {
+ return new ActionModeWrapper(context, frameworkMode);
+ }
+
class WindowCallbackWrapper implements Window.Callback {
final Window.Callback mWrapped;
diff --git a/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateJB.java b/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateJB.java
index 7454cff..a0c955f 100644
--- a/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateJB.java
+++ b/v7/appcompat/src/android/support/v7/app/ActionBarActivityDelegateJB.java
@@ -16,6 +16,11 @@
package android.support.v7.app;
+import android.content.Context;
+import android.support.v7.internal.view.ActionModeWrapper;
+import android.support.v7.internal.view.ActionModeWrapperJB;
+import android.support.v7.view.ActionMode;
+
class ActionBarActivityDelegateJB extends ActionBarActivityDelegateICS {
ActionBarActivityDelegateJB(ActionBarActivity activity) {
@@ -26,4 +31,15 @@
public ActionBar createSupportActionBar() {
return new ActionBarImplJB(mActivity, mActivity);
}
+
+ @Override
+ ActionModeWrapper.CallbackWrapper createActionModeCallbackWrapper(Context context,
+ ActionMode.Callback callback) {
+ return new ActionModeWrapperJB.CallbackWrapper(context, callback);
+ }
+
+ @Override
+ ActionModeWrapper createActionModeWrapper(Context context, android.view.ActionMode frameworkMode) {
+ return new ActionModeWrapperJB(context, frameworkMode);
+ }
}
diff --git a/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapper.java b/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapper.java
index f124da3..2048d2b 100644
--- a/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapper.java
+++ b/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapper.java
@@ -47,21 +47,6 @@
}
@Override
- public boolean getTitleOptionalHint() {
- return mWrappedObject.getTitleOptionalHint();
- }
-
- @Override
- public void setTitleOptionalHint(boolean titleOptional) {
- mWrappedObject.setTitleOptionalHint(titleOptional);
- }
-
- @Override
- public boolean isTitleOptional() {
- return mWrappedObject.isTitleOptional();
- }
-
- @Override
public void setTitle(CharSequence title) {
mWrappedObject.setTitle(title);
}
@@ -168,8 +153,13 @@
// If the given mode equals our wrapped mode, just return it
return mLastStartedActionMode;
} else {
- return new ActionModeWrapper(mContext, mode);
+ return createActionModeWrapper(mContext, mode);
}
}
+
+ protected ActionModeWrapper createActionModeWrapper(Context context,
+ android.view.ActionMode mode) {
+ return new ActionModeWrapper(context, mode);
+ }
}
}
diff --git a/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapperJB.java b/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapperJB.java
new file mode 100644
index 0000000..15ede6e
--- /dev/null
+++ b/v7/appcompat/src/android/support/v7/internal/view/ActionModeWrapperJB.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.support.v7.internal.view;
+
+import android.content.Context;
+import android.view.ActionMode;
+
+/**
+ * @hide
+ */
+public class ActionModeWrapperJB extends ActionModeWrapper {
+
+ public ActionModeWrapperJB(Context context, android.view.ActionMode frameworkActionMode) {
+ super(context, frameworkActionMode);
+ }
+
+ @Override
+ public boolean getTitleOptionalHint() {
+ return mWrappedObject.getTitleOptionalHint();
+ }
+
+ @Override
+ public void setTitleOptionalHint(boolean titleOptional) {
+ mWrappedObject.setTitleOptionalHint(titleOptional);
+ }
+
+ @Override
+ public boolean isTitleOptional() {
+ return mWrappedObject.isTitleOptional();
+ }
+
+ /**
+ * @hide
+ */
+ public static class CallbackWrapper extends ActionModeWrapper.CallbackWrapper {
+
+ public CallbackWrapper(Context context, Callback supportCallback) {
+ super(context, supportCallback);
+ }
+
+ @Override
+ protected ActionModeWrapper createActionModeWrapper(Context context, ActionMode mode) {
+ return new ActionModeWrapperJB(context, mode);
+ }
+ }
+
+}