123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- From: Serg <serg.zhukovsky@gmail.com>
- Date: Tue, 31 Jan 2017 22:12:27 -0500
- Subject: Add exit menu item
- Corrected Exit functionality
- ---
- chrome/android/java/res/menu/main_menu.xml | 6 ++++++
- .../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++++
- .../src/org/chromium/chrome/browser/app/ChromeActivity.java | 6 ++++++
- .../chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
- .../browser/ui/android/strings/android_chrome_strings.grd | 3 +++
- 5 files changed, 24 insertions(+), 1 deletion(-)
- diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
- --- a/chrome/android/java/res/menu/main_menu.xml
- +++ b/chrome/android/java/res/menu/main_menu.xml
- @@ -150,6 +150,9 @@
- android:icon="@drawable/gm_filled_cardboard_24" />
- <item android:id="@+id/managed_by_menu_id"
- android:title="@string/managed" />
- + <item android:id="@+id/exit_id"
- + android:title="@string/menu_exit"
- + android:icon="@drawable/ic_exit_to_app_white_24dp" />
- </group>
-
- <!-- Items shown only in the tab switcher -->
- @@ -176,6 +179,9 @@
- <item android:id="@id/preferences_id"
- android:title="@string/menu_settings"
- android:icon="@drawable/settings_cog" />
- + <item android:id="@+id/exit_id"
- + android:title="@string/menu_exit"
- + android:icon="@drawable/ic_exit_to_app_white_24dp" />
- </group>
-
- <!-- Items shown only when the tablet has no visible tabs -->
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
- @@ -208,6 +208,8 @@ import java.util.HashSet;
- import java.util.List;
- import java.util.Locale;
-
- +import org.chromium.chrome.browser.ApplicationLifetime;
- +
- /**
- * This is the main activity for ChromeMobile when not running in document mode. All the tabs
- * are accessible via a chrome specific tab switching UI.
- @@ -2032,6 +2034,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
- } else if (id == R.id.close_tab) {
- getCurrentTabModel().closeTab(currentTab, true, false, true);
- RecordUserAction.record("MobileTabClosed");
- + } else if (id == R.id.exit_id) {
- + ApplicationLifetime.terminate(false);
- } else if (id == R.id.close_all_tabs_menu_id) {
- // Close both incognito and normal tabs
- getTabModelSelector().closeAllTabs();
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
- @@ -65,6 +65,7 @@ import org.chromium.chrome.R;
- import org.chromium.chrome.browser.ActivityTabProvider;
- import org.chromium.chrome.browser.ActivityUtils;
- import org.chromium.chrome.browser.AppHooks;
- +import org.chromium.chrome.browser.ApplicationLifetime;
- import org.chromium.chrome.browser.ChromeActivitySessionTracker;
- import org.chromium.chrome.browser.ChromeApplicationImpl;
- import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
- @@ -2316,6 +2317,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
- return true;
- }
-
- + if (id == R.id.exit_id) {
- + ApplicationLifetime.terminate(false);
- + return true;
- + }
- +
- if (id == R.id.update_menu_id) {
- UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
- return true;
- diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
- --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
- +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
- @@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
-
- // Kick off a timer to kill the process after a delay, which fires only if the Activities
- // take too long to be finished.
- - mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
- + if (restart) {
- + mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
- + } else {
- + fireBrowserRestartActivityIntent();
- + }
- }
-
- @Override
- diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
- --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
- +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
- @@ -3229,6 +3229,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
- <message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
- Dark theme
- </message>
- + <message name="IDS_MENU_EXIT" desc="Menu item for exit browser. [CHAR-LIMIT=27]">
- + Exit
- + </message>
- <message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR_LIMIT=27]">
- Appearance
- </message>
- --
- 2.20.1
|