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.ui; | 5 package org.chromium.ui; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.graphics.Bitmap; | 8 import android.graphics.Bitmap; |
9 import android.graphics.Canvas; | 9 import android.graphics.Canvas; |
10 import android.graphics.Rect; | 10 import android.graphics.Rect; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
49 */ | 49 */ |
50 private UiUtils() { | 50 private UiUtils() { |
51 } | 51 } |
52 | 52 |
53 /** The minimum size of the bottom margin below the app to detect a keyboard . */ | 53 /** The minimum size of the bottom margin below the app to detect a keyboard . */ |
54 private static final float KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP = 100; | 54 private static final float KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP = 100; |
55 | 55 |
56 /** A delegate that allows disabling keyboard visibility detection. */ | 56 /** A delegate that allows disabling keyboard visibility detection. */ |
57 private static KeyboardShowingDelegate sKeyboardShowingDelegate; | 57 private static KeyboardShowingDelegate sKeyboardShowingDelegate; |
58 | 58 |
59 /** A delegate for the photo picker. */ | |
60 private static PhotoPickerDelegate sPhotoPickerDelegate; | |
61 | |
59 /** | 62 /** |
60 * A delegate that can be implemented to override whether or not keyboard de tection will be | 63 * A delegate that can be implemented to override whether or not keyboard de tection will be |
61 * used. | 64 * used. |
62 */ | 65 */ |
63 public interface KeyboardShowingDelegate { | 66 public interface KeyboardShowingDelegate { |
64 /** | 67 /** |
65 * Will be called to determine whether or not to detect if the keyboard is visible. | 68 * Will be called to determine whether or not to detect if the keyboard is visible. |
66 * @param context A {@link Context} instance. | 69 * @param context A {@link Context} instance. |
67 * @param view A {@link View}. | 70 * @param view A {@link View}. |
68 * @return Whether or not the keyboard check should be disabled. | 71 * @return Whether or not the keyboard check should be disabled. |
69 */ | 72 */ |
70 boolean disableKeyboardCheck(Context context, View view); | 73 boolean disableKeyboardCheck(Context context, View view); |
71 } | 74 } |
72 | 75 |
73 /** | 76 /** |
77 * A delegate interface for the photo picker. | |
78 */ | |
79 public interface PhotoPickerDelegate { | |
80 /** | |
81 * Called to display the photo picker. | |
82 * @param context The context to use. | |
83 * @param listener The listener that will be notified of the action the user took in the | |
84 * picker. | |
85 * @param allowMultiple Whether the dialog should allow multiple images to be selected. | |
86 */ | |
87 void showPhotoPicker(Context context, PhotoPickerListener listener, bool ean allowMultiple); | |
88 | |
89 /** | |
90 * Called when the photo picker dialog should be dismissed. | |
91 */ | |
92 void dismissPhotoPicker(); | |
93 } | |
94 | |
95 // PhotoPickerDelegate: | |
96 | |
97 /** | |
98 * Called to display the photo picker. | |
99 * @param context The context to use. | |
100 * @param listener The listener that will be notified of the action the user took in the | |
101 * picker. | |
102 * @param allowMultiple Whether the dialog should allow multiple images to b e selected. | |
103 */ | |
104 public static boolean showPhotoPicker( | |
105 Context context, PhotoPickerListener listener, boolean allowMultiple ) { | |
106 if (sPhotoPickerDelegate == null) return false; | |
107 sPhotoPickerDelegate.showPhotoPicker(context, listener, allowMultiple); | |
108 return true; | |
109 } | |
110 | |
111 /** | |
112 * Called when the photo picker dialog should be dismissed. | |
113 */ | |
114 public static void dismissPhotoPicker() { | |
115 if (sPhotoPickerDelegate == null) return; | |
116 sPhotoPickerDelegate.dismissPhotoPicker(); | |
117 } | |
118 | |
119 // KeyboardShowingDelegate: | |
120 | |
121 /** | |
74 * Allows setting a delegate to override the default software keyboard visib ility detection. | 122 * Allows setting a delegate to override the default software keyboard visib ility detection. |
75 * @param delegate A {@link KeyboardShowingDelegate} instance. | 123 * @param delegate A {@link KeyboardShowingDelegate} instance. |
76 */ | 124 */ |
77 public static void setKeyboardShowingDelegate(KeyboardShowingDelegate delega te) { | 125 public static void setKeyboardShowingDelegate(KeyboardShowingDelegate delega te) { |
78 sKeyboardShowingDelegate = delegate; | 126 sKeyboardShowingDelegate = delegate; |
79 } | 127 } |
80 | 128 |
81 /** | 129 /** |
130 * Allows setting a delegate to override the default Android stock photo pic ker. | |
131 * @param delegate A {@link PhotoPickerDelegate} instance. | |
132 */ | |
133 public static void setPhotoPickerDelegate(PhotoPickerDelegate delegate) { | |
Theresa
2017/03/16 16:26:17
nit: move this above showPhotoPicker()
Finnur
2017/03/17 10:11:45
Done.
| |
134 sPhotoPickerDelegate = delegate; | |
135 } | |
136 | |
137 /** | |
82 * Shows the software keyboard if necessary. | 138 * Shows the software keyboard if necessary. |
83 * @param view The currently focused {@link View}, which would receive soft keyboard input. | 139 * @param view The currently focused {@link View}, which would receive soft keyboard input. |
84 */ | 140 */ |
85 public static void showKeyboard(final View view) { | 141 public static void showKeyboard(final View view) { |
86 final Handler handler = new Handler(); | 142 final Handler handler = new Handler(); |
87 final AtomicInteger attempt = new AtomicInteger(); | 143 final AtomicInteger attempt = new AtomicInteger(); |
88 Runnable openRunnable = new Runnable() { | 144 Runnable openRunnable = new Runnable() { |
89 @Override | 145 @Override |
90 public void run() { | 146 public void run() { |
91 // Not passing InputMethodManager.SHOW_IMPLICIT as it does not t rigger the | 147 // Not passing InputMethodManager.SHOW_IMPLICIT as it does not t rigger the |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
324 * attached to the view hierarchy. | 380 * attached to the view hierarchy. |
325 * | 381 * |
326 * @param view The view to be removed from the parent. | 382 * @param view The view to be removed from the parent. |
327 */ | 383 */ |
328 public static void removeViewFromParent(View view) { | 384 public static void removeViewFromParent(View view) { |
329 ViewGroup parent = (ViewGroup) view.getParent(); | 385 ViewGroup parent = (ViewGroup) view.getParent(); |
330 if (parent == null) return; | 386 if (parent == null) return; |
331 parent.removeView(view); | 387 parent.removeView(view); |
332 } | 388 } |
333 } | 389 } |
OLD | NEW |