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;
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;
}
});
- 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");
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");
public void onRetrieveDone(boolean success) {
progressLayout.setVisibility(View.GONE);
updateLastUpdateTextFromDB();
+
+ new RefreshDescriptionsTask().execute();
}
public void onRetrieveStart() {
progressBar.setIndeterminate(true);