-
- }
- void setLastUpdateText(String text) {
- tvLastUpdate.setText(text);
- }
- private void initLastUpdateObserver() {
- if (lastUpdateObserver != null)
- return;
-
- lastUpdateObserver = (o, arg) -> setLastUpdateText(Data.lastAccountsUpdateText.get());
-
- Data.lastAccountsUpdateText.addObserver(lastUpdateObserver);
- }
- private void dropLastUpdateObserver() {
- if (lastUpdateObserver == null)
- return;
-
- Data.lastAccountsUpdateText.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);