Files
SliceBeam/app/src/main/java/ru/ytkab0bp/slicebeam/boot/TrueTimeTask.java
T
2025-04-06 20:02:28 +03:00

76 lines
2.5 KiB
Java

package ru.ytkab0bp.slicebeam.boot;
import androidx.annotation.NonNull;
import com.instacart.truetime.TrueTimeEventListener;
import com.instacart.truetime.time.TrueTimeImpl;
import com.instacart.truetime.time.TrueTimeParameters;
import java.net.InetAddress;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import kotlinx.coroutines.Dispatchers;
import ru.ytkab0bp.slicebeam.SliceBeam;
public class TrueTimeTask extends BootTask {
public TrueTimeTask() {
super(() -> {
CountDownLatch latch = new CountDownLatch(1);
SliceBeam.TRUE_TIME = new TrueTimeImpl(new TrueTimeParameters.Builder().buildParams(), Dispatchers.getIO(), new TrueTimeEventListener() {
@Override
public void initialize(@NonNull TrueTimeParameters trueTimeParameters) {}
@Override
public void initializeSuccess(@NonNull long[] longs) {
latch.countDown();
}
@Override
public void initializeFailed(@NonNull Exception e) {}
@Override
public void nextInitializeIn(long l) {}
@Override
public void resolvedNtpHostToIPs(@NonNull String s, @NonNull List<? extends InetAddress> list) {}
@Override
public void lastSntpRequestAttempt(@NonNull InetAddress inetAddress) {}
@Override
public void sntpRequestFailed(@NonNull Exception e) {}
@Override
public void syncDispatcherException(@NonNull Throwable throwable) {}
@Override
public void sntpRequest(@NonNull InetAddress inetAddress) {}
@Override
public void sntpRequestSuccessful(@NonNull InetAddress inetAddress) {}
@Override
public void sntpRequestFailed(@NonNull InetAddress inetAddress, @NonNull Exception e) {}
@Override
public void storingTrueTime(@NonNull long[] longs) {}
@Override
public void returningTrueTime(@NonNull Date date) {}
@Override
public void returningDeviceTime() {}
});
SliceBeam.TRUE_TIME.sync();
try {
latch.await(300, TimeUnit.MILLISECONDS);
} catch (InterruptedException ignored) {}
});
onWorker();
nonCritical = true;
}
}