X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FMainActivity.java;h=e43970d229594a7a3377fd25b8ca6f14f6305219;hp=3f0a427a4ebca858bf471ed83837e04f4f6122fb;hb=558fbcc35918d8fb106a3f7e5cad7c70650dfb59;hpb=0fc2ddc465cd9b9314ae336e69535020a96a7fbc diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java index 3f0a427a..e43970d2 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java @@ -55,13 +55,12 @@ import net.ktnx.mobileledger.ui.profiles.ProfilesRecyclerViewAdapter; import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment; import net.ktnx.mobileledger.ui.transaction_list.TransactionListViewModel; import net.ktnx.mobileledger.utils.Colors; +import net.ktnx.mobileledger.utils.GetOptCallback; import net.ktnx.mobileledger.utils.LockHolder; -import net.ktnx.mobileledger.utils.Logger; import net.ktnx.mobileledger.utils.MLDB; import org.jetbrains.annotations.NotNull; -import java.lang.ref.WeakReference; import java.text.DateFormat; import java.util.ArrayList; import java.util.Date; @@ -91,7 +90,6 @@ public class MainActivity extends ProfileThemedActivity { private LinearLayout profileListContainer; private View profileListHeadArrow, profileListHeadMore, profileListHeadCancel; private FragmentManager fragmentManager; - private RetrieveTransactionsTask retrieveTransactionsTask; private View bTransactionListCancelDownload; private ProgressBar progressBar; private LinearLayout progressLayout; @@ -142,12 +140,15 @@ public class MainActivity extends ProfileThemedActivity { super.onDestroy(); } @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - debug("flow", "MainActivity.onCreate()"); + protected void setupProfileColors() { int profileColor = Data.retrieveCurrentThemeIdFromDb(); Colors.setupTheme(this, profileColor); Colors.profileThemeId = profileColor; + } + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + debug("flow", "MainActivity.onCreate()"); setContentView(R.layout.activity_main); fab = findViewById(R.id.btn_add_transaction); @@ -312,7 +313,7 @@ public class MainActivity extends ProfileThemedActivity { "WEB data last fetched at %1.3f and now is %1.3f. re-fetching", lastUpdate.getTime() / 1000f, now / 1000f)); - scheduleTransactionListRetrieval(); + Data.scheduleTransactionListRetrieval(this); } } private void createShortcuts(List list) { @@ -424,8 +425,6 @@ public class MainActivity extends ProfileThemedActivity { scheduleDataRetrievalIfStale(newValue); } private void profileThemeChanged() { - setupProfileColors(); - Bundle bundle = new Bundle(); onSaveInstanceState(bundle); // restart activity to reflect theme change @@ -450,11 +449,15 @@ public class MainActivity extends ProfileThemedActivity { startActivity(intent, args); } private void setupProfile() { - String profileUUID = MLDB.getOption(MLDB.OPT_PROFILE_UUID, null); - MobileLedgerProfile startupProfile; + MLDB.getOption(MLDB.OPT_PROFILE_UUID, null, new GetOptCallback(){ + @Override + protected void onResult(String profileUUID) { + MobileLedgerProfile startupProfile; - startupProfile = Data.getProfile(profileUUID); - Data.setCurrentProfile(startupProfile); + startupProfile = Data.getProfile(profileUUID); + Data.setCurrentProfile(startupProfile); + } + }); } public void fabNewTransactionClicked(View view) { Intent intent = new Intent(this, NewTransactionActivity.class); @@ -534,19 +537,13 @@ public class MainActivity extends ProfileThemedActivity { Data.lastUpdateDate.postValue(new Date(last_update)); } } - public void scheduleTransactionListRetrieval() { - if (Data.profile.get() == null) return; - - retrieveTransactionsTask = new RetrieveTransactionsTask(new WeakReference<>(this)); - - retrieveTransactionsTask.execute(); - } public void onStopTransactionRefreshClick(View view) { debug("interactive", "Cancelling transactions refresh"); - if (retrieveTransactionsTask != null) retrieveTransactionsTask.cancel(false); + Data.stopTransactionsRetrieval(); bTransactionListCancelDownload.setEnabled(false); } public void onRetrieveDone(String error) { + Data.transactionRetrievalDone(); progressLayout.setVisibility(View.GONE); if (error == null) {