X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FSplashActivity.java;h=a31e7d4cce726f651f853ed3e50d9b56fcdec16f;hb=b668c61f3c8968c51033e7d82a08993b57b098e0;hp=495a328f9a2aef6c30c7231db3333e6c3462806f;hpb=5df10dc0b58df4d4be4e9ab34f1e0f477ca46766;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/SplashActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/SplashActivity.java index 495a328f..a31e7d4c 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/SplashActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/SplashActivity.java @@ -18,7 +18,6 @@ package net.ktnx.mobileledger.ui.activity; import android.content.Intent; -import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -27,7 +26,8 @@ import androidx.annotation.Nullable; import net.ktnx.mobileledger.R; import net.ktnx.mobileledger.db.DB; import net.ktnx.mobileledger.utils.Logger; -import net.ktnx.mobileledger.utils.MobileLedgerDatabase; + +import java.util.Locale; public class SplashActivity extends CrashReportingActivity { private static final long keepActiveForMS = 400; @@ -40,8 +40,8 @@ public class SplashActivity extends CrashReportingActivity { setContentView(R.layout.splash_activity_layout); Logger.debug("splash", "onCreate()"); - MobileLedgerDatabase.initComplete.setValue(false); - MobileLedgerDatabase.initComplete.observe(this, this::onDbInitDoneChanged); + DB.initComplete.setValue(false); + DB.initComplete.observe(this, this::onDbInitDoneChanged); } @Override protected void onStart() { @@ -51,9 +51,9 @@ public class SplashActivity extends CrashReportingActivity { startupTime = System.currentTimeMillis(); - AsyncTask dbInitTask = new DatabaseInitTask(); + DatabaseInitThread dbInitThread = new DatabaseInitThread(); Logger.debug("splash", "starting dbInit task"); - dbInitTask.execute(); + dbInitThread.start(); } @Override protected void onPause() { @@ -78,8 +78,11 @@ public class SplashActivity extends CrashReportingActivity { if (now > startupTime + keepActiveForMS) startMainActivity(); else { - new Handler().postDelayed(this::startMainActivity, - keepActiveForMS - (now - startupTime)); + final long delay = keepActiveForMS - (now - startupTime); + Logger.debug("splash", + String.format(Locale.ROOT, "Scheduling main activity start in %d milliseconds", + delay)); + new Handler().postDelayed(this::startMainActivity, delay); } } private void startMainActivity() { @@ -96,18 +99,14 @@ public class SplashActivity extends CrashReportingActivity { finish(); } } - private static class DatabaseInitTask extends AsyncTask { + private static class DatabaseInitThread extends Thread { @Override - protected Void doInBackground(Void... voids) { - long ignored = DB.get().getProfileDAO().getProfileCountSync(); + public void run() { + long ignored = DB.get() + .getProfileDAO() + .getProfileCountSync(); - return null; - } - @Override - protected void onPostExecute(Void aVoid) { - Logger.debug("splash", "DatabaseInitTask::onPostExecute()"); - super.onPostExecute(aVoid); - MobileLedgerDatabase.initComplete.setValue(true); + DB.initComplete.postValue(true); } } }