]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
proper date/time formatting
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / MainActivity.java
index 7386de0c5aca0482cd233fdaa72e0bf71a5bde2e..760f6aacfbbdfffda4d69ede20cf59dcd4a5f9be 100644 (file)
@@ -41,6 +41,7 @@ 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 +52,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 +162,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<MobileLedgerProfile> 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 +213,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");
 
@@ -384,6 +382,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);