public class

ClientVersion

extends java.lang.Object

 java.lang.Object

↳androidx.camera.extensions.internal.ClientVersion

Gradle dependencies

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

  • groupId: androidx.camera
  • artifactId: camera-extensions
  • version: 1.5.0-alpha01

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

Overview

The client version of the Extensions-Interface that CameraX extension library uses.

Summary

Constructors
publicClientVersion(java.lang.String versionString)

Methods
public static ClientVersiongetCurrentVersion()

public VersiongetVersion()

public static booleanisMaximumCompatibleVersion(Version version)

Check if the client version meets the maximum compatible version requirement.

public static booleanisMinimumCompatibleVersion(Version version)

Check if the client version meets the minimum compatible version requirement.

public static voidsetCurrentVersion(ClientVersion clientVersion)

Overrides the client version for testing.

public java.lang.StringtoVersionString()

Gets this version number as string.

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

Constructors

public ClientVersion(java.lang.String versionString)

Methods

public static ClientVersion getCurrentVersion()

public static void setCurrentVersion(ClientVersion clientVersion)

Overrides the client version for testing.

public Version getVersion()

public static boolean isMinimumCompatibleVersion(Version version)

Check if the client version meets the minimum compatible version requirement. This implies that the client version is equal to or newer than the version.

The compatible version is comprised of the major and minor version numbers. The patch number is ignored.

Parameters:

version: The minimum compatible version required

Returns:

True if the client version meets the minimum version requirement and False otherwise.

public static boolean isMaximumCompatibleVersion(Version version)

Check if the client version meets the maximum compatible version requirement. This implies that the client version is equal to or older than the version.

The compatible version is comprised of the major and minor version numbers. The patch number is ignored.

Parameters:

version: The minimum compatible version required

Returns:

True if the client version meets the maximum version requirement and False otherwise.

public java.lang.String toVersionString()

Gets this version number as string.

Returns:

the string of the version in a form of MAJOR.MINOR.PATCH-description.

Source

/*
 * Copyright 2021 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.camera.extensions.internal;

import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;

/**
 * The client version of the Extensions-Interface that CameraX extension library uses.
 */
public class ClientVersion {
    // Current version of vendor library implementation that the CameraX extension supports. This
    // needs to be increased along with the version of vendor library interface.
    private static ClientVersion sCurrent = new ClientVersion("1.4.0");

    @NonNull
    public static ClientVersion getCurrentVersion() {
        return sCurrent;
    }

    /**
     * Overrides the client version for testing.
     */
    @VisibleForTesting
    public static void setCurrentVersion(@NonNull ClientVersion clientVersion) {
        sCurrent = clientVersion;
    }

    private final Version mVersion;

    @NonNull
    public Version getVersion() {
        return mVersion;
    }

    public ClientVersion(@NonNull String versionString) {
        mVersion = Version.parse(versionString);
    }

    /**
     * Check if the client version meets the minimum compatible version requirement. This implies
     * that the client version is equal to or newer than the version.
     *
     * <p> The compatible version is comprised of the major and minor version numbers. The patch
     * number is ignored.
     *
     * @param version The minimum compatible version required
     * @return True if the client version meets the minimum version requirement and False
     * otherwise.
     */
    public static boolean isMinimumCompatibleVersion(@NonNull Version version) {
        return ClientVersion.getCurrentVersion().mVersion
                .compareTo(version.getMajor(), version.getMinor()) >= 0;
    }

    /**
     * Check if the client version meets the maximum compatible version requirement. This implies
     * that the client version is equal to or older than the version.
     *
     * <p> The compatible version is comprised of the major and minor version numbers. The patch
     * number is ignored.
     *
     * @param version The minimum compatible version required
     * @return True if the client version meets the maximum version requirement and False
     * otherwise.
     */
    public static boolean isMaximumCompatibleVersion(@NonNull Version version) {
        return ClientVersion.getCurrentVersion().mVersion
                .compareTo(version.getMajor(), version.getMinor()) <= 0;
    }

    /**
     * Gets this version number as string.
     *
     * @return the string of the version in a form of MAJOR.MINOR.PATCH-description.
     */
    @NonNull
    public String toVersionString() {
        return mVersion.toString();
    }
}