123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- package com.liaobo.im.fragment;
- import android.content.Intent;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.InputFilter;
- import android.text.TextUtils;
- import android.text.TextWatcher;
- import android.util.Log;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import com.liaobo.im.R;
- import com.liaobo.im.bean.RoomMember;
- import com.liaobo.im.ui.base.EasyFragment;
- import com.liaobo.im.ui.me.redpacket.PayPasswordVerifyDialog;
- import com.liaobo.im.ui.message.ChatActivity;
- import com.liaobo.im.ui.message.MucChatActivity;
- import com.liaobo.im.ui.message.multi.GroupMoreFeaturesActivity;
- import com.liaobo.im.util.MoneyValueFilter;
- import com.liaobo.im.util.ToastUtil;
- import org.jivesoftware.smack.util.StringUtils;
- import java.util.Objects;
- import static android.app.Activity.RESULT_OK;
- public class MucSendPacketFragment extends EasyFragment {
- public static final int CODE_REQUEST_SELECT_RECEIVER = 1108;
- private static final String TAG = MucSendPacketFragment.class.getSimpleName();
- private int redPacketType;
- private String mReceiverId;
- private String mRoomId;
- private EditText editRedPacketCount, editMoneyAmount, edtWishText;
- private Button btnSendRedPacket;
- private TextView tvRedPacketHint,tvReceiver;
- @Override
- protected int inflateLayoutId() {
- return R.layout.fragment_muc_send_red_packet;
- }
- @Override
- protected void onActivityCreated(Bundle savedInstanceState, boolean createView) {
- if (createView){
- initView();
- }
- }
- public void setRoomId(String mRoomId) {
- this.mRoomId = mRoomId;
- }
- private void initView(){
- editMoneyAmount = findViewById(R.id.edit_money_amount);
- editMoneyAmount.setFilters(new InputFilter[] {new MoneyValueFilter()});
- edtWishText = findViewById(R.id.edt_wish_text);
- tvRedPacketHint = findViewById(R.id.tv_red_packet_hint);
- editRedPacketCount = findViewById(R.id.edit_red_packet_count);
- btnSendRedPacket = findViewById(R.id.btn_sendRedPacket);
- tvReceiver = findViewById(R.id.tv_receiver);
- btnSendRedPacket.setOnClickListener(view -> {
- sendRedPacket();
- });
- findViewById(R.id.rlt_select_receiver).setOnClickListener(view -> {
- Intent intent = new Intent(getContext(), GroupMoreFeaturesActivity.class);
- intent.putExtra("roomId",mRoomId);
- intent.putExtra("isSelectReceiver",true);
- startActivityForResult(intent,CODE_REQUEST_SELECT_RECEIVER);
- });
- if (redPacketType==1){
- tvRedPacketHint.setText(R.string.hint_money_all_same);
- }else {
- tvRedPacketHint.setText(R.string.hint_lucky_red_packet);
- }
- editMoneyAmount.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- }
- @Override
- public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- }
- @Override
- public void afterTextChanged(Editable editable) {
- checkMoney(editable.toString(),editRedPacketCount.getText().toString(),mReceiverId);
- }
- });
- editRedPacketCount.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- }
- @Override
- public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
- }
- @Override
- public void afterTextChanged(Editable editable) {
- checkMoney(editMoneyAmount.getText().toString(),editable.toString(),mReceiverId);
- }
- });
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == CODE_REQUEST_SELECT_RECEIVER){
- if (resultCode == RESULT_OK){
- RoomMember roomMember =(RoomMember) data.getSerializableExtra("selectReceiver");
- tvReceiver.setText(roomMember.getUserName());
- mReceiverId = roomMember.getUserId();
- }
- }
- }
- private void checkMoney(String moneyAmount, String memberCount, String receiverId) {
- double money = 0.00f;
- int count = 0;
- try {
- if (!TextUtils.isEmpty(moneyAmount)) {
- money = Double.parseDouble(moneyAmount);
- }
- if (!TextUtils.isEmpty(memberCount)) {
- count = Integer.parseInt(memberCount);
- }
- } catch (NumberFormatException e) {
- Log.i(TAG, Objects.requireNonNull(e.getMessage()));
- }
- if (TextUtils.isEmpty(receiverId)){
- if (money>0.01){
- setSendButtonStatus(true);
- }else {
- setSendButtonStatus(false);
- }
- }else {
- if (count <= 0 || money / count < 0.01) {
- setSendButtonStatus(false);
- } else {
- setSendButtonStatus(true);
- }
- }
- }
- private void setSendButtonStatus(boolean isNormal) {
- if (isNormal) {
- btnSendRedPacket.setSelected(false);
- btnSendRedPacket.setSelected(true);
- } else {
- btnSendRedPacket.setSelected(false);
- btnSendRedPacket.setSelected(true);
- }
- }
- private void sendRedPacket(){
- String money = editMoneyAmount.getText().toString();
- String count = editRedPacketCount.getText().toString();
- String textWish = edtWishText.getText().toString();
- if (eqData(money,count,textWish)){
- PayPasswordVerifyDialog dialog = new PayPasswordVerifyDialog(getContext());
- dialog.setAction(getString(R.string.chat_redpacket));
- dialog.setMoney(money);
- final String finalMoney = money;
- final String finalWords = textWish;
- final String finalCount = count;
- dialog.setOnInputFinishListener(password -> {
- final Bundle bundle = new Bundle();
- final Intent intent = new Intent(getContext(), MucChatActivity.class);
- bundle.putString("money", finalMoney);
- bundle.putString("count", finalCount);
- bundle.putString("words", finalWords);
- // 拼手气与普通红包位置对调,修改type
- // bundle.putString("type", (item + 1) + "");
- bundle.putString("type", redPacketType+"");
- bundle.putString("receiver",mReceiverId);
- bundle.putString("payPassword", password);
- int resultCode = ChatActivity. REQUEST_CODE_SEND_RED_PT;
- if (redPacketType==1){
- resultCode =ChatActivity. REQUEST_CODE_SEND_RED_PT;
- }else if (redPacketType ==2){
- resultCode =ChatActivity. REQUEST_CODE_SEND_RED_PSQ;
- }
- intent.putExtras(bundle);
- getActivity() .setResult(resultCode, intent);
- getActivity().finish();
- });
- dialog.show();
- }
- }
- private boolean eqData(String money, String count, String words) {
- if (StringUtils.isNullOrEmpty(money)) {
- ToastUtil.showToast(getContext(), getString(R.string.need_input_money));
- return false;
- } else if (Double.parseDouble(money) > 1800 || Double.parseDouble(money) <= 0) {
- ToastUtil.showToast(getContext(), getString(R.string.red_packet_range));
- return false;
- } else if (Double.parseDouble(money) > coreManager.getSelf().getBalance()) {
- ToastUtil.showToast(getContext(), getString(R.string.balance_not_enough));
- return false;
- } else if (StringUtils.isNullOrEmpty(count)) {
- ToastUtil.showToast(getContext(), getString(R.string.need_red_packet_count));
- return false;
- } else if (StringUtils.isNullOrEmpty(words)) {
- return false;
- }
- return true;
- }
- public void setRedPacketType(int type) {
- this.redPacketType = type;
- }
- }
|