[Modify]移除无用图片和代码
@@ -539,9 +539,6 @@
|
||||
android:name=".ui.user.decorationsend.DecorationSendActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomRankListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomOnlineUserActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -671,9 +668,6 @@
|
||||
<activity
|
||||
android:name=".radish.activity.RadishRecordActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".radish.signin.SignInActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".radish.task.activity.TaskCenterActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
|
@@ -12,17 +12,14 @@ import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
|
||||
import com.netease.nimlib.sdk.msg.model.IMMessage;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.base.BaseActivity;
|
||||
import com.yizhuan.erban.radish.signin.SignInActivity;
|
||||
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.utils.PushMessageHandler;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RoomInviteFansAttachment;
|
||||
import com.yizhuan.xchat_android_library.utils.UIUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
@@ -106,11 +103,6 @@ public class NimMiddleActivity extends BaseActivity {
|
||||
if (noticeAttachment.getUid() > 0) {
|
||||
AVRoomActivity.start(this, noticeAttachment.getUid());
|
||||
}
|
||||
} else if (attachment instanceof OpenSignInAttachment) {
|
||||
if (AuthModel.get().isImLogin()
|
||||
&& !UIUtils.isTopActivity(this, SignInActivity.class.getSimpleName())) {
|
||||
SignInActivity.start(this);
|
||||
}
|
||||
} else if (attachment.getFirst() == CustomAttachment.CUSTOM_MSG_RED_PACKAGE) {
|
||||
if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND) {
|
||||
RedPackageAttachment redPackageAttachment = (RedPackageAttachment) attachment;
|
||||
|
@@ -49,7 +49,6 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.dialog.NewUserGiftDialog;
|
||||
import com.yizhuan.erban.avroom.dialog.SingleRoomTipDialog;
|
||||
import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog;
|
||||
import com.yizhuan.erban.avroom.fragment.FakeSingleRoomBackFragment;
|
||||
@@ -88,7 +87,6 @@ import com.yizhuan.xchat_android_core.auth.event.LogoutEvent;
|
||||
import com.yizhuan.xchat_android_core.bean.BaseProtocol;
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.HelloMessageInfo;
|
||||
import com.yizhuan.xchat_android_core.gift.GiftModel;
|
||||
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo;
|
||||
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean;
|
||||
@@ -1046,7 +1044,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
//获取管理员
|
||||
getMvpPresenter().getNormalChatMember();
|
||||
getMvpPresenter().getSuperAdminList();
|
||||
getMvpPresenter().checkNewUserGift();
|
||||
if (UserUtils.getUserInfo().isFirstCharge()) {
|
||||
getMvpPresenter().checkFirstCharge();
|
||||
}
|
||||
@@ -1284,11 +1281,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
this::handlePmExitRoom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNewUserDialog(GiftInfo giftInfo) {
|
||||
new NewUserGiftDialog(giftInfo).show(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showFirstChargeDialog(FirstChargeInfo firstChargeInfo) {
|
||||
Single.timer(firstChargeInfo.getShowAfterSecond() * 1000L, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())
|
||||
|
@@ -1,95 +0,0 @@
|
||||
package com.yizhuan.erban.avroom.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.fragment.RoomCharmListFragment;
|
||||
import com.yizhuan.erban.avroom.fragment.RoomContributeListFragment;
|
||||
import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.databinding.ActivityRoomRankListBinding;
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 房间排行榜,(魅力榜+贡献榜)
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_room_rank_list)
|
||||
public class RoomRankListActivity extends BaseBindingActivity<ActivityRoomRankListBinding> {
|
||||
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, RoomRankListActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
private String [] bgPicture = new String[]{""};
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
mBinding.setClick(this);
|
||||
List<Fragment> list = new ArrayList<>();
|
||||
list.add(RoomCharmListFragment.newInstance());
|
||||
list.add(new RoomContributeListFragment());
|
||||
mBinding.viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return list.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return list.size();
|
||||
}
|
||||
});
|
||||
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
mBinding.setPosition(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
}
|
||||
});
|
||||
AVRoomActivity.setBackBg(this, AvRoomDataManager.get().mCurrentRoomInfo, mBinding.svgaImageViewBg, bgPicture);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
super.onClick(v);
|
||||
switch (v.getId()) {
|
||||
case R.id.iv_back:
|
||||
finish();
|
||||
break;
|
||||
case R.id.tv_charm_tab:
|
||||
mBinding.viewPager.setCurrentItem(0);
|
||||
break;
|
||||
case R.id.tv_contribute_tab:
|
||||
mBinding.viewPager.setCurrentItem(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mBinding.svgaImageViewBg.isAnimating()) {
|
||||
mBinding.svgaImageViewBg.clearAnimation();
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,19 +0,0 @@
|
||||
package com.yizhuan.erban.avroom.dialog
|
||||
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.DialogNewUserGiftBinding
|
||||
import com.yizhuan.erban.ui.utils.load
|
||||
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo
|
||||
|
||||
class NewUserGiftDialog(val giftInfo: GiftInfo) :
|
||||
BaseDialog<DialogNewUserGiftBinding>() {
|
||||
|
||||
override fun init() {
|
||||
binding.ivClose.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
binding.ivGift.load(giftInfo.giftUrl)
|
||||
binding.tvGiftName.text = "${giftInfo.giftName}*${giftInfo.count}"
|
||||
}
|
||||
|
||||
}
|
@@ -423,28 +423,6 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否需要显示新用户礼弹窗
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void checkNewUserGift() {
|
||||
|
||||
if (AvRoomDataManager.get().isRoomOwner() ||
|
||||
!DemoCache.readNewUserGift())
|
||||
return;
|
||||
|
||||
Single.timer(3, TimeUnit.SECONDS)
|
||||
.flatMap(aLong -> AvRoomModel.get().getNewUserGift())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(giftInfo -> {
|
||||
DemoCache.saveNewUserGift(false);
|
||||
if (getMvpView() != null && !TextUtils.isEmpty(giftInfo.getGiftUrl())) {
|
||||
getMvpView().showNewUserDialog(giftInfo);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否需要显示首充弹窗
|
||||
*/
|
||||
|
@@ -82,7 +82,6 @@ public interface IAvRoomView extends IMvpBaseView {
|
||||
*/
|
||||
void recoverRoomMinWhenPmLimit(Throwable throwable);
|
||||
|
||||
void showNewUserDialog(GiftInfo giftInfo);
|
||||
|
||||
void showFirstChargeDialog(FirstChargeInfo firstChargeInfo);
|
||||
|
||||
|
@@ -1,125 +1,40 @@
|
||||
package com.yizhuan.erban.bindadapter;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.databinding.BindingAdapter;
|
||||
|
||||
import com.bumptech.glide.load.DataSource;
|
||||
import com.bumptech.glide.load.engine.GlideException;
|
||||
import com.bumptech.glide.request.RequestListener;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.xchat_android_core.utils.StarUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
import com.yizhuan.xchat_android_library.widget.IOSSwitchView;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* Created by huangmeng1 on 2018/1/4.
|
||||
*/
|
||||
|
||||
public class ViewAdapter {
|
||||
|
||||
@BindingAdapter(value = {"imgUrl", "defaultImage", "isRound"}, requireAll = false)
|
||||
public static void setImgUrl(ImageView imageView, String url, Drawable drawable, boolean isRound) {
|
||||
if (isRound) {
|
||||
ImageLoadUtils.loadBannerRoundBackground(imageView.getContext(), url, imageView);
|
||||
} else {
|
||||
GlideApp.with(imageView.getContext())
|
||||
.load(TextUtils.isEmpty(url) ? R.mipmap.ic_tag_default : url)
|
||||
.placeholder(drawable)
|
||||
.error(drawable)
|
||||
.listener(new RequestListener<Drawable>() {
|
||||
@Override
|
||||
public boolean onLoadFailed(@Nullable GlideException e, Object o, Target<Drawable> target, boolean b) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onResourceReady(Drawable drawable, Object o, Target<Drawable> target, DataSource dataSource, boolean b) {
|
||||
float ratio = (drawable.getIntrinsicHeight() + 0.F) / drawable.getIntrinsicWidth();
|
||||
int width = Math.round(imageView.getContext().getResources().getDimensionPixelOffset(R.dimen.tag_height) / ratio);
|
||||
int height = imageView.getContext().getResources().getDimensionPixelOffset(R.dimen.tag_height);
|
||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
|
||||
params.width = width;
|
||||
params.height = height;
|
||||
imageView.setLayoutParams(params);
|
||||
imageView.setImageDrawable(drawable);
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.into(imageView);
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"avatarUrl"}, requireAll = false)
|
||||
public static void setAvatarUrl(ImageView imageView, String url) {
|
||||
if (TextUtils.isEmpty(url) || url.equals("null")) return;
|
||||
ImageLoadUtils.loadAvatar(imageView.getContext(), url, imageView);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"roundUrl"}, requireAll = false)
|
||||
public static void setRoundUrl(ImageView imageView, String url) {
|
||||
if (TextUtils.isEmpty(url)) return;
|
||||
ImageLoadUtils.loadSmallRoundBackground(imageView.getContext(), url, imageView);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"nomalUrl"}, requireAll = false)
|
||||
public static void setNomalUrl(ImageView imageView, String url) {
|
||||
if (TextUtils.isEmpty(url)) return;
|
||||
ImageLoadUtils.loadImage(imageView.getContext(), url, imageView);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"date"}, requireAll = false)
|
||||
public static void setConstellation(TextView textView, long date) {
|
||||
String star = StarUtils.getConstellation(new Date(date));
|
||||
if (null == star) {
|
||||
textView.setVisibility(View.GONE);
|
||||
} else {
|
||||
textView.setText(star);
|
||||
textView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"isOn"}, requireAll = false)
|
||||
public static void setIsOn(IOSSwitchView iosSwitchView, boolean isOn) {
|
||||
iosSwitchView.setOn(isOn);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"drawTime"}, requireAll = false)
|
||||
public static void setTime(TextView tvContent, String time) {
|
||||
long longTime = 0;
|
||||
try {
|
||||
longTime = Long.parseLong(time);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (longTime == 0) {
|
||||
tvContent.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
tvContent.setText(TimeUtils.getPostTimeString(BasicConfig.INSTANCE.getAppContext(), longTime, true, false));
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"circleUrl"}, requireAll = false)
|
||||
public static void setCircleUrl(ImageView imageView, String url) {
|
||||
// if (TextUtils.isEmpty(url)) return;
|
||||
ImageLoadUtils.loadCircleImage(imageView.getContext(), url, imageView, R.drawable.default_avatar);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"shape_color", "shape_radius", "shape_stroke_width", "shape_stroke_color"}, requireAll = false)
|
||||
public static void setViewBackground(View view, int color, int radius_dp,
|
||||
float shape_stroke_width, int shape_stroke_color) {
|
||||
@@ -137,33 +52,11 @@ public class ViewAdapter {
|
||||
view.setBackground(drawable);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"selected"})
|
||||
public static void setViewSelected(View view, boolean selected) {
|
||||
view.setSelected(selected);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"ktvRoundCover"}, requireAll = false)
|
||||
public static void setKtvRoundCover(ImageView imageView, String url) {
|
||||
if (TextUtils.isEmpty(url)) {
|
||||
imageView.setImageResource(R.drawable.default_cover);
|
||||
} else {
|
||||
ImageLoadUtils.loadKtvRoundBackground(imageView.getContext(), url, imageView);
|
||||
}
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"visible"}, requireAll = false)
|
||||
public static void setAvatarUrl(View view, boolean show) {
|
||||
view.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"shape_color", "shape_radius",}, requireAll = false)
|
||||
public static void setViewBackgroundII(View v, int color, int radius) {
|
||||
GradientDrawable drawable = new GradientDrawable();
|
||||
drawable.setColor(color);
|
||||
drawable.setCornerRadius(UIUtil.dip2px(v.getContext(), radius));
|
||||
v.setBackground(drawable);
|
||||
}
|
||||
|
||||
@BindingAdapter(value = {"android:layout_width"}, requireAll = false)
|
||||
public static void setLayoutWidth(View v, float width) {
|
||||
ViewGroup.LayoutParams params = v.getLayoutParams();
|
||||
|
@@ -1,150 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.yizhuan.erban.guide.GuideActivity;
|
||||
import com.yizhuan.erban.other.activity.SplashActivity;
|
||||
import com.yizhuan.erban.radish.signin.view.SignInDialog;
|
||||
import com.yizhuan.erban.ui.login.AddUserInfoActivity;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.SignInModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDetailInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
|
||||
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.UIUtils;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 签到弹框时机的处理
|
||||
* create by lvzebiao @2019/3/28
|
||||
*/
|
||||
public class SignDialogTimeManager {
|
||||
|
||||
public final static String KEY_SAVE_SIGN_IN_TIME = "key_sign_in_time";
|
||||
|
||||
public static void checkSignDialog(Context context, boolean isNeedCheckAddUserInfo) {
|
||||
if (!ActivityUtil.isCanShowAppCompatDialog(context)) {
|
||||
return;
|
||||
}
|
||||
//闪屏页,登录页,引导页,完善资料页不弹
|
||||
if (UIUtils.isTopActivity(context, SplashActivity.class.getName())
|
||||
|| UIUtils.isTopActivity(context, GuideActivity.class.getName())) {
|
||||
return;
|
||||
}
|
||||
if (isNeedCheckAddUserInfo && UIUtils.isTopActivity(context, AddUserInfoActivity.class.getName())) {
|
||||
return;
|
||||
}
|
||||
if (!isNeedConnectNet()) {
|
||||
return;
|
||||
}
|
||||
SignInModel model = new SignInModel();
|
||||
model.signDetail().compose(RxHelper.bindContext(context))
|
||||
.subscribe(new BeanObserver<SignDetailInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(SignDetailInfo detailInfo) {
|
||||
if (!ActivityUtil.isValidContext(context)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (detailInfo.isSign() || !detailInfo.isNeedSignDialog()) {
|
||||
return;
|
||||
}
|
||||
saveCache();
|
||||
SignInDialog.display(context, detailInfo);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static HashMap<Long, Long> cacheToMap() {
|
||||
String cache = (String) SharedPreferenceUtils.get(KEY_SAVE_SIGN_IN_TIME, "");
|
||||
if (!TextUtils.isEmpty(cache)) {
|
||||
try {
|
||||
return new Gson().fromJson(cache, new TypeToken<HashMap<Long, Long>>() {
|
||||
}.getType());
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void saveCache() {
|
||||
Map<Long, Long> map = cacheToMap();
|
||||
if (map == null) {
|
||||
map = new HashMap<>();
|
||||
}
|
||||
if (map.size() > 10) {
|
||||
map.clear();
|
||||
}
|
||||
map.put(AuthModel.get().getCurrentUid(), System.currentTimeMillis());
|
||||
try {
|
||||
String json = new Gson().toJson(map);
|
||||
if (!TextUtils.isEmpty(json)) {
|
||||
SharedPreferenceUtils.put(KEY_SAVE_SIGN_IN_TIME, json);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isNeedConnectNet() {
|
||||
try {
|
||||
Map<Long, Long> map = cacheToMap();
|
||||
if (map == null || map.size() == 0) {
|
||||
return true;
|
||||
}
|
||||
long myUid = AuthModel.get().getCurrentUid();
|
||||
if (!map.containsKey(myUid)) {
|
||||
return true;
|
||||
}
|
||||
long myTimeValue = map.get(myUid);
|
||||
if (myTimeValue <= 0) {
|
||||
return true;
|
||||
}
|
||||
return isTomorrow(myTimeValue);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是不是 第二天
|
||||
*
|
||||
* @param cacheTime
|
||||
* @return
|
||||
*/
|
||||
private static boolean isTomorrow(long cacheTime) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTimeInMillis(System.currentTimeMillis());
|
||||
int currYear = calendar.get(Calendar.YEAR);
|
||||
int currMonth = calendar.get(Calendar.MONTH);
|
||||
int currDayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
calendar.setTimeInMillis(cacheTime);
|
||||
int cacheYear = calendar.get(Calendar.YEAR);
|
||||
int cacheMonth = calendar.get(Calendar.MONTH);
|
||||
int cacheDayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
if (currYear > cacheYear) {
|
||||
return true;
|
||||
}
|
||||
boolean equalYear = currYear == cacheYear;
|
||||
if (equalYear && currMonth > cacheMonth) {
|
||||
return true;
|
||||
}
|
||||
return equalYear && currMonth == cacheMonth && currDayOfMonth > cacheDayOfMonth;
|
||||
}
|
||||
|
||||
}
|
@@ -1,725 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.common.widget.TutuSwitchView;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogUiHelper;
|
||||
import com.yizhuan.erban.radish.helper.PrizeAnimUiHelper;
|
||||
import com.yizhuan.erban.radish.signin.adpter.RewardListAdapter;
|
||||
import com.yizhuan.erban.radish.signin.adpter.RewardTotalNoticeAdapter;
|
||||
import com.yizhuan.erban.radish.signin.helper.SignInUiHelper;
|
||||
import com.yizhuan.erban.radish.signin.presenter.SignInPresenter;
|
||||
import com.yizhuan.erban.radish.signin.view.CarveUpGoldAdapter;
|
||||
import com.yizhuan.erban.radish.signin.view.ISignInView;
|
||||
import com.yizhuan.erban.radish.signin.view.RuleDialog;
|
||||
import com.yizhuan.erban.ui.widget.ShareDialog;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.BetterMarqueeView;
|
||||
import com.yizhuan.erban.utils.CertificateHelper;
|
||||
import com.yizhuan.erban.utils.NumberFormatUtil;
|
||||
import com.yizhuan.erban.utils.SpannableBuilder;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.SignInModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.DrawNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.ReceiveTotalRewardInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.ReplenishSignInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.RewardNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.RsPlatformType;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDetailInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDrawInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.task.bean.PrizeAnim;
|
||||
import com.yizhuan.xchat_android_core.share.ShareModel;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RadishNotEnoughException;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
import com.yizhuan.xchat_android_library.widget.IOSSwitchView;
|
||||
import com.yy.mobile.rollingtextview.CharOrder;
|
||||
import com.yy.mobile.rollingtextview.RollingTextView;
|
||||
import com.yy.mobile.rollingtextview.strategy.Direction;
|
||||
import com.yy.mobile.rollingtextview.strategy.Strategy;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.sharesdk.framework.Platform;
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.SingleOnSubscribe;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* 萝卜签到
|
||||
*/
|
||||
@CreatePresenter(SignInPresenter.class)
|
||||
public class SignInActivity extends BaseMvpActivity<ISignInView, SignInPresenter> implements ISignInView, IOSSwitchView.OnSwitchStateChangeListener,
|
||||
ShareDialog.OnShareDialogItemClick, RewardTotalNoticeAdapter.RewardTotalListener, View.OnClickListener {
|
||||
|
||||
private BetterMarqueeView bmvSignIn;
|
||||
private TutuSwitchView switchSignInNotice;
|
||||
private TextView tvSignInOp;
|
||||
private ImageView ivHorn;
|
||||
private RollingTextView rtvGoldPool;
|
||||
private TextView tvAwardInfo;
|
||||
private ConstraintLayout clRewardAnimContainer;
|
||||
private RecyclerView rvRewardList;
|
||||
private TextView tvSignDay;
|
||||
private View mRewardTotal;
|
||||
private TextView tvActivityRule;
|
||||
private TextView tvSignInNormalShare;
|
||||
|
||||
private SignDetailInfo mSignDetailInfo;
|
||||
private RewardListAdapter mRewardListAdapter;
|
||||
|
||||
private PrizeAnimUiHelper priceAnimUiHelper;
|
||||
|
||||
private boolean isFirstLoad = true;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, SignInActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_sign_in);
|
||||
findView();
|
||||
initTitleBar(ResUtil.getString(R.string.radish_signin_signinactivity_01));
|
||||
priceAnimUiHelper = new PrizeAnimUiHelper();
|
||||
priceAnimUiHelper.onCreate(this, findViewById(R.id.cl_reward_anim_container),
|
||||
PrizeAnimUiHelper.TYPE_SIGN_IN_PAGE, getDialogManager());
|
||||
initBetterMarqueeView();
|
||||
initNumberPoolInfo();
|
||||
|
||||
mRewardListAdapter = new RewardListAdapter(R.layout.item_reward_notice, null);
|
||||
rvRewardList.setLayoutManager(new GridLayoutManager(this, 4) {
|
||||
@Override
|
||||
public boolean canScrollVertically() {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
rvRewardList.setAdapter(mRewardListAdapter);
|
||||
|
||||
switchSignInNotice.setOnSwitchStateChangeListener(this);
|
||||
|
||||
mRewardListAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
RewardNoticeInfo item = mRewardListAdapter.getItem(position);
|
||||
if (item == null) {
|
||||
return;
|
||||
}
|
||||
if (mSignDetailInfo != null && !mSignDetailInfo.isCanReplenishSign()) {
|
||||
toast(ResUtil.getString(R.string.radish_signin_signinactivity_02));
|
||||
return;
|
||||
}
|
||||
getMvpPresenter().getDataModel().getReplenishSignInfo(item.getSignDays())
|
||||
.compose(RxHelper.bindActivity(this))
|
||||
.subscribe(new BeanObserver<ReplenishSignInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
toast(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ReplenishSignInfo info) {
|
||||
handleReplenishSignTypeDialog(info, item.getSignDays());
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
loadData(false);
|
||||
}
|
||||
|
||||
private void findView() {
|
||||
bmvSignIn = findViewById(R.id.bmv_sign_in);
|
||||
switchSignInNotice = findViewById(R.id.switch_sign_in_notice);
|
||||
tvSignInOp = findViewById(R.id.tv_sign_in_op);
|
||||
ivHorn = findViewById(R.id.iv_horn);
|
||||
rtvGoldPool = findViewById(R.id.rtv_gold_pool);
|
||||
tvAwardInfo = findViewById(R.id.tv_award_info);
|
||||
clRewardAnimContainer = findViewById(R.id.cl_reward_anim_container);
|
||||
rvRewardList = findViewById(R.id.rv_reward_list);
|
||||
tvSignDay = findViewById(R.id.tv_label_sign_day);
|
||||
mRewardTotal = findViewById(R.id.layout_total_reward);
|
||||
tvActivityRule = findViewById(R.id.tv_activity_rule);
|
||||
tvSignInNormalShare = findViewById(R.id.tv_sign_in_normal_share);
|
||||
|
||||
tvSignInOp.setOnClickListener(this);
|
||||
clRewardAnimContainer.setOnClickListener(this);
|
||||
tvActivityRule.setOnClickListener(this);
|
||||
tvSignInNormalShare.setOnClickListener(this);
|
||||
|
||||
}
|
||||
|
||||
private void loadData(boolean isReplenish) {
|
||||
getMvpPresenter().getSignDetail(isReplenish);
|
||||
getMvpPresenter().getRewardTotalNotice();
|
||||
getMvpPresenter().getRewardTodayNotice();
|
||||
}
|
||||
|
||||
private void handleReplenishSignTypeDialog(ReplenishSignInfo info, int signDay) {
|
||||
SpannableBuilder builder = new SpannableBuilder();
|
||||
String okLabel;
|
||||
if (info.getType() == ReplenishSignInfo.TYPE_SHARE) {
|
||||
builder.append(ResUtil.getString(R.string.radish_signin_signinactivity_03),
|
||||
new ForegroundColorSpan(getResources().getColor(R.color.appColor)))
|
||||
.append(ResUtil.getString(R.string.radish_signin_signinactivity_04))
|
||||
.append(ResUtil.getString(R.string.radish_signin_signinactivity_05),
|
||||
new ForegroundColorSpan(getResources().getColor(R.color.color_999999)));
|
||||
okLabel = ResUtil.getString(R.string.radish_signin_signinactivity_06);
|
||||
} else {
|
||||
builder.append(ResUtil.getString(R.string.radish_signin_signinactivity_07))
|
||||
.append(info.getPrice() + ResUtil.getString(R.string.radish_signin_signinactivity_08),
|
||||
new ForegroundColorSpan(getResources().getColor(R.color.appColor)));
|
||||
okLabel = ResUtil.getString(R.string.radish_signin_signinactivity_09);
|
||||
}
|
||||
|
||||
getDialogManager().showOkCancelWithTitleDialog(ResUtil.getString(R.string.radish_signin_signinactivity_010), builder.build(), okLabel, true, () -> {
|
||||
|
||||
Single.create((SingleOnSubscribe<RsPlatformType>) emitter -> {
|
||||
if (info.getType() == ReplenishSignInfo.TYPE_SHARE) {
|
||||
//分享
|
||||
ShareDialog shareDialog = new ShareDialog(context);
|
||||
shareDialog.setType(ShareDialog.TYPE_SHARE_H5);
|
||||
shareDialog.setOnShareDialogItemClick(new ShareDialog.OnShareDialogItemClick() {
|
||||
@Override
|
||||
public void onInAppSharingItemClick() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharePlatformClick(Platform platform) {
|
||||
emitter.onSuccess(new RsPlatformType(true, platform));
|
||||
}
|
||||
});
|
||||
shareDialog.show();
|
||||
} else {
|
||||
emitter.onSuccess(new RsPlatformType(false, null));
|
||||
}
|
||||
}).observeOn(AndroidSchedulers.mainThread())
|
||||
.doOnSuccess(rsPlatformType -> getDialogManager().showProgressDialog(context, true))
|
||||
.flatMap((Function<RsPlatformType, SingleSource<SignInfo>>) rsPlatformType -> {
|
||||
Single<String> single = Single.just("");
|
||||
if (rsPlatformType.isConsumeShare()) {
|
||||
single = single.flatMap((Function<String, SingleSource<String>>) s ->
|
||||
getMvpPresenter().getDataModel().getShareImage(SignInModel.SHARE_TYPE_NORMAL, null, null))
|
||||
.flatMap((Function<String, SingleSource<String>>) picUrl -> {
|
||||
if (TextUtils.isEmpty(picUrl)) {
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.radish_signin_signinactivity_011)));
|
||||
}
|
||||
return Single.just(picUrl);
|
||||
}).flatMap((Function<String, SingleSource<String>>) picUrl ->
|
||||
ShareModel.get().shareImageForSignIn(rsPlatformType.getPlatform(), picUrl));
|
||||
}
|
||||
return single.flatMap((Function<String, SingleSource<SignInfo>>) s ->
|
||||
getMvpPresenter().getDataModel().replenishSign(signDay));
|
||||
})
|
||||
.subscribe(new DontWarnObserver<SignInfo>() {
|
||||
|
||||
@Override
|
||||
public void acceptThrowable(SignInfo signInfo, Throwable throwable) {
|
||||
super.acceptThrowable(signInfo, throwable);
|
||||
getDialogManager().dismissDialog();
|
||||
if (signInfo != null) {
|
||||
loadData(true);
|
||||
SignInUiHelper.showSupplementSignSuccessDialog(context, getDialogManager(),
|
||||
signInfo.getPrizeName());
|
||||
} else if (throwable instanceof RadishNotEnoughException) {
|
||||
DialogUiHelper.showRadishNotEnoughDialog(context, getDialogManager());
|
||||
} else {
|
||||
toast(throwable.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 广播消息
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void initBetterMarqueeView() {
|
||||
getMvpPresenter().getDrawNotice();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化奖金池信息
|
||||
*/
|
||||
private void initNumberPoolInfo() {
|
||||
rtvGoldPool.setText(NumberFormatUtil.formatCommaInt(poolNumber), false);
|
||||
rtvGoldPool.addCharOrder(",");
|
||||
rtvGoldPool.addCharOrder(CharOrder.Number);
|
||||
rtvGoldPool.setCharStrategy(Strategy.CarryBitAnimation(Direction.SCROLL_UP));
|
||||
rtvGoldPool.setAnimationDuration(300);
|
||||
}
|
||||
|
||||
private long poolNumber = 0;
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if (priceAnimUiHelper.onBackPressed()) {
|
||||
return;
|
||||
}
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.tv_sign_in_op:
|
||||
if (mSignDetailInfo != null) {
|
||||
if (mSignDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_UN_DRAW) {
|
||||
drawGold();
|
||||
|
||||
} else if (!mSignDetailInfo.isSign()) {
|
||||
getMvpPresenter().sign(); // 签到
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.tv_sign_in_normal_share:
|
||||
ShareDialog shareDialog = new ShareDialog(this);
|
||||
shareDialog.setType(ShareDialog.TYPE_SHARE_H5);
|
||||
shareDialog.setOnShareDialogItemClick(this);
|
||||
shareDialog.show();
|
||||
break;
|
||||
|
||||
case R.id.cl_reward_anim_container:
|
||||
clRewardAnimContainer.setVisibility(View.GONE);
|
||||
break;
|
||||
|
||||
case R.id.tv_activity_rule:
|
||||
new RuleDialog(SignInActivity.this).openDialog();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void signSuccess(long count) {
|
||||
if (count > 0) {
|
||||
setGoldPool((int) count);
|
||||
toast(ResUtil.getString(R.string.radish_signin_signinactivity_014) + count + ResUtil.getString(R.string.radish_signin_signinactivity_015));
|
||||
}
|
||||
getMvpPresenter().getSignDetail();
|
||||
}
|
||||
|
||||
private long lastClick = 0L;
|
||||
|
||||
@Override
|
||||
public void signFail(String message) {
|
||||
// toast(message); // 频繁toast会出现无法展示toast的情况;
|
||||
long currentClick = SystemClock.uptimeMillis();
|
||||
if (currentClick - lastClick >= 2000) {
|
||||
lastClick = currentClick;
|
||||
// Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSignDetailSuccess(SignDetailInfo signDetailInfo, boolean isReplenish) {
|
||||
mSignDetailInfo = signDetailInfo;
|
||||
|
||||
if (mSignDetailInfo != null) {
|
||||
setSwitchSignInNotice(mSignDetailInfo.getSignRemind());
|
||||
if (isFirstLoad) {
|
||||
setGoldPool(mSignDetailInfo.getShowGoldNum());
|
||||
} else if (isReplenish) {
|
||||
updateReplenishGoldPool(mSignDetailInfo.getShowGoldNum());
|
||||
}
|
||||
|
||||
isFirstLoad = false;
|
||||
setSignOption(mSignDetailInfo);
|
||||
|
||||
if (mSignDetailInfo.isSign())
|
||||
setTvSignGift(mSignDetailInfo.getShowText());
|
||||
|
||||
setTvSignDay(mSignDetailInfo.getTotalDay(), mSignDetailInfo.getDrawGoldDate());
|
||||
|
||||
if (mRewardTotalNoticeAdapter != null)
|
||||
mRewardTotalNoticeAdapter.setState(mSignDetailInfo);
|
||||
|
||||
if (mRewardListAdapter != null) {
|
||||
mRewardListAdapter.setmSignDay(mSignDetailInfo.isSign(), mSignDetailInfo.getTodaySignDay());
|
||||
mRewardListAdapter.setUserCanReplenish(mSignDetailInfo.isCanReplenishSign());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSignDetailFail(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawSuccess(SignDrawInfo signDrawInfo) {
|
||||
dismissDialog();
|
||||
|
||||
setGoldPool(0L - signDrawInfo.getGoldNum());
|
||||
priceAnimUiHelper.setType(PrizeAnimUiHelper.TYPE_DRAW_GOLD);
|
||||
priceAnimUiHelper.showPrizeInfoUi(PrizeAnim.formatDrawGold(signDrawInfo));
|
||||
getMvpPresenter().getSignDetail();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawFail(String message) {
|
||||
dismissDialog();
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRemindSuccess() {
|
||||
switchSignInNotice.setEnabled(true);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRemindFail(String message) {
|
||||
switchSignInNotice.setEnabled(true);
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDrawNoticeSuccess(List<DrawNoticeInfo> list) {
|
||||
ivHorn.setVisibility(ListUtils.isListEmpty(list) ? View.GONE : View.VISIBLE);
|
||||
|
||||
CarveUpGoldAdapter adapter = new CarveUpGoldAdapter(context, list);
|
||||
bmvSignIn.setAdapter(adapter);
|
||||
bmvSignIn.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getDrawNoticeFail(String message) {
|
||||
}
|
||||
|
||||
private RewardTotalNoticeAdapter mRewardTotalNoticeAdapter;
|
||||
|
||||
@Override
|
||||
public void getRewardTotalNoticeSuccess(List<RewardNoticeInfo> list) {
|
||||
|
||||
if (mRewardTotalNoticeAdapter == null) {
|
||||
mRewardTotalNoticeAdapter = new RewardTotalNoticeAdapter(mRewardTotal);
|
||||
mRewardTotalNoticeAdapter.setmRewardTotalListener(this);
|
||||
|
||||
}
|
||||
mRewardTotalNoticeAdapter.setmList(list);
|
||||
|
||||
if (mSignDetailInfo != null)
|
||||
mRewardTotalNoticeAdapter.setState(mSignDetailInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRewardTotalNoticeFail(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRewardTodayNoticeSuccess(List<RewardNoticeInfo> list) {
|
||||
if (mRewardListAdapter != null) {
|
||||
mRewardListAdapter.setNewData(list);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRewardTodayNoticeFail(String message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getShareImageSuccess(String picUrl) {
|
||||
dismissDialog();
|
||||
if (!TextUtils.isEmpty(picUrl) && mSharePlatform != null) {
|
||||
ShareModel.get().shareImageForSignIn(mSharePlatform, picUrl).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
SignInModel signInModel = new SignInModel();
|
||||
signInModel.signShare();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getShareImageFail(String message) {
|
||||
dismissDialog();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveTotalRewardSuccess(ReceiveTotalRewardInfo receiveTotalRewardInfo) {
|
||||
dismissDialog();
|
||||
|
||||
priceAnimUiHelper.setType(PrizeAnimUiHelper.TYPE_REWARD_PAGE);
|
||||
priceAnimUiHelper.showPrizeInfoUi(PrizeAnim.formatReceiveTotalRewardInfo(receiveTotalRewardInfo));
|
||||
|
||||
getMvpPresenter().getRewardTotalNotice();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveTotalRewardFail(String message) {
|
||||
dismissDialog();
|
||||
toast(message);
|
||||
}
|
||||
|
||||
private void setSwitchSignInNotice(boolean isOn) {
|
||||
switchSignInNotice.setOn(isOn);
|
||||
}
|
||||
|
||||
private void setSignOption(SignDetailInfo signDetailInfo) {
|
||||
if (signDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_DRAW) {
|
||||
tvSignInOp.setBackgroundResource(R.drawable.bg_draw_gold);
|
||||
tvSignInOp.setText(ResUtil.getString(R.string.radish_signin_signinactivity_016) + signDetailInfo.getDrawGoldNum() + ResUtil.getString(R.string.radish_signin_signinactivity_017));
|
||||
tvSignInOp.setTextSize(15);
|
||||
tvSignInOp.setEnabled(false);
|
||||
setDrawOption(signDetailInfo.getDrawGoldNum());
|
||||
|
||||
} else if (signDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_UN_DRAW) {
|
||||
tvSignInOp.setBackgroundResource(R.drawable.icon_sign_draw_gold);
|
||||
tvSignInOp.setText(getString(R.string.label_draw_gold));
|
||||
tvSignInOp.setTextSize(18);
|
||||
tvSignInOp.setEnabled(true);
|
||||
|
||||
} else if (signDetailInfo.isSign()) {
|
||||
tvSignInOp.setBackgroundResource(R.drawable.icon_sign_in_ed_status);
|
||||
tvSignInOp.setText(getString(R.string.status_today_has_sign_in));
|
||||
tvSignInOp.setTextSize(18);
|
||||
tvSignInOp.setEnabled(false);
|
||||
|
||||
// if (BuildConfig.DEBUG) {
|
||||
// tvSignInOp.setEnabled(true);
|
||||
// }
|
||||
|
||||
} else {
|
||||
tvSignInOp.setBackgroundResource(R.drawable.icon_sign_in_un_status);
|
||||
tvSignInOp.setText(getString(R.string.status_point_me_to_sign_in));
|
||||
tvSignInOp.setEnabled(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void setDrawOption(long gold) {
|
||||
tvSignInOp.setBackgroundResource(R.drawable.bg_draw_gold);
|
||||
String firstPath = ResUtil.getString(R.string.radish_signin_signinactivity_018);
|
||||
String tips = firstPath + gold + ResUtil.getString(R.string.radish_signin_signinactivity_019);
|
||||
SpannableString spannableString = new SpannableString(tips);
|
||||
|
||||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#9B40FC"));
|
||||
spannableString.setSpan(colorSpan, 0, firstPath.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#FF3B6E"));
|
||||
spannableString.setSpan(colorSpan, firstPath.length(), tips.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
tvSignInOp.setText(spannableString);
|
||||
tvSignInOp.setEnabled(false);
|
||||
}
|
||||
|
||||
private void setGoldPool(long count) {
|
||||
if (isFirstLoad) {
|
||||
poolNumber = count;
|
||||
} else {
|
||||
poolNumber += count;
|
||||
}
|
||||
rtvGoldPool.setText(NumberFormatUtil.formatCommaInt(poolNumber), !isFirstLoad);
|
||||
}
|
||||
|
||||
private void updateReplenishGoldPool(long newNumber) {
|
||||
poolNumber = newNumber;
|
||||
rtvGoldPool.setText(NumberFormatUtil.formatCommaInt(poolNumber), false);
|
||||
}
|
||||
|
||||
private void setTvSignGift(String showText) {
|
||||
if (tvAwardInfo != null) {
|
||||
tvAwardInfo.setText(ResUtil.getString(R.string.radish_signin_signinactivity_020) + showText);
|
||||
}
|
||||
}
|
||||
|
||||
private void setTvSignDay(int day, String time) {
|
||||
|
||||
if (day == 28) {
|
||||
String firstPath = ResUtil.getString(R.string.radish_signin_signinactivity_021);
|
||||
String thirdPath = ResUtil.getString(R.string.radish_signin_signinactivity_022);
|
||||
|
||||
String colorTip;
|
||||
String tips;
|
||||
SpannableString spannableString;
|
||||
|
||||
colorTip = day + ResUtil.getString(R.string.radish_signin_signinactivity_023);
|
||||
tips = firstPath + colorTip + thirdPath;
|
||||
spannableString = new SpannableString(tips);
|
||||
|
||||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#979797"));
|
||||
spannableString.setSpan(colorSpan, 0, firstPath.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#FE3E53"));
|
||||
spannableString.setSpan(colorSpan, firstPath.length(), tips.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
tvSignDay.setText(spannableString);
|
||||
|
||||
} else {
|
||||
String firstPath = ResUtil.getString(R.string.radish_signin_signinactivity_024);
|
||||
String thirdPath = ResUtil.getString(R.string.radish_signin_signinactivity_025);
|
||||
|
||||
String colorTip;
|
||||
String tips;
|
||||
SpannableString spannableString;
|
||||
|
||||
if (time == null || TextUtils.isEmpty(time) || time.equals("null")) {
|
||||
colorTip = String.valueOf(day);
|
||||
String temp = ResUtil.getString(R.string.radish_signin_signinactivity_026);
|
||||
tips = firstPath + colorTip + temp;
|
||||
spannableString = new SpannableString(tips);
|
||||
|
||||
int start = 0;
|
||||
int end = firstPath.length();
|
||||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#979797"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
start = end;
|
||||
end += colorTip.length();
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#FE3E53"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
start = end;
|
||||
end += temp.length();
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#979797"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
} else {
|
||||
colorTip = String.valueOf(day);
|
||||
String temp = ResUtil.getString(R.string.radish_signin_signinactivity_027) + " ";
|
||||
tips = firstPath + colorTip + temp + time + thirdPath;
|
||||
spannableString = new SpannableString(tips);
|
||||
|
||||
int start = 0;
|
||||
int end = firstPath.length();
|
||||
ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#979797"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
start = end;
|
||||
end += colorTip.length();
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#FE3E53"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
start = end;
|
||||
end += temp.length();
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#979797"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
start = end;
|
||||
end += time.length();
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#FE3E53"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
|
||||
start = end;
|
||||
end += thirdPath.length();
|
||||
colorSpan = new ForegroundColorSpan(Color.parseColor("#979797"));
|
||||
spannableString.setSpan(colorSpan, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
|
||||
|
||||
tvSignDay.setText(spannableString);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStateSwitched(boolean isOn) {
|
||||
switchSignInNotice.setEnabled(false);
|
||||
getMvpPresenter().setRemind();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInAppSharingItemClick() {
|
||||
}
|
||||
|
||||
private Platform mSharePlatform;
|
||||
private DialogManager mDialogManager;
|
||||
|
||||
@Override
|
||||
public void onSharePlatformClick(Platform platform) {
|
||||
mSharePlatform = platform;
|
||||
showDialog();
|
||||
getMvpPresenter().getShareImage(SignInModel.SHARE_TYPE_NORMAL, null, null);
|
||||
|
||||
}
|
||||
|
||||
private void showDialog() {
|
||||
if (mDialogManager == null)
|
||||
mDialogManager = new DialogManager(this);
|
||||
mDialogManager.setCanceledOnClickBackKey(false);
|
||||
mDialogManager.showProgressDialog(this);
|
||||
|
||||
}
|
||||
|
||||
private void dismissDialog() {
|
||||
if (mDialogManager != null && mDialogManager.isDialogShowing())
|
||||
mDialogManager.dismissDialog();
|
||||
}
|
||||
|
||||
private long mConfigId = -1;
|
||||
|
||||
@Override
|
||||
public void getRewardTotal(long id) {
|
||||
showDialog();
|
||||
mConfigId = id;
|
||||
getMvpPresenter().receiveTotalReward(mConfigId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawGold() {
|
||||
if (mSignDetailInfo == null) {
|
||||
return;
|
||||
}
|
||||
if (mSignDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_UN_DRAW) {
|
||||
CertificateHelper helper = new CertificateHelper(this, new CertificateHelper.CertificateStatusListener() {
|
||||
@Override
|
||||
public void certificated() {
|
||||
showDialog();
|
||||
getMvpPresenter().signDraw(); // 瓜分钻石
|
||||
}
|
||||
});
|
||||
|
||||
helper.certificate(true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,98 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.adpter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.RedPointView;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.RewardNoticeInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/3/20
|
||||
*/
|
||||
public class RewardListAdapter extends BaseQuickAdapter<RewardNoticeInfo, BaseViewHolder> {
|
||||
private int mSignDay = -1;
|
||||
private boolean mIsSign = false;
|
||||
|
||||
/**
|
||||
* 用户是否能补签,最多补签5次
|
||||
*/
|
||||
private boolean userCanReplenish = false;
|
||||
|
||||
public RewardListAdapter(int layoutId, List<RewardNoticeInfo> data) {
|
||||
super(layoutId, data);
|
||||
}
|
||||
|
||||
public void setmSignDay(boolean isSign, int mSignDay) {
|
||||
this.mSignDay = mSignDay;
|
||||
this.mIsSign = isSign;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void setUserCanReplenish(boolean userCanReplenish) {
|
||||
this.userCanReplenish = userCanReplenish;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder holder, RewardNoticeInfo item) {
|
||||
if (item == null)
|
||||
return;
|
||||
|
||||
holder.itemView.setEnabled(false);
|
||||
//补签状态
|
||||
TextView tvReplenishStatus = holder.getView(R.id.tv_replenish_status);
|
||||
boolean hasSign = item.getReceive() || (mIsSign && mSignDay == item.getSignDays());
|
||||
TextView tvRewardDescription = holder.getView(R.id.tv_reward_description);
|
||||
tvRewardDescription.setText(item.getSignRewardName());
|
||||
ImageView iv = holder.getView(R.id.riv_reward_img);
|
||||
ImageLoadUtils.loadPhotoThumbnail(mContext, item.getIcon(), iv);
|
||||
|
||||
RedPointView rpv_reward_number = holder.getView(R.id.rpv_reward_number);
|
||||
rpv_reward_number.setNumber("" + item.getSignDays());
|
||||
rpv_reward_number.setBackgroundResource(R.drawable.shape_bg_sign_reward_number_blue);
|
||||
rpv_reward_number.setVisibility(View.VISIBLE);
|
||||
if (hasSign) {
|
||||
holder.setVisible(R.id.iv_is_received, true)
|
||||
.setVisible(R.id.view_reward_color_bg, true)
|
||||
.setVisible(R.id.stv_reward_black_cover, true)
|
||||
.setTextColor(R.id.tv_reward_description, ContextCompat.getColor(mContext, R.color.color_BA98FF));
|
||||
rpv_reward_number.setVisibility(View.INVISIBLE);
|
||||
if (item.getSignType() == RewardNoticeInfo.TYPE_SIGN_REPLENISH) {
|
||||
tvReplenishStatus.setVisibility(View.VISIBLE);
|
||||
tvReplenishStatus.setText(ResUtil.getString(R.string.signin_adpter_rewardlistadapter_01));
|
||||
tvReplenishStatus.setBackground(null);
|
||||
} else {
|
||||
tvReplenishStatus.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
holder.setVisible(R.id.iv_is_received, false)
|
||||
.setVisible(R.id.view_reward_color_bg, false)
|
||||
.setVisible(R.id.stv_reward_black_cover, false)
|
||||
.setTextColor(R.id.tv_reward_description, ContextCompat.getColor(mContext, R.color.color_A4A4A6));
|
||||
|
||||
if (item.isCanReplenishSign()) {
|
||||
rpv_reward_number.setBackgroundResource(R.drawable.shape_bg_sign_reward_number_gray);
|
||||
tvReplenishStatus.setVisibility(View.VISIBLE);
|
||||
tvReplenishStatus.setText(ResUtil.getString(R.string.signin_adpter_rewardlistadapter_02));
|
||||
tvReplenishStatus.setBackgroundResource(userCanReplenish ?
|
||||
R.drawable.shape_bg_replenish_status_ture : R.drawable.shape_bg_replenish_status_false);
|
||||
holder.itemView.setEnabled(true);
|
||||
} else {
|
||||
tvReplenishStatus.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,216 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.adpter;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.coorchice.library.SuperTextView;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.radish.signin.view.RewardProgressView;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.RewardNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDetailInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RewardTotalNoticeAdapter{
|
||||
|
||||
private final View vFirst;
|
||||
private final View vSecond;
|
||||
private final View vThird;
|
||||
private final View vFourth;
|
||||
private final RewardProgressView mRewardProgressView;
|
||||
|
||||
private List<RewardNoticeInfo> mList;
|
||||
private SignDetailInfo mSignDetailInfo;
|
||||
|
||||
public RewardTotalNoticeAdapter(View view) {
|
||||
vFirst = view.findViewById(R.id.il_first);
|
||||
vSecond = view.findViewById(R.id.il_second);
|
||||
vThird = view.findViewById(R.id.il_third);
|
||||
vFourth = view.findViewById(R.id.il_fourth);
|
||||
mRewardProgressView = view.findViewById(R.id.reward_progress_view);
|
||||
|
||||
vFirst.setOnClickListener(view1 -> {
|
||||
if (mRewardTotalListener != null && mList != null && mList.size() > 0)
|
||||
mRewardTotalListener.getRewardTotal(mList.get(0).getSignRewardConfigId());
|
||||
});
|
||||
vSecond.setOnClickListener(view12 -> {
|
||||
if (mRewardTotalListener != null && mList != null && mList.size() > 1)
|
||||
mRewardTotalListener.getRewardTotal(mList.get(1).getSignRewardConfigId());
|
||||
});
|
||||
vThird.setOnClickListener(view13 -> {
|
||||
if (mRewardTotalListener != null && mList != null && mList.size() > 2)
|
||||
mRewardTotalListener.getRewardTotal(mList.get(2).getSignRewardConfigId());
|
||||
});
|
||||
vFourth.setOnClickListener(view14 -> {
|
||||
if (mRewardTotalListener != null)
|
||||
mRewardTotalListener.drawGold();
|
||||
});
|
||||
}
|
||||
|
||||
public void setmList(List<RewardNoticeInfo> list) {
|
||||
this.mList = list;
|
||||
showView(mList);
|
||||
}
|
||||
|
||||
public List<RewardNoticeInfo> getmList() {
|
||||
return mList;
|
||||
}
|
||||
|
||||
public void setState(SignDetailInfo signDetailInfo) {
|
||||
mSignDetailInfo = signDetailInfo;
|
||||
showView(mList);
|
||||
}
|
||||
|
||||
private void showView(boolean isReceived, View root, int levelDay, String label, boolean showIcon) {
|
||||
ImageView ivReward = root.findViewById(R.id.iv_reward);
|
||||
TextView tvReward = root.findViewById(R.id.tv_reward);
|
||||
SuperTextView stv = root.findViewById(R.id.stv_shape);
|
||||
|
||||
stv.setVisibility(View.GONE);
|
||||
|
||||
if (isReceived) {
|
||||
tvReward.setText(ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_01) + levelDay + ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_02));
|
||||
tvReward.setTextColor(ContextCompat.getColor(tvReward.getContext(), R.color.color_FEE900));
|
||||
ivReward.setImageResource(R.drawable.icon_reward_got);
|
||||
root.setEnabled(false);
|
||||
|
||||
} else {
|
||||
tvReward.setTextColor(ContextCompat.getColor(tvReward.getContext(), R.color.color_FEFEFE));
|
||||
|
||||
if (showIcon) {
|
||||
ivReward.setImageResource(R.drawable.icon_reward_package);
|
||||
stv.setVisibility(View.VISIBLE);
|
||||
root.setEnabled(true);
|
||||
} else {
|
||||
ivReward.setImageResource(R.drawable.icon_reward_un_sign_in);
|
||||
root.setEnabled(false);
|
||||
}
|
||||
|
||||
tvReward.setText(label);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void showView(List<RewardNoticeInfo> list) {
|
||||
if (list != null) {
|
||||
RewardNoticeInfo info;
|
||||
boolean showIcon;
|
||||
switch (list.size()) {
|
||||
case 3:
|
||||
info = list.get(2);
|
||||
showIcon = mSignDetailInfo != null && mSignDetailInfo.getTotalDay() >= info.getSignDays();
|
||||
if (info != null) {
|
||||
showView(info.getReceive(), vThird, info.getSignDays(), info.getSignRewardName() + "\n" + info.getSignDays() + ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_03), showIcon);
|
||||
}
|
||||
|
||||
case 2:
|
||||
info = list.get(1);
|
||||
showIcon = mSignDetailInfo != null && mSignDetailInfo.getTotalDay() >= info.getSignDays();
|
||||
if (info != null) {
|
||||
showView(info.getReceive(), vSecond, info.getSignDays(), info.getSignRewardName() + "\n" + info.getSignDays() + ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_04), showIcon);
|
||||
}
|
||||
|
||||
case 1:
|
||||
info = list.get(0);
|
||||
showIcon = mSignDetailInfo != null && mSignDetailInfo.getTotalDay() >= info.getSignDays();
|
||||
if (info != null) {
|
||||
showView(info.getReceive(), vFirst, info.getSignDays(), info.getSignRewardName() + "\n" + info.getSignDays() + ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_05), showIcon);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
showFourth();
|
||||
showProgress();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void showProgress() {
|
||||
if (mSignDetailInfo != null) {
|
||||
|
||||
if (mList == null || mList.size() == 0)
|
||||
return;
|
||||
|
||||
int currentProgress = mSignDetailInfo.getTotalDay();
|
||||
switch (mList.size()) {
|
||||
case 3:
|
||||
if (currentProgress < mList.get(0).getSignDays()) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_LESS_7_DAY);
|
||||
} else if (currentProgress < mList.get(1).getSignDays()) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_MORE_7_DAY);
|
||||
|
||||
} else if (currentProgress < mList.get(2).getSignDays()) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_MORE_14_DAY);
|
||||
|
||||
} else if (currentProgress < 28) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_MORE_21_DAY);
|
||||
|
||||
} else
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_IS_28_DAY);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (currentProgress < mList.get(0).getSignDays()) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_LESS_7_DAY);
|
||||
} else if (currentProgress < mList.get(1).getSignDays()) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_MORE_7_DAY);
|
||||
|
||||
} else if (currentProgress < 28) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_MORE_21_DAY);
|
||||
|
||||
} else
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_IS_28_DAY);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (currentProgress < mList.get(0).getSignDays()) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_LESS_7_DAY);
|
||||
} else if (currentProgress < 28) {
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_MORE_21_DAY);
|
||||
|
||||
} else
|
||||
mRewardProgressView.setProress(RewardProgressView.PROGRESS_IS_28_DAY);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void showFourth() {
|
||||
|
||||
if (mSignDetailInfo != null) {
|
||||
if (mSignDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_DRAW) { // 已瓜分
|
||||
showView(true, vFourth, 28, ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_06), true);
|
||||
|
||||
} else if (mSignDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_UN_DRAW) { // 能瓜分但未瓜分
|
||||
showView(false, vFourth, 28, ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_07), mSignDetailInfo != null && mSignDetailInfo.getTotalDay() >= 28);
|
||||
|
||||
} else if (mSignDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_UN_OPEN) { // 不可瓜分
|
||||
showView(false, vFourth, 28, ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_08), false);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// if (mSignDetailInfo != null && mSignDetailInfo.getIsDrawGold() == SignDetailInfo.FLAG_DRAW_GOLD_OPEN_DRAW) {
|
||||
// showView(true, vFourth, 28, ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_09));
|
||||
//
|
||||
// } else
|
||||
// showView(false, vFourth, 28, ResUtil.getString(R.string.signin_adpter_rewardtotalnoticeadapter_010));
|
||||
|
||||
}
|
||||
|
||||
private RewardTotalListener mRewardTotalListener;
|
||||
|
||||
public void setmRewardTotalListener(RewardTotalListener rewardTotalListener) {
|
||||
this.mRewardTotalListener = rewardTotalListener;
|
||||
}
|
||||
|
||||
public interface RewardTotalListener {
|
||||
void getRewardTotal(long id);
|
||||
void drawGold();
|
||||
}
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.helper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.utils.SpannableBuilder;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/4/28
|
||||
*/
|
||||
public class SignInUiHelper {
|
||||
|
||||
public static void showSupplementSignSuccessDialog(Context context, DialogManager dialogManager,
|
||||
String prizeName) {
|
||||
if (dialogManager == null) {
|
||||
dialogManager = new DialogManager(context);
|
||||
}
|
||||
View customView = View.inflate(context, R.layout.dialog_supplement_sign_success, null);
|
||||
TextView tvTitle = customView.findViewById(R.id.tv_title);
|
||||
tvTitle.setText(ResUtil.getString(R.string.signin_helper_signinuihelper_01));
|
||||
TextView tvContent = customView.findViewById(R.id.tv_content);
|
||||
if (!TextUtils.isEmpty(prizeName)) {
|
||||
tvContent.setVisibility(View.VISIBLE);
|
||||
SpannableBuilder builder = new SpannableBuilder();
|
||||
builder.append(ResUtil.getString(R.string.signin_helper_signinuihelper_02))
|
||||
.append(prizeName, new ForegroundColorSpan(context.getResources().getColor(R.color.appColor)));
|
||||
tvContent.setText(builder.build());
|
||||
} else {
|
||||
tvContent.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
dialogManager.showOkCancelCustomDialog(customView, ResUtil.getString(R.string.signin_helper_signinuihelper_03), null, true, null);
|
||||
}
|
||||
|
||||
}
|
@@ -1,192 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.radish.signin.view.ISignInView;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.ISignInModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.SignInModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.DrawNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.ReceiveTotalRewardInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.RewardNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDetailInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDrawInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/3/20
|
||||
*/
|
||||
public class SignInPresenter extends BaseMvpPresenter<ISignInView> {
|
||||
|
||||
private ISignInModel dataModel = new SignInModel();
|
||||
|
||||
public void getSignDetail(boolean isReplenish) {
|
||||
dataModel.signDetail().subscribe(new BeanObserver<SignDetailInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getSignDetailFail(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(SignDetailInfo signDetailInfo) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getSignDetailSuccess(signDetailInfo, isReplenish);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void getSignDetail() {
|
||||
getSignDetail(false);
|
||||
}
|
||||
|
||||
public void sign() {
|
||||
dataModel.sign().subscribe(new BeanObserver<SignInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.signFail(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(SignInfo integer) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.signSuccess(integer.getSignGoldNum());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void signDraw() {
|
||||
dataModel.signDraw().subscribe(new BeanObserver<SignDrawInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.drawFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(SignDrawInfo signDrawInfo) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.drawSuccess(signDrawInfo);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void setRemind() {
|
||||
dataModel.signRemind().subscribe(new BeanObserver<Boolean>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.setRemindFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Boolean aBoolean) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.setRemindSuccess();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getDrawNotice() {
|
||||
dataModel.drawNotice().subscribe(new BeanObserver<List<DrawNoticeInfo>>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getDrawNoticeFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<DrawNoticeInfo> s) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getDrawNoticeSuccess(s);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getRewardTotalNotice() {
|
||||
dataModel.getRewardTotalNotice().subscribe(new BeanObserver<List<RewardNoticeInfo>>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRewardTotalNoticeFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<RewardNoticeInfo> rewardNoticeInfos) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRewardTotalNoticeSuccess(rewardNoticeInfos);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getRewardTodayNotice() {
|
||||
dataModel.getRewardTodayNotice().subscribe(new BeanObserver<List<RewardNoticeInfo>>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRewardTodayNoticeFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<RewardNoticeInfo> rewardNoticeInfos) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRewardTodayNoticeSuccess(rewardNoticeInfos);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getShareImage(int shareType, String day, String reward) {
|
||||
dataModel.getShareImage(shareType, day, reward).subscribe(new BeanObserver<String>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getShareImageFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getShareImageSuccess(s);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void receiveTotalReward(long configId) {
|
||||
dataModel.receiveTotalReward(configId).subscribe(new BeanObserver<ReceiveTotalRewardInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.receiveTotalRewardFail(error);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ReceiveTotalRewardInfo s) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.receiveTotalRewardSuccess(s);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public ISignInModel getDataModel() {
|
||||
return dataModel;
|
||||
}
|
||||
|
||||
}
|
@@ -1,92 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.BetterMarqueeView;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.DrawNoticeInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/3/14
|
||||
* 瓜分钻石的消息轮播器
|
||||
*/
|
||||
public class CarveUpGoldAdapter extends BetterMarqueeView.Adapter<CarveUpGoldAdapter.MessageViewHolder>{
|
||||
|
||||
private Context context;
|
||||
private List<DrawNoticeInfo> data;
|
||||
private ForegroundColorSpan mFirstColor;
|
||||
private ForegroundColorSpan mSecondColor;
|
||||
private ForegroundColorSpan mThirdColor;
|
||||
|
||||
|
||||
public CarveUpGoldAdapter(Context context, List<DrawNoticeInfo> data) {
|
||||
this.context = context;
|
||||
this.data = data;
|
||||
|
||||
mSecondColor = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.appColor));
|
||||
mFirstColor = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.white));
|
||||
mThirdColor = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.white));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CarveUpGoldAdapter.MessageViewHolder onCreateView(ViewGroup parent) {
|
||||
return new CarveUpGoldAdapter.MessageViewHolder(
|
||||
LayoutInflater.from(this.context)
|
||||
.inflate(R.layout.item_carve_up_result,
|
||||
parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(CarveUpGoldAdapter.MessageViewHolder holder, int position) {
|
||||
DrawNoticeInfo info = data.get(position);
|
||||
if (info == null)
|
||||
return;
|
||||
|
||||
String first = "ID" + info.getErbanNo() + ResUtil.getString(R.string.signin_view_carveupgoldadapter_01);
|
||||
String second = String.valueOf(info.getGoldNum()) + ResUtil.getString(R.string.signin_view_carveupgoldadapter_02);
|
||||
String third = "!";
|
||||
|
||||
SpannableString spannableString = new SpannableString(first + second + third);
|
||||
spannableString.setSpan(mFirstColor, 0, first.length(), SpannableString.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(mSecondColor, first.length(), first.length() + second.length(), SpannableString.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
spannableString.setSpan(mThirdColor, first.length() + second.length(), first.length() + second.length() + third.length(), SpannableString.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
holder.notice.setText(spannableString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return data.size();
|
||||
}
|
||||
|
||||
public void setNewData(List<DrawNoticeInfo> newData) {
|
||||
data.clear();
|
||||
data.addAll(newData);
|
||||
notifyDateSetChange();
|
||||
}
|
||||
|
||||
class MessageViewHolder extends BetterMarqueeView.ViewHolder {
|
||||
|
||||
TextView masterName;
|
||||
TextView apprenticeName;
|
||||
TextView notice;
|
||||
|
||||
public MessageViewHolder(View view) {
|
||||
super(view);
|
||||
masterName = view.findViewById(R.id.tv_master_name);
|
||||
apprenticeName = view.findViewById(R.id.tv_apprentice_name);
|
||||
notice = view.findViewById(R.id.tv_notice);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,42 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.DrawNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.ReceiveTotalRewardInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.RewardNoticeInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDetailInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDrawInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/3/20
|
||||
*/
|
||||
public interface ISignInView extends IMvpBaseView {
|
||||
void signSuccess(long count);
|
||||
void signFail(String message);
|
||||
|
||||
void getSignDetailSuccess(SignDetailInfo signDetailInfo, boolean isReplenish);
|
||||
void getSignDetailFail(String message);
|
||||
|
||||
void drawSuccess(SignDrawInfo signDrawInfo);
|
||||
void drawFail(String message);
|
||||
|
||||
void setRemindSuccess();
|
||||
void setRemindFail(String message);
|
||||
|
||||
void getDrawNoticeSuccess(List<DrawNoticeInfo> list);
|
||||
void getDrawNoticeFail(String message);
|
||||
|
||||
void getRewardTotalNoticeSuccess(List<RewardNoticeInfo> list);
|
||||
void getRewardTotalNoticeFail(String message);
|
||||
|
||||
void getRewardTodayNoticeSuccess(List<RewardNoticeInfo> list);
|
||||
void getRewardTodayNoticeFail(String message);
|
||||
|
||||
void getShareImageSuccess(String picUrl);
|
||||
void getShareImageFail(String message);
|
||||
|
||||
void receiveTotalRewardSuccess(ReceiveTotalRewardInfo info);
|
||||
void receiveTotalRewardFail(String message);
|
||||
}
|
@@ -1,93 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
|
||||
/**
|
||||
* 签到奖品的进度
|
||||
* create by lvzebiao @2019/3/15
|
||||
*/
|
||||
public class RewardProgressView extends View {
|
||||
/**小于7天*/
|
||||
public final static int PROGRESS_LESS_7_DAY = 1;
|
||||
/**>=7天*/
|
||||
public final static int PROGRESS_MORE_7_DAY = 2;
|
||||
/**>=14天*/
|
||||
public final static int PROGRESS_MORE_14_DAY = 3;
|
||||
/**>=21天*/
|
||||
public final static int PROGRESS_MORE_21_DAY = 4;
|
||||
/**=28天*/
|
||||
public final static int PROGRESS_IS_28_DAY = 5;
|
||||
|
||||
private int progressType;
|
||||
|
||||
private Paint paint;
|
||||
|
||||
private int lineTop, lineBottom;
|
||||
|
||||
private int bgColor, progressColor;
|
||||
|
||||
public RewardProgressView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public RewardProgressView(Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
progressType = PROGRESS_LESS_7_DAY;
|
||||
paint = new Paint();
|
||||
paint.setAntiAlias(true);
|
||||
paint.setStyle(Paint.Style.FILL);
|
||||
lineTop = UIUtil.dip2px(context, 2);
|
||||
lineBottom = UIUtil.dip2px(context, 7);
|
||||
bgColor = context.getResources().getColor(R.color.color_A98AFF);
|
||||
progressColor = Color.WHITE;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
if (progressType == PROGRESS_LESS_7_DAY) {
|
||||
paint.setColor(bgColor);
|
||||
canvas.drawRect(0, lineTop, getWidth(), lineBottom, paint);
|
||||
|
||||
} else {
|
||||
int offsetX = 0;
|
||||
if (progressType == PROGRESS_MORE_7_DAY){
|
||||
offsetX = getWidth() / 6;
|
||||
|
||||
} else if (progressType == PROGRESS_MORE_14_DAY){
|
||||
offsetX = getWidth() / 2;
|
||||
|
||||
} else if (progressType == PROGRESS_MORE_21_DAY){
|
||||
offsetX = getWidth() * 5 / 6;
|
||||
|
||||
} else if (progressType == PROGRESS_IS_28_DAY){
|
||||
offsetX = getWidth();
|
||||
|
||||
}
|
||||
paint.setColor(progressColor);
|
||||
canvas.drawRect(0, lineTop, offsetX, lineBottom, paint);
|
||||
paint.setColor(bgColor);
|
||||
canvas.drawRect(offsetX, lineTop, getWidth(), lineBottom, paint);
|
||||
//画圆点
|
||||
int radius = getHeight() / 2;
|
||||
paint.setColor(progressColor);
|
||||
canvas.drawCircle(offsetX, radius, radius, paint);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void setProress(int proress) {
|
||||
this.progressType = proress;
|
||||
invalidate();
|
||||
}
|
||||
}
|
@@ -1,36 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebViewClient;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.databinding.DialogRuleBinding;
|
||||
import com.yizhuan.erban.treasure_box.widget.dialog.BaseBindingDialog;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
|
||||
@ActLayoutRes(R.layout.dialog_rule)
|
||||
public class RuleDialog extends BaseBindingDialog<DialogRuleBinding> {
|
||||
public RuleDialog(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
binding.ivClose.setOnClickListener(v -> dismiss());
|
||||
|
||||
binding.wvRule.getSettings().setUseWideViewPort(true);
|
||||
// 设置 WebView 可以在 HTTPS 通道上加载 HTTP 资源,Android 4.4 后的暗坑
|
||||
// 因为 Android 4.4 后默认不允许在 HTTPS 通道上加载 HTTP 资源
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
binding.wvRule.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
|
||||
}
|
||||
binding.wvRule.getSettings().setTextZoom(100);
|
||||
binding.wvRule.setWebViewClient(new WebViewClient());
|
||||
// 设置Webview的user-agent
|
||||
binding.wvRule.getSettings().setUserAgentString(binding.wvRule.getSettings().getUserAgentString() + " pekoAppAndroid erbanAppAndroid");
|
||||
binding.wvRule.loadUrl(UriProvider.JAVA_WEB_URL + "/peko/modules/rule/rule-popup.html");
|
||||
}
|
||||
}
|
@@ -1,194 +0,0 @@
|
||||
package com.yizhuan.erban.radish.signin.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatDialog;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.radish.signin.SignInActivity;
|
||||
import com.yizhuan.erban.utils.NumberFormatUtil;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.ISignInModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.SignInModel;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignDetailInfo;
|
||||
import com.yizhuan.xchat_android_core.radish.signin.bean.SignInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
import com.yy.mobile.rollingtextview.CharOrder;
|
||||
import com.yy.mobile.rollingtextview.RollingTextView;
|
||||
import com.yy.mobile.rollingtextview.strategy.Direction;
|
||||
import com.yy.mobile.rollingtextview.strategy.Strategy;
|
||||
|
||||
/**
|
||||
* 签到弹框
|
||||
* create by lvzebiao @2019/3/15
|
||||
*/
|
||||
public class SignInDialog extends AppCompatDialog {
|
||||
|
||||
private Context context;
|
||||
private TextView tvAwardInfo;
|
||||
private RollingTextView rtvGoldPool;
|
||||
private TextView tvSignInOp;
|
||||
private ImageView ivClose;
|
||||
|
||||
private SignDetailInfo detailInfo;
|
||||
|
||||
private boolean hasClickSignIn = false;
|
||||
|
||||
private ISignInModel model = new SignInModel();
|
||||
|
||||
public SignInDialog(Context context, SignDetailInfo detailInfo) {
|
||||
this(context, 0, detailInfo);
|
||||
}
|
||||
|
||||
public SignInDialog(Context context, int theme, SignDetailInfo detailInfo) {
|
||||
super(context, theme);
|
||||
this.context = context;
|
||||
this.detailInfo = detailInfo;
|
||||
}
|
||||
|
||||
public static void display(Context context, SignDetailInfo detailInfo) {
|
||||
SignInDialog dialog = new SignInDialog(context, detailInfo);
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.dialog_sign_in);
|
||||
findView();
|
||||
initListener();
|
||||
setCancelable(true);
|
||||
setCanceledOnTouchOutside(true);
|
||||
Window window = getWindow();
|
||||
if (window != null) {
|
||||
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
WindowManager.LayoutParams windowParams = window.getAttributes();
|
||||
windowParams.width = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
windowParams.height = WindowManager.LayoutParams.MATCH_PARENT;
|
||||
windowParams.dimAmount = 0.65f;
|
||||
window.setAttributes(windowParams);
|
||||
//默认动画
|
||||
//window.setWindowAnimations(R.style.anim_sign_in);
|
||||
}
|
||||
rtvGoldPool.addCharOrder(",");
|
||||
rtvGoldPool.addCharOrder(CharOrder.Number);
|
||||
rtvGoldPool.setCharStrategy(Strategy.CarryBitAnimation(Direction.SCROLL_UP));
|
||||
rtvGoldPool.setAnimationDuration(300);
|
||||
rtvGoldPool.setOnClickListener(v -> SignInActivity.start(context));
|
||||
loadData(true);
|
||||
}
|
||||
|
||||
private void findView() {
|
||||
tvAwardInfo = findViewById(R.id.tv_award_info);
|
||||
rtvGoldPool = findViewById(R.id.rtv_gold_pool);
|
||||
tvSignInOp = findViewById(R.id.tv_sign_in_op);
|
||||
ivClose = findViewById(R.id.iv_close);
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
ivClose.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void loadData(boolean isSetPoolNumbe) {
|
||||
setDataView(isSetPoolNumbe);
|
||||
}
|
||||
|
||||
private void setDataView(boolean isSetPoolNumber) {
|
||||
if (detailInfo == null) {
|
||||
return;
|
||||
}
|
||||
refreshSignStatus();
|
||||
if (isSetPoolNumber) {
|
||||
rtvGoldPool.setText(NumberFormatUtil.formatCommaInt(detailInfo.getShowGoldNum()), false);
|
||||
}
|
||||
tvAwardInfo.setVisibility(View.INVISIBLE);
|
||||
setAwardInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新状态
|
||||
*/
|
||||
private void refreshSignStatus() {
|
||||
tvSignInOp.setClickable(false);
|
||||
tvSignInOp.setTextColor(context.getResources().getColor(R.color.white));
|
||||
tvSignInOp.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
|
||||
if (detailInfo.isSign()) {
|
||||
tvSignInOp.setBackgroundResource(R.drawable.icon_sign_in_ed_status);
|
||||
tvSignInOp.setText(context.getString(R.string.sign_in_continue_number_days,
|
||||
detailInfo.getTotalDay()));
|
||||
} else {
|
||||
tvSignInOp.setClickable(true);
|
||||
tvSignInOp.setBackgroundResource(R.drawable.icon_sign_in_un_status);
|
||||
tvSignInOp.setText(R.string.status_point_me_to_sign_in);
|
||||
tvSignInOp.setOnClickListener(v -> requestSign());
|
||||
}
|
||||
}
|
||||
|
||||
private void setAwardInfo() {
|
||||
if (detailInfo == null) {
|
||||
return;
|
||||
}
|
||||
if (detailInfo.isSign() && !TextUtils.isEmpty(detailInfo.getSignPrizeName())) {
|
||||
tvAwardInfo.setVisibility(View.VISIBLE);
|
||||
tvAwardInfo.setText(ResUtil.getString(R.string.signin_view_signindialog_01) + detailInfo.getShowText());
|
||||
}
|
||||
}
|
||||
|
||||
private void requestSign() {
|
||||
if (detailInfo == null) {
|
||||
return;
|
||||
}
|
||||
hasClickSignIn = true;
|
||||
tvSignInOp.setClickable(false);
|
||||
model.sign().compose(RxHelper.bindContext(context))
|
||||
.subscribe(new BeanObserver<SignInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
SingleToastUtil.showToast(error);
|
||||
tvSignInOp.setClickable(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(SignInfo signInfo) {
|
||||
long addGoldNum = signInfo.getSignGoldNum();
|
||||
SingleToastUtil.showToast(ResUtil.getString(R.string.signin_view_signindialog_05) + addGoldNum + ResUtil.getString(R.string.signin_view_signindialog_06));
|
||||
//启动播放动画
|
||||
long newPoolNumber = addGoldNum + detailInfo.getShowGoldNum();
|
||||
rtvGoldPool.setText(NumberFormatUtil.formatCommaInt(newPoolNumber), true);
|
||||
detailInfo.setIsSign(1);
|
||||
detailInfo.setTotalDay(detailInfo.getTotalDay() + 1);
|
||||
loadData(false);
|
||||
model.signDetail().subscribe(new BeanObserver<SignDetailInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(SignDetailInfo info) {
|
||||
detailInfo = info;
|
||||
setAwardInfo();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -32,7 +32,6 @@ import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPackage;
|
||||
import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPacket;
|
||||
import com.yizhuan.erban.ui.im.chat.MsgViewHolderSkill;
|
||||
import com.yizhuan.erban.ui.im.chat.MsgViewHolderText;
|
||||
import com.yizhuan.erban.ui.im.chat.SignInNoticeMsgViewHolder;
|
||||
import com.yizhuan.erban.ui.im.chat.SysMsgV2ViewHolder;
|
||||
import com.yizhuan.erban.ui.im.chat.SysMsgViewHolder;
|
||||
import com.yizhuan.erban.ui.user.activity.UserInfoActivity;
|
||||
@@ -57,7 +56,6 @@ import com.yizhuan.xchat_android_core.im.custom.bean.NewbieHelloAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.NobleAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.NoticeAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.RedPacketAttachment;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.SkillMsgAttachment;
|
||||
@@ -152,8 +150,6 @@ public class ImInitHelper {
|
||||
HallDataManager.get().mainNimOnCreate();
|
||||
//公会模块
|
||||
NimUIKit.registerMsgItemViewHolder(ClanAttachment.class, ClanMsgViewHolder.class);
|
||||
//签到
|
||||
NimUIKit.registerMsgItemViewHolder(OpenSignInAttachment.class, SignInNoticeMsgViewHolder.class);
|
||||
//瓜分钻石 三级
|
||||
NimUIKit.registerMsgItemViewHolder(CarveUpGoldThirdLevelAttachment.class, MsgViewHolderText.class);
|
||||
|
||||
|
@@ -27,7 +27,6 @@ import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.module_hall.hall.activity.ModuleClanActivity;
|
||||
import com.yizhuan.erban.module_hall.hall.activity.ModuleHallActivity;
|
||||
import com.yizhuan.erban.public_chat_hall.activity.PublicChatHallHomeActivity;
|
||||
import com.yizhuan.erban.radish.signin.SignInActivity;
|
||||
import com.yizhuan.erban.radish.task.activity.TaskCenterActivity;
|
||||
import com.yizhuan.erban.relation.cp.activity.CpHomeActivity;
|
||||
import com.yizhuan.erban.relation.cp.activity.CpInviteRecordActivity;
|
||||
@@ -209,9 +208,6 @@ public class RouterHandler {
|
||||
case RouterType.MENTORING_RELATIONSHIP_HOME:
|
||||
MentoringRelationshipActivity.start(context);
|
||||
break;
|
||||
case RouterType.SIGN_IN:
|
||||
SignInActivity.start(context);
|
||||
break;
|
||||
case RouterType.DO_TASK:
|
||||
TaskCenterActivity.start(context, TaskCenterActivity.FromPage.FIND);
|
||||
break;
|
||||
|
@@ -1,54 +0,0 @@
|
||||
package com.yizhuan.erban.ui.im.chat;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase;
|
||||
import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.radish.signin.SignInActivity;
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment;
|
||||
|
||||
/**
|
||||
* 签到提醒
|
||||
* create by lvzebiao @2019/3/20
|
||||
*/
|
||||
public class SignInNoticeMsgViewHolder extends MsgViewHolderBase {
|
||||
|
||||
private View llSignInContainer;
|
||||
|
||||
private TextView tvContent;
|
||||
|
||||
private TextView tvTitle;
|
||||
|
||||
public SignInNoticeMsgViewHolder(BaseMultiItemFetchLoadAdapter adapter) {
|
||||
super(adapter);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getContentResId() {
|
||||
return R.layout.layout_msg_view_holder_sign_in_notice;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void inflateContentView() {
|
||||
llSignInContainer = findViewById(R.id.ll_sign_in_container);
|
||||
tvContent = findViewById(R.id.tv_content);
|
||||
tvTitle = findViewById(R.id.tv_title);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindContentView() {
|
||||
llSignInContainer.setOnClickListener(v -> SignInActivity.start(context));
|
||||
OpenSignInAttachment attachment = (OpenSignInAttachment) message.getAttachment();
|
||||
//setData
|
||||
String title = null;
|
||||
String content = null;
|
||||
if (attachment != null && attachment.getImNotice() != null) {
|
||||
title = attachment.getImNotice().getTitle();
|
||||
content = attachment.getImNotice().getContent();
|
||||
}
|
||||
tvTitle.setText(title);
|
||||
tvContent.setText(content);
|
||||
}
|
||||
}
|
@@ -26,30 +26,6 @@ import java.util.List;
|
||||
*/
|
||||
public class TuTuGuideHelper {
|
||||
|
||||
/**
|
||||
* 是否需要显示礼物面板的引导
|
||||
*/
|
||||
public final static String KEY_GUIDE_GIFT_DIALOG = "key_guide_gift_dialog";
|
||||
|
||||
/**
|
||||
* 是否需要显示房间的引导
|
||||
*/
|
||||
public final static String KEY_GUIDE_FIRST_ROOM = "key_guide_first_room";
|
||||
|
||||
/**
|
||||
* 房间首页tab引导
|
||||
*/
|
||||
public final static String KEY_GUIDE_MAIN_TAB = "key_guide_main_tab";
|
||||
|
||||
/**
|
||||
* 消息tab引导
|
||||
*/
|
||||
public final static String KEY_GUIDE_MSG_TAB = "key_guide_msg_tab";
|
||||
|
||||
/**
|
||||
* 我的tab引导
|
||||
*/
|
||||
public final static String KEY_GUIDE_ME_TAB = "key_guide_me_tab";
|
||||
public final static String KEY_GUIDE_CHATTER_BOX = "key_guide_chatter_box";
|
||||
|
||||
/**
|
||||
@@ -57,14 +33,6 @@ public class TuTuGuideHelper {
|
||||
*/
|
||||
public final static String KEY_GUIDE_VOICE_MATCH = "key_guide_voice_match";
|
||||
|
||||
/**
|
||||
* 是否需要显示声音匹配私聊页面的打招呼指引
|
||||
*/
|
||||
public final static String KEY_GUIDE_VOICE_MATCH_SAY_HI = "key_guide_voice_match_say_hi";
|
||||
/**
|
||||
* 首页女神页面的引导
|
||||
*/
|
||||
public final static String KEY_GUIDE_MAIN_HOME = "key_guide_me_tab";
|
||||
/**
|
||||
* 话题首页引导
|
||||
*/
|
||||
@@ -153,195 +121,6 @@ public class TuTuGuideHelper {
|
||||
List<OverLayer> onCreateList();
|
||||
}
|
||||
|
||||
public List<OverLayer> createMainTabOverLayer(View top) {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
if (top == null) {
|
||||
return list;
|
||||
}
|
||||
OverLayer overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
|
||||
LightConfig lightConfig = new LightConfig(top);
|
||||
int dp_24 = UIUtil.dip2px(context, 24);
|
||||
lightConfig.setRadius(new float[]{0, 0, dp_24, dp_24, dp_24, dp_24, 0, 0});
|
||||
lightConfig.setHPadding(UIUtil.dip2px(context, 5));
|
||||
HiLightInfo info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
return list;
|
||||
}
|
||||
List<HiLightInfo> hiLightInfoList = new ArrayList<>();
|
||||
hiLightInfoList.add(info);
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
ImageView imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_main_top_tips);
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 278.6f), UIUtil.dip2px(context, 92.6f)
|
||||
);
|
||||
params.leftMargin = UIUtil.dip2px(context, 30.6f);
|
||||
params.topMargin = UIUtil.dip2px(context, 20) + (int) info.getRectF().bottom;
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createKnowedParams(context);
|
||||
params.leftMargin = UIUtil.dip2px(context, 252);
|
||||
params.topMargin = UIUtil.dip2px(context, 139) + (int) info.getRectF().bottom;
|
||||
overLayer.setKnowedParams(params);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<OverLayer> createMeTabOverLayer(View radishItem) {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
if (radishItem == null) {
|
||||
return list;
|
||||
}
|
||||
OverLayer overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
|
||||
LightConfig lightConfig = new LightConfig(radishItem);
|
||||
int dp_9 = UIUtil.dip2px(context, 9);
|
||||
lightConfig.setRadius(new float[]{dp_9, dp_9, dp_9, dp_9, dp_9, dp_9, dp_9, dp_9});
|
||||
lightConfig.setHPadding(-UIUtil.dip2px(context, 12));
|
||||
HiLightInfo info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
return list;
|
||||
}
|
||||
List<HiLightInfo> hiLightInfoList = new ArrayList<>();
|
||||
hiLightInfoList.add(info);
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
ImageView imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_me_enter_tips);
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 295.3f), UIUtil.dip2px(context, 92)
|
||||
);
|
||||
params.leftMargin = UIUtil.dip2px(context, 30.3f);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 92) - UIUtil.dip2px(context, 20);
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createKnowedParams(context);
|
||||
params.leftMargin = UIUtil.dip2px(context, 259);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 140) - UIUtil.dip2px(context, 34);
|
||||
overLayer.setKnowedParams(params);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
public List<OverLayer> createMsgTabOverLayer() {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
//第一层
|
||||
OverLayer overLayer = new OverLayer();
|
||||
View view = View.inflate(context, R.layout.home_guide_for_enter, null);
|
||||
view.setLayoutParams(createLayoutParams());
|
||||
ImageView iv_enter_text = view.findViewById(R.id.iv_enter_text);
|
||||
if (iv_enter_text != null) {
|
||||
iv_enter_text.setImageResource(R.drawable.icon_guide_msg_enter_tips);
|
||||
}
|
||||
overLayer.addTipsView(view);
|
||||
|
||||
FrameLayout.LayoutParams params = createKnowedParams(context);
|
||||
params.gravity = Gravity.BOTTOM | Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 52f);
|
||||
params.bottomMargin = UIUtil.dip2px(context, 99);
|
||||
overLayer.setKnowedParams(params);
|
||||
list.add(overLayer);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
public List<OverLayer> createRoomGuide(View micView, View sendGift) {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
if (micView == null) {
|
||||
return list;
|
||||
}
|
||||
//8号麦位高亮
|
||||
OverLayer overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
|
||||
LightConfig lightConfig;
|
||||
lightConfig = new LightConfig(micView);
|
||||
int radiu = UIUtil.dip2px(context, 1) + micView.getWidth() / 2;
|
||||
lightConfig.setRadius(new float[]{radiu, radiu, radiu, radiu, radiu, radiu, radiu, radiu});
|
||||
lightConfig.setHPadding(UIUtil.dip2px(context, 1));
|
||||
lightConfig.setVPadding(UIUtil.dip2px(context, 1));
|
||||
HiLightInfo info;
|
||||
info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
return list;
|
||||
}
|
||||
List<HiLightInfo> hiLightInfoList;
|
||||
hiLightInfoList = new ArrayList<>();
|
||||
hiLightInfoList.add(info);
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
ImageView imageView;
|
||||
imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_to_up_mic_tips);
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 209), UIUtil.dip2px(context, 66)
|
||||
);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 51);
|
||||
params.topMargin = (int) info.getRectF().bottom + UIUtil.dip2px(context, 14);
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createNextParams(context);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 51);
|
||||
params.topMargin = (int) info.getRectF().bottom + UIUtil.dip2px(context, 101);
|
||||
overLayer.setNextParams(params);
|
||||
|
||||
overLayer.setNeedSkip(true);
|
||||
//送礼按钮高亮
|
||||
if (sendGift == null) {
|
||||
return list;
|
||||
}
|
||||
overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
|
||||
lightConfig = new LightConfig(sendGift);
|
||||
radiu = UIUtil.dip2px(context, 24);
|
||||
lightConfig.setRadius(new float[]{radiu, radiu, 0, 0, 0, 0, radiu, radiu});
|
||||
lightConfig.setRightPadding(UIUtil.dip2px(context, 15));
|
||||
lightConfig.setLeftPadding(UIUtil.dip2px(context, 6.5f));
|
||||
lightConfig.setVPadding(UIUtil.dip2px(context, 6.5f));
|
||||
info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
return list;
|
||||
}
|
||||
hiLightInfoList = new ArrayList<>();
|
||||
hiLightInfoList.add(info);
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_room_send_gift_tips);
|
||||
params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 156), UIUtil.dip2px(context, 66)
|
||||
);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 36);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 66) - UIUtil.dip2px(context, 21);
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createKnowedParams(context);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 36);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 107) - UIUtil.dip2px(context, 34);
|
||||
overLayer.setKnowedParams(params);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<OverLayer> createVoiceMatchGuide(View likeButtonView, View myVoiceView) {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
if (likeButtonView == null) {
|
||||
@@ -516,160 +295,6 @@ public class TuTuGuideHelper {
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
public List<OverLayer> createGiftDialogOverLayer(View avatar) {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
if (avatar == null) {
|
||||
return list;
|
||||
}
|
||||
OverLayer overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
|
||||
LightConfig lightConfig = new LightConfig(avatar);
|
||||
int dp_9 = UIUtil.dip2px(context, 9);
|
||||
lightConfig.setRadius(new float[]{dp_9, dp_9, dp_9, dp_9, dp_9, dp_9, dp_9, dp_9});
|
||||
lightConfig.setVPadding(UIUtil.dip2px(context, 8.5f));
|
||||
HiLightInfo info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
return list;
|
||||
}
|
||||
List<HiLightInfo> hiLightInfoList = new ArrayList<>();
|
||||
hiLightInfoList.add(info);
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
ImageView imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_giftdialog_tips);
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 315), UIUtil.dip2px(context, 66)
|
||||
);
|
||||
params.leftMargin = UIUtil.dip2px(context, 31);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 66) - UIUtil.dip2px(context, 21);
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createKnowedParams(context);
|
||||
params.leftMargin = UIUtil.dip2px(context, 272);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 107) - UIUtil.dip2px(context, 34);
|
||||
overLayer.setKnowedParams(params);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 高亮首页
|
||||
*
|
||||
* @param views banner
|
||||
* @param view item
|
||||
* @return
|
||||
*/
|
||||
public List<OverLayer> createMainHomeGuide(List<View> views, View view) {
|
||||
List<OverLayer> list = new ArrayList<>();
|
||||
|
||||
OverLayer overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
List<HiLightInfo> hiLightInfoList = new ArrayList<>();
|
||||
for (View v : views) {
|
||||
LightConfig lightConfig;
|
||||
lightConfig = new LightConfig(v);
|
||||
HiLightInfo info;
|
||||
info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
continue;
|
||||
}
|
||||
hiLightInfoList.add(info);
|
||||
|
||||
}
|
||||
HiLightInfo info = hiLightInfoList.get(0);
|
||||
|
||||
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
ImageView imageView;
|
||||
//文案
|
||||
imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_main_home_copywriting_1);
|
||||
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 278.6f), UIUtil.dip2px(context, 92.6f)
|
||||
);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 51);
|
||||
params.topMargin = (int) info.getRectF().bottom + UIUtil.dip2px(context, 14);
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
//
|
||||
//下面的logo
|
||||
imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_logo_left_center);
|
||||
params = new FrameLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
);
|
||||
params.gravity = Gravity.LEFT | Gravity.BOTTOM;
|
||||
// params.rightMargin = UIUtil.dip2px(context, 51);
|
||||
// params.topMargin = (int) info.getRectF().top;
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createNextParams(context);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 51);
|
||||
params.topMargin = (int) info.getRectF().bottom + UIUtil.dip2px(context, 101);
|
||||
overLayer.setNextParams(params);
|
||||
|
||||
overLayer.setNeedSkip(true);
|
||||
//
|
||||
overLayer = new OverLayer();
|
||||
list.add(overLayer);
|
||||
|
||||
LightConfig lightConfig = new LightConfig(view);
|
||||
int radiu = UIUtil.dip2px(context, 24);
|
||||
lightConfig.setRadius(new float[]{radiu, radiu, radiu, radiu, radiu, radiu, radiu, radiu});
|
||||
lightConfig.setRightPadding(UIUtil.dip2px(context, 15));
|
||||
lightConfig.setLeftPadding(UIUtil.dip2px(context, 6.5f));
|
||||
lightConfig.setVPadding(UIUtil.dip2px(context, 6.5f));
|
||||
info = calcHiLightInfo(lightConfig);
|
||||
if (info == null) {
|
||||
return list;
|
||||
}
|
||||
hiLightInfoList = new ArrayList<>();
|
||||
hiLightInfoList.add(info);
|
||||
overLayer.addHiLightInfo(hiLightInfoList);
|
||||
|
||||
imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_main_home_copywriting_2);
|
||||
params = new FrameLayout.LayoutParams(
|
||||
UIUtil.dip2px(context, 278.6f), UIUtil.dip2px(context, 92.6f)
|
||||
);
|
||||
params.gravity = Gravity.LEFT;
|
||||
params.leftMargin = UIUtil.dip2px(context, 54);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 66) - UIUtil.dip2px(context, 21) - UIUtil.dip2px(context, 21);
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
imageView = new ImageView(context);
|
||||
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
imageView.setImageResource(R.drawable.icon_guide_logo_right_bottom);
|
||||
params = new FrameLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
);
|
||||
params.gravity = Gravity.END | Gravity.BOTTOM;
|
||||
//
|
||||
imageView.setLayoutParams(params);
|
||||
overLayer.addTipsView(imageView);
|
||||
|
||||
params = createKnowedParams(context);
|
||||
params.gravity = Gravity.END;
|
||||
params.rightMargin = UIUtil.dip2px(context, 36);
|
||||
params.topMargin = (int) info.getRectF().top - UIUtil.dip2px(context, 107) - UIUtil.dip2px(context, 34);
|
||||
overLayer.setKnowedParams(params);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据需要的配置,计算好高亮的区域信息
|
||||
*
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 250 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 678 B |
Before Width: | Height: | Size: 602 B |
Before Width: | Height: | Size: 648 B |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 721 B |
Before Width: | Height: | Size: 788 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 642 B |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 864 B |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 524 B |
Before Width: | Height: | Size: 528 B |
Before Width: | Height: | Size: 562 B |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 716 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 1.3 KiB |