Преглед на файлове

增加再次审核图片入口,一些bug修改

liujiangyao преди 8 години
родител
ревизия
45e2485278

+ 2 - 2
app/src/main/java/com/kfzs/duanduan/BaseCompatFragment.java

@@ -110,7 +110,7 @@ public abstract class BaseCompatFragment extends Fragment {
     public void onResume() {
         super.onResume();
         if(getUserVisibleHint()){
-            UMConfigUtils.onVisibilityChangedToUser(true, false,TAG);
+//            UMConfigUtils.onVisibilityChangedToUser(true, false,TAG);
         }
     }
 
@@ -118,7 +118,7 @@ public abstract class BaseCompatFragment extends Fragment {
     public void onPause() {
         super.onPause();
         if(getUserVisibleHint()){
-            UMConfigUtils.onVisibilityChangedToUser(false, false,TAG);
+//            UMConfigUtils.onVisibilityChangedToUser(false, false,TAG);
         }
     }
 

+ 2 - 0
app/src/main/java/com/kfzs/duanduan/event/EventTypes.java

@@ -25,4 +25,6 @@ public enum EventTypes {
     INTENT_AMOUNT_VALUE,//提现传值用
 
     DIALOG_ACTIVITY_DOWNLOAD_FILE,//dialogActivity 下载通知
+
+    TASK_AGAIN_UPLOAD_FILE,//任务审核上传图片 通知
 }

+ 1 - 1
app/src/main/java/com/kfzs/duanduan/fragment/FgtSmallSheep.java

@@ -215,7 +215,7 @@ public class FgtSmallSheep extends BaseCompatFragment implements SmallSheepContr
                 break;
             case R.id.lying_layout://躺着赚钱
                 Jump2View.getInstance().goLyingView(activity, null);
-                UMConfigUtils.onEvent(UMConfigUtils.Event.SHEEP_TASK_LIE);
+//                UMConfigUtils.onEvent(UMConfigUtils.Event.SHEEP_TASK_LIE);
                 break;
         }
     }

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/model/api/BaseMessageConverter.java

@@ -22,7 +22,8 @@ public class BaseMessageConverter implements Converter<ResponseBody, BaseMessage
     @Override
     public BaseMessage convert(ResponseBody value) throws IOException {
         String json = decrypt(value.string());
-        return JSONObject.parseObject(json, BaseMessage.class);
+        BaseMessage baseMessage = JSONObject.parseObject(json, BaseMessage.class);
+        return baseMessage;
     }
 
 

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/presenter/TaskListContract.java

@@ -1,5 +1,8 @@
 package com.sheep.gamegroup.presenter;
 
+import com.alibaba.fastjson.JSONObject;
+import com.sheep.gamegroup.model.entity.BaseMessage;
+
 /**
  * Created by ljy on 2018/3/21.
  */
@@ -8,10 +11,13 @@ public interface TaskListContract {
 
     interface Presenter{
         void acceptedTask(int page, int pre_page);
+        void taskStatus(JSONObject jsonObject);
     }
     interface View{
 
         void updataView(Object o);
         void failView(Object o);
+        void taskStatusSuccess(BaseMessage baseMessage);
+        void taskStatusFaile(BaseMessage baseMessage);
     }
 }

+ 20 - 0
app/src/main/java/com/sheep/gamegroup/presenter/TaskListPresenter.java

@@ -43,4 +43,24 @@ public class TaskListPresenter implements TaskListContract.Presenter {
                     }
                 });
     }
+
+    @Override
+    public void taskStatus(JSONObject jsonObject) {
+
+        apiService.taskStatus(jsonObject.getInteger("id"),jsonObject.getString("screenshots"),
+                jsonObject.getString("remark"),jsonObject.getString("package_name"),jsonObject.getString("status"))
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        view.taskStatusFaile(baseMessage);
+                    }
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        view.taskStatusSuccess(baseMessage);
+                    }
+                });
+    }
 }

+ 5 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/LieMakeMoneyAct.java

@@ -5,6 +5,7 @@ import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 
+import com.googlecode.protobuf.format.util.TextUtils;
 import com.sheep.gamegroup.di.components.DaggerLieMakeMoneyComponent;
 import com.sheep.gamegroup.di.modules.LieMakeMoneyModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
@@ -124,6 +125,10 @@ public class LieMakeMoneyAct extends BaseActivity implements LieMakeMoneyContrac
     //{ "data": [ { "id": 14, "Uid": 12, "account": "trhhccg", "password": "", "verification_code": "", "status": 0, "remarks": "", "normal_time": 0, "create_time": 1521854985, "update_time": 0, "phone_number": "17628083502", "is_send": 0, "device_info": null } ] }
     @Override
     public void getWebchatUpdataView(BaseMessage baseMessage) {
+        if(android.text.TextUtils.isEmpty(baseMessage.getData()+"")){
+//            G.showToast("无数据!");
+            return;
+        }
         List<WXOnHookAccount> list = baseMessage.getDatas(WXOnHookAccount.class);
         lieMakeMoneyAdp.clear();
         for (WXOnHookAccount wxOnHookAccount : list) {

+ 142 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/TaskListAct.java

@@ -1,28 +1,48 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.provider.MediaStore;
+import android.text.TextUtils;
 import android.widget.ListView;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.kfzs.appstore.utils.string.HexUtils;
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
+import com.kfzs.duanduan.react.upfile.UpFileListener;
+import com.kfzs.duanduan.react.upfile.UpFileUtils;
 import com.sheep.gamegroup.di.components.DaggerTaskListComponent;
 import com.sheep.gamegroup.di.modules.TaskListModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.RecyleObj;
 import com.sheep.gamegroup.model.entity.RecyleType;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
+import com.sheep.gamegroup.model.entity.TaskEty;
 import com.sheep.gamegroup.model.entity.TaskReleaseEty;
+import com.sheep.gamegroup.model.entity.UploadResult;
 import com.sheep.gamegroup.presenter.TaskListContract;
 import com.sheep.gamegroup.presenter.TaskListPresenter;
+import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.view.adapter.TaskListItemAdp;
+import com.sheep.gamegroup.view.dialog.DialogShowLoading;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,13 +50,14 @@ import javax.inject.Inject;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
+import go.kfzssafe.Kfzssafe;
 
 /**
  * 任务列表
  * Created by ljy on 2018/3/21.
  */
 
-public class TaskListAct extends BaseActivity implements TaskListContract.View{
+public class TaskListAct extends BaseActivity implements TaskListContract.View, UpFileListener {
     @BindView(R.id.withdrawal_listview)
     ListView withdrawalListview;
 
@@ -46,6 +67,13 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View{
     private TaskListItemAdp adp;
     private List<TaskAcceptedEty> etyList = new ArrayList<>();
 
+    private TaskAcceptedEty taskEty;
+    private DialogShowLoading dialogShowLoading;
+    /**
+     * 上传进度
+     */
+    private boolean isUpload = true;
+
 
     @Override
     protected int getLayoutId() {
@@ -54,6 +82,7 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View{
 
     @Override
     public void initView() {
+        EventBus.getDefault().register(this);
         activity = this;
         DaggerTaskListComponent.builder()
                 .netComponent(SheepApp.get(this).getNetComponent())
@@ -76,6 +105,7 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View{
 
     @Override
     public void initData() {
+        showProgress();
         presenter.acceptedTask(0,10);
     }
 
@@ -95,6 +125,117 @@ public class TaskListAct extends BaseActivity implements TaskListContract.View{
 
     @Override
     public void failView(Object o) {
+        hideProgress();
         G.showToast(((BaseMessage) o).getMsg()+"");
     }
+
+    @Override
+    public void taskStatusSuccess(BaseMessage baseMessage) {
+        dialogShowLoading.getTextView().setText("完成");
+//                            onGetNetImageUrl(data);
+        dialogShowLoading.getAlertDialog().dismiss();
+        G.showToast("提交成功,等待审核!");
+        initData();
+//        EventBus.getDefault().post(new BigEvent().setEventTypes(EventTypes.ONFRESH_TRYMAKEMANY_PAGE));
+        UMConfigUtils.finishTask();
+
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+
+        EventBus.getDefault().unregister(this);
+    }
+
+    @Override
+    public void taskStatusFaile(BaseMessage baseMessage) {
+        updateError("失败");
+    }
+
+    @Override
+    public void Success(String msg) {
+        String json;
+        if (TextUtils.isEmpty(msg)) {
+            updateError("失败");
+            return;
+        }
+        if (msg.startsWith("{")) {
+            json = msg;
+        } else {
+            try {
+                byte[] bytes = HexUtils.hexStr2Bytes(msg);
+                byte[] byteDecode = Kfzssafe.XByteDecode(bytes);
+                json = new String(byteDecode);
+            } catch (Exception e) {
+                e.printStackTrace();
+                updateError("失败");
+                return;
+            }
+        }
+        UploadResult uploadResult = JSON.parseObject(json, UploadResult.class);
+        if (uploadResult != null) {
+            final String data = uploadResult.getData().getUrl();
+            dialogShowLoading.getTextView().setText("提交中");
+            if(taskEty == null){
+                updateError("提交错误!");
+                return;
+            }
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("id", taskEty.getId());
+            jsonObject.put("screenshots",data+"");
+            jsonObject.put("remark",taskEty.getRemarks()+"");
+            jsonObject.put("package_name",taskEty.getRelease_task().getTask().getPackage_names()+"");
+            jsonObject.put("status",7+"");
+            presenter.taskStatus(jsonObject);
+            taskEty.setScreenshots(data);
+        }
+    }
+
+    private void updateError(String msg) {
+        dialogShowLoading.getTextView().setText(msg);
+//        onNotGetImage(msg);
+        dialogShowLoading.getAlertDialog().dismiss();
+    }
+    @Override
+    public void Progress(String progress) {
+        dialogShowLoading.getTextView().setText(progress);
+        dialogShowLoading.getTextView().append("%");
+
+    }
+
+    @Override
+    public void Failure(String err) {
+        G.showToast(err);
+    }
+
+    @Subscribe
+    public void onEventMainThread(BigEvent event){
+        switch (event.getEventTypes()){
+            case TASK_AGAIN_UPLOAD_FILE:
+                if(event.getData() instanceof TaskAcceptedEty)
+                    taskEty = (TaskAcceptedEty) event.getData();
+                break;
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+
+        //获取图片路径
+        if (requestCode == 1 && resultCode == Activity.RESULT_OK && data != null) {
+            Uri selectedImage = data.getData();
+            String[] filePathColumns = {MediaStore.Images.Media.DATA};
+            Cursor c = getContentResolver().query(selectedImage, filePathColumns, null, null, null);
+            c.moveToFirst();
+            int columnIndex = c.getColumnIndex(filePathColumns[0]);
+            String imagePath = c.getString(columnIndex);
+            if (isUpload) {
+                dialogShowLoading = DialogShowLoading.showDialog(activity);
+                UpFileUtils.upImage(new File(imagePath), TaskListAct.this);
+            }
+            c.close();
+        }
+    }
 }

+ 42 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/TaskListItemAdp.java

@@ -1,6 +1,8 @@
 package com.sheep.gamegroup.view.adapter;
 
+import android.app.Activity;
 import android.content.Context;
+import android.content.Intent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -10,12 +12,20 @@ import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.event.BigEvent;
+import com.kfzs.duanduan.event.EventTypes;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
+import com.sheep.gamegroup.presenter.TaskListPresenter;
+import com.sheep.gamegroup.presenter.TryMakeMoneyPresenter;
 import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.jiuyan.samllsheep.R;
 
+import org.greenrobot.eventbus.EventBus;
+
 import java.util.List;
 
+import javax.inject.Inject;
+
 /**
  * Created by ljy on 2018/3/21.
  */
@@ -23,12 +33,20 @@ import java.util.List;
 public class TaskListItemAdp extends BaseAdapter {
     private Context context;
     private List<TaskAcceptedEty> etyList;
+    @Inject
+    TaskListPresenter presenter;
 
     public TaskListItemAdp(Context context, List<TaskAcceptedEty> etyList) {
         this.context = context;
         this.etyList = etyList;
     }
 
+    /**
+     * 传入presenter
+     */
+    public void addPresenter(TaskListPresenter presenter){
+        this.presenter = presenter;
+    }
     @Override
     public int getCount() {
         return etyList.size();
@@ -54,12 +72,13 @@ public class TaskListItemAdp extends BaseAdapter {
             holder.date_tv = convertView.findViewById(R.id.date_tv);
             holder.price_tv = convertView.findViewById(R.id.price_tv);
             holder.icon_iv = convertView.findViewById(R.id.icon_iv);
+            holder.detail_task_tv = convertView.findViewById(R.id.detail_task_tv);
             convertView.setTag(holder);
         }else {
             holder = (ViewHolder) convertView.getTag();
         }
 
-        TaskAcceptedEty ety = (TaskAcceptedEty) getItem(position);
+        final TaskAcceptedEty ety = (TaskAcceptedEty) getItem(position);
         holder.name_tv.setText(ety.getRelease_task().getTask().getTask_name()+"");
         try {
             holder.date_tv.setText(TimeUtil.getDate(TimeUtil.FORMAT, Long.valueOf(ety.getRelease_task().getTask().getUpdate_time()))+"");
@@ -67,6 +86,19 @@ public class TaskListItemAdp extends BaseAdapter {
             e.printStackTrace();
         }
         holder.price_tv.setText(returnValue(ety));
+        if(ety.getStatus() == 6){//审核失败
+            holder.detail_task_tv.setVisibility(View.VISIBLE);
+        }else {
+            holder.detail_task_tv.setVisibility(View.GONE);
+        }
+        holder.detail_task_tv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                uploadImag(context);
+                EventBus.getDefault().post(BigEvent.get().setEventTypes(EventTypes.TASK_AGAIN_UPLOAD_FILE)
+                        .setData(ety));
+            }
+        });
         Glide.with(context)
                 .load(ety.getRelease_task().getTask().getIcon())
                 .apply(new RequestOptions().placeholder(R.mipmap.x_ic_def_head))
@@ -76,7 +108,7 @@ public class TaskListItemAdp extends BaseAdapter {
 
     class ViewHolder{
         ImageView icon_iv;
-        TextView name_tv, date_tv, price_tv;
+        TextView name_tv, date_tv, price_tv,detail_task_tv;
     }
 
     /**
@@ -113,4 +145,12 @@ public class TaskListItemAdp extends BaseAdapter {
         }
         return stateStr;
     }
+    /**
+     * update file
+     */
+    private void uploadImag(Context context) {
+        Intent intent = new Intent(Intent.ACTION_PICK,
+                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
+        ((Activity)context).startActivityForResult(intent, 1);
+    }
 }

+ 2 - 2
app/src/main/java/com/sheep/jiuyan/samllsheep/SheepApp.java

@@ -140,12 +140,12 @@ public class SheepApp extends BaseApplication {
 
         @Override
         public void onActivityResumed(Activity activity) {
-            UMConfigUtils.onPageStart(activity);
+//            UMConfigUtils.onPageStart(activity);
         }
 
         @Override
         public void onActivityPaused(Activity activity) {
-            UMConfigUtils.onPageEnd(activity);
+//            UMConfigUtils.onPageEnd(activity);
         }
 
         @Override

+ 28 - 8
app/src/main/res/layout/task_list_item.xml

@@ -38,18 +38,38 @@
             android:layout_marginTop="@dimen/content_padding_10"/>
     </RelativeLayout>
 
-    <TextView
-        android:id="@+id/price_tv"
+    <RelativeLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="+1.5元"
-        android:textColor="@color/txt_red"
-        android:textSize="@dimen/text_size_15"
-        android:layout_centerVertical="true"
         android:layout_toRightOf="@+id/name_date_layout"
-        android:layout_marginLeft="@dimen/content_padding_10"
+        android:layout_marginLeft="@dimen/content_padding"
         android:layout_alignParentRight="true"
-        android:gravity="right"/>
+        android:layout_centerVertical="true">
+
+        <TextView
+            android:id="@+id/price_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="+1.5元"
+            android:textColor="@color/txt_red"
+            android:textSize="@dimen/text_size_15"
+            android:layout_centerHorizontal="true"/>
+        <TextView
+            android:id="@+id/detail_task_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="任务截图"
+            android:minWidth="@dimen/view_size_73"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_size_10"
+            android:gravity="center"
+            android:padding="@dimen/content_padding_3"
+            android:layout_below="@+id/price_tv"
+            android:layout_centerHorizontal="true"
+            android:background="@drawable/sp_bg_gradient_rectangle_blue"
+            android:layout_marginTop="@dimen/content_padding_small"
+            android:visibility="visible"/>
+    </RelativeLayout>
 
 
 </RelativeLayout>