| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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.ui.base; | 5 package org.chromium.ui.base; |
| 6 | 6 |
| 7 import android.animation.Animator; | 7 import android.animation.Animator; |
| 8 import android.animation.AnimatorListenerAdapter; | 8 import android.animation.AnimatorListenerAdapter; |
| 9 import android.annotation.SuppressLint; | 9 import android.annotation.SuppressLint; |
| 10 import android.annotation.TargetApi; | 10 import android.annotation.TargetApi; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 import android.view.View; | 23 import android.view.View; |
| 24 import android.view.ViewGroup; | 24 import android.view.ViewGroup; |
| 25 import android.view.accessibility.AccessibilityManager; | 25 import android.view.accessibility.AccessibilityManager; |
| 26 | 26 |
| 27 import org.chromium.base.ApiCompatibilityUtils; | 27 import org.chromium.base.ApiCompatibilityUtils; |
| 28 import org.chromium.base.Callback; | 28 import org.chromium.base.Callback; |
| 29 import org.chromium.base.VisibleForTesting; | 29 import org.chromium.base.VisibleForTesting; |
| 30 import org.chromium.base.annotations.CalledByNative; | 30 import org.chromium.base.annotations.CalledByNative; |
| 31 import org.chromium.base.annotations.JNINamespace; | 31 import org.chromium.base.annotations.JNINamespace; |
| 32 import org.chromium.ui.VSyncMonitor; | 32 import org.chromium.ui.VSyncMonitor; |
| 33 import org.chromium.ui.display.DisplayAndroid; |
| 33 import org.chromium.ui.widget.Toast; | 34 import org.chromium.ui.widget.Toast; |
| 34 | 35 |
| 35 import java.lang.ref.WeakReference; | 36 import java.lang.ref.WeakReference; |
| 36 import java.util.HashMap; | 37 import java.util.HashMap; |
| 37 import java.util.HashSet; | 38 import java.util.HashSet; |
| 38 import java.util.LinkedList; | 39 import java.util.LinkedList; |
| 39 | 40 |
| 40 /** | 41 /** |
| 41 * The window base class that has the minimum functionality. | 42 * The window base class that has the minimum functionality. |
| 42 */ | 43 */ |
| (...skipping 21 matching lines...) Expand all Loading... |
| 64 | 65 |
| 65 void destroy() { | 66 void destroy() { |
| 66 mAccessibilityManager.removeTouchExplorationStateChangeListener( | 67 mAccessibilityManager.removeTouchExplorationStateChangeListener( |
| 67 mTouchExplorationListener); | 68 mTouchExplorationListener); |
| 68 } | 69 } |
| 69 } | 70 } |
| 70 | 71 |
| 71 // Native pointer to the c++ WindowAndroid object. | 72 // Native pointer to the c++ WindowAndroid object. |
| 72 private long mNativeWindowAndroid = 0; | 73 private long mNativeWindowAndroid = 0; |
| 73 private final VSyncMonitor mVSyncMonitor; | 74 private final VSyncMonitor mVSyncMonitor; |
| 75 private final DisplayAndroid mDisplayAndroid; |
| 74 | 76 |
| 75 // A string used as a key to store intent errors in a bundle | 77 // A string used as a key to store intent errors in a bundle |
| 76 static final String WINDOW_CALLBACK_ERRORS = "window_callback_errors"; | 78 static final String WINDOW_CALLBACK_ERRORS = "window_callback_errors"; |
| 77 | 79 |
| 78 // Error code returned when an Intent fails to start an Activity. | 80 // Error code returned when an Intent fails to start an Activity. |
| 79 public static final int START_INTENT_FAILURE = -1; | 81 public static final int START_INTENT_FAILURE = -1; |
| 80 | 82 |
| 81 protected Context mApplicationContext; | 83 protected Context mApplicationContext; |
| 82 protected SparseArray<IntentCallback> mOutstandingIntents; | 84 protected SparseArray<IntentCallback> mOutstandingIntents; |
| 83 // We use a weak reference here to prevent this from leaking in WebView. | 85 // We use a weak reference here to prevent this from leaking in WebView. |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 public WindowAndroid(Context context) { | 170 public WindowAndroid(Context context) { |
| 169 mApplicationContext = context.getApplicationContext(); | 171 mApplicationContext = context.getApplicationContext(); |
| 170 // context does not have the same lifetime guarantees as an application
context so we can't | 172 // context does not have the same lifetime guarantees as an application
context so we can't |
| 171 // hold a strong reference to it. | 173 // hold a strong reference to it. |
| 172 mContextRef = new WeakReference<Context>(context); | 174 mContextRef = new WeakReference<Context>(context); |
| 173 mOutstandingIntents = new SparseArray<IntentCallback>(); | 175 mOutstandingIntents = new SparseArray<IntentCallback>(); |
| 174 mIntentErrors = new HashMap<Integer, String>(); | 176 mIntentErrors = new HashMap<Integer, String>(); |
| 175 mVSyncMonitor = new VSyncMonitor(context, mVSyncListener); | 177 mVSyncMonitor = new VSyncMonitor(context, mVSyncListener); |
| 176 mAccessibilityManager = (AccessibilityManager) mApplicationContext.getSy
stemService( | 178 mAccessibilityManager = (AccessibilityManager) mApplicationContext.getSy
stemService( |
| 177 Context.ACCESSIBILITY_SERVICE); | 179 Context.ACCESSIBILITY_SERVICE); |
| 180 mDisplayAndroid = DisplayAndroid.get(context); |
| 178 } | 181 } |
| 179 | 182 |
| 180 @CalledByNative | 183 @CalledByNative |
| 181 private static WindowAndroid createForTesting(Context context) { | 184 private static WindowAndroid createForTesting(Context context) { |
| 182 return new WindowAndroid(context); | 185 return new WindowAndroid(context); |
| 183 } | 186 } |
| 184 | 187 |
| 185 @CalledByNative | 188 @CalledByNative |
| 186 private void clearNativePointer() { | 189 private void clearNativePointer() { |
| 187 mNativeWindowAndroid = 0; | 190 mNativeWindowAndroid = 0; |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 } | 388 } |
| 386 | 389 |
| 387 /** | 390 /** |
| 388 * Broadcasts the given intent to all interested BroadcastReceivers. | 391 * Broadcasts the given intent to all interested BroadcastReceivers. |
| 389 */ | 392 */ |
| 390 public void sendBroadcast(Intent intent) { | 393 public void sendBroadcast(Intent intent) { |
| 391 mApplicationContext.sendBroadcast(intent); | 394 mApplicationContext.sendBroadcast(intent); |
| 392 } | 395 } |
| 393 | 396 |
| 394 /** | 397 /** |
| 398 * @return DisplayAndroid instance belong to this window. |
| 399 */ |
| 400 public DisplayAndroid getDisplay() { |
| 401 return mDisplayAndroid; |
| 402 } |
| 403 |
| 404 /** |
| 395 * @return A reference to owning Activity. The returned WeakReference will
never be null, but | 405 * @return A reference to owning Activity. The returned WeakReference will
never be null, but |
| 396 * the contained Activity can be null (either if it has been garbage
collected or if | 406 * the contained Activity can be null (either if it has been garbage
collected or if |
| 397 * this is in the context of a WebView that was not created using an
Activity). | 407 * this is in the context of a WebView that was not created using an
Activity). |
| 398 */ | 408 */ |
| 399 public WeakReference<Activity> getActivity() { | 409 public WeakReference<Activity> getActivity() { |
| 400 return new WeakReference<Activity>(null); | 410 return new WeakReference<Activity>(null); |
| 401 } | 411 } |
| 402 | 412 |
| 403 /** | 413 /** |
| 404 * @return The application context for this activity. | 414 * @return The application context for this activity. |
| (...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 668 private native long nativeInit(); | 678 private native long nativeInit(); |
| 669 private native void nativeOnVSync(long nativeWindowAndroid, | 679 private native void nativeOnVSync(long nativeWindowAndroid, |
| 670 long vsyncTimeMicros, | 680 long vsyncTimeMicros, |
| 671 long vsyncPeriodMicros); | 681 long vsyncPeriodMicros); |
| 672 private native void nativeOnVisibilityChanged(long nativeWindowAndroid, bool
ean visible); | 682 private native void nativeOnVisibilityChanged(long nativeWindowAndroid, bool
ean visible); |
| 673 private native void nativeOnActivityStopped(long nativeWindowAndroid); | 683 private native void nativeOnActivityStopped(long nativeWindowAndroid); |
| 674 private native void nativeOnActivityStarted(long nativeWindowAndroid); | 684 private native void nativeOnActivityStarted(long nativeWindowAndroid); |
| 675 private native void nativeDestroy(long nativeWindowAndroid); | 685 private native void nativeDestroy(long nativeWindowAndroid); |
| 676 | 686 |
| 677 } | 687 } |
| OLD | NEW |