CrackMe.apk
Download file
package com.google.common.util.concurrent;
import com.google.common.base.Preconditions;
import com.google.errorprone.annotations.CheckReturnValue;
import java.lang.Thread;
import java.util.Locale;
import java.util.Objects;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicLong;
import javax.annotation.CheckForNull;
@ElementTypesAreNonnullByDefault
public final class ThreadFactoryBuilder {
@CheckForNull
private ThreadFactory backingThreadFactory = null;
@CheckForNull
private Boolean daemon = null;
@CheckForNull
private String nameFormat = null;
@CheckForNull
private Integer priority = null;
@CheckForNull
private Thread.UncaughtExceptionHandler uncaughtExceptionHandler = null;
public ThreadFactoryBuilder setNameFormat(String str) {
format(str, 0);
this.nameFormat = str;
return this;
}
public ThreadFactoryBuilder setDaemon(boolean z) {
this.daemon = Boolean.valueOf(z);
return this;
}
public ThreadFactoryBuilder setPriority(int i) {
boolean z = false;
Preconditions.checkArgument(i >= 1, "Thread priority (%s) must be >= %s", i, 1);
if (i <= 10) {
z = true;
}
Preconditions.checkArgument(z, "Thread priority (%s) must be <= %s", i, 10);
this.priority = Integer.valueOf(i);
return this;
}
public ThreadFactoryBuilder setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler uncaughtExceptionHandler2) {
this.uncaughtExceptionHandler = (Thread.UncaughtExceptionHandler) Preconditions.checkNotNull(uncaughtExceptionHandler2);
return this;
}
public ThreadFactoryBuilder setThreadFactory(ThreadFactory threadFactory) {
this.backingThreadFactory = (ThreadFactory) Preconditions.checkNotNull(threadFactory);
return this;
}
@CheckReturnValue
public ThreadFactory build() {
return doBuild(this);
}
private static ThreadFactory doBuild(ThreadFactoryBuilder threadFactoryBuilder) {
final String str = threadFactoryBuilder.nameFormat;
final Boolean bool = threadFactoryBuilder.daemon;
final Integer num = threadFactoryBuilder.priority;
final Thread.UncaughtExceptionHandler uncaughtExceptionHandler2 = threadFactoryBuilder.uncaughtExceptionHandler;
ThreadFactory threadFactory = threadFactoryBuilder.backingThreadFactory;
if (threadFactory == null) {
threadFactory = Executors.defaultThreadFactory();
}
final ThreadFactory threadFactory2 = threadFactory;
final AtomicLong atomicLong = str != null ? new AtomicLong(0) : null;
return new ThreadFactory() {
public Thread newThread(Runnable runnable) {
Thread newThread = threadFactory2.newThread(runnable);
String str = str;
if (str != null) {
AtomicLong atomicLong = atomicLong;
Objects.requireNonNull(atomicLong);
AtomicLong atomicLong2 = atomicLong;
newThread.setName(ThreadFactoryBuilder.format(str, Long.valueOf(atomicLong.getAndIncrement())));
}
Boolean bool = bool;
if (bool != null) {
newThread.setDaemon(bool.booleanValue());
}
Integer num = num;
if (num != null) {
newThread.setPriority(num.intValue());
}
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = uncaughtExceptionHandler2;
if (uncaughtExceptionHandler != null) {
newThread.setUncaughtExceptionHandler(uncaughtExceptionHandler);
}
return newThread;
}
};
}
/* access modifiers changed from: private */
public static String format(String str, Object... objArr) {
return String.format(Locale.ROOT, str, objArr);
}
}
Download file