diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d1e6e9334..829e7c028 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1320,6 +1320,14 @@ android:name=".avroom.newuserchargegift.NewUserChargeGiftDialog" android:theme="@style/dialogactivity" /> + + + + \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java b/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java index 7bb3a497b..b24d5b09f 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java +++ b/app/src/main/java/com/yizhuan/erban/ui/webview/DialogWebViewActivity.java @@ -3,6 +3,8 @@ package com.yizhuan.erban.ui.webview; import android.content.Context; import android.content.Intent; import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.TextUtils; import android.view.Gravity; @@ -39,8 +41,6 @@ public class DialogWebViewActivity extends CommonWebViewActivity { showTitleBar = getIntent().getBooleanExtra("showTitleBar", true); if (!showTitleBar) { layoutTitleBar.setVisibility(View.GONE); - webView.setBackgroundColor(Color.TRANSPARENT); - webView.getBackground().setAlpha(0); } } diff --git a/app/src/main/res/layout/box_ranking_list_item.xml b/app/src/main/res/layout/box_ranking_list_item.xml index 55274e734..f9783cf6e 100644 --- a/app/src/main/res/layout/box_ranking_list_item.xml +++ b/app/src/main/res/layout/box_ranking_list_item.xml @@ -1,75 +1,97 @@ + android:background="@drawable/bg_common_touch_while" + android:orientation="vertical"> - + + + + + + + + android:layout_gravity="center_vertical" + /> - + + + + + + - - - - - - - - - - + android:drawableEnd="@drawable/treasure_box_diamond" + android:drawablePadding="5dp" + /> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/pull_radish_ranking_list_item.xml b/app/src/main/res/layout/pull_radish_ranking_list_item.xml new file mode 100644 index 000000000..81f81cc40 --- /dev/null +++ b/app/src/main/res/layout/pull_radish_ranking_list_item.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/PullRadishActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/PullRadishActivity.java index 6fd85a960..5ade4a6e5 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/PullRadishActivity.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/PullRadishActivity.java @@ -8,8 +8,12 @@ import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.view.Gravity; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager; +import android.widget.LinearLayout; +import android.widget.TextView; import com.netease.nim.uikit.StatusBarUtil; import com.netease.nim.uikit.common.util.sys.ScreenUtil; @@ -18,8 +22,10 @@ import com.yizhuan.erban.base.BaseBindingActivity; import com.yizhuan.erban.common.svga.SimpleSvgaCallback; import com.yizhuan.erban.databinding.ActivityPullRadishBinding; import com.yizhuan.erban.ui.webview.DialogWebViewActivity; +import com.yizhuan.treasure_box.bean.PrizeInfo; import com.yizhuan.treasure_box.model.IBoxModel; import com.yizhuan.treasure_box.model.RadishModel; +import com.yizhuan.xchat_android_core.DemoCache; import com.yizhuan.xchat_android_core.UriProvider; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.RoomEvent; @@ -29,16 +35,22 @@ import com.yizhuan.xchat_android_library.annatation.ActLayoutRes; import com.yizhuan.xchat_android_library.utils.SingleToastUtil; import com.yizhuan.xchat_android_library.utils.TextWatcherWrapper; +import java.util.ArrayList; import java.util.concurrent.TimeUnit; +import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @ActLayoutRes(R.layout.activity_pull_radish) public class PullRadishActivity extends BaseBindingActivity implements View.OnClickListener { + private final Runnable removeRunnable = () -> mBinding.llPrizeHint.removeAllViews(); + private final String[] openKeyNumbers = new String[]{"1", "10", "50", "100"}; + private int keyIndex = 0; private volatile int keyNum = -1; private AnimatorSet animatorSet; private int boxType = IBoxModel.BOX_TYPE_NORMAL; private int height; + private ArrayList hintPrizeCacheList = new ArrayList<>(); public static void start(Context context) { Intent starter = new Intent(context, PullRadishActivity.class); @@ -53,6 +65,7 @@ public class PullRadishActivity extends BaseBindingActivity 200) { mBinding.editNum.setText("200"); - mBinding.editNum.setSelection(3); SingleToastUtil.showToast("一次性最多只能拔200次"); } } @@ -113,22 +125,20 @@ public class PullRadishActivity extends BaseBindingActivity { - mBinding.ivOpen.setEnabled(true); - changeKeyNum(openBoxResult.getRemainKeyNum()); - RadishResultDialog.newInstance(openBoxResult).show(this); - } - ) - .subscribe(); + .flatMap(openBoxResult -> { + mBinding.ivOpen.setEnabled(true); + changeKeyNum(openBoxResult.getRemainKeyNum()); + if (DemoCache.readRadishTips()) { + RadishResultDialog.newInstance(openBoxResult).show(this); + } + return Observable.fromIterable(openBoxResult.getPrizeItemList()); + }) + .filter(prizeInfo -> prizeInfo.getPrizeLevel() > 2) + .subscribe(prizeInfo -> hintPrizeCacheList.add(prizeInfo)); + } + + + @SuppressLint("CheckResult") + private void looperHintPrize() { + Observable.interval(0, 250, TimeUnit.MILLISECONDS) + .compose(bindToLifecycle()) + .observeOn(AndroidSchedulers.mainThread()) + .filter(aLong -> hintPrizeCacheList.size() > 0) + .subscribe(aLong -> addPrizeHintView(hintPrizeCacheList.remove(0)) + , e -> looperHintPrize());//出错了继续looper...... + } + + private void addPrizeHintView(PrizeInfo prizeInfo) { + mBinding.llPrizeHint.removeCallbacks(removeRunnable); + mBinding.llPrizeHint.postDelayed(removeRunnable, 15000); + LinearLayout linearLayout = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.item_box_prize_hint, null); + LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ScreenUtil.dip2px(21)); + layoutParams.setMargins(0, 0, 0, ScreenUtil.dip2px(5)); + linearLayout.setLayoutParams(layoutParams); + switch (prizeInfo.getPrizeLevel()) { + case 3: + default: + linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v3); + break; + case 4: + linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v4); + break; + case 5: + linearLayout.setBackgroundResource(R.drawable.bg_box_prize_hint_v5); + break; + } + mBinding.llPrizeHint.addView(linearLayout); + if (mBinding.llPrizeHint.getChildCount() > 6) { + mBinding.llPrizeHint.removeViewAt(0); + } + for (int i = 0; i < mBinding.llPrizeHint.getChildCount(); i++) { + ObjectAnimator.ofFloat(mBinding.llPrizeHint.getChildAt(i), "translationY", ScreenUtil.dip2px(21), 0) + .setDuration(200) + .start(); + } + + ((TextView) linearLayout.findViewById(R.id.tv_prize_name)).setText(prizeInfo.getPrizeName()); + ((TextView) linearLayout.findViewById(R.id.tv_prize_num)).setText("x" + prizeInfo.getPrizeNum()); } /** diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishRankingFragment.java b/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishRankingFragment.java index 73a86bb5b..5a2f0f7ab 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishRankingFragment.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishRankingFragment.java @@ -30,7 +30,7 @@ import org.greenrobot.eventbus.ThreadMode; public class RadishRankingFragment extends BaseMvpFragment implements IRadishRankingView, BaseQuickAdapter.RequestLoadMoreListener { private RecyclerView recyclerView; private SwipeRefreshLayout swipeRefresh; - private BoxRankingListAdapter mAdapter; + private RadishRankingListAdapter mAdapter; private int datetype; public static RadishRankingFragment newInstance(int datetype) { @@ -93,7 +93,7 @@ public class RadishRankingFragment extends BaseMvpFragment { + + private Context mContext; + + public RadishRankingListAdapter(Context context) { + super(R.layout.pull_radish_ranking_list_item); + this.mContext = context; + } + + @Override + protected void convert(BaseViewHolder baseViewHolder, final BoxRankingInfo.RankVosBean rankVosBeans) { + if (rankVosBeans == null) return; + + baseViewHolder.setText(R.id.tv_userName, rankVosBeans.getNick()).setText(R.id.tv_amount, rankVosBeans.getAmount() + ""); + ImageLoadKt.loadAvatar(baseViewHolder.getView(R.id.iv_avatar), rankVosBeans.getAvatar()); + TextView tvPosition = baseViewHolder.getView(R.id.tv_position); + ImageView ivPosition = baseViewHolder.getView(R.id.iv_position); + switch (baseViewHolder.getLayoutPosition()) { + case 0: + tvPosition.setVisibility(View.GONE); + ivPosition.setVisibility(View.VISIBLE); + ivPosition.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_box_ranking_first)); + break; + case 1: + tvPosition.setVisibility(View.GONE); + ivPosition.setVisibility(View.VISIBLE); + ivPosition.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_box_ranking_second)); + break; + case 2: + tvPosition.setVisibility(View.GONE); + ivPosition.setVisibility(View.VISIBLE); + ivPosition.setImageDrawable(mContext.getResources().getDrawable(R.drawable.ic_box_ranking_third)); + break; + default: + tvPosition.setVisibility(View.VISIBLE); + ivPosition.setVisibility(View.GONE); + tvPosition.setText(baseViewHolder.getLayoutPosition() + 1 + ""); + break; + } + } +} diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishResultDialog.kt b/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishResultDialog.kt index 5b20a08b2..7a8e1f593 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishResultDialog.kt +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/shipantics/RadishResultDialog.kt @@ -1,6 +1,7 @@ package com.yizhuan.erban.shipantics import android.os.Bundle +import android.view.WindowManager import android.widget.ImageView import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager @@ -14,6 +15,7 @@ import com.yizhuan.erban.ui.utils.RVDelegate import com.yizhuan.erban.ui.utils.load import com.yizhuan.treasure_box.bean.OpenBoxResult import com.yizhuan.treasure_box.bean.PrizeInfo +import com.yizhuan.xchat_android_core.DemoCache class RadishResultDialog : BaseDialog() { @@ -29,7 +31,6 @@ class RadishResultDialog : return fragment } } - private val openBoxResult: OpenBoxResult by lazy { requireArguments().getSerializable("openBoxResult")!! as OpenBoxResult } private lateinit var rvDelegate: RVDelegate @@ -42,10 +43,23 @@ class RadishResultDialog : helper.getView(R.id.iv_gift).load(item.prizeImgUrl) } }) - .setLayoutManager(GridLayoutManager(context, 5, RecyclerView.VERTICAL, false)) + .setLayoutManager( + if (openBoxResult.prizeItemList?.size == 1) { + LinearLayoutManager(context) + } else { + GridLayoutManager(context, 5, RecyclerView.VERTICAL, false) + } + ) .setRecyclerView(binding.recyclerView) .build() + rvDelegate.setNewData(openBoxResult.prizeItemList) + + binding.ivClose.setOnClickListener { dismissAllowingStateLoss() } + + binding.checkBox.setOnCheckedChangeListener { _, isChecked -> + DemoCache.saveRadishTips(!isChecked) + } } } \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java index e1f44e21a..c8404b3de 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/GoldBoxHelper.java @@ -5,6 +5,7 @@ import android.content.Context; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; +import com.yizhuan.erban.shipantics.PullRadishActivity; import com.yizhuan.erban.treasure_box.activity.TreasureBoxActivity; import com.yizhuan.erban.treasure_box.activity.TreasureBoxHonourActivity; import com.yizhuan.erban.treasure_box.fragment.ChooseTreasureBoxDialogFragment; @@ -67,7 +68,8 @@ public class GoldBoxHelper { }); chooseTreasureBoxDialogFragment.show(((FragmentActivity) context).getSupportFragmentManager(), "chooseTreasureBoxDialogFragment"); } else { - TreasureBoxActivity.start(context); + //TreasureBoxActivity.start(context); + PullRadishActivity.start(context); } } diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v3.9.png b/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v3.9.png index 5b6bac257..845e279d3 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v3.9.png and b/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v3.9.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v4.9.png b/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v4.9.png index 50a841d51..d7a64f3ea 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v4.9.png and b/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v4.9.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v5.9.png b/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v5.9.png index f11c036e4..8685b4459 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v5.9.png and b/app/src/module_treasure_box/res/drawable-xhdpi/bg_box_prize_hint_v5.9.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_bg.png b/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_bg.png index 5d63a09b9..a3a3be722 100644 Binary files a/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_bg.png and b/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_bg.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_tips_checked.png b/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_tips_checked.png new file mode 100644 index 000000000..c4fc12f45 Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_tips_checked.png differ diff --git a/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_tips_unchecked.png b/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_tips_unchecked.png new file mode 100644 index 000000000..d66c2ad6c Binary files /dev/null and b/app/src/module_treasure_box/res/drawable-xhdpi/pull_radish_tips_unchecked.png differ diff --git a/app/src/module_treasure_box/res/drawable/selector_check_box_radish_tips.xml b/app/src/module_treasure_box/res/drawable/selector_check_box_radish_tips.xml new file mode 100644 index 000000000..1ea2cedfe --- /dev/null +++ b/app/src/module_treasure_box/res/drawable/selector_check_box_radish_tips.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/module_treasure_box/res/layout/activity_pull_radish.xml b/app/src/module_treasure_box/res/layout/activity_pull_radish.xml index 17c4d867d..251f91fa7 100644 --- a/app/src/module_treasure_box/res/layout/activity_pull_radish.xml +++ b/app/src/module_treasure_box/res/layout/activity_pull_radish.xml @@ -58,23 +58,12 @@ app:layout_constraintEnd_toEndOf="@id/iv_rank" app:layout_constraintTop_toBottomOf="@id/iv_get_key" /> - - + + + + app:layout_constraintTop_toBottomOf="@id/iv_more" /> - + + diff --git a/app/src/module_treasure_box/res/layout/item_box_prize_hint.xml b/app/src/module_treasure_box/res/layout/item_box_prize_hint.xml index c15fe09c0..58546c937 100644 --- a/app/src/module_treasure_box/res/layout/item_box_prize_hint.xml +++ b/app/src/module_treasure_box/res/layout/item_box_prize_hint.xml @@ -19,9 +19,6 @@ android:lines="1" android:textColor="@color/white" android:textSize="11sp" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" tools:text="哈哈哈哈" /> \ No newline at end of file diff --git a/app/src/module_treasure_box/res/layout/item_radish_result.xml b/app/src/module_treasure_box/res/layout/item_radish_result.xml index 1cef445ae..cce34f7b0 100644 --- a/app/src/module_treasure_box/res/layout/item_radish_result.xml +++ b/app/src/module_treasure_box/res/layout/item_radish_result.xml @@ -21,7 +21,8 @@ android:layout_height="wrap_content" android:layout_marginTop="6dp" android:layout_marginBottom="6dp" - android:gravity="center" + android:gravity="center_horizontal" + android:lines="2" android:textColor="#ffa08161" android:textSize="10sp" tools:text="这个礼物*1" /> 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 59fc3270a..e98a65ba9 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 @@ -492,21 +492,21 @@ public class UriProvider { * 航海帮助 */ public static String getRadishHelp() { - return JAVA_WEB_URL.concat("/yinyou/modules/rule/radishRule.html"); + return JAVA_WEB_URL.concat("/yinyou/activity/act-sail/play_explain.html"); } /** * 航海记录 */ public static String getRadishHistory() { - return JAVA_WEB_URL.concat("/yinyou/modules/rank/index.html#/RadishRecord"); + return JAVA_WEB_URL.concat("/yinyou/activity/act-sail/win_record.html"); } /** * 获取航海钥匙 */ public static String getRadishKey() { - return JAVA_WEB_URL.concat("/yinyou/activity/radish/index.html"); + return JAVA_WEB_URL.concat("/yinyou/activity/act-sail/more.html"); } } diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java b/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java index 6c65bea80..184e3b770 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/DemoCache.java @@ -54,6 +54,8 @@ public class DemoCache { private static final String KEY_ANCHOR_CARD_VIEW = "key_anchor_card_view"; private static final String KEY_ANCHOR_CARD_VIEW_TIME = "key_anchor_card_view_time"; private static final String KEY_LAUNCH_COUNT = "key_launch_count"; + private static final String KEY_RADISH_TIPS = "key_radish_tips"; + private static StatusBarNotificationConfig notificationConfig; public static Long readSpeedyMessageGoneTime() { @@ -293,5 +295,13 @@ public class DemoCache { return SettingsPref.instance().getInt(KEY_LAUNCH_COUNT, -1); } + public static void saveRadishTips(boolean value) { + SettingsPref.instance().putBoolean(KEY_RADISH_TIPS, value); + } + + public static boolean readRadishTips() { + return SettingsPref.instance().getBoolean(KEY_RADISH_TIPS, true); + } + }