Bug 1393188 - Go back in history when back button pressed if able in PWA r=droeh
MozReview-Commit-ID: 3iyOTEIKe46
--- a/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
@@ -55,16 +55,17 @@ public class WebAppActivity extends AppC
private static final String SAVED_INTENT = "savedIntent";
private GeckoView mGeckoView;
private PromptService mPromptService;
private DoorHangerPopup mDoorHangerPopup;
private boolean mIsFullScreenMode;
private boolean mIsFullScreenContent;
+ private boolean mCanGoBack;
private Uri mScope;
@Override
public void onCreate(Bundle savedInstanceState) {
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0 &&
savedInstanceState != null) {
// Even though we're a single task activity, Android's task switcher has the
// annoying habit of never updating its stored intent after our initial creation,
@@ -140,16 +141,18 @@ public class WebAppActivity extends AppC
updateFullScreen();
}
}
@Override
public void onBackPressed() {
if (mIsFullScreenContent) {
mGeckoView.exitFullScreen();
+ } else if (mCanGoBack) {
+ mGeckoView.goBack();
} else {
super.onBackPressed();
}
}
private void loadManifest(String manifestPath) {
if (TextUtils.isEmpty(manifestPath)) {
Log.e(LOGTAG, "Missing manifest");
@@ -314,16 +317,17 @@ public class WebAppActivity extends AppC
/* GeckoView.NavigationListener */
@Override
public void onLocationChange(GeckoView view, String url) {
}
@Override
public void onCanGoBack(GeckoView view, boolean canGoBack) {
+ mCanGoBack = canGoBack;
}
@Override
public void onCanGoForward(GeckoView view, boolean canGoForward) {
}
@Override
public boolean onLoadUri(final GeckoView view, final String uri,