public abstract class

ImmutableZoomState

extends java.lang.Object

implements ZoomState

 java.lang.Object

↳androidx.camera.core.internal.ImmutableZoomState

Gradle dependencies

compile group: 'androidx.camera', name: 'camera-core', version: '1.2.0-alpha01'

  • groupId: androidx.camera
  • artifactId: camera-core
  • version: 1.2.0-alpha01

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

Overview

An implementation of ZoomState that is immutable.

Summary

Constructors
publicImmutableZoomState()

Methods
public static ZoomStatecreate(float zoomRatio, float maxZoomRatio, float minZoomRatio, float linearZoom)

Create an immutable instance of ZoomState.

public static ZoomStatecreate(ZoomState zoomState)

Create an immutable instance of ZoomState.

public abstract floatgetLinearZoom()

public abstract floatgetMaxZoomRatio()

public abstract floatgetMinZoomRatio()

public abstract floatgetZoomRatio()

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

Constructors

public ImmutableZoomState()

Methods

public static ZoomState create(float zoomRatio, float maxZoomRatio, float minZoomRatio, float linearZoom)

Create an immutable instance of ZoomState.

public static ZoomState create(ZoomState zoomState)

Create an immutable instance of ZoomState.

public abstract float getZoomRatio()

public abstract float getMaxZoomRatio()

public abstract float getMinZoomRatio()

public abstract float getLinearZoom()

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.camera.core.internal;

import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.camera.core.ZoomState;

import com.google.auto.value.AutoValue;

/**
 * An implementation of {@link ZoomState} that is immutable.
 */
@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
@AutoValue
public abstract class ImmutableZoomState implements ZoomState {
    /** Create an immutable instance of {@link ZoomState}. */
    @NonNull
    public static ZoomState create(float zoomRatio, float maxZoomRatio, float minZoomRatio,
            float linearZoom) {
        return new AutoValue_ImmutableZoomState(zoomRatio, maxZoomRatio, minZoomRatio, linearZoom);
    }

    /** Create an immutable instance of {@link ZoomState}. */
    @NonNull
    public static ZoomState create(@NonNull ZoomState zoomState) {
        return new AutoValue_ImmutableZoomState(zoomState.getZoomRatio(),
                zoomState.getMaxZoomRatio(),
                zoomState.getMinZoomRatio(), zoomState.getLinearZoom());
    }

    @Override
    public abstract float getZoomRatio();

    @Override
    public abstract float getMaxZoomRatio();

    @Override
    public abstract float getMinZoomRatio();

    @Override
    public abstract float getLinearZoom();
}