Explorar el Código

审核放到个人中心--接口调试
幂动任务问题修复

zengjiebin hace 7 años
padre
commit
bc418f761a
Se han modificado 34 ficheros con 536 adiciones y 362 borrados
  1. 1 1
      app/build.gradle
  2. BIN
      app/libs/mdsdk-201810101155.jar
  3. BIN
      app/libs/mdsdk-201810121334.jar
  4. 5 0
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  5. 108 0
      app/src/main/java/com/sheep/gamegroup/model/entity/UserTaskExistsNew.java
  6. 1 1
      app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java
  7. 1 1
      app/src/main/java/com/sheep/gamegroup/util/ConnectAddress.java
  8. 6 0
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  9. 6 6
      app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java
  10. 2 1
      app/src/main/java/com/sheep/gamegroup/view/activity/ActSearchApp.java
  11. 3 0
      app/src/main/java/com/sheep/gamegroup/view/activity/GameTaskOrderListAct.java
  12. 4 10
      app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment3.java
  13. 3 1
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoney.java
  14. 26 8
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAudit.java
  15. 5 7
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMainAudit.java
  16. 7 7
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMiDong.java
  17. 1 2
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMsgCenter.java
  18. 48 4
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java
  19. 4 5
      app/src/main/java/com/sheep/jiuyan/samllsheep/utils/G.java
  20. 5 6
      app/src/main/res/layout/credit_card_task.xml
  21. 10 10
      app/src/main/res/layout/fgt_personalcenter_item_audit.xml
  22. 24 40
      app/src/main/res/layout/pop_robduty.xml
  23. BIN
      app/src/main/res/mipmap-xhdpi/qiangrew_bg.webp
  24. BIN
      app/src/main/res/mipmap-xhdpi/qr_code_taskdetail_zhanwei.png
  25. BIN
      app/src/main/res/mipmap-xhdpi/qr_code_taskdetail_zhanwei.webp
  26. BIN
      app/src/main/res/mipmap-xhdpi/red_package_floatbtn.png
  27. BIN
      app/src/main/res/mipmap-xhdpi/red_package_floatbtn.webp
  28. BIN
      app/src/main/res/mipmap-xhdpi/xinjin_label.webp
  29. 14 0
      app/src/main/res/values/dd_styles.xml
  30. 2 2
      app/src/main/res/values/strings.xml
  31. 1 1
      build.gradle
  32. 1 1
      gradle.properties
  33. 42 42
      view/src/main/java/com/kfzs/android/view/widget/MDLCheckBox.java
  34. 206 206
      view/src/main/java/com/kfzs/android/view/widget/MDLMarkDrawerCheckBox.java

+ 1 - 1
app/build.gradle

@@ -268,7 +268,7 @@ dependencies {
     implementation files('libs/BaiduLBS_Android.jar')
 
     //幂动科技
-    implementation files('libs/mdsdk-201810101155.jar')
+    implementation files('libs/mdsdk-201810121334.jar')
     //轮播图
     implementation 'com.youth.banner:banner:1.4.10'  //最新版本
     //loading

BIN
app/libs/mdsdk-201810101155.jar


BIN
app/libs/mdsdk-201810121334.jar


+ 5 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -166,6 +166,11 @@ public interface ApiService {
      */
     @POST("app/accepted_task/auto_check/")
     Observable<BaseMessage> commitAutoTask(@Body JSONObject param);
+    /**
+     * 获取未查看的任务成功或失败的记录
+     */
+    @GET("app/accepted_task/get_user_task_exists_new")
+    Observable<BaseMessage> getUserTaskExistsNew();
 
     /**
      * 获取已经发布任务

+ 108 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/UserTaskExistsNew.java

@@ -0,0 +1,108 @@
+package com.sheep.gamegroup.model.entity;
+
+/**
+ * Created by realicing on 2018/10/12.
+ * realicing@sina.com
+ */
+public class UserTaskExistsNew {
+    private int id;
+
+    private int user_id;
+
+    private int activity_new_num;
+
+    private int success_new_num;
+
+    private int failed_new_num;
+
+    private int create_time;
+
+    private int update_time;
+
+    private int activity_task_num;
+
+    private int success_task_num;
+
+    private int failed_task_num;
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getId() {
+        return this.id;
+    }
+
+    public void setUser_id(int user_id) {
+        this.user_id = user_id;
+    }
+
+    public int getUser_id() {
+        return this.user_id;
+    }
+
+    public int getActivity_new_num() {
+        return activity_new_num;
+    }
+
+    public void setActivity_new_num(int activity_new_num) {
+        this.activity_new_num = activity_new_num;
+    }
+
+    public void setSuccess_new_num(int success_new_num) {
+        this.success_new_num = success_new_num;
+    }
+
+    public int getSuccess_new_num() {
+        return this.success_new_num;
+    }
+
+    public void setFailed_new_num(int failed_new_num) {
+        this.failed_new_num = failed_new_num;
+    }
+
+    public int getFailed_new_num() {
+        return this.failed_new_num;
+    }
+
+    public void setCreate_time(int create_time) {
+        this.create_time = create_time;
+    }
+
+    public int getCreate_time() {
+        return this.create_time;
+    }
+
+    public void setUpdate_time(int update_time) {
+        this.update_time = update_time;
+    }
+
+    public int getUpdate_time() {
+        return this.update_time;
+    }
+
+    public void setActivity_task_num(int activity_task_num) {
+        this.activity_task_num = activity_task_num;
+    }
+
+    public int getActivity_task_num() {
+        return this.activity_task_num;
+    }
+
+
+    public int getSuccess_task_num() {
+        return success_task_num;
+    }
+
+    public void setSuccess_task_num(int success_task_num) {
+        this.success_task_num = success_task_num;
+    }
+
+    public int getFailed_task_num() {
+        return failed_task_num;
+    }
+
+    public void setFailed_task_num(int failed_task_num) {
+        this.failed_task_num = failed_task_num;
+    }
+}

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -344,7 +344,7 @@ public class CommonUtil {
                 Set<Map.Entry<String, Object>> set = jsonObject.entrySet();
                 for (Map.Entry<String, Object> entry : set) {
                     System.out.println(entry.getKey() + ":" + entry.getValue());
-                    return (String) entry.getValue();
+                    return entry.getValue().toString();
                 }
             }
         } catch (Exception e) {

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/util/ConnectAddress.java

@@ -37,7 +37,7 @@ public enum ConnectAddress {
         @Override
         public String getAppUrl() {
 //            return "http://10.8.210.229:8080/";
-            return "http://10.8.210.247:8080/";
+            return "http://10.8.210.243:8080/";
         }
         @Override
         public String getName() {

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -1447,6 +1447,12 @@ public class ViewUtil {
 
     }
 
+    public static void setVisibility(View view, boolean isVisible) {
+        if (view != null) {
+            view.setVisibility(isVisible ? View.VISIBLE : View.GONE);
+        }
+    }
+
     public static final String INDENT = "\u3000";//用特殊字符显示空白的缩进字符
 
     public static void setText(TextView textView, String msg, int indent) {

+ 6 - 6
app/src/main/java/com/sheep/gamegroup/view/activity/ActMiDong.java

@@ -108,25 +108,25 @@ public class ActMiDong extends BaseActivity {
         CommonUtil.getInstance().reflex(indicator, activity);
         AdManager.getInstance(activity).setDownloadListener(new AppDownloadListener() {
             @Override
-            public void onDownloadStart(int id) {
+            public void onDownloadStart(String id) {
                 LogUtil.println("AdManager", "onDownloadStart", id);
-                ACache.get(SheepApp.getInstance()).put(String.format(Locale.CHINA, "%s%d", AdManager.class.getSimpleName(), id), "onDownloadStart");
+                ACache.get(SheepApp.getInstance()).put(String.format(Locale.CHINA, "%s%s", AdManager.class.getSimpleName(), id), "onDownloadStart");
                 EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.REFRESH_MING_DONG));
 
             }
 
             @Override
-            public void onDownloadFail(int id) {
+            public void onDownloadFail(String id) {
                 LogUtil.println("AdManager","onDownloadFail", id);
-                ACache.get(SheepApp.getInstance()).put(String.format(Locale.CHINA, "%s%d", AdManager.class.getSimpleName(), id), "onDownloadFail");
+                ACache.get(SheepApp.getInstance()).put(String.format(Locale.CHINA, "%s%s", AdManager.class.getSimpleName(), id), "onDownloadFail");
                 EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.REFRESH_MING_DONG));
 
             }
 
             @Override
-            public void onDownloadSuccess(int id) {//没有收到回调
+            public void onDownloadSuccess(String id) {//没有收到回调
                 LogUtil.println("AdManager","onDownloadSuccess", id);
-                ACache.get(SheepApp.getInstance()).put(String.format(Locale.CHINA, "%s%d", AdManager.class.getSimpleName(), id), "onDownloadSuccess");
+                ACache.get(SheepApp.getInstance()).put(String.format(Locale.CHINA, "%s%s", AdManager.class.getSimpleName(), id), "onDownloadSuccess");
                 EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.REFRESH_MING_DONG));
 
             }

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActSearchApp.java

@@ -151,7 +151,8 @@ public class ActSearchApp extends BaseActivity {
     private Runnable autoSearchRunnable = new Runnable() {
         @Override
         public void run() {
-            title_search_commit.performClick();
+            if(title_search_commit != null)
+                title_search_commit.performClick();
         }
     };
     private Comparator<SearchAppRecord> comparator = new Comparator<SearchAppRecord>() {

+ 3 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/GameTaskOrderListAct.java

@@ -129,6 +129,9 @@ public class GameTaskOrderListAct extends BaseActivity {
                 });
     }
     private void notifyDataSetChanged(){
+        if(swipe_container == null || empty_view == null){
+            return;
+        }
         CommonUtil.getInstance().updateEmptyView(empty_view, listData.isEmpty());
         hideProgress();
         swipe_container.setRefreshing(false);

+ 4 - 10
app/src/main/java/com/sheep/gamegroup/view/fragment/BaseListFragment3.java

@@ -175,14 +175,16 @@ public abstract class BaseListFragment3<T> extends BaseFragment {
     public void clear(){
         lastMessage = null;
         setNoMore(false);
-        empty_view.setVisibility(View.INVISIBLE);
+        if(empty_view != null)
+            empty_view.setVisibility(View.INVISIBLE);
         list.clear();
         page = 1;
     }
     //通过刷新来重新加载数据
     public void refreshData(){
         clear();
-        view_list.getAdapter().notifyDataSetChanged();
+        if(view_list != null)
+            view_list.getAdapter().notifyDataSetChanged();
         initData();
     }
     protected List<T> newList;
@@ -227,14 +229,6 @@ public abstract class BaseListFragment3<T> extends BaseFragment {
         CommonUtil.getInstance().updateEmptyView(empty_view, list.isEmpty());
     }
 
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
-        view_list = null;
-        viewPager = null;
-        smartRefreshLayout = null;
-    }
-
     protected boolean noMore = false;
     public boolean isNoMore() {
         return noMore;

+ 3 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAskGetMoney.java

@@ -233,8 +233,10 @@ public class FgtAskGetMoney extends BaseFragment {
         switch (view.getId()) {
             case R.id.copy_my_invitation_tv:
             case R.id.ask_act_code_copy:
-                if (TextUtils.isEmpty(my_invitation_tv.getText().toString()))
+                if(userEntity == null) {
+                    G.showToast(R.string.loading_data);
                     return;
+                }
                 QR_COPY.onEvent();
                 StringUtils.CopyText(userEntity.getInvitation_code() + "");
                 G.showToast("复制邀请码成功");

+ 26 - 8
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtAudit.java

@@ -14,6 +14,7 @@ import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
+import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.view.adapter.TaskListItemAdp;
 import com.sheep.gamegroup.view.customview.RefreshLayout;
 import com.sheep.jiuyan.samllsheep.R;
@@ -27,6 +28,8 @@ import java.util.List;
 import butterknife.BindView;
 import rx.functions.Action1;
 
+import static com.sheep.gamegroup.view.fragment.FgtMainAudit.POSITION_ACTIVITY;
+
 /**
  * 审核中心
  * Created by ljy on 2018/8/16.
@@ -44,8 +47,8 @@ public class FgtAudit extends BaseFragment {
     View title;
 
     private Activity activity;
-    private TaskListItemAdp adp;
     public List<TaskAcceptedEty> etyList = new ArrayList<>();
+    private TaskListItemAdp adp = new TaskListItemAdp(activity , etyList);
 
 
     private int page = 1;//页数
@@ -68,13 +71,27 @@ public class FgtAudit extends BaseFragment {
     public void onViewCreated() {
         activity = getActivity();
         initView();
+//        if(POSITION_ACTIVITY + 1 == type)
+//            refreshData();
+        LogUtil.println("FgtAudit", "onViewCreated", type);
+    }
+
+    @Override
+    protected void initDataOnVisibleToUser() {
+//        if(POSITION_ACTIVITY + 1 != type)
+//            refreshData();
+        LogUtil.println("FgtAudit", "initDataOnVisibleToUser", type);
+    }
+
+    @Override
+    protected void initViewOnVisibleToUser() {
+        LogUtil.println("FgtAudit", "initViewOnVisibleToUser", type);
     }
 
     private void initView() {
         title.setVisibility(View.GONE);
         empty_view.setPadding(0, 50, 0, 0);
         swipe_container.setFooterView(activity, withdrawalListview, R.layout.listview_footer);
-        adp = new TaskListItemAdp(activity , etyList);
         withdrawalListview.setAdapter(adp);
         adp.notifyDataSetChanged();
 
@@ -108,16 +125,17 @@ public class FgtAudit extends BaseFragment {
 
             }
         });
-        refreshData();
     }
     private void refreshData() {
-        etyList.clear();
-        adp.notifyDataSetChanged();
-        page = 1;
-        initData();
+        LogUtil.println("FgtAudit", "refreshData", type);
+//        etyList.clear();
+//        adp.notifyDataSetChanged();
+//        page = 1;
+//        initData();
     }
     public void initData() {
-        empty_view.setVisibility(View.INVISIBLE);
+        if(empty_view != null)
+            empty_view.setVisibility(View.INVISIBLE);
         try {
             CommonUtil.getInstance().getAudit(new Action1<BaseMessage>() {
                 @Override

+ 5 - 7
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMainAudit.java

@@ -3,9 +3,7 @@ package com.sheep.gamegroup.view.fragment;
 import android.app.Activity;
 import android.os.Bundle;
 import android.support.design.widget.TabLayout;
-import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
-import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -156,16 +154,16 @@ public class FgtMainAudit extends BaseFragment {
 
         indicator.setupWithViewPager(pager);
         CommonUtil.getInstance().reflex(indicator, activity);
-        pager.setCurrentItem(curPosition);
+//        pager.setCurrentItem(curPosition);
     }
-    public static final int POSITION_ING = 0;
+    public static final int POSITION_ACTIVITY = 0;
     public static final int POSITION_SUCCESS = 1;
-    public static final int POSITION_FAIL = 2;
+    public static final int POSITION_FAILED = 2;
     protected void initView() {
         mAdapter = new TitleFragmentListAdapter(getChildFragmentManager());
-        mAdapter.add(FgtAudit.newInstance(POSITION_ING + 1), tabNames[POSITION_ING]);
+        mAdapter.add(FgtAudit.newInstance(POSITION_ACTIVITY + 1), tabNames[POSITION_ACTIVITY]);
         mAdapter.add(FgtAudit.newInstance(POSITION_SUCCESS + 1), tabNames[POSITION_SUCCESS]);
-        mAdapter.add(FgtAudit.newInstance(POSITION_FAIL + 1), tabNames[POSITION_FAIL]);
+        mAdapter.add(FgtAudit.newInstance(POSITION_FAILED + 1), tabNames[POSITION_FAILED]);
         pager.setAdapter(mAdapter);
         new_tab();
     }

+ 7 - 7
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMiDong.java

@@ -107,12 +107,12 @@ public class FgtMiDong extends BaseFragment {
             @Override
             public void doTaskSuccess(String packageName) {
                 // packageName 为所完成任务的包名
-                G.showToast(activity, packageName + "", Toast.LENGTH_SHORT);
+                G.showToast( packageName + "", Toast.LENGTH_SHORT);
             }
 
             @Override
             public void doTaskFail(String error) {
-                G.showToast(activity, error + "", Toast.LENGTH_SHORT);
+                G.showToast( error + "", Toast.LENGTH_SHORT);
             }
         });
         initListen();
@@ -190,14 +190,14 @@ public class FgtMiDong extends BaseFragment {
                     refresh_init_false++;
 
                     if (isRefresh)
-                        G.showToast(activity, "网络异常,请稍后再试", Toast.LENGTH_SHORT);
+                        G.showToast( "网络异常,请稍后再试", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();
                 }
 
                 @Override
                 public void onAdEmpty() {
                     if (isRefresh)
-                        G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
+                        G.showToast( "暂无数据", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();
 
                 }
@@ -222,7 +222,7 @@ public class FgtMiDong extends BaseFragment {
                         adListAdapter.setSign(true);
                     } else {
                         if (isRefresh)
-                            G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
+                            G.showToast( "暂无数据", Toast.LENGTH_SHORT);
                     }
                     notifyDataSetChanged();
                 }
@@ -230,14 +230,14 @@ public class FgtMiDong extends BaseFragment {
                 @Override
                 public void onLoadAdFailure() {
                     if (isRefresh)
-                        G.showToast(activity, "网络异常,请稍后再试", Toast.LENGTH_SHORT);
+                        G.showToast( "网络异常,请稍后再试", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();
                 }
 
                 @Override
                 public void onAdEmpty() {
                     if (isRefresh)
-                        G.showToast(activity, "暂无数据", Toast.LENGTH_SHORT);
+                        G.showToast( "暂无数据", Toast.LENGTH_SHORT);
                     notifyDataSetChanged();
 
                 }

+ 1 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMsgCenter.java

@@ -13,7 +13,6 @@ import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.ActMsg;
 import com.sheep.gamegroup.view.adapter.MessageLeftAdapter;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -104,7 +103,7 @@ public class FgtMsgCenter extends BaseListFragment2<SystemNotification> implemen
                 Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_SUCCESS);
                 break;
             case 6:
-                Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_FAIL);
+                Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_FAILED);
                 break;
             case 1:
             case 2:

+ 48 - 4
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPersonalCenter.java

@@ -19,6 +19,7 @@ import com.sheep.gamegroup.model.entity.AgentEntity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.MessageUnReadEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
+import com.sheep.gamegroup.model.entity.UserTaskExistsNew;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
@@ -84,6 +85,18 @@ public class FgtPersonalCenter extends BaseFragment {
     View txt_baseactivity_title;
     @BindView(R.id.img_baseactivity_title)
     View img_baseactivity_title;
+    @BindView(R.id.audit_activity)
+    TextView audit_activity;
+    @BindView(R.id.audit_success)
+    TextView audit_success;
+    @BindView(R.id.audit_failed)
+    TextView audit_failed;
+    @BindView(R.id.audit_activity_oval)
+    View audit_activity_oval;
+    @BindView(R.id.audit_success_oval)
+    View audit_success_oval;
+    @BindView(R.id.audit_failed_oval)
+    View audit_failed_oval;
 
     public UserEntity userEntity;
     private String faqUrl;
@@ -122,6 +135,12 @@ public class FgtPersonalCenter extends BaseFragment {
             img_baseactivity_title.setVisibility(View.INVISIBLE);
             txt_baseactivity_title.setVisibility(View.INVISIBLE);
         }
+        ViewUtil.setText(audit_activity, getString(R.string.audit_activity, ViewUtil.INDENT));
+        ViewUtil.setVisibility(audit_activity_oval, false);
+        ViewUtil.setText(audit_success, getString(R.string.audit_success, ViewUtil.INDENT));
+        ViewUtil.setVisibility(audit_success_oval, false);
+        ViewUtil.setText(audit_failed, getString(R.string.audit_failed, ViewUtil.INDENT));
+        ViewUtil.setVisibility(audit_failed_oval, false);
     }
 
     private void initData() {
@@ -151,6 +170,29 @@ public class FgtPersonalCenter extends BaseFragment {
         version_item_tv.setText("小绵羊V");
         version_item_tv.append(appVersionName);
         getUnReadMessageCounts();
+        //获取未查看的任务成功或失败的记录
+        SheepApp.getInstance().getNetComponent().getApiService().getUserTaskExistsNew()
+                        .subscribeOn(Schedulers.io())
+                        .observeOn(AndroidSchedulers.mainThread())
+                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                            @Override
+                            public void onNext(BaseMessage baseMessage) {
+                                UserTaskExistsNew userTaskExistsNew = baseMessage.getData(UserTaskExistsNew.class);
+                                if(userTaskExistsNew != null){
+                                    ViewUtil.setText(audit_activity, getString(R.string.audit_activity, String.valueOf(userTaskExistsNew.getActivity_task_num())));
+                                    ViewUtil.setVisibility(audit_activity_oval, userTaskExistsNew.getActivity_new_num() > 0);
+                                    ViewUtil.setText(audit_success, getString(R.string.audit_success, String.valueOf(userTaskExistsNew.getSuccess_task_num())));
+                                    ViewUtil.setVisibility(audit_success_oval, userTaskExistsNew.getSuccess_new_num() > 0);
+                                    ViewUtil.setText(audit_failed, getString(R.string.audit_failed, String.valueOf(userTaskExistsNew.getFailed_task_num())));
+                                    ViewUtil.setVisibility(audit_failed_oval, userTaskExistsNew.getFailed_new_num() > 0);
+
+                                }
+                            }
+
+                            @Override
+                            public void onError(BaseMessage baseMessage) {
+                            }
+                        });
     }
 
     private void initUserInfo() {
@@ -312,17 +354,19 @@ public class FgtPersonalCenter extends BaseFragment {
             R.id.account_task_layout, R.id.proxy_service_layout, R.id.feedbook_layout,
             R.id.recommend_friend_layout, R.id.faq_layout, R.id.reservation_layout,
             R.id.version_layout, R.id.order_layout, R.id.proxy_game_account_layout,
-            R.id.audit_ing_cl, R.id.audit_success_cl, R.id.audit_fail_cl,
+            R.id.audit_activity_cl, R.id.audit_success_cl, R.id.audit_failed_cl,
             R.id.iv_redpackage, R.id.ibtn_baseactivity_message
     })
     public void onViewClicked(View view) {
         switch (view.getId()) {
-            case R.id.audit_ing_cl://审核中心
-
+            case R.id.audit_activity_cl://审核中心
+                Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_ACTIVITY);
                 break;
             case R.id.audit_success_cl://审核中心--审核成功
+                Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_SUCCESS);
                 break;
-            case R.id.audit_fail_cl://审核中心--审核失败
+            case R.id.audit_failed_cl://审核中心--审核失败
+                Jump2View.getInstance().goAuditTastList(activity, FgtMainAudit.POSITION_FAILED);
                 break;
             case R.id.ibtn_baseactivity_message://消息
                 startActivity(new Intent(activity, ActMsg.class));

+ 4 - 5
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/G.java

@@ -59,13 +59,12 @@ public class G {
     /**
      * 全局的Toast
      *
-     * @param context
      * @param msg      显示的msg,如果为null或者空表示取消显示
      * @param duration 显示的时长
      */
-    public static void showToast(Context context, String msg, int duration) {
+    public static void showToast(String msg, int duration) {
         if (mToast == null) {
-            mToast = Toast.makeText(context, msg, duration);
+            mToast = Toast.makeText(SheepApp.getInstance(), msg, duration);
             mToast.setGravity(Gravity.CENTER, 0, getRealPix(200));//居中靠下
             if (mToast.getView() instanceof ViewGroup
                     && ((ViewGroup) mToast.getView()).getChildAt(0) instanceof TextView) {
@@ -80,10 +79,10 @@ public class G {
     }
 
     public static void showToast(String msg) {
-        showToast(SheepApp.mSheepApp, msg, Toast.LENGTH_SHORT);
+        showToast(msg, Toast.LENGTH_SHORT);
     }
     public static void showToast(int resId) {
-        showToast(SheepApp.mSheepApp, SheepApp.mSheepApp.getString(resId), Toast.LENGTH_SHORT);
+        showToast(SheepApp.getInstance().getString(resId), Toast.LENGTH_SHORT);
     }
     public static void showToast(BaseMessage baseMessage) {
         if(TextUtils.isEmpty(baseMessage.getMsg())){

+ 5 - 6
app/src/main/res/layout/credit_card_task.xml

@@ -77,12 +77,11 @@
             android:textColor="#ff2d4b"
             android:textSize="16sp" />
 
-        <ImageView
-            android:layout_width="30dp"
-            android:layout_height="25dp"
+        <TextView
+            style="@style/style_xian_jin"
+            android:layout_marginEnd="5dp"
             android:layout_centerVertical="true"
-            android:layout_marginRight="5dp"
-            android:layout_toLeftOf="@id/credit_card_task_tv"
-            android:src="@mipmap/xinjin_label"/>
+            android:layout_toStartOf="@id/credit_card_task_tv"
+            android:text="现金" />
     </RelativeLayout>
 </RelativeLayout>

+ 10 - 10
app/src/main/res/layout/fgt_personalcenter_item_audit.xml

@@ -8,7 +8,7 @@
 
 
     <android.support.constraint.ConstraintLayout
-        android:id="@+id/audit_ing_cl"
+        android:id="@+id/audit_activity_cl"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
@@ -16,24 +16,24 @@
         android:paddingBottom="12dp">
 
         <TextView
-            android:id="@+id/audit_ing"
+            android:id="@+id/audit_activity"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="center"
             android:lineSpacingExtra="7dp"
-            android:text="@string/audit_ing"
+            android:text="@string/audit_activity"
             android:textColor="#333333"
             android:textSize="15sp"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent" />
 
         <View
-            android:id="@+id/audit_ing_oval"
+            android:id="@+id/audit_activity_oval"
             android:layout_width="8dp"
             android:layout_height="8dp"
             android:background="@drawable/shape_oval_red"
             android:visibility="gone"
-            app:layout_constraintStart_toEndOf="@+id/audit_ing" />
+            app:layout_constraintStart_toEndOf="@+id/audit_activity" />
     </android.support.constraint.ConstraintLayout>
 
     <View
@@ -76,7 +76,7 @@
         android:layout_gravity="center_vertical" />
 
     <android.support.constraint.ConstraintLayout
-        android:id="@+id/audit_fail_cl"
+        android:id="@+id/audit_failed_cl"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_weight="1"
@@ -84,23 +84,23 @@
         android:paddingBottom="12dp">
 
         <TextView
-            android:id="@+id/audit_fail"
+            android:id="@+id/audit_failed"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="center"
             android:lineSpacingExtra="7dp"
-            android:text="@string/audit_fail"
+            android:text="@string/audit_failed"
             android:textColor="#333333"
             android:textSize="15sp"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent" />
 
         <View
-            android:id="@+id/audit_fail_oval"
+            android:id="@+id/audit_failed_oval"
             android:layout_width="8dp"
             android:layout_height="8dp"
             android:background="@drawable/shape_oval_red"
             android:visibility="gone"
-            app:layout_constraintStart_toEndOf="@+id/audit_fail" />
+            app:layout_constraintStart_toEndOf="@+id/audit_failed" />
     </android.support.constraint.ConstraintLayout>
 </LinearLayout>

+ 24 - 40
app/src/main/res/layout/pop_robduty.xml

@@ -6,16 +6,16 @@
     <RelativeLayout
         android:id="@+id/lay_action"
         android:layout_width="344dp"
-        android:layout_height="457dp"
-        android:background="@mipmap/qiangrew_bg"
-        android:layout_centerInParent="true">
+        android:layout_height="418dp"
+        android:layout_centerHorizontal="true"
+        android:background="@mipmap/qiangrew_bg">
 
         <ImageView
             android:id="@+id/iv_duty"
             android:layout_width="@dimen/content_padding_65"
             android:layout_height="@dimen/content_padding_65"
             android:layout_centerHorizontal="true"
-            android:layout_marginTop="120dp"
+            android:layout_marginTop="90dp"
             android:src="@drawable/loading_01" />
 
         <TextView
@@ -26,55 +26,38 @@
             android:layout_centerHorizontal="true"
             android:layout_marginTop="10dp"
             android:text="XXX任务已上线"
-            android:textColor="#ffffffff"
+            android:textColor="#272727"
             android:textSize="16sp" />
 
         <LinearLayout
             android:id="@+id/llay_money"
             android:layout_width="match_parent"
             android:layout_height="45dp"
-            android:layout_below="@id/tv_duty_title">
-
-            <RelativeLayout
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1">
-
-                <TextView
-                    android:id="@+id/tv_robduty_money"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentEnd="true"
-                    android:layout_centerVertical="true"
-                    android:layout_marginEnd="5dp"
-                    android:layout_marginTop="20dp"
-                    android:text="+1元"
-                    android:textColor="#ffff2d4b"
-                    android:textSize="18sp"
-                    android:textStyle="bold" />
-            </RelativeLayout>
+            android:layout_below="@id/tv_duty_title"
+            android:layout_centerHorizontal="true"
+            android:gravity="center"
+            android:orientation="horizontal">
 
-            <RelativeLayout
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1">
+            <TextView
+                android:id="@+id/tv_robduty_money"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="+1元"
+                android:textColor="#ffff2d4b"
+                android:textSize="18sp"
+                android:textStyle="bold" />
 
-                <ImageView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_alignParentStart="true"
-                    android:layout_centerVertical="true"
-                    android:layout_marginStart="5dp"
-                    android:src="@mipmap/xinjin_label" />
-            </RelativeLayout>
+            <TextView
+                style="@style/style_xian_jin"
+                android:layout_marginStart="5dp"
+                android:text="现金" />
         </LinearLayout>
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_below="@id/llay_money"
-            android:layout_marginBottom="20dp"
-            android:layout_marginTop="30dp">
+            android:layout_alignParentBottom="true"
+            android:layout_marginBottom="60dp">
 
             <RelativeLayout
                 android:layout_width="0dp"
@@ -114,6 +97,7 @@
         android:layout_height="45dp"
         android:layout_below="@id/lay_action"
         android:layout_centerHorizontal="true"
+        android:layout_marginTop="20dp"
         android:src="@mipmap/close" />
 
 </RelativeLayout>

BIN
app/src/main/res/mipmap-xhdpi/qiangrew_bg.webp


BIN
app/src/main/res/mipmap-xhdpi/qr_code_taskdetail_zhanwei.png


BIN
app/src/main/res/mipmap-xhdpi/qr_code_taskdetail_zhanwei.webp


BIN
app/src/main/res/mipmap-xhdpi/red_package_floatbtn.png


BIN
app/src/main/res/mipmap-xhdpi/red_package_floatbtn.webp


BIN
app/src/main/res/mipmap-xhdpi/xinjin_label.webp


+ 14 - 0
app/src/main/res/values/dd_styles.xml

@@ -445,4 +445,18 @@
         <item name="android:textColor">@color/white</item>
         <item name="android:background">@drawable/shape_blue_solid_rectangle_15</item>
     </style>
+
+    <!--现金、福利 textView样式-->
+    <style name="style_xian_jin">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/red_FD2D54</item>
+        <item name="android:paddingTop">1dp</item>
+        <item name="android:paddingBottom">1dp</item>
+        <item name="android:paddingStart">5dp</item>
+        <item name="android:paddingEnd">5dp</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textSize">9sp</item>
+        <item name="android:background">@drawable/shape_red_stroke_rectangle_no_lb</item>
+    </style>
 </resources>

+ 2 - 2
app/src/main/res/values/strings.xml

@@ -77,9 +77,9 @@
     <string name="audit_total_money">%s元\n累计现金</string>
     <string name="audit_total_welfare">%s元\n累计福利</string>
     <string name="my_invitation_str">我的邀请码:%s</string>
-    <string name="audit_ing">审核中\n%s</string>
+    <string name="audit_activity">审核中\n%s</string>
     <string name="audit_success">任务成功\n%s</string>
-    <string name="audit_fail">任务失败\n%s</string>
+    <string name="audit_failed">任务失败\n%s</string>
 
     <string name="homepage_award">你还有%s元的奖励未领取</string>
     <string name="homepage_cash">现金任务:%s元</string>

+ 1 - 1
build.gradle

@@ -9,7 +9,7 @@ buildscript {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0'
+        classpath 'com.android.tools.build:gradle:3.2.1'
         classpath 'com.jakewharton:butterknife-gradle-plugin:+'
         classpath 'com.neenbedankt.gradle.plugins:android-apt:+'
         classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'

+ 1 - 1
gradle.properties

@@ -20,7 +20,7 @@
 VERSION_NAME=3.2.7
 VERSION_CODE=3002007
 ANDROID_COMPILE_SDK_VERSION=28
-ANDROID_BUILD_TOOLS_VERSION=28.0.2
+ANDROID_BUILD_TOOLS_VERSION=28.0.3
 ANDROID_MIN_SDK_VERSION=18
 ANDORID_TARGET_SDK_VERSION=27
 

+ 42 - 42
view/src/main/java/com/kfzs/android/view/widget/MDLCheckBox.java

@@ -1,42 +1,42 @@
-package com.kfzs.android.view.widget;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-/**
- * <pre>
- *     sinlov
- *
- *     /\__/\
- *    /`    '\
- *  ≈≈≈ 0  0 ≈≈≈ Hello world!
- *    \  --  /
- *   /        \
- *  /          \
- * |            |
- *  \  ||  ||  /
- *   \_oo__oo_/≡≡≡≡≡≡≡≡o
- *
- * </pre>
- * Created by sinlov on 17/3/24.
- */
-public class MDLCheckBox extends MDLCompoundButton {
-
-    public MDLCheckBox(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    public MDLCheckBox(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public MDLCheckBox(Context context) {
-        super(context);
-    }
-
-    @Override
-    protected MDLMarkDrawer makeMDLMarkDrawer(Context context, int colorOn, int colorOff) {
-        return new MDLMarkDrawerCheckBox(context, colorOn, colorOff);
-    }
-
-}
+//package com.kfzs.android.view.widget;
+//
+//import android.content.Context;
+//import android.util.AttributeSet;
+//
+///**
+// * <pre>
+// *     sinlov
+// *
+// *     /\__/\
+// *    /`    '\
+// *  ≈≈≈ 0  0 ≈≈≈ Hello world!
+// *    \  --  /
+// *   /        \
+// *  /          \
+// * |            |
+// *  \  ||  ||  /
+// *   \_oo__oo_/≡≡≡≡≡≡≡≡o
+// *
+// * </pre>
+// * Created by sinlov on 17/3/24.
+// */
+//public class MDLCheckBox extends MDLCompoundButton {
+//
+//    public MDLCheckBox(Context context, AttributeSet attrs, int defStyle) {
+//        super(context, attrs, defStyle);
+//    }
+//
+//    public MDLCheckBox(Context context, AttributeSet attrs) {
+//        super(context, attrs);
+//    }
+//
+//    public MDLCheckBox(Context context) {
+//        super(context);
+//    }
+//
+//    @Override
+//    protected MDLMarkDrawer makeMDLMarkDrawer(Context context, int colorOn, int colorOff) {
+//        return new MDLMarkDrawerCheckBox(context, colorOn, colorOff);
+//    }
+//
+//}

+ 206 - 206
view/src/main/java/com/kfzs/android/view/widget/MDLMarkDrawerCheckBox.java

@@ -1,206 +1,206 @@
-package com.kfzs.android.view.widget;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Paint.Style;
-import android.graphics.Path;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.RectF;
-import android.support.v4.view.animation.FastOutSlowInInterpolator;
-import android.view.View;
-import android.view.animation.Interpolator;
-
-/**
- * <pre>
- *     sinlov
- *
- *     /\__/\
- *    /`    '\
- *  ≈≈≈ 0  0 ≈≈≈ Hello world!
- *    \  --  /
- *   /        \
- *  /          \
- * |            |
- *  \  ||  ||  /
- *   \_oo__oo_/≡≡≡≡≡≡≡≡o
- *
- * </pre>
- * Created by sinlov on 17/3/24.
- */
-public class MDLMarkDrawerCheckBox extends MDLMarkDrawer {
-
-
-    private PorterDuffXfermode xfermode = new PorterDuffXfermode(PorterDuff.Mode.DST_OUT);// XOR);
-    private Interpolator interpolator = new FastOutSlowInInterpolator();
-    private RectF mCheckRectF;
-    private RectF mCheckClearRectF;
-    private Path mCheckHookPath;
-    /**
-     * 对号的3个关键点坐标
-     **/
-    private float[] HOOK_X = new float[]{0.31481f, 0.43915f, 0.68783f};
-    private float[] HOOK_Y = new float[]{0.475f, 0.61111f, 0.35450f};
-
-    // appcompat颜色secondary_text_default_material_light=8a000000,dark=b3ffffff
-    /**
-     * CheckBox的边框的(占实际size的百分比)stroke
-     **/
-    private final float PERCENT_BORDER_STROKE = 0.064f;
-    /**
-     * 对钩的边框的(占实际size的百分比)stroke
-     **/
-    private final float PERCENT_HOOK_STROKE = 0.068f;
-    /**
-     * CheckBox的边框的圆角(占实际size的百分比)
-     **/
-    private final float PERCENT_BORDER_RADIUS = 0.05f;
-    /**
-     * CheckBox绘图部分的padding(占实际size的百分比)
-     **/
-    private final float PERCENT_CHECK_PADDING = 0.22f;
-    /**
-     * 切换on/off时候缩小动画的百分比
-     **/
-    private final float PERCENT_SCALE = 0.84f;
-//  private int mCheckColorOn = COLOR_CHECK_ON;
-//  private int mCheckColorOff = COLOR_CHECK_OFF;
-
-    public MDLMarkDrawerCheckBox(Context context, int colorOn, int colorOff) {
-        super(context, colorOn, colorOff);
-        mPaint.setStrokeJoin(Paint.Join.MITER);
-        mCheckHookPath = new Path();
-        mCheckRectF = new RectF();
-        mCheckClearRectF = new RectF();
-//      mCheckColorOn = colorOn;
-//      mCheckColorOff = colorOff;
-//      final TypedArray a = context.obtainStyledAttributes(attrs, new int[] { android.R.attr.tint });
-//      mCheckColorOn = a.getColor(0, COLOR_CHECK_ON);
-//      a.recycle();
-    }
-
-    @Override
-    public void setBounds(RectF rectF) {
-        super.setBounds(rectF);
-        mPaint.setStrokeWidth(rectF.width() * PERCENT_HOOK_STROKE);
-
-    }
-
-
-    @Override
-    protected void drawMark(Canvas canvas, final float fraction1, float left, float top, float size, View view) {
-        // 测试mBounds边界位置
-        // mPaint.setStyle(Style.FILL);
-        // mPaint.setColor(0x440000ff);
-        // canvas.drawRect(mBounds, mPaint);
-        final float rectSize = size * (1f - PERCENT_CHECK_PADDING * 2f);
-        mCheckRectF.left = (size - rectSize) / 2f + left;
-        mCheckRectF.right = mCheckRectF.left + rectSize;
-        mCheckRectF.top = (size - rectSize) / 2f + top;
-        mCheckRectF.bottom = mCheckRectF.top + rectSize;
-
-//      final int viewHeight = view.getHeight();
-        updateCheckPaintColorFilter(view);
-        final int sc = canvas
-                .saveLayer(mCheckRectF, null, Canvas.MATRIX_SAVE_FLAG | Canvas.CLIP_SAVE_FLAG
-                        | Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.FULL_COLOR_LAYER_SAVE_FLAG
-                        | Canvas.CLIP_TO_LAYER_SAVE_FLAG);
-        final float fraction = interpolator.getInterpolation(fraction1);
-        if (fraction == 0f) {
-            mPaint.setColor(mColorOff);
-            mPaint.setStyle(Style.FILL);
-            final float roundRadius = size * PERCENT_BORDER_RADIUS;
-            canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
-            mPaint.setXfermode(xfermode);
-            mCheckClearRectF.set(mCheckRectF);
-            final float borderSize = size * PERCENT_BORDER_STROKE;
-            mCheckClearRectF.inset(borderSize, borderSize);
-            // final float insetRadiusTemp = mCheckSize * PERCENT_BORDER_STROKE;
-            // canvas.drawRoundRect(mCheckTempRectF, 0, 0, mPaint);
-            mPaint.setColorFilter(null);// 如果当前是disabled,ColorFilter是半透明的,无法完全clear掉
-            mPaint.setColor(Color.WHITE);// 如果这个color是带alpha的话Xfermode不会完全clear掉下层内容
-            canvas.drawRect(mCheckClearRectF, mPaint);
-            mPaint.setXfermode(null);
-        } else if (fraction == 1f) {
-            mPaint.setColor(mColorOn);
-            mPaint.setStyle(Style.FILL);
-            final float roundRadius = size * PERCENT_BORDER_RADIUS;
-            canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
-            mCheckHookPath.reset();
-            mCheckHookPath.moveTo(HOOK_X[0] * size, HOOK_Y[0] * size);
-            mCheckHookPath.lineTo(HOOK_X[1] * size, HOOK_Y[1] * size);
-            mCheckHookPath.lineTo(HOOK_X[2] * size, HOOK_Y[2] * size);
-            mCheckHookPath.offset(left, top);// 修正一下位置,文字可能高于checkbox
-
-            mPaint.setXfermode(xfermode);
-            mPaint.setStyle(Style.STROKE);
-            mPaint.setColorFilter(null);
-            mPaint.setColor(Color.WHITE);
-            canvas.drawPath(mCheckHookPath, mPaint);
-            mPaint.setXfermode(null);
-        } else {
-            final float cx = mBounds.centerX();
-            final float cy = mBounds.centerY();
-            final float HALF_FRACTION = 0.5f;
-            mPaint.setColor(convertColorFraction(fraction, mColorOff, mColorOn));
-            if (fraction <= HALF_FRACTION) {
-                final float offFraction = fraction / HALF_FRACTION;
-                // 缩小画布
-                final float scale = 1f - (1f - PERCENT_SCALE) * offFraction;
-//              canvas.scale(scale, scale, mSize / 2f, viewHeight / 2f);
-                canvas.scale(scale, scale, cx, cy);
-                // 画背景rect
-                mPaint.setStyle(Style.FILL);
-                final float roundRadius = size * PERCENT_BORDER_RADIUS;
-                canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
-                // 画中间的空白(其实是用PorterDuff.Mode.DST_OUT从背景rect中抠掉)
-                mCheckClearRectF.set(mCheckRectF);
-                final float borderSize = size * PERCENT_BORDER_STROKE;
-                mCheckClearRectF.inset(borderSize, borderSize);// 先减掉边框
-                final float insetAnimationSize = (mCheckRectF.width() / 2f - borderSize) * offFraction;// 减掉动画的部分
-                mCheckClearRectF.inset(insetAnimationSize, insetAnimationSize);
-                mPaint.setXfermode(xfermode);
-                mPaint.setColorFilter(null);
-                mPaint.setColor(Color.WHITE);
-                final float radiusTemp = mCheckClearRectF.width() / 2f * offFraction;
-                canvas.drawRoundRect(mCheckClearRectF, radiusTemp, radiusTemp, mPaint);
-                mPaint.setXfermode(null);
-            } else {
-                // 缩小画布
-                final float hookFraction = (fraction - HALF_FRACTION) / (1f - HALF_FRACTION);
-                final float scale = PERCENT_SCALE + (1f - PERCENT_SCALE) * hookFraction;
-                //canvas.scale(scale, scale, mSize / 2f, viewHeight / 2f);
-                canvas.scale(scale, scale, cx, cy);
-                // 画背景rect
-                mPaint.setStyle(Style.FILL);
-                final float roundRadius = size * PERCENT_BORDER_RADIUS;
-                canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
-                // 画对号hook(其实是用PorterDuff.Mode.DST_OUT从背景rect中抠掉)
-                mCheckHookPath.reset();
-                float x0 = HOOK_X[1] + (HOOK_X[0] - HOOK_X[1]) * hookFraction;
-                float y0 = HOOK_Y[1] + (HOOK_Y[0] - HOOK_Y[1]) * hookFraction;
-                float x2 = HOOK_X[1] + (HOOK_X[2] - HOOK_X[1]) * hookFraction;
-                float y2 = HOOK_Y[1] + (HOOK_Y[2] - HOOK_Y[1]) * hookFraction;
-                mCheckHookPath.moveTo(x0 * size, y0 * size);
-                mCheckHookPath.lineTo(HOOK_X[1] * size, HOOK_Y[1] * size);
-                mCheckHookPath.lineTo(x2 * size, y2 * size);
-                mCheckHookPath.offset(left, top);// 修正一下位置,文字可能高于checkbox
-                mPaint.setXfermode(xfermode);
-                mPaint.setStyle(Style.STROKE);
-                mPaint.setColorFilter(null);
-                mPaint.setColor(Color.WHITE);
-                canvas.drawPath(mCheckHookPath, mPaint);
-                mPaint.setXfermode(null);
-            }
-
-        }
-        if (!view.isInEditMode()) {
-            canvas.restoreToCount(sc);// eclipse的预览界面这里会报错
-        }
-
-    }
-
-
-}
+//package com.kfzs.android.view.widget;
+//
+//import android.content.Context;
+//import android.graphics.Canvas;
+//import android.graphics.Color;
+//import android.graphics.Paint;
+//import android.graphics.Paint.Style;
+//import android.graphics.Path;
+//import android.graphics.PorterDuff;
+//import android.graphics.PorterDuffXfermode;
+//import android.graphics.RectF;
+//import android.support.v4.view.animation.FastOutSlowInInterpolator;
+//import android.view.View;
+//import android.view.animation.Interpolator;
+//
+///**
+// * <pre>
+// *     sinlov
+// *
+// *     /\__/\
+// *    /`    '\
+// *  ≈≈≈ 0  0 ≈≈≈ Hello world!
+// *    \  --  /
+// *   /        \
+// *  /          \
+// * |            |
+// *  \  ||  ||  /
+// *   \_oo__oo_/≡≡≡≡≡≡≡≡o
+// *
+// * </pre>
+// * Created by sinlov on 17/3/24.
+// */
+//public class MDLMarkDrawerCheckBox extends MDLMarkDrawer {
+//
+//
+//    private PorterDuffXfermode xfermode = new PorterDuffXfermode(PorterDuff.Mode.DST_OUT);// XOR);
+//    private Interpolator interpolator = new FastOutSlowInInterpolator();
+//    private RectF mCheckRectF;
+//    private RectF mCheckClearRectF;
+//    private Path mCheckHookPath;
+//    /**
+//     * 对号的3个关键点坐标
+//     **/
+//    private float[] HOOK_X = new float[]{0.31481f, 0.43915f, 0.68783f};
+//    private float[] HOOK_Y = new float[]{0.475f, 0.61111f, 0.35450f};
+//
+//    // appcompat颜色secondary_text_default_material_light=8a000000,dark=b3ffffff
+//    /**
+//     * CheckBox的边框的(占实际size的百分比)stroke
+//     **/
+//    private final float PERCENT_BORDER_STROKE = 0.064f;
+//    /**
+//     * 对钩的边框的(占实际size的百分比)stroke
+//     **/
+//    private final float PERCENT_HOOK_STROKE = 0.068f;
+//    /**
+//     * CheckBox的边框的圆角(占实际size的百分比)
+//     **/
+//    private final float PERCENT_BORDER_RADIUS = 0.05f;
+//    /**
+//     * CheckBox绘图部分的padding(占实际size的百分比)
+//     **/
+//    private final float PERCENT_CHECK_PADDING = 0.22f;
+//    /**
+//     * 切换on/off时候缩小动画的百分比
+//     **/
+//    private final float PERCENT_SCALE = 0.84f;
+////  private int mCheckColorOn = COLOR_CHECK_ON;
+////  private int mCheckColorOff = COLOR_CHECK_OFF;
+//
+//    public MDLMarkDrawerCheckBox(Context context, int colorOn, int colorOff) {
+//        super(context, colorOn, colorOff);
+//        mPaint.setStrokeJoin(Paint.Join.MITER);
+//        mCheckHookPath = new Path();
+//        mCheckRectF = new RectF();
+//        mCheckClearRectF = new RectF();
+////      mCheckColorOn = colorOn;
+////      mCheckColorOff = colorOff;
+////      final TypedArray a = context.obtainStyledAttributes(attrs, new int[] { android.R.attr.tint });
+////      mCheckColorOn = a.getColor(0, COLOR_CHECK_ON);
+////      a.recycle();
+//    }
+//
+//    @Override
+//    public void setBounds(RectF rectF) {
+//        super.setBounds(rectF);
+//        mPaint.setStrokeWidth(rectF.width() * PERCENT_HOOK_STROKE);
+//
+//    }
+//
+//
+//    @Override
+//    protected void drawMark(Canvas canvas, final float fraction1, float left, float top, float size, View view) {
+//        // 测试mBounds边界位置
+//        // mPaint.setStyle(Style.FILL);
+//        // mPaint.setColor(0x440000ff);
+//        // canvas.drawRect(mBounds, mPaint);
+//        final float rectSize = size * (1f - PERCENT_CHECK_PADDING * 2f);
+//        mCheckRectF.left = (size - rectSize) / 2f + left;
+//        mCheckRectF.right = mCheckRectF.left + rectSize;
+//        mCheckRectF.top = (size - rectSize) / 2f + top;
+//        mCheckRectF.bottom = mCheckRectF.top + rectSize;
+//
+////      final int viewHeight = view.getHeight();
+//        updateCheckPaintColorFilter(view);
+//        final int sc = canvas
+//                .saveLayer(mCheckRectF, null, Canvas.MATRIX_SAVE_FLAG | Canvas.CLIP_SAVE_FLAG
+//                        | Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.FULL_COLOR_LAYER_SAVE_FLAG
+//                        | Canvas.CLIP_TO_LAYER_SAVE_FLAG);
+//        final float fraction = interpolator.getInterpolation(fraction1);
+//        if (fraction == 0f) {
+//            mPaint.setColor(mColorOff);
+//            mPaint.setStyle(Style.FILL);
+//            final float roundRadius = size * PERCENT_BORDER_RADIUS;
+//            canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
+//            mPaint.setXfermode(xfermode);
+//            mCheckClearRectF.set(mCheckRectF);
+//            final float borderSize = size * PERCENT_BORDER_STROKE;
+//            mCheckClearRectF.inset(borderSize, borderSize);
+//            // final float insetRadiusTemp = mCheckSize * PERCENT_BORDER_STROKE;
+//            // canvas.drawRoundRect(mCheckTempRectF, 0, 0, mPaint);
+//            mPaint.setColorFilter(null);// 如果当前是disabled,ColorFilter是半透明的,无法完全clear掉
+//            mPaint.setColor(Color.WHITE);// 如果这个color是带alpha的话Xfermode不会完全clear掉下层内容
+//            canvas.drawRect(mCheckClearRectF, mPaint);
+//            mPaint.setXfermode(null);
+//        } else if (fraction == 1f) {
+//            mPaint.setColor(mColorOn);
+//            mPaint.setStyle(Style.FILL);
+//            final float roundRadius = size * PERCENT_BORDER_RADIUS;
+//            canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
+//            mCheckHookPath.reset();
+//            mCheckHookPath.moveTo(HOOK_X[0] * size, HOOK_Y[0] * size);
+//            mCheckHookPath.lineTo(HOOK_X[1] * size, HOOK_Y[1] * size);
+//            mCheckHookPath.lineTo(HOOK_X[2] * size, HOOK_Y[2] * size);
+//            mCheckHookPath.offset(left, top);// 修正一下位置,文字可能高于checkbox
+//
+//            mPaint.setXfermode(xfermode);
+//            mPaint.setStyle(Style.STROKE);
+//            mPaint.setColorFilter(null);
+//            mPaint.setColor(Color.WHITE);
+//            canvas.drawPath(mCheckHookPath, mPaint);
+//            mPaint.setXfermode(null);
+//        } else {
+//            final float cx = mBounds.centerX();
+//            final float cy = mBounds.centerY();
+//            final float HALF_FRACTION = 0.5f;
+//            mPaint.setColor(convertColorFraction(fraction, mColorOff, mColorOn));
+//            if (fraction <= HALF_FRACTION) {
+//                final float offFraction = fraction / HALF_FRACTION;
+//                // 缩小画布
+//                final float scale = 1f - (1f - PERCENT_SCALE) * offFraction;
+////              canvas.scale(scale, scale, mSize / 2f, viewHeight / 2f);
+//                canvas.scale(scale, scale, cx, cy);
+//                // 画背景rect
+//                mPaint.setStyle(Style.FILL);
+//                final float roundRadius = size * PERCENT_BORDER_RADIUS;
+//                canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
+//                // 画中间的空白(其实是用PorterDuff.Mode.DST_OUT从背景rect中抠掉)
+//                mCheckClearRectF.set(mCheckRectF);
+//                final float borderSize = size * PERCENT_BORDER_STROKE;
+//                mCheckClearRectF.inset(borderSize, borderSize);// 先减掉边框
+//                final float insetAnimationSize = (mCheckRectF.width() / 2f - borderSize) * offFraction;// 减掉动画的部分
+//                mCheckClearRectF.inset(insetAnimationSize, insetAnimationSize);
+//                mPaint.setXfermode(xfermode);
+//                mPaint.setColorFilter(null);
+//                mPaint.setColor(Color.WHITE);
+//                final float radiusTemp = mCheckClearRectF.width() / 2f * offFraction;
+//                canvas.drawRoundRect(mCheckClearRectF, radiusTemp, radiusTemp, mPaint);
+//                mPaint.setXfermode(null);
+//            } else {
+//                // 缩小画布
+//                final float hookFraction = (fraction - HALF_FRACTION) / (1f - HALF_FRACTION);
+//                final float scale = PERCENT_SCALE + (1f - PERCENT_SCALE) * hookFraction;
+//                //canvas.scale(scale, scale, mSize / 2f, viewHeight / 2f);
+//                canvas.scale(scale, scale, cx, cy);
+//                // 画背景rect
+//                mPaint.setStyle(Style.FILL);
+//                final float roundRadius = size * PERCENT_BORDER_RADIUS;
+//                canvas.drawRoundRect(mCheckRectF, roundRadius, roundRadius, mPaint);
+//                // 画对号hook(其实是用PorterDuff.Mode.DST_OUT从背景rect中抠掉)
+//                mCheckHookPath.reset();
+//                float x0 = HOOK_X[1] + (HOOK_X[0] - HOOK_X[1]) * hookFraction;
+//                float y0 = HOOK_Y[1] + (HOOK_Y[0] - HOOK_Y[1]) * hookFraction;
+//                float x2 = HOOK_X[1] + (HOOK_X[2] - HOOK_X[1]) * hookFraction;
+//                float y2 = HOOK_Y[1] + (HOOK_Y[2] - HOOK_Y[1]) * hookFraction;
+//                mCheckHookPath.moveTo(x0 * size, y0 * size);
+//                mCheckHookPath.lineTo(HOOK_X[1] * size, HOOK_Y[1] * size);
+//                mCheckHookPath.lineTo(x2 * size, y2 * size);
+//                mCheckHookPath.offset(left, top);// 修正一下位置,文字可能高于checkbox
+//                mPaint.setXfermode(xfermode);
+//                mPaint.setStyle(Style.STROKE);
+//                mPaint.setColorFilter(null);
+//                mPaint.setColor(Color.WHITE);
+//                canvas.drawPath(mCheckHookPath, mPaint);
+//                mPaint.setXfermode(null);
+//            }
+//
+//        }
+//        if (!view.isInEditMode()) {
+//            canvas.restoreToCount(sc);// eclipse的预览界面这里会报错
+//        }
+//
+//    }
+//
+//
+//}