+ mViewPager = findViewById(R.id.root_frame);
+ mViewPager.setAdapter(mSectionsPagerAdapter);
+ mViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener(){
+ @Override
+ public void onPageSelected(int position) {
+ switch (position) {
+ case 0:
+ markDrawerItemCurrent(R.id.nav_account_summary);
+ break;
+ case 1:
+ markDrawerItemCurrent(R.id.nav_latest_transactions);
+ break;
+ default:
+ Log.e("MainActivity", String.format("Unexpected page index %d", position));
+ }
+
+ super.onPageSelected(position);
+ }
+ });
+
+ 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);
+ }
+ 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());
+ }
+ }
+ });
+ }
+ });
+
+ Data.ledgerTitle.addObserver(new Observer() {
+ @Override
+ public void update(Observable o, Object arg) {
+ runOnUiThread(() -> {
+ String title = Data.ledgerTitle.get();
+ if (title == null) toolbar.setSubtitle("");
+ else toolbar.setSubtitle(title);
+ });
+ }
+ });