-
- }
- void setLastUpdateText(long lastUpdate) {
- final int formatFlags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR |
- DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_NUMERIC_DATE;
- tvLastUpdate.setText((lastUpdate == 0) ? "----" : DateUtils.formatDateTime(
- tvLastUpdate.getContext(), lastUpdate, formatFlags));
- }
- private void initLastUpdateObserver() {
- if (lastUpdateObserver != null)
- return;
-
- lastUpdateObserver = (o, arg) -> setLastUpdateText(Data.lastUpdate.get());
-
- Data.lastUpdate.addObserver(lastUpdateObserver);
- }
- private void dropLastUpdateObserver() {
- if (lastUpdateObserver == null)
- return;
-
- Data.lastUpdate.deleteObserver(lastUpdateObserver);
- lastUpdateObserver = null;
- }
- private void setType(AccountListItem.Type newType) {
- if (newType == lastType)
- return;
-
- switch (newType) {
- case ACCOUNT:
- row.setLongClickable(true);
- amountExpanderContainer.setVisibility(View.VISIBLE);
- vAccountNameLayout.setVisibility(View.VISIBLE);
- tvAccountAmounts.setVisibility(View.VISIBLE);
- lLastUpdate.setVisibility(View.GONE);
- dropLastUpdateObserver();
- break;
- case HEADER:
- row.setLongClickable(false);
- tvAccountAmounts.setVisibility(View.GONE);
- amountExpanderContainer.setVisibility(View.GONE);
- vAccountNameLayout.setVisibility(View.GONE);
- lLastUpdate.setVisibility(View.VISIBLE);
- initLastUpdateObserver();
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + newType);