Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.base; | 5 package org.chromium.base; |
| 6 | 6 |
| 7 import android.app.Activity; | 7 import android.app.Activity; |
| 8 import android.app.Application; | 8 import android.app.Application; |
| 9 import android.content.Context; | 9 import android.content.Context; |
| 10 import android.os.Bundle; | 10 import android.os.Bundle; |
| 11 import android.view.KeyEvent; | 11 import android.view.KeyEvent; |
| 12 import android.view.Window; | 12 import android.view.Window; |
| 13 | 13 |
| 14 /** | 14 /** |
| 15 * Basic application functionality that should be shared among all browser appli cations. | 15 * Basic application functionality that should be shared among all browser appli cations. |
| 16 */ | 16 */ |
| 17 public class BaseChromiumApplication extends Application { | 17 public class BaseChromiumApplication extends Application { |
| 18 private Activity mActivity = null; | |
| 18 /** | 19 /** |
| 19 * Interface to be implemented by listeners for window focus events. | 20 * Interface to be implemented by listeners for window focus events. |
| 20 */ | 21 */ |
| 21 public interface WindowFocusChangedListener { | 22 public interface WindowFocusChangedListener { |
| 22 /** | 23 /** |
| 23 * Called when the window focus changes for {@code activity}. | 24 * Called when the window focus changes for {@code activity}. |
| 24 * @param activity The {@link Activity} that has a window focus changed event. | 25 * @param activity The {@link Activity} that has a window focus changed event. |
| 25 * @param hasFocus Whether or not {@code activity} gained or lost focus. | 26 * @param hasFocus Whether or not {@code activity} gained or lost focus. |
| 26 */ | 27 */ |
| 27 public void onWindowFocusChanged(Activity activity, boolean hasFocus); | 28 public void onWindowFocusChanged(Activity activity, boolean hasFocus); |
| 28 } | 29 } |
| 29 | 30 |
| 30 private ObserverList<WindowFocusChangedListener> mWindowFocusListeners = | 31 private ObserverList<WindowFocusChangedListener> mWindowFocusListeners = |
| 31 new ObserverList<WindowFocusChangedListener>(); | 32 new ObserverList<WindowFocusChangedListener>(); |
| 32 | 33 |
| 33 @Override | 34 @Override |
| 34 public void onCreate() { | 35 public void onCreate() { |
| 35 super.onCreate(); | 36 super.onCreate(); |
| 36 ApplicationStatus.initialize(this); | 37 ApplicationStatus.initialize(this); |
| 37 | 38 |
| 38 registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { | 39 registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { |
| 39 @Override | 40 @Override |
| 40 public void onActivityCreated(final Activity activity, Bundle savedI nstanceState) { | 41 public void onActivityCreated(final Activity activity, Bundle savedI nstanceState) { |
| 42 mActivity = activity; | |
|
whywhat
2015/08/17 13:58:46
One should use the ApplicationStatus.getLastTracke
| |
| 41 Window.Callback callback = activity.getWindow().getCallback(); | 43 Window.Callback callback = activity.getWindow().getCallback(); |
| 42 activity.getWindow().setCallback(new WindowCallbackWrapper(callb ack) { | 44 activity.getWindow().setCallback(new WindowCallbackWrapper(callb ack) { |
| 43 @Override | 45 @Override |
| 44 public void onWindowFocusChanged(boolean hasFocus) { | 46 public void onWindowFocusChanged(boolean hasFocus) { |
| 45 super.onWindowFocusChanged(hasFocus); | 47 super.onWindowFocusChanged(hasFocus); |
| 46 | 48 |
| 47 for (WindowFocusChangedListener listener : mWindowFocusL isteners) { | 49 for (WindowFocusChangedListener listener : mWindowFocusL isteners) { |
| 48 listener.onWindowFocusChanged(activity, hasFocus); | 50 listener.onWindowFocusChanged(activity, hasFocus); |
| 49 } | 51 } |
| 50 } | 52 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 106 * Unregisters a listener from receiving window focus updates on activities in this application. | 108 * Unregisters a listener from receiving window focus updates on activities in this application. |
| 107 * @param listener Listener that doesn't want to receive window focus events . | 109 * @param listener Listener that doesn't want to receive window focus events . |
| 108 */ | 110 */ |
| 109 public void unregisterWindowFocusChangedListener(WindowFocusChangedListener listener) { | 111 public void unregisterWindowFocusChangedListener(WindowFocusChangedListener listener) { |
| 110 mWindowFocusListeners.removeObserver(listener); | 112 mWindowFocusListeners.removeObserver(listener); |
| 111 } | 113 } |
| 112 | 114 |
| 113 /** Initializes the {@link CommandLine}. */ | 115 /** Initializes the {@link CommandLine}. */ |
| 114 public void initCommandLine() {} | 116 public void initCommandLine() {} |
| 115 | 117 |
| 118 public Activity getActivity() { | |
| 119 return mActivity; | |
| 120 } | |
| 121 | |
| 116 /** | 122 /** |
| 117 * This must only be called for contexts whose application is a subclass of | 123 * This must only be called for contexts whose application is a subclass of |
| 118 * {@link BaseChromiumApplication}. | 124 * {@link BaseChromiumApplication}. |
| 119 */ | 125 */ |
| 120 @VisibleForTesting | 126 @VisibleForTesting |
| 121 public static void initCommandLine(Context context) { | 127 public static void initCommandLine(Context context) { |
| 122 ((BaseChromiumApplication) context.getApplicationContext()).initCommandL ine(); | 128 ((BaseChromiumApplication) context.getApplicationContext()).initCommandL ine(); |
| 123 }; | 129 }; |
| 124 } | 130 } |
| OLD | NEW |