chromium/android_webview/support_library/java/src/org/chromium/support_lib_glue/SupportLibDropDataContentProviderAdapter.java

// 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_glue;

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 org.chromium.support_lib_boundary.DropDataContentProviderBoundaryInterface;
import org.chromium.ui.dragdrop.DropDataProviderImpl;

import java.io.FileNotFoundException;

public class SupportLibDropDataContentProviderAdapter
        implements DropDataContentProviderBoundaryInterface {
    private DropDataProviderImpl mProviderImpl;

    @Override
    public boolean onCreate() {
        mProviderImpl = DropDataProviderImpl.onCreate();
        return true;
    }

    @Override
    public String[] getStreamTypes(@NonNull Uri uri, @NonNull String mimeTypeFilter) {
        return mProviderImpl.getStreamTypes(uri, mimeTypeFilter);
    }

    @Override
    public ParcelFileDescriptor openFile(@NonNull ContentProvider providerWrapper, @NonNull Uri uri)
            throws FileNotFoundException {
        return mProviderImpl.openFile(providerWrapper, uri);
    }

    @Override
    public Cursor query(
            @NonNull Uri uri,
            @Nullable String[] projection,
            @Nullable String selection,
            @Nullable String[] selectionArgs,
            @Nullable String sortOrder) {
        return mProviderImpl.query(uri, projection);
    }

    @Override
    public String getType(@NonNull Uri uri) {
        return mProviderImpl.getType(uri);
    }

    @Override
    public Uri cache(byte[] imageBytes, String encodingFormat, String filename) {
        return mProviderImpl.cache(imageBytes, encodingFormat, filename);
    }

    @Override
    public void setClearCachedDataIntervalMs(int milliseconds) {
        mProviderImpl.setClearCachedDataIntervalMs(milliseconds);
    }

    @Override
    public void onDragEnd(boolean imageInUse) {
        mProviderImpl.onDragEnd(imageInUse);
    }

    @Override
    public Bundle call(@NonNull String method, @Nullable String arg, @Nullable Bundle extras) {
        return mProviderImpl.call(method, arg, extras);
    }
}