diff options
author | Sayed Elabady <elabadysayed@chromium.org> | 2022-10-18 12:54:05 +0000 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-10-18 05:58:38 -0700 |
commit | a78ccba31957cbc6fe49106b45d96af824f7cec0 (patch) | |
tree | 974017bd2e62f1dee6cffee493ddd5e2f5209747 | |
parent | 63f8cd77342afe70a2e7cf7a3b2af8b7c0f307b3 (diff) | |
download | webview_support_interfaces-a78ccba31957cbc6fe49106b45d96af824f7cec0.tar.gz |
Expose image drag drop implementation in glue code for Androidx
For now the feature will be for dev only, there will be another CL
for enabling it to enable it for prod.
Bug: 1353048
Change-Id: I5b113beee97b669aa51261a77acbdb3542f244f8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3941675
Reviewed-by: Susanne Westphal <swestphal@chromium.org>
Reviewed-by: Peter Conn <peconn@chromium.org>
Commit-Queue: Peter Conn <peconn@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060417}
NOKEYCHECK=True
GitOrigin-RevId: aaddc5dab7285d86d998b8dc4a9344c2a423f58c
4 files changed, 46 insertions, 0 deletions
@@ -7,6 +7,7 @@ import("//build/config/android/rules.gni") android_library("boundary_interface_java") { sources = [ + "src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java", "src/org/chromium/support_lib_boundary/FeatureFlagHolderBoundaryInterface.java", "src/org/chromium/support_lib_boundary/IsomorphicObjectBoundaryInterface.java", "src/org/chromium/support_lib_boundary/JsReplyProxyBoundaryInterface.java", diff --git a/src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java b/src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java new file mode 100644 index 0000000..9e694a2 --- /dev/null +++ b/src/org/chromium/support_lib_boundary/DropDataContentProviderBoundaryInterface.java @@ -0,0 +1,33 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.support_lib_boundary; + +import android.content.ContentProvider; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.os.ParcelFileDescriptor; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.io.FileNotFoundException; + +/** + * Boundary interface for DropDataProvider. + */ +public interface DropDataContentProviderBoundaryInterface { + boolean onCreate(); + String[] getStreamTypes(@NonNull Uri uri, @NonNull String mimeTypeFilter); + ParcelFileDescriptor openFile(@NonNull ContentProvider providerWrapper, @NonNull Uri uri) + throws FileNotFoundException; + Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, + @Nullable String[] selectionArgs, @Nullable String sortOrder); + String getType(@NonNull Uri uri); + Uri cache(byte[] imageBytes, String encodingFormat, String filename); + void setClearCachedDataIntervalMs(int milliseconds); + void onDragEnd(boolean imageInUse); + Bundle call(@NonNull String method, @Nullable String arg, @Nullable Bundle extras); +}
\ No newline at end of file diff --git a/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java index ef4ea8e..f7c7ef7 100644 --- a/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java +++ b/src/org/chromium/support_lib_boundary/WebViewProviderFactoryBoundaryInterface.java @@ -19,4 +19,5 @@ public interface WebViewProviderFactoryBoundaryInterface { /* SupportLibraryTracingController */ InvocationHandler getTracingController(); /* SupportLibraryProxyController */ InvocationHandler getProxyController(); void setSupportLibraryVersion(String version); + /* DropDataContentProviderBoundaryInterface*/ InvocationHandler getDropDataProvider(); } diff --git a/src/org/chromium/support_lib_boundary/util/Features.java b/src/org/chromium/support_lib_boundary/util/Features.java index 2ddeece..990b16d 100644 --- a/src/org/chromium/support_lib_boundary/util/Features.java +++ b/src/org/chromium/support_lib_boundary/util/Features.java @@ -227,4 +227,15 @@ public class Features { // CookieManagerCompat.getCookieInfo public static final String GET_COOKIE_INFO = "GET_COOKIE_INFO"; + + // DropDataContentProvider.onCreate + // DropDataContentProvider.getStreamTypes + // DropDataContentProvider.openFile + // DropDataContentProvider.query + // DropDataContentProvider.getType + // DropDataContentProvider.cache + // DropDataContentProvider.setClearCachedDataIntervalMs + // DropDataContentProvider.onDragEnd + // DropDataContentProvider.call + public static final String IMAGE_DRAG_DROP = "IMAGE_DRAG_DROP"; } |