Minor fixes for browser
- Fix flags for share intent
- Prevent classcast exception
Change-Id: If0257c0e34e030a2619cb5957ad8c852c5a496eb
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 21853cf..12b8b29 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -2359,6 +2359,7 @@
}
private void goLive() {
+ if (!getCurrentTab().isSnapshot()) return;
SnapshotTab t = (SnapshotTab) getCurrentTab();
String url = t.getLiveUrl();
boolean onlySingleTabRemaining = false;
diff --git a/src/com/android/browser/ShareDialog.java b/src/com/android/browser/ShareDialog.java
index 4b649d5..a4bfad7 100644
--- a/src/com/android/browser/ShareDialog.java
+++ b/src/com/android/browser/ShareDialog.java
@@ -40,6 +40,7 @@
import android.content.pm.ResolveInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
+import android.os.Build;
import java.util.List;
import java.util.Collections;
@@ -98,13 +99,22 @@
ComponentName name = new android.content.ComponentName(activityInfo.applicationInfo.packageName,
activityInfo.name);
Intent i = new Intent(Intent.ACTION_SEND);
- i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
- Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
+ // This flag clears the called app from the activity stack,
+ // so users arrive in the expected place next time this application is restarted
+ i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+ } else {
+ // flag used from Lollipop onwards
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
+ }
+
+ i.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT |
+ Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
+ i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, url);
i.putExtra(Intent.EXTRA_SUBJECT, title);
i.putExtra(EXTRA_SHARE_FAVICON, favicon);
i.putExtra(EXTRA_SHARE_SCREENSHOT, screenshot);
- i.setType("text/plain");
i.setComponent(name);
activity.startActivity(i);
}