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=7e9469a296524d706f8fa7adb3cc6e147458a269;hp=7386de0c5aca0482cd233fdaa72e0bf71a5bde2e;hb=32147725c77f956d37c62a7e50709ec3839586c6;hpb=3b365016042215dd73cb4600840aa8199b8322b9 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 7386de0c..7e9469a2 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 @@ -33,14 +33,13 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Log; -import android.view.ContextMenu; -import android.view.MenuItem; import android.view.View; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import net.ktnx.mobileledger.R; +import net.ktnx.mobileledger.async.RefreshDescriptionsTask; import net.ktnx.mobileledger.async.RetrieveTransactionsTask; import net.ktnx.mobileledger.model.Data; import net.ktnx.mobileledger.model.LedgerAccount; @@ -51,10 +50,10 @@ import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment; import net.ktnx.mobileledger.utils.MLDB; import java.lang.ref.WeakReference; +import java.text.DateFormat; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Date; -import java.util.List; import java.util.Observable; import java.util.Observer; @@ -161,37 +160,34 @@ public class MainActivity extends AppCompatActivity { } }); - Data.lastUpdateDate.addObserver(new Observer() { - @Override - public void update(Observable o, Object arg) { - Log.d("main", "lastUpdateDate changed"); - runOnUiThread(() -> { - Date date = Data.lastUpdateDate.get(); - if (date == null) { - tvLastUpdate.setText(R.string.transaction_last_update_never); + Data.lastUpdateDate.addObserver((o, arg) -> { + Log.d("main", "lastUpdateDate changed"); + runOnUiThread(() -> { + Date date = Data.lastUpdateDate.get(); + if (date == null) { + tvLastUpdate.setText(R.string.transaction_last_update_never); + } + else { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + tvLastUpdate.setText(date.toInstant().atZone(ZoneId.systemDefault()) + .format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); } else { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - tvLastUpdate.setText(date.toInstant().atZone(ZoneId.systemDefault()) - .format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); - } - else { - tvLastUpdate.setText(date.toLocaleString()); - } + tvLastUpdate.setText(DateFormat.getDateTimeInstance().format(date)); } - }); - } + } + }); }); } private void setupProfile() { - List profiles = MobileLedgerProfile.loadAllFromDB(); + Data.profiles.setList(MobileLedgerProfile.loadAllFromDB()); MobileLedgerProfile profile = null; String profileUUID = MLDB.get_option_value(MLDB.OPT_PROFILE_UUID, null); if (profileUUID == null) { - if (profiles.isEmpty()) { - profiles = MobileLedgerProfile.createInitialProfileList(); - profile = profiles.get(0); + if (Data.profiles.isEmpty()) { + Data.profiles.setList(MobileLedgerProfile.createInitialProfileList()); + profile = Data.profiles.get(0); SharedPreferences backend = getSharedPreferences("backend", MODE_PRIVATE); Log.d("profiles", "Migrating from preferences to profiles"); @@ -215,7 +211,7 @@ public class MainActivity extends AppCompatActivity { profile = MobileLedgerProfile.loadUUIDFromDB(profileUUID); } - if (profile == null) profile = profiles.get(0); + if (profile == null) profile = Data.profiles.get(0); if (profile == null) throw new AssertionError("profile must have a value"); @@ -245,6 +241,7 @@ public class MainActivity extends AppCompatActivity { public void nav_settings_clicked(View view) { Intent intent = new Intent(this, SettingsActivity.class); startActivity(intent); + drawer.closeDrawers(); } public void markDrawerItemCurrent(int id) { TextView item = drawer.findViewById(id); @@ -267,29 +264,6 @@ public class MainActivity extends AppCompatActivity { } } } - public void onOptionsMenuClicked(MenuItem menuItem) { - ContextMenu.ContextMenuInfo info = menuItem.getMenuInfo(); - switch (menuItem.getItemId()) { - case R.id.menu_acc_summary_cancel_selection: - if (accountSummaryFragment != null) - accountSummaryFragment.onCancelAccSelection(menuItem); - break; - case R.id.menu_acc_summary_confirm_selection: - if (accountSummaryFragment != null) - accountSummaryFragment.onConfirmAccSelection(menuItem); - break; - case R.id.menu_acc_summary_only_starred: - if (accountSummaryFragment != null) - accountSummaryFragment.onShowOnlyStarredClicked(menuItem); - break; - case R.id.menu_transaction_list_filter: - if (transactionListFragment != null) - transactionListFragment.onShowFilterClick(menuItem); - break; - default: - Log.e("menu", String.format("Menu item %d not handled", menuItem.getItemId())); - } - } public void onViewClicked(View view) { switch (view.getId()) { case R.id.clearAccountNameFilter: @@ -384,6 +358,8 @@ public class MainActivity extends AppCompatActivity { public void onRetrieveDone(boolean success) { progressLayout.setVisibility(View.GONE); updateLastUpdateTextFromDB(); + + new RefreshDescriptionsTask().execute(); } public void onRetrieveStart() { progressBar.setIndeterminate(true);