diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2418ac2c1..115818796 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,7 +22,9 @@ - + @@ -74,7 +76,7 @@ - + + android:exported="true" /> + android:theme="@android:style/Theme.Translucent.NoTitleBar" /> - + + android:value="1a9cace2-da8a-4b49-a70d-9beefacf6096" /> + android:value="16517" /> - - - + + + - - - - - - + + + + + + - - - - - + + + + + - - - - - + + + + + - - + android:screenOrientation="portrait" + android:windowSoftInputMode="stateHidden|adjustNothing" /> + android:screenOrientation="portrait" + android:windowSoftInputMode="adjustResize" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" + android:windowSoftInputMode="stateHidden|adjustResize" /> - + diff --git a/app/src/main/java/com/yizhuan/erban/MainActivity.java b/app/src/main/java/com/yizhuan/erban/MainActivity.java index 490baa872..f2c9fe4b7 100644 --- a/app/src/main/java/com/yizhuan/erban/MainActivity.java +++ b/app/src/main/java/com/yizhuan/erban/MainActivity.java @@ -9,9 +9,6 @@ import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentTransaction; import android.text.TextUtils; import android.util.Log; import android.util.LongSparseArray; @@ -21,6 +18,10 @@ import android.view.animation.LinearInterpolator; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; + import com.mcxiaoke.packer.helper.PackerNg; import com.microquation.linkedme.android.LinkedME; import com.netease.nim.uikit.api.NimUIKit; @@ -82,8 +83,6 @@ import com.yizhuan.erban.quick_pass.QuickPassLoginAct; import com.yizhuan.erban.radish.signin.SignDialogTimeManager; import com.yizhuan.erban.service.DaemonService; import com.yizhuan.erban.share.viewholder.InAppSharingMsgViewHolder; -import com.yizhuan.erban.treasure_box.service.OpenBoxService; -import com.yizhuan.erban.treasure_box.service.OpenHonourBoxService; import com.yizhuan.erban.ui.im.RouterHandler; import com.yizhuan.erban.ui.im.actions.GiftAction; import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; @@ -994,12 +993,6 @@ public class MainActivity extends BaseMvpActivity @Override public void exitRoom(RoomInfo roomInfo) { closeOpenRoomAnimation(); - if (OpenBoxService.isAutoOpenBox) { - OpenBoxService.stop(this); - } - if (OpenHonourBoxService.isAutoOpenBox) { - OpenHonourBoxService.stop(this); - } //ktv退出的时候需要用到 if (RtcEngineManager.get().isOpenKtv() && roomInfo != null) { KtvMusicManager.INSTANCE.deleteUserAllChooseMusic(roomInfo.getUid()).subscribe(); diff --git a/app/src/main/java/com/yizhuan/erban/application/XChatApplication.java b/app/src/main/java/com/yizhuan/erban/application/XChatApplication.java index 47fcc89d9..c3d312c00 100644 --- a/app/src/main/java/com/yizhuan/erban/application/XChatApplication.java +++ b/app/src/main/java/com/yizhuan/erban/application/XChatApplication.java @@ -313,7 +313,7 @@ public class XChatApplication extends Application { // // save cache,留做切换账号备用 DemoCache.setNotificationConfig(config); - MixPushConfig mixPushConfig = new MixPushConfig(); + /* MixPushConfig mixPushConfig = new MixPushConfig(); mixPushConfig.hwCertificateName = "tutuHuaweiAndroid"; mixPushConfig.mzAppId = "125242"; @@ -327,12 +327,12 @@ public class XChatApplication extends Application { mixPushConfig.vivoCertificateName = "qingxunVivoAndroid"; // 下架状态,没有完成接入 -// mixPushConfig.oppoAppId = "30156338"; -// mixPushConfig.oppoAppKey = "4659eff1cab747c48fb6f44e2f522e83"; -// mixPushConfig.oppoAppSercet = "8c6a21854c8045068247c7e1168e29a8"; -// mixPushConfig.oppoCertificateName = "qingxunOppoAndroid"; + mixPushConfig.oppoAppId = "30156338"; + mixPushConfig.oppoAppKey = "4659eff1cab747c48fb6f44e2f522e83"; + mixPushConfig.oppoAppSercet = "8c6a21854c8045068247c7e1168e29a8"; + mixPushConfig.oppoCertificateName = "qingxunOppoAndroid"; - options.mixPushConfig = mixPushConfig; + options.mixPushConfig = mixPushConfig;*/ return options; } diff --git a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java index f557137ce..085fd663c 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/activity/AVRoomActivity.java @@ -7,10 +7,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.Fragment; -import androidx.core.content.ContextCompat; -import androidx.viewpager.widget.ViewPager; import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; @@ -23,6 +19,11 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.netease.nim.uikit.common.util.log.LogUtil; @@ -50,9 +51,7 @@ import com.yizhuan.erban.common.widget.CustomImageSpan; import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.home.adapter.FragmentViewPagerAdapter; import com.yizhuan.erban.monsterhunting.MonsterHuntingActivity; -import com.yizhuan.erban.treasure_box.service.OpenHonourBoxService; import com.yizhuan.erban.ui.patriarch.help.LimitEnterRoomHelper; -import com.yizhuan.erban.treasure_box.service.OpenBoxService; import com.yizhuan.erban.ui.pay.ChargeActivity; import com.yizhuan.erban.ui.user.UserInfoActivity; import com.yizhuan.erban.ui.utils.ImageLoadUtils; @@ -96,13 +95,10 @@ import com.yizhuan.xchat_android_core.room.event.RoomClearScreenEvent; import com.yizhuan.xchat_android_core.room.game.GameInfo; import com.yizhuan.xchat_android_core.room.game.GameModel; import com.yizhuan.xchat_android_core.room.pk.event.PKStateEvent; - import com.yizhuan.xchat_android_core.statistic.StatisticManager; import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil; - import com.yizhuan.xchat_android_core.super_admin.util.SAdminOptUtil; - +import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil; import com.yizhuan.xchat_android_core.user.UserModel; import com.yizhuan.xchat_android_core.user.bean.UserInfo; import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils; @@ -828,12 +824,6 @@ public class AVRoomActivity extends BaseMvpActivity CommonWebViewActivity.start(context, "http://192.168.10.7:5503/")); + //vue测试地址 + findViewById(R.id.rb_vue_test).setOnClickListener(v -> CommonWebViewActivity.start(context, "http://192.168.10.7:8080/")); int enviroment = CommonPref.instance(BasicConfig.INSTANCE.getAppContext()).getInt(Env.KEY_ENVIRONMENT); //根据ID找到RadioGroup实例 RadioGroup group = (RadioGroup) this.findViewById(R.id.radioGroup); diff --git a/app/src/main/java/com/yizhuan/erban/ui/widget/TopRoundLinearLayout.java b/app/src/main/java/com/yizhuan/erban/ui/widget/TopRoundLinearLayout.java new file mode 100644 index 000000000..db433b2b8 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/ui/widget/TopRoundLinearLayout.java @@ -0,0 +1,62 @@ +package com.yizhuan.erban.ui.widget; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Path; +import android.graphics.RectF; +import android.util.AttributeSet; +import android.widget.LinearLayout; + +import com.netease.nim.uikit.common.util.sys.ScreenUtil; + +/** + * 顶部圆角的LinearLayout,用户半屏的web view界面 + * 注意需要设置背景才有效,没有背景ViewGroup不会调用draw方法 + */ + +public class TopRoundLinearLayout extends LinearLayout { + + private Path mPath; + private int mRadius; + private int mWidth; + private int mHeight; + private int mLastRadius; + + public TopRoundLinearLayout(Context context) { + super(context); + init(); + } + + public TopRoundLinearLayout(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + private void init() { + mPath = new Path(); + mPath.setFillType(Path.FillType.EVEN_ODD); + mRadius = ScreenUtil.dip2px(10); + } + + private void checkPathChanged() { + if (getWidth() == mWidth && getHeight() == mHeight && mLastRadius == mRadius) { + return; + } + mWidth = getWidth(); + mHeight = getHeight(); + mLastRadius = mRadius; + mPath.reset(); + mPath.addRoundRect(new RectF(0, 0, mWidth, mHeight), + new float[]{mRadius, mRadius, mRadius, mRadius, 0, 0, 0, 0}, + Path.Direction.CW); + } + + @Override + public void draw(Canvas canvas) { + int saveCount = canvas.save(); + checkPathChanged(); + canvas.clipPath(mPath); + super.draw(canvas); + canvas.restoreToCount(saveCount); + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_dialog_web_view.xml b/app/src/main/res/layout/activity_dialog_web_view.xml index e5ba82eb5..eabea0dc6 100644 --- a/app/src/main/res/layout/activity_dialog_web_view.xml +++ b/app/src/main/res/layout/activity_dialog_web_view.xml @@ -1,17 +1,21 @@ - + android:background="@color/white" + android:orientation="vertical"> + + - + diff --git a/app/src/main/res/layout/activity_lab.xml b/app/src/main/res/layout/activity_lab.xml index 234696859..7c1130063 100644 --- a/app/src/main/res/layout/activity_lab.xml +++ b/app/src/main/res/layout/activity_lab.xml @@ -35,5 +35,30 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试环境" /> + + + + + \ No newline at end of file diff --git a/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickPassLoginAct.java b/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickPassLoginAct.java index 8032d20cb..27c0fe1ad 100644 --- a/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickPassLoginAct.java +++ b/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickPassLoginAct.java @@ -51,7 +51,7 @@ public class QuickPassLoginAct extends BaseLoginAct implements View.OnClickListe * 基本权限管理 */ private final String[] BASIC_PERMISSIONS = new String[]{ - Manifest.permission.READ_PHONE_STATE, + // Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, // Manifest.permission.CAMERA, diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java index b3f84b43c..5e95dbb41 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java @@ -1,164 +1,133 @@ package com.yizhuan.erban.treasure_box.activity; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.text.TextUtils; +import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.view.animation.AccelerateDecelerateInterpolator; -import android.view.animation.Animation; -import android.view.animation.AnimationUtils; -import android.widget.ImageView; -import com.bumptech.glide.request.target.SimpleTarget; -import com.bumptech.glide.request.transition.Transition; import com.netease.nim.uikit.common.util.sys.ScreenUtil; -import com.netease.nim.uikit.support.glide.GlideApp; import com.yizhuan.erban.R; import com.yizhuan.erban.base.BaseBindingActivity; import com.yizhuan.erban.databinding.ActivityTreasureBoxBinding; -import com.yizhuan.erban.treasure_box.service.OpenBoxService; -import com.yizhuan.erban.treasure_box.widget.PrizeFactor; -import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog; import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog; import com.yizhuan.erban.treasure_box.widget.dialog.BuyKeyDialog; import com.yizhuan.erban.treasure_box.widget.dialog.KeyDeficiencyDialog; -import com.yizhuan.erban.ui.pay.ChargeActivity; import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; +import com.yizhuan.erban.ui.webview.DialogWebViewActivity; import com.yizhuan.treasure_box.bean.PrizeInfo; import com.yizhuan.treasure_box.model.BoxModel; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.exception.FailReasonException; -import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; +import com.yizhuan.treasure_box.model.IBoxModel; +import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.pay.PayModel; import com.yizhuan.xchat_android_core.pay.bean.WalletInfo; -import com.yizhuan.treasure_box.bean.KeyInfo; -import com.yizhuan.treasure_box.bean.OpenBoxResult; -import com.yizhuan.treasure_box.event.AutoOpenBoxEvent; -import com.yizhuan.treasure_box.event.BoxBuyKeyEvent; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; import com.yizhuan.xchat_android_core.utils.StringUtils; -import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption; import com.yizhuan.xchat_android_library.annatation.ActLayoutRes; import com.yizhuan.xchat_android_library.utils.FormatUtils; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; @ActLayoutRes(R.layout.activity_treasure_box) -public class TreasureBoxActivity extends BaseBindingDialog implements View.OnClickListener { - private volatile double gold; +public class TreasureBoxActivity extends BaseBindingActivity implements View.OnClickListener { private int price = 20; - private ImageView ivBox; private volatile int keyNum; - private AnimationDrawable eggAnim; private ArrayList cacheList = new ArrayList<>(); - private Disposable disposable; + private ObjectAnimator translationXAnimator; + private ObjectAnimator translationYAnimator; + private int boxType = IBoxModel.BOX_TYPE_NORMAL; - public TreasureBoxActivity(Context context) { - super(context); - width = WindowManager.LayoutParams.MATCH_PARENT; - //这里用MATCH_PARENT 通知栏会变黑....... - height = ScreenUtil.screenHeight; - } public static void start(Context context) { - new TreasureBoxActivity(context).openDialog(); - /* Intent starter = new Intent(context, TreasureBoxActivity.class); - //starter.putExtra(); - context.startActivity(starter);*/ + Intent starter = new Intent(context, TreasureBoxActivity.class); + context.startActivity(starter); } - @Override protected void onCreate(Bundle savedInstanceState) { - // requestWindowFeature(Window.FEATURE_NO_TITLE); - // getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); - // getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + requestWindowFeature(Window.FEATURE_NO_TITLE); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); + getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight); + getWindow().setGravity(Gravity.CENTER); subscribeEvent(); } - ObjectAnimator objectAnimator; - ObjectAnimator objectAnimator1; - @SuppressLint("CheckResult") @Override protected void init() { - binding.setClick(this); - ivBox = binding.ivBox; + mBinding.setClick(this); + translationXAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationX", 0, + ScreenUtil.screenWidth / 2f - ScreenUtil.dip2px(15 + 19)).setDuration(500); + translationXAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); + translationXAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mBinding.ivGiftAnim.setVisibility(View.GONE); + } + }); + mBinding.ivBox.post(() -> { + translationYAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationY", 0, + ScreenUtil.screenHeight - (mBinding.ivBox.getBottom() + mBinding.ivBox.getTop()) / 2f - ScreenUtil.dip2px(55)).setDuration(500); + translationYAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); + }); + WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo(); + if (walletInfo != null) { + mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(walletInfo.getDiamondNum())); + } + loadKeyInfo(); + looperPrize(); + } - objectAnimator = ObjectAnimator.ofFloat(binding.ivGiftAnim, - "translationX", 0, ScreenUtil.screenWidth / 2f).setDuration(500); - objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); - objectAnimator1 = ObjectAnimator.ofFloat(binding.ivGiftAnim, - "translationY", 0, ScreenUtil.screenHeight / 2f + 100).setDuration(500); - objectAnimator1.setInterpolator(new AccelerateDecelerateInterpolator()); + @SuppressLint("CheckResult") + private void loadKeyInfo(){ BoxModel.get() - .getKeyInfo() - //.compose(bindToLifecycle()) - .doOnError(throwable -> SingleToastUtil.showToast(throwable.getMessage())) + .getKeyInfo(boxType) + .compose(bindToLifecycle()) .subscribe(keyInfo -> { changeKeyNum(keyInfo.getKeyNum()); price = keyInfo.getKeyPrice(); }); - WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo(); - if (walletInfo != null) gold = walletInfo.getGoldNum(); - binding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(gold)); - binding.randomLayout.start(); - EventBus.getDefault().register(this); - looperPrize(); } - /* @Override - @SuppressLint("CheckResult") - protected void onResume() { - super.onResume(); - - } - */ @Override public void onClick(View v) { switch (v.getId()) { - /* case R.id.stv_help: - BoxHelpActivity.start(this, binding.getRoot().getHeight(), binding.getRoot().getWidth()); + case R.id.root_view: + finish(); break; - case R.id.stv_jackpot: - BoxPrizeActivity.start(this, binding.getRoot().getHeight(), binding.getRoot().getWidth()); - break; - case R.id.stv_record: - BoxPrizeRecordActivity.start(this, binding.getRoot().getHeight(), binding.getRoot().getWidth()); - break;*/ case R.id.iv_more: new BoxMoreDialog(context).openDialog(); break; + case R.id.tv_rank: + DialogWebViewActivity.start(context, UriProvider.getBoxRank(), false); + break; case R.id.iv_open: - binding.svgaOpen.startAnimation(); - binding.ivOpen.setEnabled(false); - ivBox.setImageResource(R.drawable.box_close_normal); - openBox(StringUtils.toInt(binding.editNum.getText().toString())); + openBox(StringUtils.toInt(mBinding.editNum.getText().toString(), 0)); + break; + case R.id.iv_sub: + mBinding.editNum.setText(String.valueOf(Math.max(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) - 1, 0))); + break; + case R.id.iv_add: + mBinding.editNum.setText(String.valueOf(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) + 1)); + break; + case R.id.view_bg: + case R.id.iv_title: + //do nothing break; default: break; @@ -166,16 +135,9 @@ public class TreasureBoxActivity extends BaseBindingDialog binding.ivBox.setImageResource(R.drawable.box_close_normal); - - private Runnable runnableOpen = () -> { - if (eggAnim == null) { - eggAnim = (AnimationDrawable) getContext().getResources().getDrawable(R.drawable.anim_egg); - } else { - eggAnim.stop(); - } - binding.ivBox.setImageDrawable(eggAnim); - eggAnim.start(); - }; - @SuppressLint("CheckResult") private void openBox(int count) { - /* if (checkKeyNum(count)) { - binding.ivOpen.setEnabled(true); + mBinding.ivOpen.setEnabled(false); + if (checkKeyNum(count)) { + mBinding.ivOpen.setEnabled(true); return; - }*/ - // changeBoxStatus(); - BoxModel.get() - .openBox(count, true) - //.compose(bindToLifecycle()) - //.delay(1, TimeUnit.SECONDS) - //delay后让转回主线程,不然刷新view会有问题 - .observeOn(AndroidSchedulers.mainThread()) + } + mBinding.svgaOpen.startAnimation(); + BoxModel.get().openBox(boxType, count, true) + .compose(bindToLifecycle()) .doOnError(throwable -> { - binding.ivOpen.setEnabled(true); - if (throwable instanceof FailReasonException) { - FailReasonException failReasonException = (FailReasonException) throwable; - switch (failReasonException.getCode()) { - case BoxModel.ERROR_CODE_KEY_NUM_NOT_ENOUGH: - break; - case BalanceNotEnoughExeption.code: - break; - } - } + mBinding.ivOpen.setEnabled(true); SingleToastUtil.showToast(throwable.getMessage()); }) .subscribe(openBoxResult -> { - //binding.svgaOpen.stopAnimation(); - //binding.randomLayout.addPrize(openBoxResult.getPrizeItemList()); changeKeyNum(openBoxResult.getRemainKeyNum()); - binding.ivOpen.setEnabled(true); + mBinding.ivOpen.setEnabled(true); cacheList.addAll(openBoxResult.getPrizeItemList()); }); } + @SuppressLint("CheckResult") private void looperPrize() { - disposable = Observable.interval(0, 600, TimeUnit.MILLISECONDS) + Observable.interval(0, 600, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .filter(aLong -> cacheList.size() > 0) .subscribe(aLong -> { String url = cacheList.get(0).getPrizeImgUrl(); if (cacheList.size() > 0) cacheList.remove(0); if (!TextUtils.isEmpty(url)) { - objectAnimator.start(); - objectAnimator1.start(); - binding.svgaGiftBg.startAnimation(); - ImageLoadUtils.loadImage(context, url, binding.ivGiftAnim); + translationXAnimator.start(); + if (translationYAnimator != null) translationYAnimator.start(); + mBinding.ivGiftAnim.setVisibility(View.VISIBLE); + mBinding.svgaGiftBg.startAnimation(); + ImageLoadUtils.loadImage(context, url, mBinding.ivGiftAnim); } } , e -> looperPrize());//出错了继续looper...... @@ -261,13 +203,6 @@ public class TreasureBoxActivity extends BaseBindingDialog setGold(walletInfo.getGoldNum())); - break; - } - } + mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(g)); + PayModel.get().getCurrentWalletInfo().setDiamondNum(g); } @SuppressLint("CheckResult") private void subscribeEvent() { //更新金币数量和被踢出房间退出 IMNetEaseManager.get().getChatRoomEventObservable() - //.compose(bindToLifecycle()) + .compose(bindToLifecycle()) .subscribe(roomEvent -> { switch (roomEvent.getEvent()) { case RoomEvent.WALLET_UPDATE: - setGold(roomEvent.getWalletInfo().getGoldNum()); + loadKeyInfo(); + setGold(roomEvent.getWalletInfo().getDiamondNum()); break; case RoomEvent.KICK_OUT_ROOM: - closeDialog(); + finish(); break; } }); } - @Override - public void onDetachedFromWindow() { - super.onDetachedFromWindow(); - EventBus.getDefault().unregister(this); - binding.randomLayout.stop(); - ivBox.removeCallbacks(runnableOpen); - ivBox.removeCallbacks(runnableClose); - } - - } diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxHonourActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxHonourActivity.java index bd9b34d49..a5b4bca43 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxHonourActivity.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxHonourActivity.java @@ -1,121 +1,133 @@ package com.yizhuan.erban.treasure_box.activity; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ObjectAnimator; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; +import android.text.TextUtils; +import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; -import android.widget.ImageView; +import android.view.animation.AccelerateDecelerateInterpolator; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.yizhuan.erban.R; import com.yizhuan.erban.base.BaseBindingActivity; import com.yizhuan.erban.databinding.ActivityTreasureBoxHonourBinding; -import com.yizhuan.erban.treasure_box.service.OpenBoxService; -import com.yizhuan.erban.treasure_box.service.OpenHonourBoxService; import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog; import com.yizhuan.erban.treasure_box.widget.dialog.BuyKeyDialog; import com.yizhuan.erban.treasure_box.widget.dialog.KeyDeficiencyDialog; -import com.yizhuan.erban.ui.pay.ChargeActivity; -import com.yizhuan.treasure_box.bean.HonourBuyKeyResultInfo; -import com.yizhuan.treasure_box.bean.OpenBoxHonourResult; -import com.yizhuan.treasure_box.bean.OpenBoxResult; -import com.yizhuan.treasure_box.event.AutoOpenHonourBoxEvent; -import com.yizhuan.treasure_box.event.HonourBoxBuyKeyEvent; +import com.yizhuan.erban.ui.utils.ImageLoadUtils; +import com.yizhuan.erban.ui.webview.DialogWebViewActivity; +import com.yizhuan.treasure_box.bean.PrizeInfo; import com.yizhuan.treasure_box.model.BoxModel; import com.yizhuan.treasure_box.model.IBoxModel; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.exception.FailReasonException; -import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; +import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.pay.PayModel; import com.yizhuan.xchat_android_core.pay.bean.WalletInfo; -import com.yizhuan.treasure_box.event.AutoOpenBoxEvent; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; import com.yizhuan.xchat_android_core.utils.StringUtils; -import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption; import com.yizhuan.xchat_android_library.annatation.ActLayoutRes; import com.yizhuan.xchat_android_library.utils.FormatUtils; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.util.HashMap; -import java.util.Map; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; +import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @ActLayoutRes(R.layout.activity_treasure_box_honour) public class TreasureBoxHonourActivity extends BaseBindingActivity { - private volatile double gold; private int price = 20; - private ImageView ivBox; private volatile int keyNum; - private AnimationDrawable eggAnim; + private ArrayList cacheList = new ArrayList<>(); + private ObjectAnimator translationXAnimator; + private ObjectAnimator translationYAnimator; + private int boxType = IBoxModel.BOX_TYPE_HONOUR; public static void start(Context context) { Intent starter = new Intent(context, TreasureBoxHonourActivity.class); - //starter.putExtra(); context.startActivity(starter); } - @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); - getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT); + getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, ScreenUtil.screenHeight); + getWindow().setGravity(Gravity.CENTER); subscribeEvent(); } @Override protected void init() { mBinding.setClick(this); - ivBox = mBinding.ivBox; + translationXAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationX", 0, + ScreenUtil.screenWidth / 2f - ScreenUtil.dip2px(15 + 19)).setDuration(500); + translationXAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); + translationXAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + mBinding.ivGiftAnim.setVisibility(View.GONE); + } + }); + mBinding.ivBox.post(() -> { + translationYAnimator = ObjectAnimator.ofFloat(mBinding.ivGiftAnim, "translationY", 0, + ScreenUtil.screenHeight - (mBinding.ivBox.getBottom() + mBinding.ivBox.getTop()) / 2f - ScreenUtil.dip2px(55)).setDuration(500); + translationYAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); + }); + WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo(); + if (walletInfo != null) { + mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(walletInfo.getGoldNum())); + } + loadKeyInfo(); + looperPrize(); } + @SuppressLint("CheckResult") - @Override - protected void onResume() { - super.onResume(); + private void loadKeyInfo() { BoxModel.get() - .getHonourKeyInfo(AuthModel.get().getCurrentUid()) + .getKeyInfo(boxType) .compose(bindToLifecycle()) - .doOnError(throwable -> toast(throwable.getMessage())) .subscribe(keyInfo -> { changeKeyNum(keyInfo.getKeyNum()); price = keyInfo.getKeyPrice(); }); - WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo(); - if (walletInfo != null) gold = walletInfo.getGoldNum(); - mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(gold)); - mBinding.ivOpen.setImageResource(OpenHonourBoxService.isAutoOpenBox ? R.drawable.stop_open_box : R.drawable.auto_open_box); - mBinding.randomLayout.start(); - EventBus.getDefault().register(this); } @Override public void onClick(View v) { switch (v.getId()) { - case R.id.ib_close: + case R.id.root_view: finish(); break; case R.id.iv_open: - mBinding.ivOpen.setEnabled(false); - ivBox.setImageResource(R.drawable.box_close_normal); openBox(StringUtils.toInt(mBinding.editNum.getText().toString())); break; case R.id.iv_more: new BoxMoreDialog(context).openDialog(); break; + case R.id.tv_rank: + DialogWebViewActivity.start(context, UriProvider.getBoxRank(), false); + break; + case R.id.iv_sub: + mBinding.editNum.setText(String.valueOf(Math.max(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) - 1, 0))); + break; + case R.id.iv_add: + mBinding.editNum.setText(String.valueOf(StringUtils.toInt(mBinding.editNum.getText().toString(), 0) + 1)); + break; + case R.id.view_bg: + case R.id.iv_title: + //do nothing + break; default: break; } @@ -125,13 +137,6 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity mBinding.ivBox.setImageResource(R.drawable.box_close); - - private Runnable runnableOpen = () -> { - if (eggAnim == null) { - eggAnim = (AnimationDrawable) getResources().getDrawable(R.drawable.anim_honour_egg); - } else { - eggAnim.stop(); - } - mBinding.ivBox.setImageDrawable(eggAnim); - eggAnim.start(); - }; @SuppressLint("CheckResult") private void openBox(int count) { + mBinding.ivOpen.setEnabled(false); if (checkKeyNum(count)) { mBinding.ivOpen.setEnabled(true); return; } - changeBoxStatus(); + mBinding.svgaOpen.startAnimation(); BoxModel.get() - .openHonourBox(AuthModel.get().getCurrentUid(), false, - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), count, - AuthModel.get().getTicket()) + .openBox(boxType, count, false) .compose(bindToLifecycle()) - .delay(1, TimeUnit.SECONDS) - //delay后让转回主线程,不然刷新view会有问题 - .observeOn(AndroidSchedulers.mainThread()) .doOnError(throwable -> { mBinding.ivOpen.setEnabled(true); - if (throwable instanceof FailReasonException) { - FailReasonException failReasonException = (FailReasonException) throwable; - switch (failReasonException.getCode()) { - case BoxModel.ERROR_CODE_KEY_NUM_NOT_ENOUGH: - break; - - case BalanceNotEnoughExeption.code: - break; - } - } toast(throwable.getMessage()); }) .subscribe(openBoxResult -> { - mBinding.randomLayout.addPrize(openBoxResult.getPrizeItemList()); changeKeyNum(openBoxResult.getRemainKeyNum()); mBinding.ivOpen.setEnabled(true); + cacheList.addAll(openBoxResult.getPrizeItemList()); }); } + @SuppressLint("CheckResult") + private void looperPrize() { + Observable.interval(0, 600, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .filter(aLong -> cacheList.size() > 0) + .subscribe(aLong -> { + String url = cacheList.get(0).getPrizeImgUrl(); + if (cacheList.size() > 0) cacheList.remove(0); + if (!TextUtils.isEmpty(url)) { + translationXAnimator.start(); + if (translationYAnimator != null) translationYAnimator.start(); + mBinding.ivGiftAnim.setVisibility(View.VISIBLE); + mBinding.svgaGiftBg.startAnimation(); + ImageLoadUtils.loadImage(context, url, mBinding.ivGiftAnim); + } + } + , e -> looperPrize());//出错了继续looper...... - private void changeBoxStatus() { - ivBox.removeCallbacks(runnableClose); - ivBox.removeCallbacks(runnableOpen); - ivBox.postDelayed(runnableOpen, 100); - ivBox.postDelayed(runnableClose, 3000); } /** @@ -215,7 +212,6 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity setGold(walletInfo.getGoldNum())); - break; - } - } + mBinding.tvDiamondNum.setText(FormatUtils.formatBigDecimal(g)); + PayModel.get().getCurrentWalletInfo().setDiamondNum(g); } @SuppressLint("CheckResult") @@ -272,7 +232,8 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity { switch (roomEvent.getEvent()) { case RoomEvent.WALLET_UPDATE: - setGold(roomEvent.getWalletInfo().getGoldNum()); + loadKeyInfo(); + setGold(roomEvent.getWalletInfo().getDiamondNum()); break; case RoomEvent.KICK_OUT_ROOM: finish(); @@ -281,12 +242,5 @@ public class TreasureBoxHonourActivity extends BaseBindingActivity { - if (throwable instanceof FailReasonException) { - FailReasonException failReasonException = (FailReasonException) throwable; - switch (failReasonException.getCode()) { - case BoxModel.ERROR_CODE_KEY_NUM_NOT_ENOUGH: - EventBus.getDefault().post(new AutoOpenBoxEvent().setRunning(false)); - stopAutoOpenBox(); - break; - } - } - SingleToastUtil.showToast(BasicConfig.INSTANCE.getAppContext(),throwable.getMessage()); - }) - .subscribe(openBoxResult -> { - keyNum = openBoxResult.getRemainKeyNum(); - EventBus.getDefault().post(new AutoOpenBoxEvent().setRunning(true).setOpenBoxResult(openBoxResult)); - if (keyNum == 0) { - stopAutoOpenBox(); - } - }); - } - - private void stopAutoOpenBox() { - disposable.dispose(); - stopSelf(); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - return super.onStartCommand(intent, flags, startId); - } - - @Override - public void onDestroy() { - super.onDestroy(); - isAutoOpenBox = false; - if (disposable != null) disposable.dispose(); - if (disposable2 != null) disposable2.dispose(); - } -} diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/service/OpenHonourBoxService.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/service/OpenHonourBoxService.java deleted file mode 100644 index 69bf9c95b..000000000 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/service/OpenHonourBoxService.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.yizhuan.erban.treasure_box.service; - -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.os.IBinder; -import androidx.annotation.Nullable; - -import com.yizhuan.treasure_box.event.AutoOpenHonourBoxEvent; -import com.yizhuan.treasure_box.model.BoxModel; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.exception.FailReasonException; -import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; -import com.yizhuan.xchat_android_library.utils.config.BasicConfig; - -import org.greenrobot.eventbus.EventBus; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; - -public class OpenHonourBoxService extends Service { - - public static boolean isAutoOpenBox; - public static boolean isPublic; - - private Disposable disposable; - private Disposable disposable2; - - private int keyNum; - - @Nullable - @Override - public IBinder onBind(Intent intent) { - return null; - } - - public static void start(Context context) { - Intent starter = new Intent(context, OpenHonourBoxService.class); - context.startActivity(starter); - } - - - public static void stop(Context context) { - Intent stop = new Intent(context, OpenHonourBoxService.class); - context.stopService(stop); - } - - @Override - public void onCreate() { - super.onCreate(); - isAutoOpenBox = true; - disposable = Observable.interval(0, 2, TimeUnit.SECONDS) - .subscribe(this::openBox); - } - - private void openBox(Long aLong) { - disposable2 = BoxModel.get() - .openHonourBox(AuthModel.get().getCurrentUid(), isPublic, - AvRoomDataManager.get().mCurrentRoomInfo.getUid(), 1, - AuthModel.get().getTicket()) - .doOnError(throwable -> { - if (throwable instanceof FailReasonException) { - FailReasonException failReasonException = (FailReasonException) throwable; - switch (failReasonException.getCode()) { - case BoxModel.ERROR_CODE_KEY_NUM_NOT_ENOUGH: - EventBus.getDefault().post(new AutoOpenHonourBoxEvent().setRunning(false)); - stopAutoOpenBox(); - break; - } - } - SingleToastUtil.showToast(BasicConfig.INSTANCE.getAppContext(),throwable.getMessage()); - }) - .subscribe(openBoxResult -> { - keyNum = openBoxResult.getRemainKeyNum(); - EventBus.getDefault().post(new AutoOpenHonourBoxEvent().setRunning(true).setOpenBoxResult(openBoxResult)); - if (keyNum == 0) { - stopAutoOpenBox(); - } - }); - } - - private void stopAutoOpenBox() { - disposable.dispose(); - stopSelf(); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - return super.onStartCommand(intent, flags, startId); - } - - @Override - public void onDestroy() { - super.onDestroy(); - isAutoOpenBox = false; - if (disposable != null) disposable.dispose(); - if (disposable2 != null) disposable2.dispose(); - } -} diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxMoreDialog.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxMoreDialog.java index f4923cb10..441d5cb0b 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxMoreDialog.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxMoreDialog.java @@ -7,6 +7,8 @@ import android.view.WindowManager; import com.yizhuan.erban.R; import com.yizhuan.erban.databinding.DialogBoxMoreBinding; +import com.yizhuan.erban.ui.webview.DialogWebViewActivity; +import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_library.annatation.ActLayoutRes; @ActLayoutRes(R.layout.dialog_box_more) @@ -33,9 +35,11 @@ public class BoxMoreDialog extends BaseBindingDialog { @Override protected void init() { binding.tvHistory.setOnClickListener(v -> { + DialogWebViewActivity.start(context, UriProvider.getBoxHistory(),false); closeDialog(); }); binding.tvBoxRule.setOnClickListener(v -> { + DialogWebViewActivity.start(context, UriProvider.getBoxHelp(),false); closeDialog(); }); binding.tvGetKey.setOnClickListener(v -> { diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/choose_box_bg.png b/app/src/module_treasure_box/res/drawable-xhdpi/choose_box_bg.png new file mode 100644 index 000000000..83d162416 Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/choose_box_bg.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/choose_box_bg_normal.png b/app/src/module_treasure_box/res/drawable-xhdpi/choose_box_bg_normal.png new file mode 100644 index 000000000..94e62b454 Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/choose_box_bg_normal.png differ diff --git a/app/src/module_treasure_box/res/layout/activity_treasure_box.xml b/app/src/module_treasure_box/res/layout/activity_treasure_box.xml index 866f3daa6..14fc3b844 100644 --- a/app/src/module_treasure_box/res/layout/activity_treasure_box.xml +++ b/app/src/module_treasure_box/res/layout/activity_treasure_box.xml @@ -13,7 +13,8 @@ + android:layout_height="match_parent" + android:onClick="@{click}"> + app:layout_constraintTop_toBottomOf="@id/iv_more" + tools:text="200" /> + app:layout_constraintTop_toBottomOf="@id/tv_diamond_num" + tools:text="200" /> - - - + android:layout_height="match_parent" + android:onClick="@{click}"> + app:layout_constraintTop_toTopOf="@id/view_bg" /> + app:layout_constraintTop_toBottomOf="@id/iv_more" + tools:text="200" /> - + app:layout_constraintTop_toBottomOf="@id/tv_diamond_num" + tools:text="200" /> + app:layout_constraintTop_toTopOf="@id/view_bg" /> + + - + app:layout_constraintTop_toTopOf="@id/view_bg" + app:loopCount="1" + app:source="svga/bubble_pack.svga" + tools:visibility="gone" /> + diff --git a/app/src/module_treasure_box/res/layout/fragment_choose_treasure_box_dialog.xml b/app/src/module_treasure_box/res/layout/fragment_choose_treasure_box_dialog.xml index f3dafde6e..8e61e1ed0 100644 --- a/app/src/module_treasure_box/res/layout/fragment_choose_treasure_box_dialog.xml +++ b/app/src/module_treasure_box/res/layout/fragment_choose_treasure_box_dialog.xml @@ -54,13 +54,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_title" /> - @@ -110,13 +114,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_title_honour" /> - diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java index 327663553..550537284 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/UriProvider.java @@ -301,5 +301,26 @@ public class UriProvider { public static String getPersonalCharismaRank() { return JAVA_WEB_URL.concat("/accompany/modules/charm/index.html"); } + /** + * 宝箱排行 + * + */ + public static String getBoxRank() { + return JAVA_WEB_URL.concat("/accompany/modules/rank/index.html#/wishingWellRank"); + } + /** + * 宝箱帮助 + * + */ + public static String getBoxHelp() { + return JAVA_WEB_URL.concat("/accompany/modules/rank/index.html#/wishingWellRule"); + } + /** + * 宝箱记录 + * + */ + public static String getBoxHistory() { + return JAVA_WEB_URL.concat("/accompany/modules/rank/index.html#/wishingWellRecord"); + } } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java index bc7490e21..51749e171 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java @@ -1273,8 +1273,8 @@ public class AuthModel extends BaseModel implements IAuthModel { //更新消息提醒配置 initNotificationConfig(); - Log.e(TAG, "onSuccess: ready to open push"); - NIMClient.getService(MixPushService.class).enable(true).setCallback(new RequestCallbackWrapper() { + //暂时关闭云信第三方推送,以后再开 + NIMClient.getService(MixPushService.class).enable(false).setCallback(new RequestCallbackWrapper() { @Override public void onResult(int code, Void result, Throwable exception) { Log.e(TAG, "onResult() called with: code = [" + code + "], result = [" + result + "], exception = [" + exception + "]"); diff --git a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java index 872b13c83..6577d06de 100644 --- a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java +++ b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java @@ -57,11 +57,11 @@ public class BoxModel extends BaseModel implements IBoxModel { } @Override - public Single openBox(int keyNum, boolean sendMessage) { + public Single openBox(int boxType,int keyNum, boolean sendMessage) { if (AvRoomDataManager.get().mCurrentRoomInfo == null) { return Single.error(new Throwable("当前房间信息为空.")); } - return api.openBox(keyNum, sendMessage, AuthModel.get().getCurrentUid(), + return api.openBox(boxType,keyNum, sendMessage, AuthModel.get().getCurrentUid(), AvRoomDataManager.get().mCurrentRoomInfo.getUid()) .compose(RxHelper.handleSchedulers()) .flatMap(openBoxResultServiceResult -> { @@ -110,8 +110,8 @@ public class BoxModel extends BaseModel implements IBoxModel { } @Override - public Single getKeyInfo() { - return api.getKeyInfo(AuthModel.get().getCurrentUid()) + public Single getKeyInfo(int boxType) { + return api.getKeyInfo(boxType,AuthModel.get().getCurrentUid()) .compose(RxHelper.handleSchedulers()) .compose(RxHelper.handleBeanData()); } @@ -138,7 +138,7 @@ public class BoxModel extends BaseModel implements IBoxModel { @Override public Single openHonourBox(long uid, boolean sendMessage, long roomUid, - int keyNum, String ticket) { + int keyNum, String ticket) { return api.openHonourBox(uid, sendMessage, roomUid, keyNum, ticket) .compose(RxHelper.handleSchedulers()) .compose(RxHelper.handleBeanData()); @@ -184,7 +184,8 @@ public class BoxModel extends BaseModel implements IBoxModel { */ @FormUrlEncoded @POST("box/draw") - Single> openBox(@Field("keyNum") int keyNum, + Single> openBox(@Field("boxType") int boxType, + @Field("keyNum") int keyNum, @Field("sendMessage") boolean sendMessage, @Field("uid") long uid, @Field("roomUid") long roomUid); @@ -208,7 +209,8 @@ public class BoxModel extends BaseModel implements IBoxModel { * @return */ @GET("box/userkey") - Single> getKeyInfo(@Query("uid") long uid); + Single> getKeyInfo(@Query("boxType") int boxType, + @Query("uid") long uid); /** * 获取开箱子配置图片 @@ -244,10 +246,10 @@ public class BoxModel extends BaseModel implements IBoxModel { @FormUrlEncoded @POST("box/diamond/draw") Single> openHonourBox(@Field("uid") long uid, - @Field("sendMessage") boolean sendMessage, - @Field("roomUid") long roomUid, - @Field("keyNum") int keyNum, - @Field("ticket") String ticket); + @Field("sendMessage") boolean sendMessage, + @Field("roomUid") long roomUid, + @Field("keyNum") int keyNum, + @Field("ticket") String ticket); /** * 购买钻石宝箱钥匙 @@ -255,8 +257,8 @@ public class BoxModel extends BaseModel implements IBoxModel { @FormUrlEncoded @POST("box/diamond/buykey") Single> buyHonourKey(@Field("uid") long uid, - @Field("keyNum") int keyNum, - @Field("ticket") String ticket); + @Field("keyNum") int keyNum, + @Field("ticket") String ticket); /** * 至尊蛋本期奖池 diff --git a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java index 250218981..e7f9ef0fe 100644 --- a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java +++ b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/IBoxModel.java @@ -31,7 +31,7 @@ public interface IBoxModel extends IModel { * @param sendMessage * @return */ - Single openBox(int keyNum, boolean sendMessage); + Single openBox(int boxType,int keyNum, boolean sendMessage); /** * 获取中奖记录 @@ -60,7 +60,7 @@ public interface IBoxModel extends IModel { * * @return */ - Single getKeyInfo(); + Single getKeyInfo(int boxType); /** * 获取奖品列表 diff --git a/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ScreenUtil.java b/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ScreenUtil.java index 4f08bec6c..197cf2abb 100644 --- a/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ScreenUtil.java +++ b/nim_uikit/src/com/netease/nim/uikit/common/util/sys/ScreenUtil.java @@ -57,7 +57,7 @@ public class ScreenUtil { DisplayMetrics dm = context.getApplicationContext().getResources().getDisplayMetrics(); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels; - screenMin = (screenWidth > screenHeight) ? screenHeight : screenWidth; + screenMin = Math.min(screenWidth, screenHeight); density = dm.density; scaleDensity = dm.scaledDensity; xdpi = dm.xdpi;