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.content.browser; | 5 package org.chromium.content.browser; |
6 | 6 |
7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
8 import android.annotation.TargetApi; | 8 import android.annotation.TargetApi; |
9 import android.app.assist.AssistStructure.ViewNode; | 9 import android.app.assist.AssistStructure.ViewNode; |
10 import android.content.ClipData; | 10 import android.content.ClipData; |
(...skipping 2398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2409 | 2409 |
2410 public void setBackgroundOpaque(boolean opaque) { | 2410 public void setBackgroundOpaque(boolean opaque) { |
2411 if (mNativeContentViewCore != 0) { | 2411 if (mNativeContentViewCore != 0) { |
2412 nativeSetBackgroundOpaque(mNativeContentViewCore, opaque); | 2412 nativeSetBackgroundOpaque(mNativeContentViewCore, opaque); |
2413 } | 2413 } |
2414 } | 2414 } |
2415 | 2415 |
2416 /** | 2416 /** |
2417 * @see View#onDragEvent(DragEvent) | 2417 * @see View#onDragEvent(DragEvent) |
2418 */ | 2418 */ |
2419 // TODO(hush): uncomment below when we build with API 24. | 2419 @TargetApi(Build.VERSION_CODES.N) |
2420 // @TargetApi(Build.VERSION_CODES.N) | |
2421 public boolean onDragEvent(DragEvent event) { | 2420 public boolean onDragEvent(DragEvent event) { |
2422 if (mNativeContentViewCore == 0 || Build.VERSION.SDK_INT <= Build.VERSIO
N_CODES.M) { | 2421 if (mNativeContentViewCore == 0 || Build.VERSION.SDK_INT <= Build.VERSIO
N_CODES.M) { |
2423 return false; | 2422 return false; |
2424 } | 2423 } |
2425 | 2424 |
2426 ClipDescription clipDescription = event.getClipDescription(); | 2425 ClipDescription clipDescription = event.getClipDescription(); |
2427 | 2426 |
2428 // text/* will match text/uri-list, text/html, text/plain. | 2427 // text/* will match text/uri-list, text/html, text/plain. |
2429 String[] mimeTypes = | 2428 String[] mimeTypes = |
2430 clipDescription == null ? new String[0] : clipDescription.filter
MimeTypes("text/*"); | 2429 clipDescription == null ? new String[0] : clipDescription.filter
MimeTypes("text/*"); |
2431 | 2430 |
2432 if (event.getAction() == DragEvent.ACTION_DRAG_STARTED) { | 2431 if (event.getAction() == DragEvent.ACTION_DRAG_STARTED) { |
2433 // TODO(hush): support dragging more than just text. | 2432 // TODO(hush): support dragging more than just text. |
2434 return mimeTypes != null && mimeTypes.length > 0 | 2433 return mimeTypes != null && mimeTypes.length > 0 |
2435 && nativeIsTouchDragDropEnabled(mNativeContentViewCore); | 2434 && nativeIsTouchDragDropEnabled(mNativeContentViewCore); |
2436 } | 2435 } |
2437 | 2436 |
2438 StringBuilder content = new StringBuilder(""); | 2437 StringBuilder content = new StringBuilder(""); |
2439 if (event.getAction() == DragEvent.ACTION_DROP) { | 2438 if (event.getAction() == DragEvent.ACTION_DROP) { |
2440 // TODO(hush): obtain dragdrop permissions (via reflection?), when d
ragging files into | 2439 // TODO(hush): obtain dragdrop permissions, when dragging files into
Chrome/WebView is |
2441 // Chrome/WebView is supported. Not necessary to do so for now, beca
use only text | 2440 // supported. Not necessary to do so for now, because only text drag
ging is supported. |
2442 // dragging is supported. | |
2443 ClipData clipData = event.getClipData(); | 2441 ClipData clipData = event.getClipData(); |
2444 final int itemCount = clipData.getItemCount(); | 2442 final int itemCount = clipData.getItemCount(); |
2445 for (int i = 0; i < itemCount; i++) { | 2443 for (int i = 0; i < itemCount; i++) { |
2446 ClipData.Item item = clipData.getItemAt(i); | 2444 ClipData.Item item = clipData.getItemAt(i); |
2447 content.append(item.coerceToStyledText(mContainerView.getContext
())); | 2445 content.append(item.coerceToStyledText(mContainerView.getContext
())); |
2448 } | 2446 } |
2449 } | 2447 } |
2450 | 2448 |
2451 int[] locationOnScreen = new int[2]; | 2449 int[] locationOnScreen = new int[2]; |
2452 mContainerView.getLocationOnScreen(locationOnScreen); | 2450 mContainerView.getLocationOnScreen(locationOnScreen); |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2681 private native void nativeSetTextTrackSettings(long nativeContentViewCoreImp
l, | 2679 private native void nativeSetTextTrackSettings(long nativeContentViewCoreImp
l, |
2682 boolean textTracksEnabled, String textTrackBackgroundColor, String t
extTrackFontFamily, | 2680 boolean textTracksEnabled, String textTrackBackgroundColor, String t
extTrackFontFamily, |
2683 String textTrackFontStyle, String textTrackFontVariant, String textT
rackTextColor, | 2681 String textTrackFontStyle, String textTrackFontVariant, String textT
rackTextColor, |
2684 String textTrackTextShadow, String textTrackTextSize); | 2682 String textTrackTextShadow, String textTrackTextSize); |
2685 | 2683 |
2686 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl
, boolean opaque); | 2684 private native void nativeSetBackgroundOpaque(long nativeContentViewCoreImpl
, boolean opaque); |
2687 private native boolean nativeIsTouchDragDropEnabled(long nativeContentViewCo
reImpl); | 2685 private native boolean nativeIsTouchDragDropEnabled(long nativeContentViewCo
reImpl); |
2688 private native void nativeOnDragEvent(long nativeContentViewCoreImpl, int ac
tion, int x, int y, | 2686 private native void nativeOnDragEvent(long nativeContentViewCoreImpl, int ac
tion, int x, int y, |
2689 int screenX, int screenY, String[] mimeTypes, String content); | 2687 int screenX, int screenY, String[] mimeTypes, String content); |
2690 } | 2688 } |
OLD | NEW |