]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/SplashActivity.java
more pronounced day/month delimiters in the transaction list
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / SplashActivity.java
index 2a238adc61333e826c5c5340034e26c311a11f39..3fe204834bb572c05e7e77a8caf5a1687f15699f 100644 (file)
 package net.ktnx.mobileledger.ui.activity;
 
 import android.content.Intent;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.Looper;
 
 import androidx.annotation.Nullable;
 
 import net.ktnx.mobileledger.R;
-import net.ktnx.mobileledger.model.Data;
-import net.ktnx.mobileledger.model.MobileLedgerProfile;
+import net.ktnx.mobileledger.db.DB;
 import net.ktnx.mobileledger.utils.Logger;
-import net.ktnx.mobileledger.utils.MLDB;
-import net.ktnx.mobileledger.utils.MobileLedgerDatabase;
+
+import java.util.Locale;
 
 public class SplashActivity extends CrashReportingActivity {
     private static final long keepActiveForMS = 400;
@@ -42,8 +41,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() {
@@ -53,8 +52,9 @@ public class SplashActivity extends CrashReportingActivity {
 
         startupTime = System.currentTimeMillis();
 
-        AsyncTask<Void, Void, Void> dbInitTask = new DatabaseInitTask();
-        dbInitTask.execute();
+        DatabaseInitThread dbInitThread = new DatabaseInitThread();
+        Logger.debug("splash", "starting dbInit task");
+        dbInitThread.start();
     }
     @Override
     protected void onPause() {
@@ -79,8 +79,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(Looper.getMainLooper()).postDelayed(this::startMainActivity, delay);
         }
     }
     private void startMainActivity() {
@@ -97,22 +100,14 @@ public class SplashActivity extends CrashReportingActivity {
             finish();
         }
     }
-    private static class DatabaseInitTask extends AsyncTask<Void, Void, Void> {
+    private static class DatabaseInitThread extends Thread {
         @Override
-        protected Void doInBackground(Void... voids) {
-            MobileLedgerProfile.loadAllFromDB(0);
+        public void run() {
+            long ignored = DB.get()
+                             .getProfileDAO()
+                             .getProfileCountSync();
 
-            long profileId = MLDB.getLongOption(MLDB.OPT_PROFILE_ID, 0);
-            MobileLedgerProfile startupProfile = Data.getProfile(profileId);
-            if (startupProfile != null)
-                Data.postCurrentProfile(startupProfile);
-            return null;
-        }
-        @Override
-        protected void onPostExecute(Void aVoid) {
-            Logger.debug("splash", "DatabaseInitTask::onPostExecute()");
-            super.onPostExecute(aVoid);
-            MobileLedgerDatabase.initComplete.setValue(true);
+            DB.initComplete.postValue(true);
         }
     }
 }