public class

ExtensionProvider

extends java.lang.Object

 java.lang.Object

↳androidx.window.extensions.ExtensionProvider

Gradle dependencies

compile group: 'androidx.window', name: 'window-extensions', version: '1.0.0-alpha01'

  • groupId: androidx.window
  • artifactId: window-extensions
  • version: 1.0.0-alpha01

Artifact androidx.window:window-extensions:1.0.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

A stub implementation for the class that will instantiate the Extension.

This class should be implemented by OEM and deployed to the target devices.

Summary

Methods
public static java.lang.StringgetApiVersion()

Get the version of the vendor library on this device.

public static ExtensionInterfacegetExtensionImpl(Context context)

Instantiate the Extension for the use by the WindowManager library.

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

Methods

public static ExtensionInterface getExtensionImpl(Context context)

Instantiate the Extension for the use by the WindowManager library.

The library will instantiate the vendor implementation using this interface.

Returns:

A compatible version of the ExtensionInterface for the provided library version string, or null if not available.

public static java.lang.String getApiVersion()

Get the version of the vendor library on this device. If the returned version is not supported by the WindowManager library, then some functions may not be available or replaced with stub implementations.

WindowManager library provides the Semantic Versioning string in a form of MAJOR.MINOR.PATCH-description We will increment the MAJOR version when make incompatible API changes, MINOR version when add functionality in a backwards-compatible manner, and PATCH version when make backwards-compatible bug fixes. And the description can be ignored.

Vendor extension library should provide MAJOR.MINOR.PATCH to the WindowManager library. The MAJOR and MINOR version are used to identify the interface version that the library will use. The PATCH version does not indicate compatibility. The patch version should be incremented whenever the vendor library makes bug fixes or updates to the algorithm.

Returns:

the version that vendor supported in this device. The MAJOR.MINOR.PATCH format should be used.

Source

/*
 * Copyright 2020 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.window.extensions;

import android.content.Context;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

/**
 * A stub implementation for the class that will instantiate the Extension.
 *
 * <p>This class should be implemented by OEM and deployed to the target devices.
 *
 * @see ExtensionInterface
 */
public class ExtensionProvider {

    private ExtensionProvider() {}

    /**
     * Instantiate the Extension for the use by the WindowManager library.
     *
     * <p>The library will instantiate the vendor implementation using this interface.
     * @return A compatible version of the {@link ExtensionInterface} for the provided library
     *         version string, or {@code null} if not available.
     */
    @Nullable
    public static ExtensionInterface getExtensionImpl(@NonNull Context context) {
        throw new UnsupportedOperationException("Stub, replace with implementation.");
    }

    /**
     * Get the version of the vendor library on this device. If the returned version is not
     * supported by the WindowManager library, then some functions may not be available or
     * replaced with stub implementations.
     *
     * <p>WindowManager library provides the Semantic Versioning string in a form of
     * MAJOR.MINOR.PATCH-description
     * We will increment the
     * MAJOR version when make incompatible API changes,
     * MINOR version when add functionality in a backwards-compatible manner, and
     * PATCH version when make backwards-compatible bug fixes.
     * And the description can be ignored.
     *
     * <p>Vendor extension library should provide MAJOR.MINOR.PATCH to the WindowManager library.
     * The MAJOR and MINOR version are used to identify the interface version that the library will
     * use. The PATCH version does not indicate compatibility. The patch version should be
     * incremented whenever the vendor library makes bug fixes or updates to the algorithm.
     *
     * @return the version that vendor supported in this device. The MAJOR.MINOR.PATCH format
     * should be used.
     */
    @Nullable
    public static String getApiVersion() {
        throw new UnsupportedOperationException("Stub, replace with implementation.");
    }
}