diff options
Diffstat (limited to 'mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java')
-rw-r--r-- | mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java b/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java deleted file mode 100644 index 4de8fa423..000000000 --- a/mobile/android/base/java/org/mozilla/gecko/LauncherActivity.java +++ /dev/null @@ -1,110 +0,0 @@ -/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*- - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.gecko; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.customtabs.CustomTabsIntent; - -import org.mozilla.gecko.customtabs.CustomTabsActivity; -import org.mozilla.gecko.db.BrowserContract; -import org.mozilla.gecko.mozglue.SafeIntent; -import org.mozilla.gecko.preferences.GeckoPreferences; -import org.mozilla.gecko.tabqueue.TabQueueHelper; -import org.mozilla.gecko.tabqueue.TabQueueService; - -/** - * Activity that receives incoming Intents and dispatches them to the appropriate activities (e.g. browser, custom tabs, web app). - */ -public class LauncherActivity extends Activity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - GeckoAppShell.ensureCrashHandling(); - - final SafeIntent safeIntent = new SafeIntent(getIntent()); - - // If it's not a view intent, it won't be a custom tabs intent either. Just launch! - if (!isViewIntentWithURL(safeIntent)) { - dispatchNormalIntent(); - - // Is this a custom tabs intent, and are custom tabs enabled? - } else if (AppConstants.MOZ_ANDROID_CUSTOM_TABS && isCustomTabsIntent(safeIntent) - && isCustomTabsEnabled()) { - dispatchCustomTabsIntent(); - - // Can we dispatch this VIEW action intent to the tab queue service? - } else if (!safeIntent.getBooleanExtra(BrowserContract.SKIP_TAB_QUEUE_FLAG, false) - && TabQueueHelper.TAB_QUEUE_ENABLED - && TabQueueHelper.isTabQueueEnabled(this)) { - dispatchTabQueueIntent(); - - // Dispatch this VIEW action intent to the browser. - } else { - dispatchNormalIntent(); - } - - finish(); - } - - /** - * Launch tab queue service to display overlay. - */ - private void dispatchTabQueueIntent() { - Intent intent = new Intent(getIntent()); - intent.setClass(getApplicationContext(), TabQueueService.class); - startService(intent); - } - - /** - * Launch the browser activity. - */ - private void dispatchNormalIntent() { - Intent intent = new Intent(getIntent()); - intent.setClassName(getApplicationContext(), AppConstants.MOZ_ANDROID_BROWSER_INTENT_CLASS); - - filterFlags(intent); - - startActivity(intent); - } - - private void dispatchCustomTabsIntent() { - Intent intent = new Intent(getIntent()); - intent.setClassName(getApplicationContext(), CustomTabsActivity.class.getName()); - - filterFlags(intent); - - startActivity(intent); - } - - private static void filterFlags(Intent intent) { - // Explicitly remove the new task and clear task flags (Our browser activity is a single - // task activity and we never want to start a second task here). See bug 1280112. - intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); - intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_CLEAR_TASK); - - // LauncherActivity is started with the "exclude from recents" flag (set in manifest). We do - // not want to propagate this flag from the launcher activity to the browser. - intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - } - - private static boolean isViewIntentWithURL(@NonNull final SafeIntent safeIntent) { - return Intent.ACTION_VIEW.equals(safeIntent.getAction()) - && safeIntent.getDataString() != null; - } - - private static boolean isCustomTabsIntent(@NonNull final SafeIntent safeIntent) { - return isViewIntentWithURL(safeIntent) - && safeIntent.hasExtra(CustomTabsIntent.EXTRA_SESSION); - } - - private boolean isCustomTabsEnabled() { - return GeckoSharedPrefs.forApp(this).getBoolean(GeckoPreferences.PREFS_CUSTOM_TABS, false); - } -} |