|
|
@@ -1,25 +1,56 @@
|
|
|
package com.sheep.jiuyan.samllsheep.ui.activity;
|
|
|
|
|
|
+import android.annotation.SuppressLint;
|
|
|
+import android.content.Intent;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.view.ViewGroup;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.RelativeLayout;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
+import com.sheep.gamegroup.view.activity.AskGetMoneyAct;
|
|
|
+import com.sheep.gamegroup.view.activity.SignCardAct;
|
|
|
import com.sheep.jiuyan.samllsheep.R;
|
|
|
+import com.sheep.jiuyan.samllsheep.bean.SignDay;
|
|
|
+import com.sheep.jiuyan.samllsheep.bean.SignsBean;
|
|
|
+import com.sheep.jiuyan.samllsheep.net.Network;
|
|
|
+import com.sheep.jiuyan.samllsheep.net.Scheduler;
|
|
|
import com.sheep.jiuyan.samllsheep.ui.base.BaseActivity;
|
|
|
import com.sheep.jiuyan.samllsheep.ui.view.EggView;
|
|
|
+import com.trello.rxlifecycle2.android.ActivityEvent;
|
|
|
+import com.umeng.socialize.ShareAction;
|
|
|
+import com.umeng.socialize.UMShareListener;
|
|
|
+import com.umeng.socialize.bean.SHARE_MEDIA;
|
|
|
+import com.umeng.socialize.media.UMImage;
|
|
|
+import com.umeng.socialize.media.UMWeb;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
|
|
|
import butterknife.BindView;
|
|
|
import butterknife.OnClick;
|
|
|
+import io.reactivex.Observer;
|
|
|
+import io.reactivex.disposables.Disposable;
|
|
|
|
|
|
/**
|
|
|
* Created by: zhoujuncai.
|
|
|
* Created date: 2018/10/31.
|
|
|
* Description: 签到
|
|
|
*/
|
|
|
-public class SignActivity extends BaseActivity {
|
|
|
+public class SignActivity extends BaseActivity implements UMShareListener {
|
|
|
|
|
|
@BindView(R.id.eggs_view)
|
|
|
EggView eggsView;
|
|
|
@BindView(R.id.sign_info_text)
|
|
|
TextView signInfoText;
|
|
|
+ @BindView(R.id.sign_day_list)
|
|
|
+ LinearLayout signDayList;
|
|
|
+ @BindView(R.id.sign_now_but)
|
|
|
+ TextView signNowBut;
|
|
|
+ @BindView(R.id.sign_guajiangqu)
|
|
|
+ RelativeLayout signGuajiang;
|
|
|
+ /* 是否有漏签 */
|
|
|
+ private boolean attech = false;
|
|
|
|
|
|
@Override
|
|
|
protected int onLayout() {
|
|
|
@@ -38,7 +69,169 @@ public class SignActivity extends BaseActivity {
|
|
|
|
|
|
@Override
|
|
|
protected void onData() {
|
|
|
+ initSigns();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initSigns() {
|
|
|
+ Network.api().getSigns()
|
|
|
+ .compose(Scheduler.apply(this.<SignsBean>bindUntilEvent(ActivityEvent.DESTROY)))
|
|
|
+ .subscribe(new Observer<SignsBean>() {
|
|
|
+ @Override
|
|
|
+ public void onSubscribe(Disposable d) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @SuppressLint("SetTextI18n")
|
|
|
+ @Override
|
|
|
+ public void onNext(SignsBean signsBean) {
|
|
|
+ List<SignsBean.DataBean> data = signsBean.getData();
|
|
|
+ signInfoText.setText("已签到" + data.size() + "天,连续6天打卡可参与刮奖");
|
|
|
+ int max = 0;
|
|
|
+ /* 遍历最大签到周期 */
|
|
|
+ for (SignsBean.DataBean bean : data) {
|
|
|
+ if (max == 0) {
|
|
|
+ max = bean.getDay();
|
|
|
+ } else {
|
|
|
+ max = Math.max(max, bean.getDay());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* 判断是否有漏签 */
|
|
|
+ if (max > data.size()) {
|
|
|
+ attech = true;
|
|
|
+ signNowBut.setText("复活补签");
|
|
|
+ /* 设置从第一天到最后一天的状态为未签到 */
|
|
|
+ for (int i = 0; i < max - 1; i++) {
|
|
|
+ SignsBean.DataBean dataBean = data.get(i);
|
|
|
+ TextView childAt = (TextView) signDayList.getChildAt(dataBean.getDay() - 1);
|
|
|
+ childAt.setBackground(getResources().getDrawable(R.drawable.shape_sign_bg_select));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* 设置已签到的天数状态 */
|
|
|
+ for (int i = 0; i < data.size(); i++) {
|
|
|
+ SignsBean.DataBean dataBean = data.get(i);
|
|
|
+ TextView childAt = (TextView) signDayList.getChildAt(dataBean.getDay() - 1);
|
|
|
+ childAt.setBackground(getResources().getDrawable(R.drawable.shape_sign_bg_select));
|
|
|
+ if (dataBean.getDay() == 6) {
|
|
|
+ childAt.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, null, getResources().getDrawable(R.drawable.giftbox_open));
|
|
|
+ } else {
|
|
|
+ childAt.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, null, getResources().getDrawable(R.drawable.qiandao));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onComplete() {
|
|
|
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 补签
|
|
|
+ */
|
|
|
+ private void attechSign() {
|
|
|
+ Network.api().signInSupplement()
|
|
|
+ .compose(Scheduler.apply(this.<SignDay>bindUntilEvent(ActivityEvent.DESTROY)))
|
|
|
+ .subscribe(new Observer<SignDay>() {
|
|
|
+ @Override
|
|
|
+ public void onSubscribe(Disposable d) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNext(SignDay signDay) {
|
|
|
+ attech = false;
|
|
|
+ signNowBut.setText("签到");
|
|
|
+ // 重新请求签到状态接口
|
|
|
+ initSigns();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onComplete() {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 签到
|
|
|
+ */
|
|
|
+ private void signNow() {
|
|
|
+ Network.api().signEveryDay()
|
|
|
+ .compose(Scheduler.apply(this.<SignDay>bindUntilEvent(ActivityEvent.DESTROY)))
|
|
|
+ .subscribe(new Observer<SignDay>() {
|
|
|
+ @Override
|
|
|
+ public void onSubscribe(Disposable d) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNext(SignDay signDay) {
|
|
|
+ signNowBut.setText("已签到");
|
|
|
+ signNowBut.setClickable(false);
|
|
|
+ signNowBut.setFocusable(false);
|
|
|
+ makeAndShowWindow("已签到", signDay.getData());
|
|
|
+ initSigns();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onComplete() {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建并显示窗口
|
|
|
+ */
|
|
|
+ @SuppressLint({"InflateParams", "SetTextI18n"})
|
|
|
+ private void makeAndShowWindow(String title, double money) {
|
|
|
+ final View dialog = LayoutInflater.from(this).inflate(R.layout.sign_ok_dialog, null);
|
|
|
+ ((TextView) dialog.findViewById(R.id.sign_window_title)).setText(title);
|
|
|
+ ((TextView) dialog.findViewById(R.id.sign_money_number)).setText("+" + money);
|
|
|
+ dialog.findViewById(R.id.sign_window_next).setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ // 换一个
|
|
|
+ }
|
|
|
+ });
|
|
|
+ dialog.findViewById(R.id.sign_window_share).setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ ((ViewGroup) getWindow().getDecorView()).removeView(dialog);
|
|
|
+ UMWeb web = new UMWeb("下载链接");
|
|
|
+ web.setTitle(getString(R.string.app_name));
|
|
|
+ web.setThumb(new UMImage(SignActivity.this, R.drawable.icon));
|
|
|
+ web.setDescription("任务详情");
|
|
|
+ new ShareAction(SignActivity.this)
|
|
|
+ .withMedia(web)
|
|
|
+ .setDisplayList(SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.QZONE, SHARE_MEDIA.WEIXIN_CIRCLE)
|
|
|
+ .setCallback(SignActivity.this)
|
|
|
+ .open();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ dialog.findViewById(R.id.close_but).setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ ((ViewGroup) getWindow().getDecorView()).removeView(dialog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ((ViewGroup) getWindow().getDecorView()).addView(dialog);
|
|
|
}
|
|
|
|
|
|
@OnClick(R.id.back_but)
|
|
|
@@ -48,5 +241,75 @@ public class SignActivity extends BaseActivity {
|
|
|
|
|
|
@OnClick(R.id.active_info)
|
|
|
public void onActiveInfoClicked() {
|
|
|
+ startActivity(new Intent(SignActivity.this, ActiveRuleActivity.class));
|
|
|
+ }
|
|
|
+
|
|
|
+ @OnClick(R.id.sign_now_but)
|
|
|
+ public void onSignNowButClicked() {
|
|
|
+ if (attech) {
|
|
|
+ attechSign();
|
|
|
+ } else {
|
|
|
+ signNow();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @OnClick(R.id.go_to_pack_but)
|
|
|
+ public void onGoToPackButClicked() {
|
|
|
+ startActivity(new Intent(SignActivity.this, SignCardAct.class));
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+
|
|
|
+ @OnClick(R.id.sign_guajiangqu)
|
|
|
+ public void onSignGuajiangquClicked() {
|
|
|
+ Network.api().signScratchCard()
|
|
|
+ .compose(Scheduler.apply(this.<SignDay>bindUntilEvent(ActivityEvent.DESTROY)))
|
|
|
+ .subscribe(new Observer<SignDay>() {
|
|
|
+ @Override
|
|
|
+ public void onSubscribe(Disposable d) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNext(SignDay signDay) {
|
|
|
+ signGuajiang.setVisibility(View.GONE);
|
|
|
+ makeAndShowWindow("刮奖成功", signDay.getData());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(Throwable e) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onComplete() {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ @OnClick(R.id.go_to_yaoqing)
|
|
|
+ public void onGoToYaoqingClicked() {
|
|
|
+ startActivity(new Intent(SignActivity.this, AskGetMoneyAct.class));
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onStart(SHARE_MEDIA share_media) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResult(SHARE_MEDIA share_media) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(SHARE_MEDIA share_media, Throwable throwable) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onCancel(SHARE_MEDIA share_media) {
|
|
|
+
|
|
|
}
|
|
|
}
|