[Modify]移除无用图片和代码

This commit is contained in:
wushaocheng
2023-05-16 19:46:07 +08:00
parent c66b314102
commit b5110e9996
140 changed files with 0 additions and 3558 deletions

View File

@@ -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" />

View File

@@ -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;

View File

@@ -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())

View File

@@ -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();
}
}
}

View File

@@ -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}"
}
}

View File

@@ -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);
}
});
}
/**
* 检查是否需要显示首充弹窗
*/

View File

@@ -82,7 +82,6 @@ public interface IAvRoomView extends IMvpBaseView {
*/
void recoverRoomMinWhenPmLimit(Throwable throwable);
void showNewUserDialog(GiftInfo giftInfo);
void showFirstChargeDialog(FirstChargeInfo firstChargeInfo);

View File

@@ -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();

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}
}

View File

@@ -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();
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}

View File

@@ -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();
}
}

View File

@@ -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");
}
}

View File

@@ -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();
}
});
}
});
}
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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;
}
/**
* 根据需要的配置,计算好高亮的区域信息
*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More