alexandroid/decompiled/jadx/sources/androidx/sqlite/util/ProcessLock.java
KaKi87 a47fad5135 📦 Add decompiled Alexa 2.2.730155.0 (jadx, apktool, Hermes strings)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-07 00:04:16 +01:00

125 lines
6.5 KiB
Java

package androidx.sqlite.util;
import android.util.Log;
import androidx.annotation.RestrictTo;
import androidx.compose.runtime.BitVector$$ExternalSyntheticOutline0;
import com.dee.app.contacts.common.constants.Constants;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.SourceDebugExtension;
import org.aspectj.lang.JoinPoint;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
@Metadata(d1 = {"\u00002\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0003\b\u0007\u0018\u0000 \u00122\u00020\u0001:\u0001\u0012B!\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\b\u0010\u0004\u001a\u0004\u0018\u00010\u0005\u0012\u0006\u0010\u0006\u001a\u00020\u0007¢\u0006\u0004\b\b\u0010\tJ\u0010\u0010\u000f\u001a\u00020\u00102\b\b\u0002\u0010\u0006\u001a\u00020\u0007J\u0006\u0010\u0011\u001a\u00020\u0010R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\n\u001a\u0004\u0018\u00010\u0005X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u000b\u001a\u00020\fX\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\r\u001a\u0004\u0018\u00010\u000eX\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006\u0013"}, d2 = {"Landroidx/sqlite/util/ProcessLock;", "", "name", "", "lockDir", "Ljava/io/File;", "processLock", "", "<init>", "(Ljava/lang/String;Ljava/io/File;Z)V", "lockFile", "threadLock", "Ljava/util/concurrent/locks/Lock;", "lockChannel", "Ljava/nio/channels/FileChannel;", JoinPoint.SYNCHRONIZATION_LOCK, "", JoinPoint.SYNCHRONIZATION_UNLOCK, "Companion", "sqlite-framework_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
@SourceDebugExtension({"SMAP\nProcessLock.android.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ProcessLock.android.kt\nandroidx/sqlite/util/ProcessLock\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,97:1\n1#2:98\n*E\n"})
/* loaded from: classes14.dex */
public final class ProcessLock {
@NotNull
private static final String TAG = "SupportSQLiteLock";
@Nullable
private FileChannel lockChannel;
@Nullable
private final File lockFile;
private final boolean processLock;
@NotNull
private final Lock threadLock;
@NotNull
private static final Companion Companion = new Companion(null);
@NotNull
private static final Map<String, Lock> threadLocksMap = new HashMap();
public ProcessLock(@NotNull String str, @Nullable File file, boolean z) {
str.getClass();
this.processLock = z;
this.lockFile = file != null ? new File(file, BitVector$$ExternalSyntheticOutline0.m(str, ".lck")) : null;
this.threadLock = Companion.getThreadLock(str);
}
public static /* synthetic */ void lock$default(ProcessLock processLock, boolean z, int i, Object obj) {
if ((i & 1) != 0) {
z = processLock.processLock;
}
processLock.lock(z);
}
public final void lock(boolean processLock) {
this.threadLock.lock();
if (processLock) {
try {
File file = this.lockFile;
if (file == null) {
throw new IOException("No lock directory was provided.");
}
File parentFile = file.getParentFile();
if (parentFile != null) {
parentFile.mkdirs();
}
FileChannel channel = new FileOutputStream(this.lockFile).getChannel();
channel.lock();
this.lockChannel = channel;
} catch (IOException e) {
this.lockChannel = null;
Log.w(TAG, "Unable to grab file lock.", e);
}
}
}
public final void unlock() {
try {
FileChannel fileChannel = this.lockChannel;
if (fileChannel != null) {
fileChannel.close();
}
} catch (IOException unused) {
}
this.threadLock.unlock();
}
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
@Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010%\n\u0002\u0018\u0002\n\u0002\b\u0003\b\u0082\u0003\u0018\u00002\u00020\u0001B\t\b\u0002¢\u0006\u0004\b\u0002\u0010\u0003J\u0010\u0010\t\u001a\u00020\b2\u0006\u0010\n\u001a\u00020\u0005H\u0002R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082T¢\u0006\u0002\n\u0000R\u001a\u0010\u0006\u001a\u000e\u0012\u0004\u0012\u00020\u0005\u0012\u0004\u0012\u00020\b0\u0007X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u000b"}, d2 = {"Landroidx/sqlite/util/ProcessLock$Companion;", "", "<init>", "()V", Constants.LOG_TAG, "", "threadLocksMap", "", "Ljava/util/concurrent/locks/Lock;", "getThreadLock", "key", "sqlite-framework_release"}, k = 1, mv = {2, 0, 0}, xi = 48)
@SourceDebugExtension({"SMAP\nProcessLock.android.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ProcessLock.android.kt\nandroidx/sqlite/util/ProcessLock$Companion\n+ 2 Maps.kt\nkotlin/collections/MapsKt__MapsKt\n*L\n1#1,97:1\n381#2,7:98\n*S KotlinDebug\n*F\n+ 1 ProcessLock.android.kt\nandroidx/sqlite/util/ProcessLock$Companion\n*L\n93#1:98,7\n*E\n"})
public static final class Companion {
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
/* JADX INFO: Access modifiers changed from: private */
public final Lock getThreadLock(String key) {
Lock lock;
synchronized (ProcessLock.threadLocksMap) {
try {
Map map = ProcessLock.threadLocksMap;
Object obj = map.get(key);
if (obj == null) {
obj = new ReentrantLock();
map.put(key, obj);
}
lock = (Lock) obj;
} catch (Throwable th) {
throw th;
}
}
return lock;
}
private Companion() {
}
}
}