/*
- * 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
package net.ktnx.mobileledger.ui.transaction_list;
-import android.text.format.DateUtils;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
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.lastUpdate.get());
-
- Data.lastUpdate.addObserver(lastUpdateObserver);
- }
- 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 dropLastUpdateObserver() {
- if (lastUpdateObserver == null)
- return;
-
- Data.lastUpdate.deleteObserver(lastUpdateObserver);
- lastUpdateObserver = null;
+ void setLastUpdateText(String text) {
+ tvLastUpdate.setText(text);
}
void setType(TransactionListItem.Type newType) {
if (newType == lastType)
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);