/*
- * Copyright © 2020 Damyan Ivanov.
+ * Copyright © 2021 Damyan Ivanov.
* This file is part of MoLe.
* MoLe is free software: you can distribute it and/or modify it
* under the term of the GNU General Public License as published by
import androidx.recyclerview.widget.RecyclerView;
import net.ktnx.mobileledger.R;
-import net.ktnx.mobileledger.model.Data;
import net.ktnx.mobileledger.model.TransactionListItem;
import java.util.Observer;
this.vHeader = itemView.findViewById(R.id.last_update_container);
this.tvLastUpdate = itemView.findViewById(R.id.last_update_text);
}
- private void initLastUpdateObserver() {
- if (lastUpdateObserver != null)
- return;
-
- lastUpdateObserver = (o, arg) -> setLastUpdateText(Data.lastUpdateText.get());
-
- Data.lastUpdateText.addObserver(lastUpdateObserver);
- }
void setLastUpdateText(String text) {
tvLastUpdate.setText(text);
}
- private void dropLastUpdateObserver() {
- if (lastUpdateObserver == null)
- return;
-
- Data.lastUpdateText.deleteObserver(lastUpdateObserver);
- lastUpdateObserver = null;
- }
void setType(TransactionListItem.Type newType) {
if (newType == lastType)
return;
vHeader.setVisibility(View.GONE);
vTransaction.setVisibility(View.VISIBLE);
vDelimiter.setVisibility(View.GONE);
- dropLastUpdateObserver();
break;
case DELIMITER:
vHeader.setVisibility(View.GONE);
vTransaction.setVisibility(View.GONE);
vDelimiter.setVisibility(View.VISIBLE);
- dropLastUpdateObserver();
break;
case HEADER:
vHeader.setVisibility(View.VISIBLE);
vTransaction.setVisibility(View.GONE);
vDelimiter.setVisibility(View.GONE);
- initLastUpdateObserver();
break;
default:
throw new IllegalStateException("Unexpected value: " + newType);