Bug 1367079 - 2. Move Share:Text listener to GeckoApplication; r=snorp
Move the "Share:Text" event listener from GeckoApp to GeckoApplication,
so ActionBarHandler.js can use it for the Share action from any window.
MozReview-Commit-ID: 8w1llJy4pwy
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -734,28 +734,16 @@ public abstract class GeckoApp extends G
} else if ("Permissions:Data".equals(event)) {
final GeckoBundle[] permissions = message.getBundleArray("permissions");
showSiteSettingsDialog(permissions);
} else if ("PrivateBrowsing:Data".equals(event)) {
mPrivateBrowsingSession = message.getString("session");
- } else if ("Share:Text".equals(event)) {
- final String text = message.getString("text");
- final Tab tab = Tabs.getInstance().getSelectedTab();
- String title = "";
- if (tab != null) {
- title = tab.getDisplayTitle();
- }
- IntentHelper.openUriExternal(text, "text/plain", "", "", Intent.ACTION_SEND, title, false);
-
- // Context: Sharing via chrome list (no explicit session is active)
- Telemetry.sendUIEvent(TelemetryContract.Event.SHARE, TelemetryContract.Method.LIST, "text");
-
} else if ("SystemUI:Visibility".equals(event)) {
if (message.getBoolean("visible", true)) {
mMainLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
} else {
mMainLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
}
} else if ("ToggleChrome:Focus".equals(event)) {
@@ -1223,17 +1211,16 @@ public abstract class GeckoApp extends G
"DevToolsAuth:Scan",
"DOMFullScreen:Start",
"DOMFullScreen:Stop",
"Mma:reader_available",
"Mma:web_save_image",
"Mma:web_save_media",
"Permissions:Data",
"PrivateBrowsing:Data",
- "Share:Text",
"SystemUI:Visibility",
"ToggleChrome:Focus",
"ToggleChrome:Hide",
"ToggleChrome:Show",
null);
Tabs.getInstance().attachToContext(this, mLayerView, getAppEventDispatcher());
Tabs.registerOnTabsChangedListener(this);
@@ -2224,17 +2211,16 @@ public abstract class GeckoApp extends G
"DevToolsAuth:Scan",
"DOMFullScreen:Start",
"DOMFullScreen:Stop",
"Mma:reader_available",
"Mma:web_save_image",
"Mma:web_save_media",
"Permissions:Data",
"PrivateBrowsing:Data",
- "Share:Text",
"SystemUI:Visibility",
"ToggleChrome:Focus",
"ToggleChrome:Hide",
"ToggleChrome:Show",
null);
if (mPromptService != null) {
mPromptService.destroy();
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -282,16 +282,17 @@ public class GeckoApplication extends Ap
IntentHelper.init();
final EventListener listener = new EventListener();
EventDispatcher.getInstance().registerUiThreadListener(listener,
"Gecko:Exited",
"RuntimePermissions:Check",
"Snackbar:Show",
+ "Share:Text",
null);
EventDispatcher.getInstance().registerBackgroundThreadListener(listener,
"Profile:Create",
null);
super.onCreate();
}
@@ -441,16 +442,26 @@ public class GeckoApplication extends Ap
})
.run(new Runnable() {
@Override
public void run() {
callback.sendSuccess(true);
}
});
+ } else if ("Share:Text".equals(event)) {
+ final String text = message.getString("text");
+ final String title = message.getString("title", "");
+ IntentHelper.openUriExternal(text, "text/plain", "", "",
+ Intent.ACTION_SEND, title, false);
+
+ // Context: Sharing via chrome list (no explicit session is active)
+ Telemetry.sendUIEvent(TelemetryContract.Event.SHARE,
+ TelemetryContract.Method.LIST, "text");
+
} else if ("Snackbar:Show".equals(event)) {
final Activity currentActivity =
GeckoActivityMonitor.getInstance().getCurrentActivity();
if (currentActivity == null) {
if (callback != null) {
callback.sendError("No activity");
}
return;