Bug 1357781 - ActionProvider be able to use new context
The Context menu will use ActionProvider to create ActionView to use.
GeckoActionProvider cache a Context inside.
In CustomTabs, we might change Theme at runtime, therefore cached
context might be outdated. Now we check wheter the context is the same
one.
MozReview-Commit-ID: K8xBzOaUJON
--- a/mobile/android/base/java/org/mozilla/gecko/widget/GeckoActionProvider.java
+++ b/mobile/android/base/java/org/mozilla/gecko/widget/GeckoActionProvider.java
@@ -79,16 +79,23 @@ public class GeckoActionProvider {
return DEFAULT_HISTORY_FILE_NAME;
}
return "history-" + mime[0] + ".xml";
}
// Gets the action provider for a particular mimetype
public static GeckoActionProvider getForType(String mimeType, Context context) {
+ if (mProviders.keySet().contains(mimeType)) {
+ GeckoActionProvider provider = mProviders.get(mimeType);
+ if (provider.mContext != context) {
+ mProviders.remove(mimeType);
+ }
+ }
+
if (!mProviders.keySet().contains(mimeType)) {
GeckoActionProvider provider = new GeckoActionProvider(context);
// For empty types, we just return a default provider
if (TextUtils.isEmpty(mimeType)) {
return provider;
}