public class

ApiHelperForP

extends java.lang.Object

 java.lang.Object

↳androidx.webkit.internal.ApiHelperForP

Gradle dependencies

compile group: 'androidx.webkit', name: 'webkit', version: '1.5.0-alpha01'

  • groupId: androidx.webkit
  • artifactId: webkit
  • version: 1.5.0-alpha01

Artifact androidx.webkit:webkit:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Androidx artifact mapping:

androidx.webkit:webkit com.android.support:webkit

Overview

Utility class to use new APIs that were added in P (API level 28). These need to exist in a separate class so that Android framework can successfully verify classes without encountering the new APIs.

Summary

Methods
public static TracingControllergetTracingControllerInstance()

public static java.lang.ClassLoadergetWebViewClassLoader()

public static LoopergetWebViewLooper(WebView webView)

public static booleanisTracing(TracingController tracingController)

public static voidstart(TracingController tracingController, TracingConfig tracingConfig)

Converts the passed TracingConfig to to isolate new types in this class.

public static booleanstop(TracingController tracingController, java.io.OutputStream os, java.util.concurrent.Executor ex)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Methods

public static TracingController getTracingControllerInstance()

See also:

public static boolean isTracing(TracingController tracingController)

See also:

public static void start(TracingController tracingController, TracingConfig tracingConfig)

Converts the passed TracingConfig to to isolate new types in this class.

See also:

public static boolean stop(TracingController tracingController, java.io.OutputStream os, java.util.concurrent.Executor ex)

See also:

public static java.lang.ClassLoader getWebViewClassLoader()

See also:

public static Looper getWebViewLooper(WebView webView)

See also:

Source

/*
 * Copyright 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.webkit.internal;

import android.os.Build;
import android.os.Looper;
import android.webkit.TracingController;
import android.webkit.WebView;

import androidx.annotation.DoNotInline;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.webkit.TracingConfig;

import java.io.OutputStream;
import java.util.concurrent.Executor;

/**
 * Utility class to use new APIs that were added in P (API level 28).
 * These need to exist in a separate class so that Android framework can successfully verify
 * classes without encountering the new APIs.
 */
@RequiresApi(Build.VERSION_CODES.P)
public class ApiHelperForP {
    private ApiHelperForP() {
    }

    /**
     * @see TracingController#getInstance()
     */
    @DoNotInline
    @NonNull
    public static TracingController getTracingControllerInstance() {
        return TracingController.getInstance();
    }

    /**
     * @see TracingController#isTracing()
     */
    @DoNotInline
    public static boolean isTracing(@NonNull TracingController tracingController) {
        return tracingController.isTracing();
    }

    /**
     * Converts the passed {@link TracingConfig} to {@link android.webkit.TracingConfig} to
     * isolate new types in this class.
     * @see TracingController#start(android.webkit.TracingConfig)
     */
    @DoNotInline
    public static void start(@NonNull TracingController tracingController,
            @NonNull TracingConfig tracingConfig) {
        android.webkit.TracingConfig config =
                new android.webkit.TracingConfig.Builder()
                        .addCategories(tracingConfig.getPredefinedCategories())
                        .addCategories(tracingConfig.getCustomIncludedCategories())
                        .setTracingMode(tracingConfig.getTracingMode())
                        .build();
        tracingController.start(config);
    }

    /**
     * @see TracingController#stop(OutputStream, Executor)
     */
    @DoNotInline
    public static boolean stop(@NonNull TracingController tracingController,
            @Nullable OutputStream os, @NonNull Executor ex) {
        return tracingController.stop(os, ex);
    }

    /**
     * @see WebView#getWebViewClassLoader()
     */
    @DoNotInline
    @NonNull
    public static ClassLoader getWebViewClassLoader() {
        return WebView.getWebViewClassLoader();
    }

    /**
     * @see WebView#getWebViewLooper()
     */
    @DoNotInline
    @NonNull
    public static Looper getWebViewLooper(@NonNull WebView webView) {
        return webView.getWebViewLooper();
    }
}