Parcourir la source

连续任务一些新增,其他一些修改

liujiangyao il y a 8 ans
Parent
commit
fb736479c6

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

@@ -464,7 +464,7 @@ public class ActDownloadMgr extends BaseCompatActivity {
         tvProgress.setText(R.string.download_completed);
         tvProgress.setText(R.string.download_completed);
 
 
         setTaskStatusByDownloadUrl(task.getKey(), DownloadTaskService.STATUS_FINISH, task.getDownloadPath());
         setTaskStatusByDownloadUrl(task.getKey(), DownloadTaskService.STATUS_FINISH, task.getDownloadPath());
-        PackageUtil.installApk(ActDownloadMgr.this, task.getDownloadPath());
+        ApkUtils.installApk(ActDownloadMgr.this, task.getDownloadPath());
     }
     }
 
 
 }
 }

+ 22 - 0
app/src/main/java/com/kfzs/duanduan/oem/AppAddOrdelReceiver.java

@@ -13,6 +13,7 @@ import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.DeviceUtil;
 import com.sheep.gamegroup.util.NetUtil;
 import com.sheep.gamegroup.util.NetUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
 
 
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.EventBus;
@@ -64,6 +65,27 @@ public class AppAddOrdelReceiver extends BroadcastReceiver {
             ApkUtils.getInstance().clear();
             ApkUtils.getInstance().clear();
             EventBus.getDefault().post(intent);
             EventBus.getDefault().post(intent);
         }
         }
+
+        /**
+         * 安装失败
+         */
+        if(Intent.ACTION_INSTALL_FAILURE.equals(intent.getAction())){
+            try {
+
+                new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        String packages = intent.getDataString().replace("package:","");
+                        String packageName = intent.getPackage();
+                        if(packages.equals(SheepApp.getInstance().getPackgeName()+"")){
+                            G.showToast("安装失败,请检查是否空间不足或其他问题!");
+                        }
+                    }
+                }, 0);
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+        }
     }
     }
 
 
 }
 }

+ 9 - 0
app/src/main/java/com/kfzs/duanduan/utils/ApkUtils.java

@@ -16,6 +16,7 @@ import android.widget.Toast;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.KFZSApp;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.R;
 import com.kfzs.duanduan.bean.CompareResult;
 import com.kfzs.duanduan.bean.CompareResult;
+import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 
 
 import java.io.File;
 import java.io.File;
@@ -82,7 +83,15 @@ public class ApkUtils {
      * @param apkPath apkPath
      * @param apkPath apkPath
      */
      */
     public static final void installApk(Context context, String apkPath) {
     public static final void installApk(Context context, String apkPath) {
+
         PackageUtil.installApk(context, apkPath);
         PackageUtil.installApk(context, apkPath);
+
+        /**
+         * 设置包名
+         */
+        SheepApp.getInstance()
+                .setPackgeName(
+                        getUnInstallApkPackageName(context, apkPath));
     }
     }
 
 
 
 

+ 55 - 0
app/src/main/java/com/kfzs/duanduan/utils/dlg/HelperUtils.java

@@ -9,12 +9,14 @@ import android.os.Environment;
 import android.os.StatFs;
 import android.os.StatFs;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.util.DisplayMetrics;
 import android.util.DisplayMetrics;
+import android.util.Log;
 import android.view.WindowManager;
 import android.view.WindowManager;
 
 
 import com.android.volleyplus.Response;
 import com.android.volleyplus.Response;
 import com.android.volleyplus.VolleyError;
 import com.android.volleyplus.VolleyError;
 import com.kfzs.appstore.utils.restful.KFZSRestfulError;
 import com.kfzs.appstore.utils.restful.KFZSRestfulError;
 import com.kfzs.appstore.utils.restful.KFZSRestfulErrorCallBack;
 import com.kfzs.appstore.utils.restful.KFZSRestfulErrorCallBack;
+import com.kfzs.duanduan.view.DialogStorageLow;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.kfzs.duanduan.KFZSApp;
 import com.kfzs.duanduan.KFZSApp;
 
 
@@ -136,6 +138,59 @@ public class HelperUtils {
         }
         }
         return percent;
         return percent;
     }
     }
+
+    /**
+     * 判断sd卡是否可用
+     * return true 可用  false 不可用
+     */
+    public static boolean isSDCardEnable(){
+        return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
+    }
+
+    /**
+     * 获取SD卡剩余空间
+     *
+     * @return SD卡剩余空间
+     */
+    public static long getSdkFreeSpace(){
+        try{
+            if(!isSDCardEnable()){
+                return 0;
+            }//获取SDCard根目录
+            File path = Environment.getExternalStorageDirectory();
+            StatFs statFs = new StatFs(path.getPath());
+            long blockSize, availableBlocks;
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+                availableBlocks = statFs.getAvailableBlocksLong();
+                blockSize = statFs.getBlockSizeLong();
+            } else {
+                availableBlocks = statFs.getAvailableBlocks();
+                blockSize = statFs.getBlockSize();
+            }
+
+            return availableBlocks * blockSize;
+        }catch (Exception e){
+            e.printStackTrace();
+            return 0;
+        }
+
+    }
+
+    /**
+     * 判断文件空间大小
+     */
+    public static void showInstallToast(Context context, File file){
+        try{
+            if (0 <= file.length() && (
+                    file.length() > getFreeSpaceB() / 2
+                    && file.length() > getSdkFreeSpace() / 2
+                    )) {
+                DialogStorageLow.showPopupWindow(context);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 }
 }
 
 
 
 

+ 19 - 1
app/src/main/java/com/sheep/gamegroup/model/entity/TaskChild.java

@@ -16,7 +16,25 @@ public class TaskChild implements Serializable {
     private String task_id;//161,
     private String task_id;//161,
     private String Time;//0,
     private String Time;//0,
     private String Name;//"212312311111111",
     private String Name;//"212312311111111",
-    private int TaskType;//0 即将开始  1 进行中  2 已完成
+    private int TaskType;//
+    /*
+    1、 任务未开启时——即将开启
+2、 任务未领取时——可领取
+3、 任务已领取待完成时——进行中
+4、 任务已提交待审核——待审核
+5、 任务审核通过——已完成
+6、 任务审核失败——审核失败
+7、任务已过期未完成——已过期
+     */
+    private int status;//
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
 
 
     public String getBeginTime() {
     public String getBeginTime() {
         return BeginTime;
         return BeginTime;

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

@@ -3,6 +3,7 @@ package com.sheep.gamegroup.util;
 import android.app.Activity;
 import android.app.Activity;
 import android.content.Context;
 import android.content.Context;
 import android.graphics.Color;
 import android.graphics.Color;
+import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
 import android.graphics.drawable.GradientDrawable;
 import android.text.Html;
 import android.text.Html;
@@ -487,4 +488,13 @@ public class CommonUtil {
         presenter.returnTask(parameEty);
         presenter.returnTask(parameEty);
     }
     }
 
 
+    /**
+     * 设置 drawLeft drawRight
+     */
+    public void setDraw2View(Context context, TextView view, int res, int color){
+        Drawable drawable = context.getResources().getDrawable(res);
+        drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
+        view.setCompoundDrawables(drawable, null, null, null);
+        view.setTextColor(context.getResources().getColor(color));
+    }
 }
 }

+ 3 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/DialogActivity.java

@@ -24,10 +24,12 @@ import com.arialyy.aria.core.download.DownloadTask;
 import com.arialyy.aria.core.inf.IEntity;
 import com.arialyy.aria.core.inf.IEntity;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
 import com.bumptech.glide.request.RequestOptions;
+import com.kfzs.duanduan.ActDownloadMgr;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.services.DownloadTaskService;
+import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
 import com.sheep.gamegroup.di.components.DaggerTaskDialogComponent;
 import com.sheep.gamegroup.di.modules.TaskDialogModule;
 import com.sheep.gamegroup.di.modules.TaskDialogModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
@@ -258,7 +260,7 @@ public class DialogActivity extends Activity implements TaskDialogContract.View
                         toTestPlay();
                         toTestPlay();
                         return;
                         return;
                     }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
                     }else if(!TextUtils.isEmpty(PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""))){
-                        PackageUtil.installApk(activity, filePath);
+                        ApkUtils.installApk(activity, filePath);
                     }else{
                     }else{
                         task.resetState();
                         task.resetState();
                         task.setFilePath(filePath);
                         task.setFilePath(filePath);

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

@@ -28,6 +28,7 @@ import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.BigEvent;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.event.EventTypes;
 import com.kfzs.duanduan.services.DownloadTaskService;
 import com.kfzs.duanduan.services.DownloadTaskService;
+import com.kfzs.duanduan.utils.ApkUtils;
 import com.sheep.gamegroup.di.components.DaggerTaskDetailComponent;
 import com.sheep.gamegroup.di.components.DaggerTaskDetailComponent;
 import com.sheep.gamegroup.di.modules.TaskDetailModule;
 import com.sheep.gamegroup.di.modules.TaskDetailModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
@@ -434,7 +435,7 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
                         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_DOWNLOAD);
                         break;
                         break;
                     case 2:
                     case 2:
-                        PackageUtil.installApk(SheepApp.mContext, PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""));
+                        ApkUtils.installApk(SheepApp.mContext, PackageUtil.isExistsFile(activity, taskEty.getPackage_names(), ""));
                         break;
                         break;
                     case 3:
                     case 3:
                         PackageUtil.startApp(SheepApp.mContext, taskEty.getPackage_names());
                         PackageUtil.startApp(SheepApp.mContext, taskEty.getPackage_names());

+ 75 - 10
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpTaskDetailChildListview.java

@@ -60,24 +60,89 @@ public class AdpTaskDetailChildListview extends BaseAdapter {
         }
         }
         holder.item_name_tv.setText("·" + taskChild.getName()+"");
         holder.item_name_tv.setText("·" + taskChild.getName()+"");
         holder.item_detail_tv.setText(taskChild.getAmount()+"元");
         holder.item_detail_tv.setText(taskChild.getAmount()+"元");
-        switch (taskChild.getTaskType()){
-            case 0://0 即将开始  1 进行中  2 已完成
+        switch (taskChild.getStatus()){
+            case 1:
             default:
             default:
-                holder.state_task_tv.setText("即将开始 ");
+                holder.state_task_tv.setText("即将开始");
+//                holder.state_task_tv.setCompoundDrawablesWithIntrinsicBounds(
+//                        context.getResources().getDrawable(R.mipmap.task_dec_begin_open),
+//                        null,
+//                        null,
+//                        null
+//                );
                 CommonUtil.getInstance()
                 CommonUtil.getInstance()
-                        .setViewBackground(holder.state_task_tv, "#929292");
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_begin_open,
+                                R.color.black_191919
+                        );
                 break;
                 break;
-            case 1:
+            case 2:
 
 
-                holder.state_task_tv.setText("进行中");
+                holder.state_task_tv.setText("可领取 ");
                 CommonUtil.getInstance()
                 CommonUtil.getInstance()
-                        .setViewBackground(holder.state_task_tv, "#fd2d54");
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_receive,
+                                R.color.blue_end
+                        );
                 break;
                 break;
-            case 2:
+            case 3:
+
+                holder.state_task_tv.setText("进行中 ");
+                CommonUtil.getInstance()
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_ing,
+                                R.color.txt_red_ff4a5f
+                        );
+                break;
+            case 4:
+
+                holder.state_task_tv.setText("待审核 ");
+                CommonUtil.getInstance()
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_to_audit,
+                                R.color.yellow2_end
+                        );
+                break;
+            case 5:
+
+                holder.state_task_tv.setText("已完成 ");
+                CommonUtil.getInstance()
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_approved,
+                                R.color.green_60BE5E
+                        );
+                break;
+            case 6:
+
+                holder.state_task_tv.setText("审核失败");
+                CommonUtil.getInstance()
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_overdue_audit,
+                                R.color.txt_red_ff4a5f
+                        );
+                break;
+            case 7:
 
 
-                holder.state_task_tv.setText("已完成");
+                holder.state_task_tv.setText("已过期 ");
                 CommonUtil.getInstance()
                 CommonUtil.getInstance()
-                        .setViewBackground(holder.state_task_tv, "#FF2EF77B");
+                        .setDraw2View(
+                                context,
+                                holder.state_task_tv,
+                                R.mipmap.task_dec_overdue_audit,
+                                R.color.black_191919
+                        );
                 break;
                 break;
         }
         }
 
 

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

@@ -37,6 +37,15 @@ public class SheepApp extends BaseApplication {
     private AppRecord lastAppRecord;
     private AppRecord lastAppRecord;
     private long lastTime;
     private long lastTime;
     private boolean isShowQB;
     private boolean isShowQB;
+    private String packgeName;
+
+    public String getPackgeName() {
+        return packgeName;
+    }
+
+    public void setPackgeName(String packgeName) {
+        this.packgeName = packgeName;
+    }
 
 
     public boolean isShowQB() {
     public boolean isShowQB() {
         return isShowQB;
         return isShowQB;
@@ -85,6 +94,7 @@ public class SheepApp extends BaseApplication {
             if(this.connectAddress != connectAddress){
             if(this.connectAddress != connectAddress){
                 SharedPreferences.getInstance().putString("flavor", connectAddress.name());
                 SharedPreferences.getInstance().putString("flavor", connectAddress.name());
                 quit();
                 quit();
+                android.os.Process.killProcess(android.os.Process.myPid());
                 System.exit(0);
                 System.exit(0);
             } else {
             } else {
                 G.showToast("已经是该服务器");
                 G.showToast("已经是该服务器");
@@ -98,6 +108,9 @@ public class SheepApp extends BaseApplication {
             mContext = getApplicationContext();
             mContext = getApplicationContext();
             mSheepApp = this;
             mSheepApp = this;
             String flavor = SharedPreferences.getInstance().getString("flavor", BuildConfig.FLAVOR);
             String flavor = SharedPreferences.getInstance().getString("flavor", BuildConfig.FLAVOR);
+            if("sheep".equals(BuildConfig.FLAVOR)){
+                flavor = BuildConfig.FLAVOR;
+            }
             connectAddress = ConnectAddress.valueOf(flavor);
             connectAddress = ConnectAddress.valueOf(flavor);
 
 
             registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
             registerActivityLifecycleCallbacks(activityLifecycleCallbacks);

+ 4 - 0
app/src/main/java/com/sheep/jiuyan/samllsheep/utils/PackageUtil.java

@@ -14,6 +14,7 @@ import android.os.Build;
 import android.support.v4.content.FileProvider;
 import android.support.v4.content.FileProvider;
 import android.util.Log;
 import android.util.Log;
 
 
+import com.kfzs.duanduan.utils.dlg.HelperUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 
 
@@ -85,6 +86,9 @@ public class PackageUtil {
     public static  void  install(Context context, String path){
     public static  void  install(Context context, String path){
 
 
         File file = new File(path);
         File file = new File(path);
+
+        HelperUtils.showInstallToast(context, file);
+
         Intent intent = new Intent(Intent.ACTION_VIEW);
         Intent intent = new Intent(Intent.ACTION_VIEW);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         try{
         try{

+ 2 - 2
app/src/main/res/layout/adp_taskdetail_child_listview.xml

@@ -53,10 +53,10 @@
             android:padding="@dimen/content_padding_3"
             android:padding="@dimen/content_padding_3"
             android:layout_alignParentRight="true"
             android:layout_alignParentRight="true"
             android:layout_below="@+id/item_layout"
             android:layout_below="@+id/item_layout"
-            android:background="@drawable/sp_bg_gradient_rectangle_blue_change"
             android:layout_alignParentBottom="true"
             android:layout_alignParentBottom="true"
             app:layout_constraintLeft_toRightOf="@+id/item_detail_tv"
             app:layout_constraintLeft_toRightOf="@+id/item_detail_tv"
-            app:layout_constraintRight_toRightOf="parent"/>
+            app:layout_constraintRight_toRightOf="parent"
+            android:drawablePadding="@dimen/content_padding_small"/>
     </android.support.constraint.ConstraintLayout>
     </android.support.constraint.ConstraintLayout>
 
 
 
 

+ 0 - 1
app/src/main/res/layout/task_detail_layout.xml

@@ -103,7 +103,6 @@
                     android:layout_width="match_parent"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_height="wrap_content"
                     android:scrollbars="none"
                     android:scrollbars="none"
-                    android:divider="@null"
                     android:listSelector="@color/transparent"
                     android:listSelector="@color/transparent"
                     android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
                     android:background="@drawable/x_shap_shadow_bg_rectgangle_white"
                     android:padding="@dimen/content_padding_10"
                     android:padding="@dimen/content_padding_10"

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


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


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


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


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


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


+ 1 - 0
app/src/main/res/values/gamegroup_color.xml

@@ -36,5 +36,6 @@
     <color name="white_ededed">#ededed</color>
     <color name="white_ededed">#ededed</color>
     <color name="white_FFF7F7F7">#FFF7F7F7</color>
     <color name="white_FFF7F7F7">#FFF7F7F7</color>
     <color name="gray_F2F2F2">#F2F2F2</color>
     <color name="gray_F2F2F2">#F2F2F2</color>
+    <color name="green_60BE5E">#60BE5E</color>
 
 
 </resources>
 </resources>