display correct label and amount for tip unlocks in tx history
This commit is contained in:
parent
cf6d567193
commit
238f59ad71
6 changed files with 51 additions and 9 deletions
|
@ -168,6 +168,10 @@ public class RewardListAdapter extends RecyclerView.Adapter<RewardListAdapter.Vi
|
|||
return;
|
||||
}
|
||||
|
||||
if (vh.inputCustomCode != null && !vh.inputCustomCode.hasFocus()) {
|
||||
vh.inputCustomCode.requestFocus();
|
||||
}
|
||||
|
||||
if (clickListener != null) {
|
||||
clickListener.onRewardClicked(reward, vh.loading);
|
||||
}
|
||||
|
|
|
@ -72,7 +72,9 @@ public class TransactionListAdapter extends RecyclerView.Adapter<TransactionList
|
|||
vh.claimView.setText(item.getClaim());
|
||||
vh.feeView.setText(context.getString(R.string.tx_list_fee, TX_LIST_AMOUNT_FORMAT.format(item.getFee().doubleValue())));
|
||||
vh.txidLinkView.setText(item.getTxid().substring(0, 7));
|
||||
vh.dateView.setText(TX_LIST_DATE_FORMAT.format(item.getTxDate()));
|
||||
vh.dateView.setVisibility(item.getConfirmations() > 0 ? View.VISIBLE : View.GONE);
|
||||
vh.dateView.setText(item.getConfirmations() > 0 ? TX_LIST_DATE_FORMAT.format(item.getTxDate()) : null);
|
||||
vh.pendingView.setVisibility(item.getConfirmations() == 0 ? View.VISIBLE : View.GONE);
|
||||
|
||||
vh.infoFeeContainer.setVisibility(!Helper.isNullOrEmpty(item.getClaim()) || Math.abs(item.getFee().doubleValue()) > 0 ?
|
||||
View.VISIBLE : View.GONE);
|
||||
|
@ -111,6 +113,7 @@ public class TransactionListAdapter extends RecyclerView.Adapter<TransactionList
|
|||
protected TextView feeView;
|
||||
protected TextView txidLinkView;
|
||||
protected TextView dateView;
|
||||
protected TextView pendingView;
|
||||
protected View infoFeeContainer;
|
||||
|
||||
public ViewHolder(View v) {
|
||||
|
@ -121,6 +124,7 @@ public class TransactionListAdapter extends RecyclerView.Adapter<TransactionList
|
|||
feeView = v.findViewById(R.id.transaction_fee);
|
||||
txidLinkView = v.findViewById(R.id.transaction_id_link);
|
||||
dateView = v.findViewById(R.id.transaction_date);
|
||||
pendingView = v.findViewById(R.id.transaction_pending_text);
|
||||
infoFeeContainer = v.findViewById(R.id.transaction_info_fee_container);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,9 @@ import org.json.JSONException;
|
|||
import org.json.JSONObject;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import io.lbry.browser.R;
|
||||
import io.lbry.browser.exceptions.LbryUriException;
|
||||
|
@ -53,13 +55,22 @@ public class Transaction {
|
|||
|
||||
int descStringId = -1;
|
||||
TransactionInfo info = null;
|
||||
List<TransactionInfo> infos = new ArrayList<>();
|
||||
try {
|
||||
if (jsonObject.has("abandon_info")) {
|
||||
JSONArray array = jsonObject.getJSONArray("abandon_info");
|
||||
if (array.length() > 0) {
|
||||
info = TransactionInfo.fromJSONObject(array.getJSONObject(0));
|
||||
descStringId = R.string.abandon;
|
||||
transaction.setAbandonInfo(info);
|
||||
if (array.length() == 1) {
|
||||
info = TransactionInfo.fromJSONObject(array.getJSONObject(0));
|
||||
descStringId = info.getBalanceDelta().doubleValue() == info.getAmount().doubleValue() ? R.string.unlock : R.string.abandon;
|
||||
transaction.setAbandonInfo(info);
|
||||
} else {
|
||||
// multiple abandon infos (txo_spend unlock tip)
|
||||
descStringId = R.string.unlock;
|
||||
for (int i = 0; i < array.length(); i++) {
|
||||
infos.add(TransactionInfo.fromJSONObject(array.getJSONObject(i)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (info == null && jsonObject.has("claim_info")) {
|
||||
|
@ -94,8 +105,18 @@ public class Transaction {
|
|||
// pass
|
||||
}
|
||||
|
||||
if (transaction.getValue().doubleValue() == 0 && info != null && info.getBalanceDelta().doubleValue() != 0) {
|
||||
transaction.setValue(info.getBalanceDelta());
|
||||
|
||||
|
||||
if (transaction.getValue().doubleValue() == 0) {
|
||||
if (info != null && info.getBalanceDelta().doubleValue() != 0) {
|
||||
transaction.setValue(info.getBalanceDelta());
|
||||
} else if (infos.size() > 0) {
|
||||
BigDecimal total = new BigDecimal(0);
|
||||
for (TransactionInfo txInfo : infos) {
|
||||
total = total.add(txInfo.getAmount());
|
||||
}
|
||||
transaction.setValue(total);
|
||||
}
|
||||
}
|
||||
|
||||
if (descStringId == -1) {
|
||||
|
|
|
@ -20,7 +20,7 @@ public class WalletBalanceTask extends AsyncTask<Void, Void, WalletBalance> {
|
|||
}
|
||||
|
||||
protected WalletBalance doInBackground(Void... params) {
|
||||
WalletBalance balance = new WalletBalance();
|
||||
WalletBalance balance;
|
||||
try {
|
||||
JSONObject json = (JSONObject) Lbry.genericApiCall(Lbry.METHOD_WALLET_BALANCE);
|
||||
balance = WalletBalance.fromJSONObject(json);
|
||||
|
|
|
@ -28,7 +28,8 @@
|
|||
android:fontFamily="@font/inter"
|
||||
android:textSize="14sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
android:layout_height="wrap_content"
|
||||
android:imeOptions="actionNext" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<RelativeLayout
|
||||
|
|
|
@ -102,6 +102,18 @@
|
|||
android:singleLine="true"
|
||||
android:textColor="@color/lightGrey"
|
||||
android:textSize="12sp"
|
||||
android:textFontWeight="300" />
|
||||
android:textFontWeight="300"
|
||||
android:visibility="gone" />
|
||||
<TextView
|
||||
android:id="@+id/transaction_pending_text"
|
||||
android:gravity="right"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/inter"
|
||||
android:text="@string/pending"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="italic"
|
||||
android:textFontWeight="300"
|
||||
android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
Loading…
Reference in a new issue