- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
231 lines
7.5 KiB
Java
231 lines
7.5 KiB
Java
package androidx.core.view;
|
|
|
|
import android.graphics.Path;
|
|
import android.graphics.Rect;
|
|
import android.os.Build;
|
|
import android.view.DisplayCutout;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.core.graphics.Insets;
|
|
import androidx.core.util.ObjectsCompat;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class DisplayCutoutCompat {
|
|
private final DisplayCutout mDisplayCutout;
|
|
|
|
@RequiresApi(28)
|
|
public DisplayCutout unwrap() {
|
|
return this.mDisplayCutout;
|
|
}
|
|
|
|
public DisplayCutoutCompat(@Nullable Rect rect, @Nullable List<Rect> list) {
|
|
this(Build.VERSION.SDK_INT >= 28 ? Api28Impl.createDisplayCutout(rect, list) : null);
|
|
}
|
|
|
|
public DisplayCutoutCompat(@NonNull Insets insets, @Nullable Rect rect, @Nullable Rect rect2, @Nullable Rect rect3, @Nullable Rect rect4, @NonNull Insets insets2) {
|
|
this(constructDisplayCutout(insets, rect, rect2, rect3, rect4, insets2, null));
|
|
}
|
|
|
|
public DisplayCutoutCompat(@NonNull Insets insets, @Nullable Rect rect, @Nullable Rect rect2, @Nullable Rect rect3, @Nullable Rect rect4, @NonNull Insets insets2, @Nullable Path path) {
|
|
this(constructDisplayCutout(insets, rect, rect2, rect3, rect4, insets2, path));
|
|
}
|
|
|
|
private static DisplayCutout constructDisplayCutout(@NonNull Insets insets, @Nullable Rect rect, @Nullable Rect rect2, @Nullable Rect rect3, @Nullable Rect rect4, @NonNull Insets insets2, @Nullable Path path) {
|
|
int i = Build.VERSION.SDK_INT;
|
|
if (i >= 33) {
|
|
return Api33Impl.createDisplayCutout(insets.toPlatformInsets(), rect, rect2, rect3, rect4, insets2.toPlatformInsets(), path);
|
|
}
|
|
if (i >= 30) {
|
|
return Api30Impl.createDisplayCutout(insets.toPlatformInsets(), rect, rect2, rect3, rect4, insets2.toPlatformInsets());
|
|
}
|
|
if (i >= 29) {
|
|
return Api29Impl.createDisplayCutout(insets.toPlatformInsets(), rect, rect2, rect3, rect4);
|
|
}
|
|
if (i < 28) {
|
|
return null;
|
|
}
|
|
Rect rect5 = new Rect(insets.left, insets.top, insets.right, insets.bottom);
|
|
ArrayList arrayList = new ArrayList();
|
|
if (rect != null) {
|
|
arrayList.add(rect);
|
|
}
|
|
if (rect2 != null) {
|
|
arrayList.add(rect2);
|
|
}
|
|
if (rect3 != null) {
|
|
arrayList.add(rect3);
|
|
}
|
|
if (rect4 != null) {
|
|
arrayList.add(rect4);
|
|
}
|
|
return Api28Impl.createDisplayCutout(rect5, arrayList);
|
|
}
|
|
|
|
private DisplayCutoutCompat(DisplayCutout displayCutout) {
|
|
this.mDisplayCutout = displayCutout;
|
|
}
|
|
|
|
public int getSafeInsetTop() {
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
return Api28Impl.getSafeInsetTop(this.mDisplayCutout);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public int getSafeInsetBottom() {
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
return Api28Impl.getSafeInsetBottom(this.mDisplayCutout);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public int getSafeInsetLeft() {
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
return Api28Impl.getSafeInsetLeft(this.mDisplayCutout);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public int getSafeInsetRight() {
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
return Api28Impl.getSafeInsetRight(this.mDisplayCutout);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
@NonNull
|
|
public List<Rect> getBoundingRects() {
|
|
if (Build.VERSION.SDK_INT >= 28) {
|
|
return Api28Impl.getBoundingRects(this.mDisplayCutout);
|
|
}
|
|
return Collections.emptyList();
|
|
}
|
|
|
|
@NonNull
|
|
public Insets getWaterfallInsets() {
|
|
if (Build.VERSION.SDK_INT >= 30) {
|
|
return Insets.toCompatInsets(Api30Impl.getWaterfallInsets(this.mDisplayCutout));
|
|
}
|
|
return Insets.NONE;
|
|
}
|
|
|
|
@Nullable
|
|
public Path getCutoutPath() {
|
|
if (Build.VERSION.SDK_INT >= 31) {
|
|
return Api31Impl.getCutoutPath(this.mDisplayCutout);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public boolean equals(Object obj) {
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
if (obj == null || DisplayCutoutCompat.class != obj.getClass()) {
|
|
return false;
|
|
}
|
|
return ObjectsCompat.equals(this.mDisplayCutout, ((DisplayCutoutCompat) obj).mDisplayCutout);
|
|
}
|
|
|
|
public int hashCode() {
|
|
int hashCode;
|
|
DisplayCutout displayCutout = this.mDisplayCutout;
|
|
if (displayCutout == null) {
|
|
return 0;
|
|
}
|
|
hashCode = displayCutout.hashCode();
|
|
return hashCode;
|
|
}
|
|
|
|
@NonNull
|
|
public String toString() {
|
|
return "DisplayCutoutCompat{" + this.mDisplayCutout + "}";
|
|
}
|
|
|
|
public static DisplayCutoutCompat wrap(DisplayCutout displayCutout) {
|
|
if (displayCutout == null) {
|
|
return null;
|
|
}
|
|
return new DisplayCutoutCompat(displayCutout);
|
|
}
|
|
|
|
@RequiresApi(28)
|
|
public static class Api28Impl {
|
|
private Api28Impl() {
|
|
}
|
|
|
|
public static DisplayCutout createDisplayCutout(Rect rect, List<Rect> list) {
|
|
return new DisplayCutout(rect, list);
|
|
}
|
|
|
|
public static int getSafeInsetTop(DisplayCutout displayCutout) {
|
|
return displayCutout.getSafeInsetTop();
|
|
}
|
|
|
|
public static int getSafeInsetBottom(DisplayCutout displayCutout) {
|
|
return displayCutout.getSafeInsetBottom();
|
|
}
|
|
|
|
public static int getSafeInsetLeft(DisplayCutout displayCutout) {
|
|
return displayCutout.getSafeInsetLeft();
|
|
}
|
|
|
|
public static int getSafeInsetRight(DisplayCutout displayCutout) {
|
|
return displayCutout.getSafeInsetRight();
|
|
}
|
|
|
|
public static List<Rect> getBoundingRects(DisplayCutout displayCutout) {
|
|
return displayCutout.getBoundingRects();
|
|
}
|
|
}
|
|
|
|
@RequiresApi(29)
|
|
public static class Api29Impl {
|
|
private Api29Impl() {
|
|
}
|
|
|
|
public static DisplayCutout createDisplayCutout(android.graphics.Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4) {
|
|
return new DisplayCutout(insets, rect, rect2, rect3, rect4);
|
|
}
|
|
}
|
|
|
|
@RequiresApi(30)
|
|
public static class Api30Impl {
|
|
private Api30Impl() {
|
|
}
|
|
|
|
public static DisplayCutout createDisplayCutout(android.graphics.Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4, android.graphics.Insets insets2) {
|
|
return new DisplayCutout(insets, rect, rect2, rect3, rect4, insets2);
|
|
}
|
|
|
|
public static android.graphics.Insets getWaterfallInsets(DisplayCutout displayCutout) {
|
|
return displayCutout.getWaterfallInsets();
|
|
}
|
|
}
|
|
|
|
@RequiresApi(31)
|
|
public static class Api31Impl {
|
|
private Api31Impl() {
|
|
}
|
|
|
|
@Nullable
|
|
public static Path getCutoutPath(DisplayCutout displayCutout) {
|
|
return displayCutout.getCutoutPath();
|
|
}
|
|
}
|
|
|
|
@RequiresApi(33)
|
|
public static class Api33Impl {
|
|
private Api33Impl() {
|
|
}
|
|
|
|
public static DisplayCutout createDisplayCutout(android.graphics.Insets insets, Rect rect, Rect rect2, Rect rect3, Rect rect4, android.graphics.Insets insets2, Path path) {
|
|
return new DisplayCutout.Builder().setSafeInsets(insets).setBoundingRectLeft(rect).setBoundingRectTop(rect2).setBoundingRectRight(rect3).setBoundingRectBottom(rect4).setWaterfallInsets(insets2).setCutoutPath(path).build();
|
|
}
|
|
}
|
|
}
|