bug fix
This commit is contained in:
@@ -68,7 +68,6 @@ import com.yizhuan.erban.home.fragment.CommunityNoticeAct;
|
||||
import com.yizhuan.erban.home.fragment.ContactsListFragment;
|
||||
import com.yizhuan.erban.home.fragment.GameHomeFragment;
|
||||
import com.yizhuan.erban.home.fragment.MeFragment;
|
||||
import com.yizhuan.erban.home.fragment.RankingFragment;
|
||||
import com.yizhuan.erban.home.presenter.MainPresenter;
|
||||
import com.yizhuan.erban.home.view.IMainView;
|
||||
import com.yizhuan.erban.luckymoney.viewholder.LuckyMoneyMsgViewHolder;
|
||||
@@ -206,7 +205,7 @@ import static com.yizhuan.xchat_android_core.Constants.SHOW_CAR_GUIDE;
|
||||
*/
|
||||
@CreatePresenter(MainPresenter.class)
|
||||
public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
implements MainTabLayout.OnTabClickListener, IMainView , View.OnClickListener {
|
||||
implements MainTabLayout.OnTabClickListener, IMainView, View.OnClickListener {
|
||||
|
||||
private static final String TAG = "MainActivity";
|
||||
|
||||
@@ -224,7 +223,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
private FloatingLiveMiniView floatingLiveMiniView;
|
||||
|
||||
private MainTabLayout mMainTabLayout;
|
||||
private int mCurrentMainPosition = MainTabLayout.MAIN_TAB_POS_GAME;
|
||||
private int mCurrentMainPosition = MainTabLayout.MAIN_TAB_POS_HOME;
|
||||
/**
|
||||
* 是否需要预加载home,by lvzebiao v3.1.2
|
||||
* 因为首页标签添加帧动画,防止,第一次点击标签过于卡顿
|
||||
@@ -338,7 +337,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
if (reason == null) return;
|
||||
//加入黑名单,踢出房间回调
|
||||
ChatRoomKickOutEvent.ChatRoomKickOutReason reasonReason = reason.getReason();
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.USER_KICKED_EVENT,"用户被踢");
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.USER_KICKED_EVENT, "用户被踢");
|
||||
if (reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.BE_BLACKLISTED
|
||||
|| reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.KICK_OUT_BY_MANAGER
|
||||
|| reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.KICK_OUT_BY_CONFLICT_LOGIN
|
||||
@@ -351,7 +350,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
updateRoomState();
|
||||
} else if (event == RoomEvent.MY_SELF_KICK_OUT_ROOM_BY_S_ADMIN) {
|
||||
toast(R.string.kick_out_room_by_s_admin);
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.USER_KICKED_EVENT,"用户被踢");
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.USER_KICKED_EVENT, "用户被踢");
|
||||
getMvpPresenter().exitRoom();
|
||||
}
|
||||
}
|
||||
@@ -564,7 +563,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
startTime = System.currentTimeMillis();
|
||||
} else if (intent.hasExtra("gameTab") && intent.getBooleanExtra("gameTab", false)) {
|
||||
if (mMainTabLayout != null) {
|
||||
mMainTabLayout.select(MainTabLayout.MAIN_TAB_POS_GAME);
|
||||
mMainTabLayout.select(MainTabLayout.MAIN_TAB_POS_HOME);
|
||||
}
|
||||
} else if (intent.hasExtra(MSG_TAB) && intent.getBooleanExtra(MSG_TAB, false)) {
|
||||
if (mMainTabLayout != null) {
|
||||
@@ -850,7 +849,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
@Override
|
||||
public void accept(UserInfo userInfo) throws Exception {
|
||||
if (userInfo != null) {
|
||||
displayAvatarLayout(userInfo.getAvatar(),userInfo.getNick(),userInfo.getErbanNo());
|
||||
displayAvatarLayout(userInfo.getAvatar(), userInfo.getNick(), userInfo.getErbanNo());
|
||||
} else {
|
||||
NimUserInfo nimUserInfo = NimUserInfoCache.getInstance().getUserInfo(roomInfo.getUid() + "");
|
||||
if (nimUserInfo == null) {
|
||||
@@ -858,12 +857,12 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
@Override
|
||||
public void onResult(int i, NimUserInfo nimUserInfo, Throwable throwable) {
|
||||
if (nimUserInfo != null) {
|
||||
displayAvatarLayout(nimUserInfo.getAvatar(),userInfo.getNick(),userInfo.getUid());
|
||||
displayAvatarLayout(nimUserInfo.getAvatar(), userInfo.getNick(), userInfo.getUid());
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
displayAvatarLayout(nimUserInfo.getAvatar(),userInfo.getNick(),userInfo.getUid());
|
||||
displayAvatarLayout(nimUserInfo.getAvatar(), userInfo.getNick(), userInfo.getUid());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -892,7 +891,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
avatarLayout.clearAnimation();
|
||||
avatarLayout.setVisibility(View.VISIBLE);
|
||||
tvName.setText(nickName);
|
||||
tvId.setText("ID:"+uid);
|
||||
tvId.setText("ID:" + uid);
|
||||
userLivingView.start();
|
||||
stopRoomMinAnim();
|
||||
startRoomMinAnim();
|
||||
@@ -907,34 +906,19 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
@SuppressLint("RestrictedApi")
|
||||
@Override
|
||||
public void onTabClick(int position) {
|
||||
List<Fragment> fragments = getSupportFragmentManager().getFragments();
|
||||
switchFragment(position);
|
||||
if (position == MainTabLayout.MAIN_TAB_POS_HOME) {
|
||||
//显示引导
|
||||
// FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
// Fragment mainFragment = fragmentManager.findFragmentByTag(MainFragment.TAG);
|
||||
// if (mainFragment != null && mainFragment instanceof MainFragment) {
|
||||
// ((MainFragment) mainFragment).handleGuide();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
private void switchFragment(int position) {
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
//Fragment mainFragment = fragmentManager.findFragmentByTag(MainFragment.TAG);
|
||||
Fragment attentionFragment = fragmentManager.findFragmentByTag(SquareFragment.TAG);
|
||||
// Fragment msgFragment = fragmentManager.findFragmentByTag(MsgFragment.TAG);
|
||||
Fragment squareFragment = fragmentManager.findFragmentByTag(SquareFragment.TAG);
|
||||
Fragment contactFragment = fragmentManager.findFragmentByTag(ContactsListFragment.TAG);
|
||||
Fragment meFragment = fragmentManager.findFragmentByTag(MeFragment.TAG);
|
||||
Fragment rankingFragment = fragmentManager.findFragmentByTag(RankingFragment.TAG);
|
||||
Fragment gameFragment = fragmentManager.findFragmentByTag(GameHomeFragment.TAG);
|
||||
//先隐藏所有的
|
||||
// if (mainFragment != null && mainFragment.isVisible()) {
|
||||
// fragmentTransaction.hide(mainFragment);
|
||||
// }
|
||||
if (attentionFragment != null && attentionFragment.isVisible()) {
|
||||
fragmentTransaction.hide(attentionFragment);
|
||||
Fragment homeFragment = fragmentManager.findFragmentByTag(GameHomeFragment.TAG);
|
||||
|
||||
if (squareFragment != null && squareFragment.isVisible()) {
|
||||
fragmentTransaction.hide(squareFragment);
|
||||
}
|
||||
if (contactFragment != null && contactFragment.isVisible()) {
|
||||
fragmentTransaction.hide(contactFragment);
|
||||
@@ -942,35 +926,22 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
if (meFragment != null && meFragment.isVisible()) {
|
||||
fragmentTransaction.hide(meFragment);
|
||||
}
|
||||
if (rankingFragment != null && rankingFragment.isVisible()) {
|
||||
fragmentTransaction.hide(rankingFragment);
|
||||
if (homeFragment != null && homeFragment.isVisible()) {
|
||||
fragmentTransaction.hide(homeFragment);
|
||||
}
|
||||
if (gameFragment != null && gameFragment.isVisible()) {
|
||||
fragmentTransaction.hide(gameFragment);
|
||||
}
|
||||
//预加载首页
|
||||
// if (PRELOAD_HOME && mainFragment == null) {
|
||||
// mainFragment = new MainFragment();
|
||||
// fragmentTransaction.add(R.id.main_fragment, mainFragment, MainFragment.TAG);
|
||||
// }
|
||||
if (position == MainTabLayout.MAIN_TAB_POS_GAME) {
|
||||
if (gameFragment == null) {
|
||||
gameFragment = new GameHomeFragment();
|
||||
fragmentTransaction.add(R.id.main_fragment, gameFragment, GameHomeFragment.TAG);
|
||||
|
||||
if (position == MainTabLayout.MAIN_TAB_POS_HOME) {
|
||||
if (homeFragment == null) {
|
||||
homeFragment = new GameHomeFragment();
|
||||
fragmentTransaction.add(R.id.main_fragment, homeFragment, GameHomeFragment.TAG);
|
||||
}
|
||||
fragmentTransaction.show(gameFragment);
|
||||
} else if (position == MainTabLayout.MAIN_TAB_POS_HOME) {
|
||||
// if (mainFragment == null) {
|
||||
// mainFragment = new MainFragment();
|
||||
// fragmentTransaction.add(R.id.main_fragment, mainFragment, MainFragment.TAG);
|
||||
// }
|
||||
// fragmentTransaction.show(mainFragment);
|
||||
} else if (position == MainTabLayout.MAIN_TAB_POS_ATTENTION) {
|
||||
if (attentionFragment == null) {
|
||||
attentionFragment = new SquareFragment();
|
||||
fragmentTransaction.add(R.id.main_fragment, attentionFragment, SquareFragment.TAG);
|
||||
fragmentTransaction.show(homeFragment);
|
||||
} else if (position == MainTabLayout.MAIN_TAB_POS_SQUARE) {
|
||||
if (squareFragment == null) {
|
||||
squareFragment = new SquareFragment();
|
||||
fragmentTransaction.add(R.id.main_fragment, squareFragment, SquareFragment.TAG);
|
||||
}
|
||||
fragmentTransaction.show(attentionFragment);
|
||||
fragmentTransaction.show(squareFragment);
|
||||
} else if (position == MainTabLayout.MAIN_TAB_POS_MSG) {
|
||||
if (contactFragment == null) {
|
||||
contactFragment = new ContactsListFragment();
|
||||
@@ -984,8 +955,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
}
|
||||
fragmentTransaction.show(meFragment);
|
||||
}
|
||||
if (!isDestroyed())
|
||||
fragmentTransaction.commitAllowingStateLoss();
|
||||
if (!isDestroyed()) fragmentTransaction.commitAllowingStateLoss();
|
||||
mCurrentMainPosition = position;
|
||||
}
|
||||
|
||||
@@ -1069,7 +1039,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
public void onMarketVerifyUpdateEvent(MarketVerifyUpdateEvent event) {
|
||||
//审核包隐藏tab
|
||||
if (MarketVerifyModel.get().isMarketChecking()) {
|
||||
mMainTabLayout.showOrHideTab(MainTabLayout.MAIN_TAB_POS_ATTENTION, View.GONE);
|
||||
mMainTabLayout.showOrHideTab(MainTabLayout.MAIN_TAB_POS_SQUARE, View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1097,14 +1067,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
GuideActivity.start(this);
|
||||
}
|
||||
|
||||
public boolean isShowGameTab() {
|
||||
return mCurrentMainPosition == MainTabLayout.MAIN_TAB_POS_GAME;
|
||||
}
|
||||
|
||||
public boolean isShowMainTab() {
|
||||
return mCurrentMainPosition == MainTabLayout.MAIN_TAB_POS_HOME;
|
||||
}
|
||||
|
||||
public boolean isShowMsgTab() {
|
||||
return mCurrentMainPosition == MainTabLayout.MAIN_TAB_POS_MSG;
|
||||
}
|
||||
@@ -1259,14 +1221,14 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()){
|
||||
switch (v.getId()) {
|
||||
case R.id.avatar_image:
|
||||
case R.id.ll_drag_info:
|
||||
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo != null) {
|
||||
if (AvRoomDataManager.get().isParty()) {
|
||||
AVRoomActivity.start(MainActivity.this, true);
|
||||
}else {
|
||||
} else {
|
||||
AVRoomActivity.start(MainActivity.this, roomInfo.getUid());
|
||||
}
|
||||
} else {
|
||||
|
@@ -64,7 +64,7 @@ public class BillGiftExpendActivity extends BillBaseActivity<ActivityBillsGiftBi
|
||||
private void onLoadGoldNum() {
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (null != walletInfo) {
|
||||
mGoldNum.setText(getString(R.string.bill_gift_gold_num, walletInfo.getGoldNum()));
|
||||
mGoldNum.setText(getString(R.string.bill_gift_gold_num, walletInfo.getDiamondNum()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -109,7 +109,7 @@ public class BillGiftInComeActivity extends BillBaseActivity<ActivityBillsGiftBi
|
||||
private void onLoadGoldNum() {
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (null != walletInfo) {
|
||||
mGoldNum.setText(getString(R.string.bill_gift_gold_num, walletInfo.getGoldNum()));
|
||||
mGoldNum.setText(getString(R.string.bill_gift_gold_num, walletInfo.getDiamondNum()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -527,7 +527,7 @@ public class MonsterHuntingActivity extends BaseBindingActivity<ActivityMonsterH
|
||||
|
||||
|
||||
private void updateMyGoldInternal(WalletInfo walletInfo) {
|
||||
mGoldNum = walletInfo.getGoldNum();
|
||||
mGoldNum = walletInfo.getDiamondNum();
|
||||
mBinding.tvGold.setText(this.getResources().getString(R.string.gold_num_text, mGoldNum));
|
||||
}
|
||||
|
||||
|
@@ -100,7 +100,7 @@ public class ExchangeGoldActivity extends BaseActivity {
|
||||
int result = (int) (value * SharedPreferenceUtils.getExchangeGoldRate());
|
||||
exchangeJewNumber.setHint(String.format("请输入兑换的钻石数量 (最多可兑换%1$s)", result + ""));
|
||||
jewNumber.setText(getString(R.string.jewel_format, FormatUtils.formatBigDecimal(walletNum.getDiamondNum())));
|
||||
goldNumber.setText(getString(R.string.gold_format, FormatUtils.formatBigDecimal(walletNum.getGoldNum())));
|
||||
goldNumber.setText(getString(R.string.gold_format, FormatUtils.formatBigDecimal(walletNum.getDiamondNum())));
|
||||
exchangeGoldNumber.setText("0金币");
|
||||
// tvExchangeHammarNum.setText("0锤子");
|
||||
changeResultNumStyle();
|
||||
|
@@ -587,7 +587,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene
|
||||
if (goldWalletInfo == null) {
|
||||
return;
|
||||
}
|
||||
String goldNumText = getContext().getString(R.string.gold_num_text, goldWalletInfo.getGoldNum());
|
||||
String goldNumText = getContext().getString(R.string.gold_num_text, goldWalletInfo.getDiamondNum());
|
||||
SpannableBuilder builder = new SpannableBuilder();
|
||||
builder.append(context.getText(R.string.gift_wallet_overage), new ForegroundColorSpan(
|
||||
context.getResources().getColor(R.color.white_transparent_50)))
|
||||
|
@@ -22,11 +22,10 @@ import org.greenrobot.eventbus.EventBus;
|
||||
*/
|
||||
public class MainTabLayout extends LinearLayout implements View.OnClickListener {
|
||||
|
||||
public static final int MAIN_TAB_POS_HOME = 0;
|
||||
public static final int MAIN_TAB_POS_MSG = 1;
|
||||
public static final int MAIN_TAB_POS_ATTENTION = 2;
|
||||
public static final int MAIN_TAB_POS_SQUARE = 2;
|
||||
public static final int MAIN_TAB_POS_ME = 3;
|
||||
public static final int MAIN_TAB_POS_GAME = 4;
|
||||
public static final int MAIN_TAB_POS_HOME = 4;
|
||||
|
||||
private MainTab mMeTab, gameTab;
|
||||
private MainRedPointTab mMsgTab;
|
||||
@@ -86,15 +85,12 @@ public class MainTabLayout extends LinearLayout implements View.OnClickListener
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.main_game_tab:
|
||||
select(MAIN_TAB_POS_GAME);
|
||||
select(MAIN_TAB_POS_HOME);
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_FIRST_TAB,
|
||||
"首页tab");
|
||||
break;
|
||||
case R.id.main_home_tab:
|
||||
select(MAIN_TAB_POS_HOME);
|
||||
break;
|
||||
case R.id.main_attention_tab:
|
||||
select(MAIN_TAB_POS_ATTENTION);
|
||||
select(MAIN_TAB_POS_SQUARE);
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_FIND_TAB,
|
||||
"发现tab");
|
||||
break;
|
||||
@@ -118,11 +114,10 @@ public class MainTabLayout extends LinearLayout implements View.OnClickListener
|
||||
|
||||
public void select(int position) {
|
||||
if (mLastPosition == position) return;
|
||||
//mHomeTab.select(position == MAIN_TAB_POS_HOME);
|
||||
mAttentionTab.select(position == MAIN_TAB_POS_ATTENTION);
|
||||
mAttentionTab.select(position == MAIN_TAB_POS_SQUARE);
|
||||
mMsgTab.select(position == MAIN_TAB_POS_MSG);
|
||||
mMeTab.select(position == MAIN_TAB_POS_ME);
|
||||
gameTab.select(position == MAIN_TAB_POS_GAME);
|
||||
gameTab.select(position == MAIN_TAB_POS_HOME);
|
||||
if (mOnTabClickListener != null) {
|
||||
mOnTabClickListener.onTabClick(position);
|
||||
}
|
||||
@@ -149,10 +144,7 @@ public class MainTabLayout extends LinearLayout implements View.OnClickListener
|
||||
*/
|
||||
public void showOrHideTab(int position,int visible){
|
||||
switch (position) {
|
||||
case MAIN_TAB_POS_HOME:
|
||||
//mHomeTab.setVisibility(visible);
|
||||
break;
|
||||
case MAIN_TAB_POS_ATTENTION:
|
||||
case MAIN_TAB_POS_SQUARE:
|
||||
mAttentionTab.setVisibility(visible);
|
||||
break;
|
||||
case MAIN_TAB_POS_MSG:
|
||||
|
@@ -66,7 +66,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end"
|
||||
android:layout_marginStart="5dp"
|
||||
android:text="@{FormatUtils.formatBigDecimal(walletInfo.goldNum)}"
|
||||
android:text="@{FormatUtils.formatBigDecimal(walletInfo.diamonds)}"
|
||||
android:textColor="@color/color_333333"
|
||||
android:includeFontPadding="false"
|
||||
android:textSize="25sp"
|
||||
|
@@ -62,7 +62,7 @@
|
||||
android:layout_below="@+id/tv_wall_gold_remain_before"
|
||||
android:layout_marginTop="10dp"
|
||||
android:maxLines="1"
|
||||
android:text="@{FormatUtils.formatBigDecimal(walletInfo.goldNum)}"
|
||||
android:text="@{FormatUtils.formatBigDecimal(walletInfo.diamonds)}"
|
||||
android:textColor="@color/color_1A1A1A"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
|
@@ -272,7 +272,6 @@ public class SquareDynamicFragment extends BaseMvpFragment<IMiniWorldCategoryVie
|
||||
isLoading = false;
|
||||
if (error != null) {
|
||||
hideLoadmoreView();
|
||||
toast(error);
|
||||
return;
|
||||
}
|
||||
//接口访问正确的处理
|
||||
|
@@ -106,7 +106,7 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd
|
||||
getUnReadCount();
|
||||
//init viewpager
|
||||
viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragmentList));
|
||||
|
||||
viewPager.setOffscreenPageLimit(3);
|
||||
viewPager.addOnPageChangeListener(new OnPageSelectedListener() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
|
@@ -81,9 +81,9 @@ public class PayModel extends BaseModel implements IPayModel {
|
||||
@Override
|
||||
public void minusGold(float price) {
|
||||
if (walletInfo != null) {
|
||||
double gold = walletInfo.getGoldNum();
|
||||
if (walletInfo.getGoldNum() > 0 && walletInfo.getGoldNum() >= price) {
|
||||
walletInfo.setGoldNum(gold - price);
|
||||
double gold = walletInfo.getDiamondNum();
|
||||
if (walletInfo.getDiamondNum() > 0 && walletInfo.getDiamondNum() >= price) {
|
||||
walletInfo.setDiamondNum(gold - price);
|
||||
EventBus.getDefault().post(new UpdateWalletInfoEvent());
|
||||
}
|
||||
}
|
||||
@@ -306,9 +306,9 @@ public class PayModel extends BaseModel implements IPayModel {
|
||||
*/
|
||||
public void decreaseLocalGold(float price) {
|
||||
if (walletInfo != null) {
|
||||
double gold = walletInfo.getGoldNum();
|
||||
if (walletInfo.getGoldNum() > 0) {
|
||||
walletInfo.setGoldNum(gold - price);
|
||||
double gold = walletInfo.getDiamondNum();
|
||||
if (walletInfo.getDiamondNum() > 0) {
|
||||
walletInfo.setDiamondNum(gold - price);
|
||||
}
|
||||
// 兼容旧版扣钱
|
||||
compatOtherWalletInfo(walletInfo);
|
||||
|
Reference in New Issue
Block a user