diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3f1f996be..629027274 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -91,7 +91,6 @@ android:icon="@mipmap/app_logo" android:label="@string/app_name" android:largeHeap="true" - android:requestLegacyExternalStorage="true" android:resizeableActivity="true" android:supportsRtl="true" android:theme="@style/MyMaterialTheme" @@ -406,12 +405,7 @@ android:configChanges="keyboardHidden|orientation|screenSize|locale" android:theme="@android:style/Theme.Translucent" /> - + ?> : // 刷新礼物列表,获取房间专属礼物列表 GiftModel.get().refreshGiftList(AvRoomDataManager.get().roomUid.toString()).subscribe() checkFollowOwner() - mvpPresenter?.loadRoomRank() GiftValueMrg.get().updateRoomGiftValue(false) ivRadishEntrance?.isVisible = GoldBoxHelper.isShowRadish() diff --git a/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyFragment.kt b/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyFragment.kt index 04fc48d79..311115feb 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyFragment.kt +++ b/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyFragment.kt @@ -6,6 +6,8 @@ import android.os.Bundle import android.view.Gravity import android.view.View import android.view.ViewConfiguration +import android.widget.ImageView +import androidx.core.content.ContextCompat import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager @@ -20,6 +22,7 @@ import com.nnbc123.app.avroom.activity.AVRoomActivity import com.nnbc123.app.avroom.activity.RoomOnlineUserActivity import com.nnbc123.app.avroom.adapter.SelectGameAdapter import com.nnbc123.app.avroom.dialog.ExitRoomPopupWindow.Companion.newInstance +import com.nnbc123.app.avroom.event.EnterRoomEvent import com.nnbc123.app.base.BaseFragment import com.nnbc123.app.databinding.FragmentChatroomGameMainBinding import com.nnbc123.app.friend.view.SelectFriendActivity @@ -31,10 +34,12 @@ import com.nnbc123.app.ui.widget.ShareDialog.OnShareDialogItemClick import com.nnbc123.app.utils.RegexUtil import com.nnbc123.app.vip.VipMainActivity import com.nnbc123.core.UriProvider +import com.nnbc123.core.bean.response.ServiceResult import com.nnbc123.core.gift.bean.GiftMultiReceiverInfo import com.nnbc123.core.gift.bean.GiftReceiveInfo import com.nnbc123.core.gift.bean.LuckyBagGifts import com.nnbc123.core.gift.bean.MultiGiftReceiveInfo +import com.nnbc123.core.home.bean.BannerInfo import com.nnbc123.core.home.event.FollowRoomEvent import com.nnbc123.core.home.event.ShareRoomEvent import com.nnbc123.core.home.model.CollectionRoomModel @@ -60,11 +65,13 @@ import com.nnbc123.core.statistic.protocol.StatisticsProtocol import com.nnbc123.core.super_admin.util.SuperAdminUtil import com.nnbc123.core.user.UserModel import com.nnbc123.core.user.bean.UserInfo +import com.nnbc123.core.utils.LogUtils import com.nnbc123.core.utils.net.RxHelper import com.nnbc123.library.rxbus.RxBus import com.nnbc123.library.utils.FormatUtils import com.nnbc123.library.utils.JavaUtil import com.nnbc123.library.utils.SingleToastUtil +import com.tencent.bugly.proguard.A import com.trello.rxlifecycle3.android.FragmentEvent import io.reactivex.SingleObserver import io.reactivex.disposables.Disposable @@ -160,6 +167,28 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte AvRoomDataManager.get().mIsNeedGiftEffect = AvRoomDataManager.get().mCurrentRoomInfo?.isHasAnimationEffect ?: false } + IMNetEaseManager.get().chatRoomEventObservable + .compose(bindToLifecycle()) + .subscribe { roomEvent: RoomEvent? -> + if (roomEvent == null) return@subscribe + LogUtils.d(roomEvent.event.toString()) + when (roomEvent.event) { + RoomEvent.ENTER_ROOM -> { + updateOnlineNumberView( + AvRoomDataManager.get().mCurrentRoomInfo?.onlineNum ?: 0 + ) + addTipMsg() + setRoomBg(AvRoomDataManager.get().mCurrentRoomInfo) + updateView() + } + RoomEvent.ROOM_INFO_UPDATE -> { + setRoomBg(AvRoomDataManager.get().mCurrentRoomInfo) + updateView() + } + else -> { + } + } + } } private fun initRvGame() { @@ -236,8 +265,6 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte @SuppressLint("CheckResult") override fun onResume() { super.onResume() - updateView(AvRoomDataManager.get().mCurrentRoomInfo) - loadRoomRank() IMNetEaseManager.get().chatRoomEventObservable .compose(bindToLifecycle()) .subscribe { roomEvent: RoomEvent? -> @@ -265,6 +292,7 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte else -> {} } } + loadRoomRank() } private fun onReceiveLuckyGiftToMultiMsg(giftMultiReceiverInfo: LuckyBagGifts?) { @@ -292,6 +320,7 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte tipMessage.content = "礼物特效" IMNetEaseManager.get().addCloseScreenMessages(tipMessage) } + loadRoomRank() } private fun setIdOnlineData() { @@ -321,18 +350,45 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte } @SuppressLint("CheckResult") - fun updateView(currentRoomInfo: RoomInfo?) { - if (currentRoomInfo != null) { + fun updateView(currentRoomInfo: RoomInfo?=null) { + (currentRoomInfo ?: AvRoomDataManager.get().mCurrentRoomInfo)?.let { + binding.roomInfo=it + updateHasAnimationEffect() + binding.roomTitle.text=RegexUtil.getPrintableString(it.getTitle()) + if (!StringUtil.isEmpty(it.getRoomPwd())){ + binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds( + 0,0,R.drawable.icon_room_lock,0 + ) + }else{ + binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds( + 0,0,0,0 + ) + } + binding.tvFollowRoom.visibility= + if (AvRoomDataManager.get().isRoomOwner)View.GONE else View.VISIBLE + FOLLOW_ROOM_TYPE=if (AvRoomDataManager.get().isRoomFans) "2" else "1" + binding.tvFollowRoom.text = if (AvRoomDataManager.get().isRoomFans) "已收藏" else "收藏" + binding.tvFollowRoom.setTextColor( + if (AvRoomDataManager.get().isRoomFans) ContextCompat.getColor( + mContext, + R.color.white + ) else ContextCompat.getColor(mContext, R.color.color_FFE285) + ) + binding.tvFollowRoom.setBackgroundResource(if (AvRoomDataManager.get().isRoomFans) R.drawable.bg_room_follow_room_collected else R.drawable.bg_room_follow_room) var tempFragment = roomFragment - when (currentRoomInfo.type) { - RoomInfo.ROOMTYPE_GAME -> if (tempFragment !is GameRoomFragment) { - tempFragment = GameRoomFragment.newInstance() - } - RoomInfo.ROOM_TYPE_SINGLE -> if (tempFragment !is SingleRoomFragment) { - tempFragment = SingleRoomFragment.newInstance() - } - else -> if (tempFragment !is HomePartyRoomFragment) { - tempFragment = HomePartyRoomFragment.newInstance() + if (currentRoomInfo != null) { + when (currentRoomInfo.type) { + RoomInfo.ROOMTYPE_GAME -> if (tempFragment !is GameRoomFragment) { + tempFragment = GameRoomFragment.newInstance() + } + + RoomInfo.ROOM_TYPE_SINGLE -> if (tempFragment !is SingleRoomFragment) { + tempFragment = SingleRoomFragment.newInstance() + } + + else -> if (tempFragment !is HomePartyRoomFragment) { + tempFragment = HomePartyRoomFragment.newInstance() + } } } if (tempFragment !== roomFragment) { @@ -344,47 +400,22 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte } binding.roomInfo = currentRoomInfo updateHasAnimationEffect() - binding.roomTitle.text = RegexUtil.getPrintableString(currentRoomInfo.getTitle()) - if (!StringUtil.isEmpty(currentRoomInfo.getRoomPwd())) { - binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds( - null, null, - resources.getDrawable(R.drawable.icon_room_lock), null - ) - } else { - binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null) + if (currentRoomInfo != null) { + binding.roomTitle.text = RegexUtil.getPrintableString(currentRoomInfo.getTitle()) + } + if (currentRoomInfo != null) { + if (!StringUtil.isEmpty(currentRoomInfo.getRoomPwd())) { + binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds( + null, null, + resources.getDrawable(R.drawable.icon_room_lock), null + ) + } else { + binding.roomTitle.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null) + } } setupFollowRoom() FOLLOW_ROOM_TYPE = if (AvRoomDataManager.get().isRoomFans) "2" else "1" setIdOnlineData() - if (isShowChangeGame) { - initRvGame() - binding.llChangeGame.visibility = View.VISIBLE - if (AvRoomDataManager.get().isOpenGame) { - binding.tvCurrGame.text = currentRoomInfo.mgName - } else { - binding.tvCurrGame.text = "扩列交友" - } - getGameList() - .compose(bindToLifecycle()) - .map { it.toMutableList() } - .subscribe { gameInfos: MutableList -> - if (AvRoomDataManager.get().isOpenGame) { - for (i in gameInfos.indices) { - val (_, mgId) = gameInfos[i] - if (JavaUtil.str2long(mgId) == currentRoomInfo.mgId) { - gameInfos.removeAt(i) - break - } - } - val gameInfo = GameInfo() - gameInfo.name = "扩列交友" - gameInfos.add(gameInfo) - } - gameAdapter?.setNewData(gameInfos) - } - } else { - binding.llChangeGame.visibility = View.GONE - } } } @@ -403,7 +434,10 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte fun updateHasAnimation(event: HasAnimationEffect?) { updateHasAnimationEffect() } - + @Subscribe(threadMode = ThreadMode.MAIN) + fun enterRoomEvent(event: EnterRoomEvent?) { + loadRoomRank() + } override fun onClick(v: View) { when (v.id) { R.id.room_more -> newInstance((requireActivity() as AVRoomActivity)) @@ -422,10 +456,17 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte .onEvent(StatisticsProtocol.EVENT_ROOM_RETURN_CLICK, "房间返回按钮点击") } R.id.ll_rank -> { - DialogWebViewActivity.start(mContext, UriProvider.getRoomRanking()) - StatisticManager.Instance() - .onEvent(StatisticsProtocol.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜") loadRoomRank() + if (AvRoomDataManager.get().isCpRoom) { + StatisticManager.Instance() + .onEvent(StatisticsProtocol.EVENT_CP_ROOM_RANKING_LIST_CLICK, "房间榜") + } else StatisticManager.Instance() + .onEvent(StatisticsProtocol.EVENT_MP_ROOM_RANKING_LIST_CLICK, "房间榜") + if (childFragmentManager.findFragmentByTag("dialog_fragment_room_rank") != null) { + return + } + val roomRankDialogFragment = RoomRankDialogFragment.newInstance() + roomRankDialogFragment.show(childFragmentManager, "dialog_fragment_room_rank") } else -> {} } @@ -466,16 +507,28 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte @SuppressLint("CheckResult") fun loadRoomRank() { val type = - if (AvRoomDataManager.get().isSingleRoom) { - RoomContributeDataInfo.TYPE_ROOM_WEEK_RANKING - } else { - RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING - } + if (AvRoomDataManager.get().isSingleRoom) RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING else RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING RoomContributeListModel.get().getSingleRoomRanking(1, type) .compose(bindToLifecycle()) .compose(RxHelper.handleBeanData()) .subscribe { roomContributeDataInfo: RoomContributeDataInfo -> + val rankings = roomContributeDataInfo.rankings updateRoomRanks(roomContributeDataInfo.rankings) + var imageView: ImageView + val avatarList = listOf( + binding.ivRank0, + binding.ivRank1, + binding.ivRank2 + ) + for (i in avatarList.indices) { + imageView = avatarList[i] + if (rankings.size > i) { + val info = rankings[i] + imageView.loadAvatar(info.avatar) + } else { + imageView.setImageResource(R.drawable.default_avatar) + } + } } } @@ -565,11 +618,9 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte } } - override fun onDestroyView() { - super.onDestroyView() + override fun onDestroy() { EventBus.getDefault().unregister(this) - binding.vsGiftView.release() - _binding = null + super.onDestroy() } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -581,6 +632,7 @@ class HomePartyFragment : BaseFragment(), View.OnClickListener, OnShareDialogIte updateOnlineNumberView(onlineNumber) } + /** * 普通多人 * diff --git a/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyRoomFragment.java index 702eddf6f..bae2a6fc3 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/nnbc123/app/avroom/fragment/HomePartyRoomFragment.java @@ -4,24 +4,60 @@ import android.annotation.SuppressLint; import android.os.Bundle; import android.text.TextUtils; import android.view.View; +import android.widget.ImageView; import androidx.databinding.DataBindingUtil; +import com.netease.nim.uikit.common.util.log.LogUtil; +import com.nnbc123.app.R; +import com.nnbc123.app.avroom.activity.AVRoomActivity; +import com.nnbc123.app.avroom.adapter.BaseMicroViewAdapter; +import com.nnbc123.app.avroom.adapter.CpMicroViewAdapter; +import com.nnbc123.app.avroom.adapter.DatingMicroViewAdapter; +import com.nnbc123.app.avroom.adapter.MicroViewAdapter; +import com.nnbc123.app.avroom.anotherroompk.RoomPkFinishDialog; +import com.nnbc123.app.avroom.anotherroompk.RoomPkForceFinishDialog; +import com.nnbc123.app.avroom.anotherroompk.RoomPkReceivedDialog; +import com.nnbc123.app.avroom.dialog.MicQueueDialog; +import com.nnbc123.app.avroom.dialog.PKMicQueueDialog; +import com.nnbc123.app.avroom.dialog.PKResultDialog; +import com.nnbc123.app.avroom.dialog.PKScoreBoardDialog; +import com.nnbc123.app.avroom.event.EnterRoomEvent; +import com.nnbc123.app.avroom.firstcharge.FirstChargePrizeDialog; +import com.nnbc123.app.avroom.giftvalue.GiftValueDialogUiHelper; +import com.nnbc123.app.avroom.presenter.HomePartyPresenter; +import com.nnbc123.app.avroom.view.IHomePartyView; +import com.nnbc123.app.avroom.widget.PKBoardView; +import com.nnbc123.app.base.BaseMvpActivity; +import com.nnbc123.app.common.widget.dialog.DialogManager; +import com.nnbc123.app.databinding.FragmentAvRoomGameBinding; +import com.nnbc123.app.ui.utils.ImageLoadKt; +import com.nnbc123.app.ui.webview.DatingRuleWebViewActivity; +import com.nnbc123.app.ui.webview.DialogWebViewActivity; +import com.nnbc123.app.utils.UserUtils; import com.nnbc123.core.Constants; import com.nnbc123.core.UriProvider; import com.nnbc123.core.auth.AuthModel; +import com.nnbc123.core.gift.GiftModel; import com.nnbc123.core.home.bean.BannerInfo; import com.nnbc123.core.home.event.ShareRoomEvent; import com.nnbc123.core.im.custom.bean.RoomPKAttachment; import com.nnbc123.core.im.custom.bean.RoomPkBean; +import com.nnbc123.core.initial.InitialModel; +import com.nnbc123.core.initial.bean.InitInfo; import com.nnbc123.core.manager.AvRoomDataManager; +import com.nnbc123.core.manager.IMNetEaseManager; import com.nnbc123.core.manager.RoomEvent; import com.nnbc123.core.market_verify.MarketVerifyModel; +import com.nnbc123.core.mentoring_relationship.event.MentoringStartCountingEvent; +import com.nnbc123.core.mentoring_relationship.event.MentoringStopCountingEvent; import com.nnbc123.core.pay.event.FirstChargeEvent; +import com.nnbc123.core.room.bean.RoomContributeUserInfo; import com.nnbc123.core.room.bean.RoomInfo; import com.nnbc123.core.room.event.DatingSelectUserEvent; import com.nnbc123.core.room.face.DynamicFaceModel; import com.nnbc123.core.room.face.FaceInfo; +import com.nnbc123.core.room.giftvalue.helper.GiftValueMrg; import com.nnbc123.core.room.model.AvRoomModel; import com.nnbc123.core.room.model.MicQueueModel; import com.nnbc123.core.room.pk.bean.PKRespQueuingMicListInfo; @@ -36,43 +72,22 @@ import com.nnbc123.core.statistic.protocol.StatisticsProtocol; import com.nnbc123.core.super_admin.util.SuperAdminUtil; import com.nnbc123.core.user.UserModel; import com.nnbc123.core.utils.CurrentTimeUtils; -import com.nnbc123.app.R; -import com.nnbc123.app.avroom.activity.AVRoomActivity; -import com.nnbc123.app.avroom.adapter.BaseMicroViewAdapter; -import com.nnbc123.app.avroom.adapter.CpMicroViewAdapter; -import com.nnbc123.app.avroom.adapter.DatingMicroViewAdapter; -import com.nnbc123.app.avroom.adapter.MicroViewAdapter; -import com.nnbc123.app.avroom.anotherroompk.RoomPkFinishDialog; -import com.nnbc123.app.avroom.anotherroompk.RoomPkForceFinishDialog; -import com.nnbc123.app.avroom.anotherroompk.RoomPkReceivedDialog; -import com.nnbc123.app.avroom.dialog.MicQueueDialog; -import com.nnbc123.app.avroom.dialog.PKMicQueueDialog; -import com.nnbc123.app.avroom.dialog.PKResultDialog; -import com.nnbc123.app.avroom.dialog.PKScoreBoardDialog; -import com.nnbc123.app.avroom.firstcharge.FirstChargePrizeDialog; -import com.nnbc123.app.avroom.giftvalue.GiftValueDialogUiHelper; -import com.nnbc123.app.avroom.presenter.HomePartyPresenter; -import com.nnbc123.app.avroom.view.IHomePartyView; -import com.nnbc123.app.avroom.widget.PKBoardView; -import com.nnbc123.app.base.BaseMvpActivity; -import com.nnbc123.app.common.widget.dialog.DialogManager; -import com.nnbc123.app.databinding.FragmentAvRoomGameBinding; -import com.nnbc123.app.ui.webview.DatingRuleWebViewActivity; -import com.nnbc123.app.ui.webview.DialogWebViewActivity; -import com.nnbc123.app.utils.UserUtils; import com.nnbc123.library.base.factory.CreatePresenter; import com.nnbc123.library.utils.SingleToastUtil; import com.nnbc123.library.utils.TimeUtils; import com.nnbc123.library.utils.UIUtils; -import com.netease.nim.uikit.common.util.log.LogUtil; +import com.orhanobut.logger.Logger; import com.trello.rxlifecycle3.android.FragmentEvent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; @@ -307,6 +322,44 @@ public class HomePartyRoomFragment extends BaseRoomFragment { + if (userInfo.isFirstCharge()) { + gameBinding.ivFirstChargeEnter.setVisibility(View.VISIBLE); + } + InitInfo initInfo = InitialModel.get().getCacheInitInfo(); + + + }); + updatePkScoreBoard(); + } /** * cp房自动上麦 @@ -943,6 +996,28 @@ public class HomePartyRoomFragment extends BaseRoomFragment rankings) { + List avatarList = Arrays.asList( + mView.findViewById(R.id.iv_rank_0), + mView.findViewById(R.id.iv_rank_1), + mView.findViewById(R.id.iv_rank_2) + ); + RoomContributeUserInfo info = null; + ImageView imageView; + for (int i = 0; i < avatarList.size(); i++) { + imageView = avatarList.get(i); + if (rankings.size() > i) { + info = rankings.get(i); + ImageLoadKt.loadAvatar(imageView, info.getAvatar()); + } else { + imageView.setImageResource(R.drawable.default_avatar); + } + + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) public void onFirstRechargeEvent(FirstChargeEvent event) { diff --git a/app/src/main/java/com/nnbc123/app/avroom/presenter/BaseRoomPresenter.java b/app/src/main/java/com/nnbc123/app/avroom/presenter/BaseRoomPresenter.java index 23bb466be..f9971fbe6 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/presenter/BaseRoomPresenter.java +++ b/app/src/main/java/com/nnbc123/app/avroom/presenter/BaseRoomPresenter.java @@ -529,9 +529,9 @@ public class BaseRoomPresenter extends BaseMvpPresenter .compose(bindToLifecycle()) .compose(RxHelper.handleBeanData()) .subscribe(roomContributeDataInfo -> { - if (getMvpView() == null) { - return; - } +// if (getMvpView() == null) { +// return; +// } getMvpView().updateRoomRanks(roomContributeDataInfo.getRankings()); }); } diff --git a/app/src/main/java/com/nnbc123/app/avroom/presenter/HomePartyPresenter.java b/app/src/main/java/com/nnbc123/app/avroom/presenter/HomePartyPresenter.java index 0f89fd622..9f7b6df12 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/presenter/HomePartyPresenter.java +++ b/app/src/main/java/com/nnbc123/app/avroom/presenter/HomePartyPresenter.java @@ -21,16 +21,19 @@ import com.nnbc123.core.manager.AvRoomDataManager; import com.nnbc123.core.manager.IMNetEaseManager; import com.nnbc123.core.manager.RoomEvent; import com.nnbc123.core.room.bean.DragonBarInfo; +import com.nnbc123.core.room.bean.RoomContributeDataInfo; import com.nnbc123.core.room.bean.RoomInfo; import com.nnbc123.core.room.dragonball.DragonBallModel; import com.nnbc123.core.room.face.FaceInfo; import com.nnbc123.core.room.face.FaceReceiveInfo; import com.nnbc123.core.room.giftvalue.helper.GiftValueMrg; +import com.nnbc123.core.room.model.RoomContributeListModel; import com.nnbc123.core.room.model.RoomSettingModel; import com.nnbc123.core.room.queue.bean.MicMemberInfo; import com.nnbc123.core.user.UserModel; import com.nnbc123.core.user.bean.UserInfo; import com.nnbc123.core.utils.net.BeanObserver; +import com.nnbc123.core.utils.net.RxHelper; import com.nnbc123.library.utils.SingleToastUtil; import com.nnbc123.library.utils.config.BasicConfig; @@ -302,4 +305,17 @@ public class HomePartyPresenter extends BaseRoomPresenter { getMvpView().onShowBanner(bannerInfos); }); } + @SuppressLint("CheckResult") + public void loadRoomRank() { + String type = AvRoomDataManager.get().isSingleRoom() ? RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING : RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING; + RoomContributeListModel.get().getSingleRoomRanking(1, type) + .compose(bindToLifecycle()) + .compose(RxHelper.handleBeanData()) + .subscribe(roomContributeDataInfo -> { + if (getMvpView() == null) { + return; + } + getMvpView().updateRoomRanks(roomContributeDataInfo.getRankings()); + }); + } } diff --git a/app/src/main/java/com/nnbc123/app/avroom/view/IHomePartyView.java b/app/src/main/java/com/nnbc123/app/avroom/view/IHomePartyView.java index 502aa3288..0611bd967 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/view/IHomePartyView.java +++ b/app/src/main/java/com/nnbc123/app/avroom/view/IHomePartyView.java @@ -1,8 +1,10 @@ package com.nnbc123.app.avroom.view; import com.nnbc123.core.home.bean.BannerInfo; +import com.nnbc123.core.room.bean.RoomContributeUserInfo; import com.nnbc123.core.room.bean.RoomInfo; +import java.util.ArrayList; import java.util.List; /** @@ -22,4 +24,6 @@ public interface IHomePartyView extends IBaseRoomView { void onGiftValueChangeMic(int micPosition, String uId, boolean isInviteUpMic, RoomInfo roomInfo); void onShowBanner(List bannerInfos); + void updateRoomRanks(ArrayList rankings); + } diff --git a/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt b/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt index 7de3cf0a9..3dabccee9 100644 --- a/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt +++ b/app/src/main/java/com/nnbc123/app/home/adapter/RoomNewFriendsAdapter.kt @@ -9,6 +9,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseViewHolder import com.nnbc123.app.R import com.nnbc123.app.avroom.activity.AVRoomActivity +import com.nnbc123.app.bills.widget.BillItemView import com.nnbc123.app.ui.im.avtivity.NimP2PMessageActivity import com.nnbc123.app.ui.user.UserInfoActivity import com.nnbc123.app.ui.utils.loadAvatar @@ -56,6 +57,7 @@ class RoomNewFriendsAdapter : BaseQuickAdapter(R.layou llOnline.setOnClickListener { AVRoomActivity.start(mContext, item.inRoomUid) } + } else { viewOnline.isVisible = false svgaLiving.setImageResource(R.drawable.ic_new_friends_msg) @@ -74,19 +76,11 @@ class RoomNewFriendsAdapter : BaseQuickAdapter(R.layou VipHelper.loadVipNickColor(tvNickname, item.userVipInfoVO, "#282828") VipHelper.loadVipIcon(helper.getView(R.id.iv_vip_icon), item.userVipInfoVO) } - - - override fun onViewAttachedToWindow(holder: BaseViewHolder) { super.onViewAttachedToWindow(holder) - val svgaLives = holder.getView(R.id.svga_living) - svgaLives.startAnimation() - } + val svgaLiving = holder.getView(R.id.svga_living) + svgaLiving?.loadFromAssets("svga/home_living.svga") - override fun onViewDetachedFromWindow(holder: BaseViewHolder) { - super.onViewDetachedFromWindow(holder) - val svgaLives = holder.getView(R.id.svga_living) - svgaLives.stopAnimation(false) } diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt index d8e636d63..80433a70a 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/MeFragment.kt @@ -56,10 +56,12 @@ import com.nnbc123.core.room.bean.RoomInfo import com.nnbc123.core.statistic.StatisticManager import com.nnbc123.core.statistic.protocol.StatisticsProtocol import com.nnbc123.core.user.UserModel +import com.nnbc123.core.user.bean.UserExpInfo import com.nnbc123.core.user.bean.UserInfo import com.nnbc123.core.user.event.LoginUserInfoUpdateEvent import com.nnbc123.core.utils.CurrentTimeUtils import com.nnbc123.core.utils.StarUtils +import com.nnbc123.core.utils.net.BeanObserver import com.nnbc123.core.utils.toast import com.trello.rxlifecycle3.android.FragmentEvent import io.reactivex.Observable @@ -238,12 +240,21 @@ class MeFragment : BaseFragment(), View.OnClickListener { override fun onResume() { super.onResume() - setUserData() - if(mUserInfo!=null && mUserInfo!!.isReview){ + if (mUserInfo?.isReview == true) { requestUpdateUserInfo() } + initUserDate() } + @SuppressLint("CheckResult") + private fun initUserDate() { + UserModel.get().currentUserInfo + .compose(bindToLifecycle()) + .subscribe { userInfo: UserInfo? -> + mUserInfo = userInfo + setUserData() + } + } @SuppressLint("SetTextI18n") private fun setUserData() { diff --git a/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java b/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java index 3fd22d063..0e60d9e0b 100644 --- a/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java +++ b/app/src/main/java/com/nnbc123/app/ui/im/avtivity/NimP2PMessageActivity.java @@ -17,6 +17,7 @@ import androidx.annotation.Nullable; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.coorchice.library.SuperTextView; import com.netease.nim.uikit.api.NimUIKit; import com.netease.nim.uikit.api.model.contact.ContactChangedObserver; import com.netease.nim.uikit.api.model.main.OnlineStateChangeObserver; @@ -34,17 +35,14 @@ import com.netease.nimlib.sdk.msg.model.CustomNotification; import com.nnbc123.app.R; import com.nnbc123.app.avroom.activity.AVRoomActivity; import com.nnbc123.app.common.widget.CustomImageSpan; +import com.nnbc123.app.mentoring_relationship.dialog.BuildMentoringRelationshipSuccessDialog; import com.nnbc123.app.ui.im.audio.ShakeHeartDialogFragment; import com.nnbc123.app.ui.im.fragment.MessageFragment; import com.nnbc123.app.ui.user.UserInfoActivity; import com.nnbc123.app.ui.utils.ImageLoadUtils; -import com.nnbc123.app.mentoring_relationship.dialog.BuildMentoringRelationshipSuccessDialog; import com.nnbc123.core.audio.event.VoiceShakeHeartEvent; import com.nnbc123.core.auth.AuthModel; import com.nnbc123.core.im.friend.IMFriendModel; -import com.nnbc123.core.initial.InitialModel; -import com.nnbc123.core.initial.bean.InitInfo; -import com.nnbc123.core.level.UserLevelVo; import com.nnbc123.core.mentoring_relationship.event.MentoringSuccessEvent; import com.nnbc123.core.noble.NobleUtil; import com.nnbc123.core.praise.PraiseModel; @@ -94,10 +92,14 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity { } showCommandMessage(message); }; + private ImageView ivAvatar; + private TextView tvMessage; + private TextView tvDesc; private TextView ivAddBlackList; private TextView tvTips; private View tipsLayout; private ImageView closeIcon; + private SuperTextView ivAttention; @Nullable private UserInfo buddyUserInfo; private final ContactChangedObserver friendDataChangedObserver = new ContactChangedObserver() { @@ -121,7 +123,7 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity { displayAntiFraudTips(); } }; - private ImageView ivAttention; + private UserInfoObserver uinfoObserver; public static void start(Context context, String contactId) { @@ -167,7 +169,7 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity { IMFriendModel.get().addCloseTipsAccount(sessionId); tipsLayout.setVisibility(View.GONE); }); - ivAttention = (ImageView) findViewById(R.id.iv_attention); + // 单聊特例话数据,包括个人信息,黑名单 addBlackList(); requestBuddyInfo(); @@ -285,8 +287,18 @@ public class NimP2PMessageActivity extends NewBaseMessageActivity { if (AuthModel.get().getCurrentUid() != userInfo.getUid() && !SystemUidUtil.isSystemUid(sessionId)) { PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe(); } - buddyUserInfo = userInfo; - displayAntiFraudTips(); + + if (AuthModel.get().getCurrentUid() != userInfo.getUid()) { + PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe(); + } + + ivAvatar = (ImageView) findViewById(R.id.iv_avatar); + ImageLoadUtils.loadAvatar(userInfo.getAvatar(),ivAvatar); + tvMessage = (TextView) findViewById(R.id.tv_message); + tvMessage.setText(userTitleName); + tvDesc = (TextView) findViewById(R.id.tv_desc); + tvDesc.setText(userInfo.getUserDesc()); + } }); diff --git a/app/src/main/res/layout/fragment_chatroom_game_main.xml b/app/src/main/res/layout/fragment_chatroom_game_main.xml index c1805bc46..9907792c2 100644 --- a/app/src/main/res/layout/fragment_chatroom_game_main.xml +++ b/app/src/main/res/layout/fragment_chatroom_game_main.xml @@ -351,6 +351,7 @@ android:layout_height="match_parent" /> diff --git a/app/src/main/res/layout/item_room_hot.xml b/app/src/main/res/layout/item_room_hot.xml index 802f84d0d..82321ad5f 100644 --- a/app/src/main/res/layout/item_room_hot.xml +++ b/app/src/main/res/layout/item_room_hot.xml @@ -131,7 +131,7 @@ #99FFFFFF #1AFFFFFF - + #FFE285 #66333333 #4DFFCE4E #c6c6e9 diff --git a/core/src/main/java/com/nnbc123/core/statistic/protocol/StatisticsProtocol.java b/core/src/main/java/com/nnbc123/core/statistic/protocol/StatisticsProtocol.java index 875c38ffd..9136f49ba 100644 --- a/core/src/main/java/com/nnbc123/core/statistic/protocol/StatisticsProtocol.java +++ b/core/src/main/java/com/nnbc123/core/statistic/protocol/StatisticsProtocol.java @@ -118,6 +118,7 @@ public interface StatisticsProtocol { String EVENT_MP_ROOM_SMASH_EGG_CLICK = "mp_room_smashEgg_click"; // 砸蛋入口 String EVENT_MP_ROOM_SMASHEGG_CHOOSE = "mp_room_smashEgg_choose"; // 开始砸蛋-多人房 String EVENT_MP_ROOM_RANKING_LIST_CLICK = "mp_room_rankingList_click"; // 房间榜 + String EVENT_CP_ROOM_RANKING_LIST_CLICK=("cp_room_rankingList_click");// 房间榜 String EVENT_MP_ROOM_SET_TOPIC_CLICK = "mp_room_setTopic_click"; // 设置房间话题 String EVENT_MP_ROOM_CLOSE_MIC_CLICK = "mp_room_close_mic_click"; // 关闭麦克风 String EVENT_MP_ROOM_CLOSE_SOUND_CLICK = "mp_room_close_sound_click"; // 关闭声音 diff --git a/core/src/main/java/com/nnbc123/core/user/IUserModel.java b/core/src/main/java/com/nnbc123/core/user/IUserModel.java index 402cc64c5..6b9bdeec4 100644 --- a/core/src/main/java/com/nnbc123/core/user/IUserModel.java +++ b/core/src/main/java/com/nnbc123/core/user/IUserModel.java @@ -11,6 +11,7 @@ import com.nnbc123.core.user.bean.GiftWallInfo; import com.nnbc123.core.user.bean.NewUserInfo; import com.nnbc123.core.user.bean.ProtocolInfo; import com.nnbc123.core.user.bean.UserDetailInfo; +import com.nnbc123.core.user.bean.UserExpInfo; import com.nnbc123.core.user.bean.UserGameInfo; import com.nnbc123.core.user.bean.UserInfo; import com.nnbc123.core.user.bean.UserRandomConfig; @@ -69,6 +70,14 @@ public interface IUserModel extends IModel { * @return */ Single getUserInfoFromServer(long userId); + /** + * 根据uid 从服务器获取用户等级信息。 + * 66新的 + * + * @param userId + * @return + */ + Single getUserExper(long userId); /** * 根据uid 从服务器获取用户详细信息。 diff --git a/core/src/main/java/com/nnbc123/core/user/UserModel.java b/core/src/main/java/com/nnbc123/core/user/UserModel.java index 860d2395a..f3db97e61 100644 --- a/core/src/main/java/com/nnbc123/core/user/UserModel.java +++ b/core/src/main/java/com/nnbc123/core/user/UserModel.java @@ -25,6 +25,7 @@ import com.nnbc123.core.user.bean.GiftWallInfo; import com.nnbc123.core.user.bean.NewUserInfo; import com.nnbc123.core.user.bean.ProtocolInfo; import com.nnbc123.core.user.bean.UserDetailInfo; +import com.nnbc123.core.user.bean.UserExpInfo; import com.nnbc123.core.user.bean.UserGameInfo; import com.nnbc123.core.user.bean.UserInfo; import com.nnbc123.core.user.bean.UserRandomConfig; @@ -302,6 +303,19 @@ public final class UserModel extends BaseModel implements IUserModel { } + @Override + public Single getUserExper(long userId) { + return api.getUserExper(String.valueOf(userId)) + .compose(RxHelper.handleSchedulers()) + .flatMap(userExpInfoResult -> { + UserExpInfo userExpInfo1 = userExpInfoResult.getData(); + if (null == userExpInfo1) { + return Single.error(new Exception("服务器返回的userInfo字段为空")); + } + return Single.just(userExpInfo1); + }); + } + @Override public Single getUserInfoDetail(long uid) { return api.getUserInfoDetail(String.valueOf(uid)) @@ -829,6 +843,9 @@ public final class UserModel extends BaseModel implements IUserModel { @GET("/user/get") Single> requestUserInfo(@Query("uid") String uid); + @GET("/userLevel/getUserExper") + Single> getUserExper(@Query("uid") String uid); + @GET("/user/detail/get") Single getUserInfoDetail(@Query("uid") String uid); diff --git a/core/src/main/java/com/nnbc123/core/user/bean/UserExpInfo.java b/core/src/main/java/com/nnbc123/core/user/bean/UserExpInfo.java new file mode 100644 index 000000000..8dbc6e694 --- /dev/null +++ b/core/src/main/java/com/nnbc123/core/user/bean/UserExpInfo.java @@ -0,0 +1,327 @@ +package com.nnbc123.core.user.bean; + +public class UserExpInfo { + + /** + * userLevelExperience : {"uid":2296330,"amount":1888,"levelExperience":{"id":6,"levelSeq":6,"levelName":"Lv6","levelGrp":"","amount":1460,"need":500,"url":"https://image.zhongjialx.com/wealth_06.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000},"nextLevelExperience":{"id":7,"levelSeq":7,"levelName":"Lv7","levelGrp":"","amount":1960,"need":500,"url":"https://image.zhongjialx.com/wealth_07.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000}} + * avatar : http://image.uat.zhongjialx.com/FjcT2lxblAkPp7TFiOjDwMTi1YXP?imageslim + * nick : 冬萱小哥哥49 + * uid : 2296330 + */ + + private UserLevelExperienceBean userLevelExperience; + private String avatar; + private String nick; + private int uid; + + public UserLevelExperienceBean getUserLevelExperience() { + return userLevelExperience; + } + + public void setUserLevelExperience(UserLevelExperienceBean userLevelExperience) { + this.userLevelExperience = userLevelExperience; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getNick() { + return nick; + } + + public void setNick(String nick) { + this.nick = nick; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public static class UserLevelExperienceBean { + /** + * uid : 2296330 + * amount : 1888 + * levelExperience : {"id":6,"levelSeq":6,"levelName":"Lv6","levelGrp":"","amount":1460,"need":500,"url":"https://image.zhongjialx.com/wealth_06.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000} + * nextLevelExperience : {"id":7,"levelSeq":7,"levelName":"Lv7","levelGrp":"","amount":1960,"need":500,"url":"https://image.zhongjialx.com/wealth_07.png","status":1,"broadcast":0,"interaction":0,"createTime":1517390445000} + */ + + private int uid; + private int amount; + private LevelExperienceBean levelExperience; + private NextLevelExperienceBean nextLevelExperience; + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public LevelExperienceBean getLevelExperience() { + return levelExperience; + } + + public void setLevelExperience(LevelExperienceBean levelExperience) { + this.levelExperience = levelExperience; + } + + public NextLevelExperienceBean getNextLevelExperience() { + return nextLevelExperience; + } + + public void setNextLevelExperience(NextLevelExperienceBean nextLevelExperience) { + this.nextLevelExperience = nextLevelExperience; + } + + public static class LevelExperienceBean { + /** + * id : 6 + * levelSeq : 6 + * levelName : Lv6 + * levelGrp : + * amount : 1460 + * need : 500 + * url : https://image.zhongjialx.com/wealth_06.png + * status : 1 + * broadcast : 0 + * interaction : 0 + * createTime : 1517390445000 + */ + + private int id; + private int levelSeq; + private String levelName; + private String levelGrp; + private int amount; + private int need; + private String url; + private int status; + private int broadcast; + private int interaction; + private long createTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getLevelSeq() { + return levelSeq; + } + + public void setLevelSeq(int levelSeq) { + this.levelSeq = levelSeq; + } + + public String getLevelName() { + return levelName; + } + + public void setLevelName(String levelName) { + this.levelName = levelName; + } + + public String getLevelGrp() { + return levelGrp; + } + + public void setLevelGrp(String levelGrp) { + this.levelGrp = levelGrp; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public int getNeed() { + return need; + } + + public void setNeed(int need) { + this.need = need; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public int getBroadcast() { + return broadcast; + } + + public void setBroadcast(int broadcast) { + this.broadcast = broadcast; + } + + public int getInteraction() { + return interaction; + } + + public void setInteraction(int interaction) { + this.interaction = interaction; + } + + public long getCreateTime() { + return createTime; + } + + public void setCreateTime(long createTime) { + this.createTime = createTime; + } + } + + public static class NextLevelExperienceBean { + /** + * id : 7 + * levelSeq : 7 + * levelName : Lv7 + * levelGrp : + * amount : 1960 + * need : 500 + * url : https://image.zhongjialx.com/wealth_07.png + * status : 1 + * broadcast : 0 + * interaction : 0 + * createTime : 1517390445000 + */ + + private int id; + private int levelSeq; + private String levelName; + private String levelGrp; + private int amount; + private int need; + private String url; + private int status; + private int broadcast; + private int interaction; + private long createTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getLevelSeq() { + return levelSeq; + } + + public void setLevelSeq(int levelSeq) { + this.levelSeq = levelSeq; + } + + public String getLevelName() { + return levelName; + } + + public void setLevelName(String levelName) { + this.levelName = levelName; + } + + public String getLevelGrp() { + return levelGrp; + } + + public void setLevelGrp(String levelGrp) { + this.levelGrp = levelGrp; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } + + public int getNeed() { + return need; + } + + public void setNeed(int need) { + this.need = need; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public int getBroadcast() { + return broadcast; + } + + public void setBroadcast(int broadcast) { + this.broadcast = broadcast; + } + + public int getInteraction() { + return interaction; + } + + public void setInteraction(int interaction) { + this.interaction = interaction; + } + + public long getCreateTime() { + return createTime; + } + + public void setCreateTime(long createTime) { + this.createTime = createTime; + } + } + } + +} diff --git a/core/src/model_music/java/com/nnbc123/core/music/db/bean/LocalMusicBean.java b/core/src/model_music/java/com/nnbc123/core/music/db/bean/LocalMusicBean.java index 4f7bd6e33..d4e15ab4e 100644 --- a/core/src/model_music/java/com/nnbc123/core/music/db/bean/LocalMusicBean.java +++ b/core/src/model_music/java/com/nnbc123/core/music/db/bean/LocalMusicBean.java @@ -190,6 +190,9 @@ public class LocalMusicBean { final Object this$year = this.getYear(); final Object other$year = other.getYear(); if (this$year == null ? other$year != null : !this$year.equals(other$year)) return false; + final Object this$uri = this.getUri(); + final Object other$uri = other.getUri(); + if (this$uri == null ? other$uri != null : !this$uri.equals(other$uri)) return false; return true; } @@ -220,8 +223,8 @@ public class LocalMusicBean { result = result * PRIME + ($artistName == null ? 43 : $artistName.hashCode()); final Object $localUri = this.getLocalUri(); result = result * PRIME + ($localUri == null ? 43 : $localUri.hashCode()); - final Object uri = this.getUri(); - result = result * PRIME + (uri == null ? 43 : uri.hashCode()); + final Object $uri = this.getUri(); + result = result * PRIME + ($uri == null ? 43 : $uri.hashCode()); final Object $year = this.getYear(); result = result * PRIME + ($year == null ? 43 : $year.hashCode()); return result; diff --git a/gradle.properties b/gradle.properties index 072cb9375..4a49db3fd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,7 +27,7 @@ channel_file=channel.txt COMPILE_SDK_VERSION=32 MIN_SDK_VERSION=21 -TARGET_SDK_VERSION=32 +TARGET_SDK_VERSION=29 -version_name=1.1.1 -version_code=111 \ No newline at end of file +version_name=1.1.0 +version_code=110 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f4e00e8ee..ce82f0055 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Apr 03 18:35:35 CST 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME