Bläddra i källkod

SOP页面添加关键岗位功能, 修复5秒查询接口未关闭问题.记录关键岗位功能

songw 1 år sedan
förälder
incheckning
09308f01c4
20 ändrade filer med 561 tillägg och 137 borttagningar
  1. 58 19
      app/src/main/java/com/uas/standard_esop/activity/BannerActivity.java
  2. 3 0
      app/src/main/java/com/uas/standard_esop/activity/BaseActivity.java
  3. 27 36
      app/src/main/java/com/uas/standard_esop/activity/IndexActivity.java
  4. 11 1
      app/src/main/java/com/uas/standard_esop/bean/ResourcefileBean.java
  5. 7 0
      app/src/main/java/com/uas/standard_esop/event/ReceiveNewImages.java
  6. 6 5
      app/src/main/java/com/uas/standard_esop/fragment/IndexSettingFragment.java
  7. 1 0
      app/src/main/java/com/uas/standard_esop/global/GloableParams.java
  8. 14 0
      app/src/main/java/com/uas/standard_esop/tools/SharedPreUtil.java
  9. 260 0
      app/src/main/java/com/uas/standard_esop/util/AppManager.java
  10. 3 0
      app/src/main/java/com/uas/standard_esop/util/Constants.java
  11. 0 2
      app/src/main/java/com/uas/standard_esop/view/SwitchView.java
  12. 9 0
      app/src/main/res/drawable/custom_switch_thumb.xml
  13. 9 0
      app/src/main/res/drawable/custom_switch_track.xml
  14. 96 67
      app/src/main/res/layout-large/activity_banner.xml
  15. 49 2
      app/src/main/res/layout/activity_banner.xml
  16. 0 1
      app/src/main/res/layout/activity_index.xml
  17. 5 1
      build.gradle
  18. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml
  19. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties
  20. 1 1
      pda_libs/pulltoreflashlibrary/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt

+ 58 - 19
app/src/main/java/com/uas/standard_esop/activity/BannerActivity.java

@@ -10,8 +10,10 @@ import android.view.KeyEvent;
 import android.view.View;
 import android.view.WindowManager;
 import android.view.inputmethod.EditorInfo;
+import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.Switch;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;
@@ -23,7 +25,9 @@ import com.github.chrisbanes.photoview.PhotoView;
 import com.stx.xhb.xbanner.XBanner;
 import com.uas.standard_esop.R;
 import com.uas.standard_esop.global.GloableParams;
+import com.uas.standard_esop.tools.SharedPreUtil;
 import com.uas.standard_esop.util.CommonUtil;
+import com.uas.standard_esop.util.Constants;
 import com.uas.standard_esop.util.FastjsonUtil;
 import com.uas.standard_esop.util.HttpCallback;
 import com.uas.standard_esop.util.HttpParams;
@@ -51,6 +55,9 @@ public class BannerActivity extends BaseActivity {
     private TextView get_data;
     private TextView tv_key_positions;
     private String keystep;
+    private String keyStepSet;
+    private ArrayList<String> lists;
+    private Switch s_control;
     //    private BasePopupView show;
 
     @Override
@@ -59,9 +66,15 @@ public class BannerActivity extends BaseActivity {
         context=this;
         setContentView(R.layout.activity_banner);
         Intent intent = getIntent();
-        ArrayList<String> lists = intent.getStringArrayListExtra("lists");
-        keystep = intent.getStringExtra("keystep");
-        List<Object> objects = (List)lists;
+        lists = new ArrayList<>();
+        try {
+            lists = intent.getStringArrayListExtra("lists");
+            keystep = intent.getStringExtra("keystep");
+            keyStepSet = intent.getStringExtra("keyStepSet");
+            List<Object> objects = (List) lists;
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
         x_banner = findViewById(R.id.x_banner);
         iv_pepole = findViewById(R.id.iv_pepole);
         iv_name = findViewById(R.id.iv_name);
@@ -72,9 +85,9 @@ public class BannerActivity extends BaseActivity {
         get_data = findViewById(R.id.get_data);
         tv_key_positions = findViewById(R.id.tv_key_positions);
         PhotoView photoView = findViewById(R.id.photo_view);
-//        String imageUrl = "https://example.com/image.jpg"; // 替换为你的图片URL
-
+        s_control = findViewById(R.id.s_control);
 
+//        String imageUrl = "https://example.com/image.jpg"; // 替换为你的图片URL
         ImageView iv_fullscreen = findViewById(R.id.iv_fullscreen);
         LinearLayout iv_goback = findViewById(R.id.iv_goback);
         ImageView imag_back = findViewById(R.id.imag_back);
@@ -84,9 +97,14 @@ public class BannerActivity extends BaseActivity {
 //        bannerList.add("https://p2.itc.cn/images01/20210510/096eeb9cd3c84bd8ba09b5713679b4f9.jpeg");
 //        bannerList.add("https://p2.itc.cn/images01/20210510/096eeb9cd3c84bd8ba09b5713679b4f9.jpeg");
 //        bannerList.add("http://i0.hdslb.com/bfs/article/97549c0fd58b940c1306faac923a8685551a6a2a.jpg");
-        for (int i=0;i<lists.size();i++){
-            sinmagedata = lists.get(i);
-            Log.e("smd5", sinmagedata);
+
+        if (lists != null) {
+            for (int i = 0; i < lists.size(); i++) {
+                sinmagedata = lists.get(i);
+                Log.e("smd5", sinmagedata);
+            }
+        }else {
+            lists = new ArrayList<>();
         }
 
         x_banner.setData(lists,null);
@@ -99,7 +117,6 @@ public class BannerActivity extends BaseActivity {
                         .load(lists.get(position))
                         .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
                         .into((ImageView) view);
-
             }
         });
 //        x_banner.setmAutoPalyTime(2000);
@@ -113,7 +130,7 @@ public class BannerActivity extends BaseActivity {
 //                iv_goback.setVisibility(View.VISIBLE);
                 x_banner.setVisibility(View.GONE);
                 photoView.setVisibility(View.VISIBLE);
-                Log.e("连接",lists.get(i));
+                Log.e("连接", lists.get(i));
                 // 使用Glide加载网络图片
                 Glide.with(context)
                         .load(lists.get(i))
@@ -164,19 +181,42 @@ public class BannerActivity extends BaseActivity {
             public void onClick(View v) {
                 at_peoplecode.clearFocus();
                 getSourcePunchInfo(at_peoplecode.getText().toString().trim());
-                //关键岗位
-                if (!TextUtils.isEmpty(keystep)) {
-                    if (keystep.equals("-1")) {
-                        tv_key_positions.setVisibility(View.VISIBLE);
-                    }else {
-                        tv_key_positions.setVisibility(View.INVISIBLE);
-                    }
-                }
             }
         });
+        //关键岗位
+        if (!TextUtils.isEmpty(keystep) ||  (!TextUtils.isEmpty(keyStepSet))) {
+            if (keystep.equals("-1")) {
+                tv_key_positions.setVisibility(View.VISIBLE);
+                s_control.setChecked(true);
+            }else {
+                s_control.setChecked(false);
+                tv_key_positions.setVisibility(View.INVISIBLE);
+            }
+        }else {
+            boolean aBoolean = SharedPreUtil.getBoolean(BannerActivity.this, Constants.FLAG.KEY_POSITION_SWITCH, false);
+            s_control.setChecked(aBoolean);
+        }
 
+        s_control.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+                if (isChecked) {
+                    // Switch被打开时的逻辑
+                    tv_key_positions.setVisibility(View.VISIBLE);
+                    SharedPreUtil.saveBoolean(BannerActivity.this, Constants.FLAG.KEY_POSITION_SWITCH, true);
+                } else {
+                    // Switch被关闭时的逻辑
+                    tv_key_positions.setVisibility(View.INVISIBLE);
+                    SharedPreUtil.saveBoolean(BannerActivity.this, Constants.FLAG.KEY_POSITION_SWITCH, false);
+                }
+            }
+        });
     }
 
+//    @Subscribe
+//    public void onMessageEvent(ReceiveNewImages evensst) {
+//        finish();
+//    }
 
     private void getSourcePunchInfo(String em_code) {
         if (em_code.isEmpty()){
@@ -257,5 +297,4 @@ public class BannerActivity extends BaseActivity {
 
     }
 
-
 }

+ 3 - 0
app/src/main/java/com/uas/standard_esop/activity/BaseActivity.java

@@ -8,6 +8,7 @@ import androidx.appcompat.app.AppCompatActivity;
 import com.uas.standard_esop.global.GloableParams;
 import com.uas.standard_esop.tools.DataSourceManager;
 import com.uas.standard_esop.tools.SharedPreUtil;
+import com.uas.standard_esop.util.AppManager;
 import com.uas.standard_esop.util.Constants;
 
 import org.json.JSONArray;
@@ -43,6 +44,8 @@ public abstract class BaseActivity extends AppCompatActivity {
         initViews();
         initEvents();
         initDatas();
+
+        AppManager.getAppManager().addActivity(this);
     }
 
     @Override

+ 27 - 36
app/src/main/java/com/uas/standard_esop/activity/IndexActivity.java

@@ -67,6 +67,7 @@ import com.uas.standard_esop.global.GloableParams;
 import com.uas.standard_esop.tools.DataSourceManager;
 import com.uas.standard_esop.tools.SharedPreUtil;
 import com.uas.standard_esop.tools.VolleyUtil;
+import com.uas.standard_esop.util.AppManager;
 import com.uas.standard_esop.util.CameraUtil;
 import com.uas.standard_esop.util.CommonUtil;
 import com.uas.standard_esop.util.Constants;
@@ -208,8 +209,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
     private String tvSS_brdip;
     private String tvSS_brdport;
     private BeanSop urlBean;
-
-    private String keystep ;
+    private String keystep;
 
     @Override
     protected void onDestroy() {
@@ -304,10 +304,12 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                 String filenametcp=null;
 //                List<ResourcefileBean.DataBean.UrlBean> urlBeanList = pdfOrImageAdapter.getmList();
                 ArrayList<ResourcefileBean.DataBean.UrlBean> selectedItem = pdfOrImageAdapter.getSelectedItem();
+                String keyStepSet = "";
                 for (int i=0;i<selectedItem.size();i++){
                     ResourcefileBean.DataBean.UrlBean urlBean = selectedItem.get(i);
                     filenametcp=urlBean.getFilename();
                     String strs2 = new String(Base64.decode(urlBean.getPath().getBytes(),Base64.DEFAULT));
+                    keyStepSet = urlBean.getKeystep();
                     selectedItemList.add(strs2);
                 }
 //                for (int i=0;i<urlBeanList.size();i++){
@@ -330,6 +332,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                         || filenametcp.contains(".png") || filenametcp.contains(".jpg") || filenametcp.contains(".WEBP") || filenametcp.contains(".JPEG")) {
                     Intent intent = new Intent(IndexActivity.this, BannerActivity.class);
                     intent.putStringArrayListExtra("lists", selectedItemList);
+                    intent.putExtra("keyStepSet", keyStepSet);      //手动获取接口的关键岗位
                     startActivity(intent);
                 } else if (filenametcp.contains(".MP4") || filenametcp.contains(".mp4")){
                     Intent intent = new Intent(IndexActivity.this, VideoActivity.class);
@@ -538,9 +541,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
          */
 
 
-        ;
-
-
         sound_monitor_vibration_sv.setChecked(false);
 //        debughistoryData();
 
@@ -568,7 +568,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
 //                    handler.removeCallbacks(runnable);
 //                    handler5.removeCallbacks(runnable5);
                 }
-
+                Log.e("aaa", "执行了按钮" + isChecked);
             }
         });
 
@@ -614,7 +614,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
             if (data.getString("filename").equals(at_gvtext.getText().toString().trim()+".jpg")){
                 bean= new ResourcefileBean.DataBean.UrlBean(
                         data.getString("path"),
-                        data.getString("filename"));
+                        data.getString("filename"),data.getString("keystep"));
                 urlBeanList.add(bean);
             }
 
@@ -630,9 +630,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
     }
 
 
-
-
-
     /**
      * 关于物理线体弹框
      */
@@ -929,6 +926,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                             urlBeantwoList.add(urlBean);
                         }
                         list = new ArrayList<>();
+                        //关键岗位
                         keystep = "";
                         for (int i=0;i<urlBeantwoList.size();i++){
                             BeanSop urlBean = urlBeantwoList.get(i);
@@ -947,7 +945,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
 
                         }
                         if (urlBeantwoList.size()>0) {
-
                             String filenametcp=null;
                             for (int i=0;i<urlBeantwoList.size();i++){
                                 BeanSop urlBean = urlBeantwoList.get(i);
@@ -965,10 +962,17 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                                 startActivity(intent);
                             } else if (filenametcp.contains(".PNG") || filenametcp.contains(".JPG") || filenametcp.contains(".webp") || filenametcp.contains(".jpeg")
                                     || filenametcp.contains(".png") || filenametcp.contains(".jpg") || filenametcp.contains(".WEBP") || filenametcp.contains(".JPEG")) {
-                                Intent intent = new Intent(IndexActivity.this, BannerActivity.class);
-                                intent.putStringArrayListExtra("lists", list);
-                                intent.putExtra("keystep", keystep);
-                                startActivity(intent);
+                                //EventBus.getDefault().post(new ReceiveNewImages());
+                                AppManager.getAppManager().finishActivity(BannerActivity.class);
+                                new Handler().postDelayed(new Runnable() {
+                                    @Override
+                                    public void run() {
+                                        Intent intent = new Intent(IndexActivity.this, BannerActivity.class);
+                                        intent.putStringArrayListExtra("lists", list);
+                                        intent.putExtra("keystep", keystep);
+                                        startActivity(intent);
+                                    }
+                                }, 1500);
                             } else if (filenametcp.contains(".MP4") || filenametcp.contains(".mp4")){
                                 Intent intent = new Intent(IndexActivity.this, VideoActivity.class);
                                 intent.putStringArrayListExtra("lists", list);
@@ -976,7 +980,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                             }else {
                                 CommonUtil.toastNoRepeat(IndexActivity.this, "此文件无法打开");
                             }
-                            handlernew.removeCallbacks(runnableCountdown);
+
                         }
 //                        setdataDisplay(o.toString());
                     }
@@ -986,8 +990,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                         progressDialog.dismiss();
                     }
                 });
-
-
     }
 
     @Override
@@ -1113,6 +1115,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
 //                intent2.putExtra("title", "岗位资源");
 //                intent2.putExtra("type", 1);
 //                startActivityForResult(intent2, Constants.FLAG.GET_COMMON_ITEM);
+
                 mPositionR.requestFocus();
                 rv_data.setVisibility(View.VISIBLE);
                 getSC_CODEData();
@@ -1334,6 +1337,9 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
             EventBus.getDefault().register(this);
         }
 //        handler5.postDelayed(runnable5, 3000);
+        error_ok_image=true;
+        sound_monitor_vibration_sv2.setSelected(true);
+        handlernew.post(runnableCountdown);
     }
 
 
@@ -1386,11 +1392,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
     }
 
 
-    @Override
-    protected void onResume() {
-        super.onResume();
-    }
-
     @Override
     protected void onNewIntent(Intent intent) {
         super.onNewIntent(intent);
@@ -1566,8 +1567,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                             JSONObject dataObject = resultObject.getJSONObject("data");
                             JSONArray dataArray = FastjsonUtil.getJSONArray(dataObject, "url");
                             handleFeededData(dataArray);
-
-
                         }
                     }
 
@@ -1973,8 +1972,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
     }
 
 
-
-
     private class FuzzySearchAdapter extends BaseQuickAdapter<FuzzyBean, BaseViewHolder>{
         private List<FuzzyBean> mList;
 
@@ -2139,6 +2136,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
             }
         })).init(ss_brdips,Integer.parseInt(ss_brdports),at_gvtext.getText().toString().trim());//Integer.valueOf(ss_brdports)192.168.2.6
     }
+
     /**
      * 断开socket
      */
@@ -2150,6 +2148,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
             }
         })).onDestory();
     }
+
     /**
      * 去除空格回车符等
      *
@@ -2161,8 +2160,8 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
         Matcher matcher = pattern.matcher(s);
         return matcher.replaceAll("");
     }
-    public void setdataDisplay(String stringtextsss){//获取数据
 
+    public void setdataDisplay(String stringtextsss){//获取数据
             if (!stringtextsss.isEmpty()) {
                 list = new ArrayList<>();
                 String filenametcp=null;
@@ -2193,12 +2192,7 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
                 }else {
                     CommonUtil.toastNoRepeat(IndexActivity.this, "此文件无法打开");
                 }
-
             }
-
-
-
-
     }
 
     private Socket socket;
@@ -2450,9 +2444,6 @@ public class IndexActivity extends BaseActivity implements AdapterView.OnItemCli
     }
 
 
-
-
-
     private class GetLinePortAdapter extends BaseQuickAdapter<LineCodeEntity, BaseViewHolder> {
         private List<LineCodeEntity> mmmmList;
 

+ 11 - 1
app/src/main/java/com/uas/standard_esop/bean/ResourcefileBean.java

@@ -59,12 +59,22 @@ public class ResourcefileBean implements Serializable {
         public static class UrlBean implements Serializable {
             private String path;
             private String filename;
+            private String keystep;    //Sop页的关键岗位
             private String li_code;
             private boolean isChecked;
 
-            public UrlBean(String path, String filename) {
+            public String getKeystep() {
+                return keystep;
+            }
+
+            public void setKeystep(String keystep) {
+                this.keystep = keystep;
+            }
+
+            public UrlBean(String path, String filename,String keystep) {
                 this.path = path;
                 this.filename = filename;
+                this.keystep = keystep;
             }
 
             public String getLi_code() {

+ 7 - 0
app/src/main/java/com/uas/standard_esop/event/ReceiveNewImages.java

@@ -0,0 +1,7 @@
+package com.uas.standard_esop.event;
+
+public class ReceiveNewImages {
+
+    public ReceiveNewImages() {
+    }
+}

+ 6 - 5
app/src/main/java/com/uas/standard_esop/fragment/IndexSettingFragment.java

@@ -407,12 +407,13 @@ public class IndexSettingFragment extends BaseFragment implements View.OnClickLi
                                 VolleyUtil.setVolleyHandler(mHandler);
                                 //连接服务器
                                 VolleyUtil.getVolleyUtil().requestConnectServer(getActivity(), GloableParams.ADDRESS_LOGOUT_APPLY, VolleyUtil.METHOD_GET, VolleyUtil.FRAGMENT_LOGOUT);
-                                SharedPreUtil.removeString(getContext(),"ss_name");
-                                SharedPreUtil.removeString(getContext(),"ss_code");
-                                SharedPreUtil.removeString(getContext(),"ss_brdip");
-                                SharedPreUtil.removeString(getContext(),"ss_brdport");
-                                /*PdaApplication.mRequestQueue.cancelAll(TAG + "logout");
+//                                SharedPreUtil.removeString(getContext(),"ss_name");
+//                                SharedPreUtil.removeString(getContext(),"ss_code");
+//                                SharedPreUtil.removeString(getContext(),"ss_brdip");
+//                                SharedPreUtil.removeString(getContext(),"ss_brdport");
+
 
+                                /*PdaApplication.mRequestQueue.cancelAll(TAG + "logout");
                                 mStringRequest = new StringRequest(Request.Method.GET, GloableParams.ADDRESS_LOGOUT_APPLY,
                                         new Response.Listener<String>() {
                                             @Override

+ 1 - 0
app/src/main/java/com/uas/standard_esop/global/GloableParams.java

@@ -909,6 +909,7 @@ public class GloableParams {
     //获取资源文件
     private static final String ADDRESSTAIL_RESOURCEFILE = "/api/pda/ESOP/getESOP.action";
 //    private static final String ADDRESSTAIL_RESOURCEFILE = "/common/downloadbyId.action";
+    //SOP搜索接口
     private static final String ADDRESSTAIL_INDEXES_SOP = "/api/pda/ESOP/getProductSOP.action";
 
     //线别筛选

+ 14 - 0
app/src/main/java/com/uas/standard_esop/tools/SharedPreUtil.java

@@ -72,6 +72,20 @@ public class SharedPreUtil {
         return sharedPreUtil.getInt(key, defaultInt);
     }
 
+    public static void saveBoolean(Context context, String key, boolean value) {
+        if (sharedPreUtil == null) {
+            sharedPreUtil = context.getSharedPreferences(SHAREDPREF_URI, 0);
+        }
+        sharedPreUtil.edit().putBoolean(key, value).apply();
+    }
+
+    public static boolean getBoolean(Context context, String key, boolean defaultInt) {
+        if (sharedPreUtil == null) {
+            sharedPreUtil = context.getSharedPreferences(SHAREDPREF_URI, 0);
+        }
+        return sharedPreUtil.getBoolean(key, defaultInt);
+    }
+
     public static void removeInt(Context context, String key) {
         if (sharedPreUtil == null) {
             sharedPreUtil = context.getSharedPreferences(SHAREDPREF_URI, 0);

+ 260 - 0
app/src/main/java/com/uas/standard_esop/util/AppManager.java

@@ -0,0 +1,260 @@
+
+package com.uas.standard_esop.util;
+
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.content.Context;
+
+import java.util.Stack;
+
+/**
+ * activity管理
+ */
+public class AppManager {
+    private static Stack<Activity> activityStack;
+    private volatile static AppManager instance;
+
+    private AppManager() {
+    }
+
+    public static AppManager getAppManager() {
+        if (instance == null) {
+            synchronized (AppManager.class) {
+                if (instance == null) {
+                    instance = new AppManager();
+                    instance.activityStack = new Stack();
+                }
+            }
+
+        }
+        return instance;
+    }
+
+    /**
+     * 添加Activity到堆栈
+     */
+    public void addActivity(Activity activity) {
+        if (activityStack == null) {
+            activityStack = new Stack<Activity>();
+        }
+        activityStack.add(activity);
+    }
+
+    /**
+     * 获取当前Activity(堆栈中最后一个压入的)
+     */
+    public Activity currentActivity() {
+        try {
+            Activity activity = activityStack.lastElement();
+            return activity;
+        } catch (Exception e) {
+//            e.printStackTrace();
+            return null;
+        }
+    }
+
+    /**
+     * 获取当前Activity的前一个Activity
+     */
+    public Activity preActivity() {
+        int index = activityStack.size() - 2;
+        if (index < 0) {
+            return null;
+        }
+        Activity activity = activityStack.get(index);
+        return activity;
+    }
+
+    /**
+     * 结束当前Activity(堆栈中最后一个压入的)
+     */
+    public void finishActivity() {
+        Activity activity = activityStack.lastElement();
+        finishActivity(activity);
+    }
+
+    /**
+     * 结束指定的Activity
+     */
+    public void finishActivity(Activity activity) {
+        if (activity != null) {
+            activityStack.remove(activity);
+            activity.finish();
+            activity = null;
+        }
+    }
+
+    /**
+     * 移除指定的Activity
+     */
+    public void removeActivity(Activity activity) {
+        if (activity != null) {
+            activityStack.remove(activity);
+            activity = null;
+        }
+    }
+
+    /**
+     * 结束指定类名的Activity
+     */
+    public void finishActivity(Class<?> cls) {
+        try {
+            for (Activity activity : activityStack) {
+                if (activity.getClass().equals(cls)) {
+                    finishActivity(activity);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 结束所有Activity
+     */
+    public void finishAllActivity() {
+        for (int i = 0, size = activityStack.size(); i < size; i++) {
+            if (null != activityStack.get(i)) {
+                activityStack.get(i).finish();
+            }
+        }
+        activityStack.clear();
+    }
+
+    /**
+     * 结束所有Activity,跳转指定activity
+     */
+    public void finishAllButMainActivity() {
+//        for (int i = 0, size = activityStack.size(); i < size; i++) {
+//            if (null != activityStack.get(i)) {
+//                if (activityStack.get(i) instanceof CaptchaActivity)
+//                    continue;
+//                activityStack.get(i).finish();
+//                activityStack.pop();
+//            }
+//        }
+
+
+//        while (activityStack.size() != 1) {
+//            if (null != activityStack.peek()) {
+//                if (activityStack.peek() instanceof HomeActivity)
+//                    continue;
+//                activityStack.peek().finish();
+//                activityStack.pop();
+//            }
+//        }
+    }
+
+
+    /**
+     * 返回到指定的activity
+     * @param cls
+     */
+    public void returnToActivity(Class<?> cls) {
+        while (activityStack.size() != 0)
+            if (activityStack.peek().getClass() == cls) {
+                break;
+            } else {
+                finishActivity(activityStack.peek());
+            }
+    }
+
+
+    /**
+     * 是否已经打开指定的activity
+     *
+     * @param cls
+     * @return
+     */
+    public boolean isOpenActivity(Class<?> cls) {
+        if (activityStack != null) {
+            for (int i = 0, size = activityStack.size(); i < size; i++) {
+                if (cls == activityStack.peek().getClass()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 退出应用程序
+     *
+     * @param context      上下文
+     * @param isBackground 是否开开启后台运行
+     */
+    public void AppExit(Context context, Boolean isBackground) {
+        try {
+            finishAllActivity();
+            ActivityManager activityMgr = (ActivityManager) context
+                    .getSystemService(Context.ACTIVITY_SERVICE);
+            activityMgr.restartPackage(context.getPackageName());
+        } catch (Exception e) {
+
+        } finally {
+            //如果有后台程序运行,请不要支持此句子
+            if (!isBackground) {
+                System.exit(0);
+            }
+        }
+    }
+
+    /**
+     * 弹出除cls外的所有activity
+     * @param cls
+     */
+    public void popAllActivityExceptOne(Class<? extends Activity> cls) {
+        while (true) {
+            Activity activity = currentActivity2();
+            if (activity == null) {
+                break;
+            }
+            if (activity.getClass().equals(cls)) {
+                break;
+            }
+            popActivity(activity);
+        }
+    }
+
+    /**
+     * 结束除cls之外的所有activity,执行结果都会清空Stack
+     *
+     * @param cls
+     */
+    public void finishAllActivityExceptOne(Class<? extends Activity> cls) {
+        while (!activityStack.empty()) {
+            Activity activity = currentActivity2();
+            if (activity.getClass().equals(cls)) {
+                popActivity(activity);
+            } else {
+                removeActivity(activity);
+            }
+        }
+    }
+
+
+    /**
+     * 将activity移出栈
+     * @param activity
+     */
+    public void popActivity(Activity activity) {
+        if (activity != null) {
+            activityStack.remove(activity);
+        }
+    }
+
+    /**
+     * 获得当前的activity(即最上层)
+     *
+     * @return
+     */
+    public Activity currentActivity2() {
+        Activity activity = null;
+        if (!activityStack.empty())
+            activity = activityStack.lastElement();
+        return activity;
+    }
+
+
+}

+ 3 - 0
app/src/main/java/com/uas/standard_esop/util/Constants.java

@@ -117,6 +117,9 @@ public interface Constants {
         //SOP缓存
         String NOTICE_MONITOR_SETTING="monitor_login";
 
+        //记录关键岗位开关
+        String KEY_POSITION_SWITCH = "Key_position_switch";
+
 
         //保存登录密码
         String LOGINPASSOWRD = "loginpassowrd";

+ 0 - 2
app/src/main/java/com/uas/standard_esop/view/SwitchView.java

@@ -137,8 +137,6 @@ public class SwitchView extends View {
         if (isPlaying || isPlayingRight) {
             invalidate();
         }
-
-
     }
 
     private int getInnerBackR() {

+ 9 - 0
app/src/main/res/drawable/custom_switch_thumb.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <size android:width="24dp" android:height="24dp"/>
+    <solid android:color="@color/jx_green" />
+    <corners android:radius="15dp" />
+
+</shape>

+ 9 - 0
app/src/main/res/drawable/custom_switch_track.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+
+    <size android:width="50dp" android:height="25dp" />
+    <solid android:color="#C0C0C0" />
+    <corners android:radius="12dp" />
+
+</shape>

+ 96 - 67
app/src/main/res/layout-large/activity_banner.xml

@@ -4,34 +4,36 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@color/white"
     android:orientation="horizontal"
     tools:context=".activity.BannerActivity"
-    android:background="@color/white"
     tools:ignore="MissingDefaultResource">
+
     <RelativeLayout
-        android:layout_weight="1"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:layout_weight="1">
 
         <com.stx.xhb.xbanner.XBanner
             android:id="@+id/x_banner"
             android:layout_width="match_parent"
-            android:layout_height="match_parent">
-        </com.stx.xhb.xbanner.XBanner>
+            android:layout_height="match_parent"></com.stx.xhb.xbanner.XBanner>
+
         <com.github.chrisbanes.photoview.PhotoView
             android:id="@+id/photo_view"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"/>
+            android:layout_height="match_parent" />
+
         <ImageView
-            android:visibility="gone"
             android:id="@+id/iv_fullscreen"
-            android:layout_alignParentRight="true"
-            android:layout_marginRight="@dimen/textsize_20"
-            android:layout_marginTop="@dimen/dp_40"
             android:layout_width="@dimen/dp_40"
             android:layout_height="@dimen/dp_40"
-            android:src="@drawable/fullscreen">
-        </ImageView>
+            android:layout_alignParentRight="true"
+            android:layout_marginTop="@dimen/dp_40"
+            android:layout_marginRight="@dimen/textsize_20"
+            android:src="@drawable/fullscreen"
+            android:visibility="gone"></ImageView>
+
         <LinearLayout
             android:id="@+id/iv_goback"
             android:layout_width="wrap_content"
@@ -39,137 +41,138 @@
             android:layout_marginLeft="@dimen/textsize_20"
             android:layout_marginTop="@dimen/dp_40"
             android:orientation="horizontal">
+
             <ImageView
                 android:id="@+id/imag_back"
-                android:layout_gravity="center"
                 android:layout_width="@dimen/textsize_20"
                 android:layout_height="@dimen/textsize_20"
-                android:src="@mipmap/goback">
-            </ImageView>
+                android:layout_gravity="center"
+                android:src="@mipmap/goback"></ImageView>
+
             <TextView
-                android:gravity="center"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
                 android:layout_gravity="center"
-                android:textSize="@dimen/textsize_20"
+                android:gravity="center"
                 android:text="返回"
                 android:textColor="#DF77CE"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content">
-            </TextView>
+                android:textSize="@dimen/textsize_20"></TextView>
         </LinearLayout>
     </RelativeLayout>
+
     <View
         android:layout_width="1dp"
         android:layout_height="match_parent"
-        android:background="@color/color_dark_grey">
-    </View>
+        android:background="@color/color_dark_grey"></View>
+
     <LinearLayout
-        android:layout_weight="3"
-        android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="@color/white">
+        android:layout_weight="3"
+        android:background="@color/white"
+        android:orientation="vertical">
 
         <TextView
-            android:visibility="invisible"
             android:id="@+id/tv_key_positions"
             android:layout_width="match_parent"
             android:layout_height="@dimen/dp_40"
+            android:layout_gravity="center"
             android:layout_marginLeft="30dp"
+            android:layout_marginTop="20dp"
             android:layout_marginRight="30dp"
-            android:layout_gravity="center"
             android:background="@color/yellow_light"
             android:gravity="center"
+            android:src="@drawable/search_48"
+            android:text="@string/key_positions"
             android:textColor="@color/black"
             android:textSize="31sp"
-            android:text="@string/key_positions"
-            android:src="@drawable/search_48"
-            android:layout_marginTop="20dp"/>
+            android:visibility="invisible" />
 
         <LinearLayout
-            android:layout_marginTop="10dp"
-            android:orientation="vertical"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:layout_marginTop="10dp"
+            android:orientation="vertical">
+
             <LinearLayout
                 android:layout_width="120dp"
                 android:layout_height="140dp"
-                android:layout_margin="@dimen/dp_10"
                 android:layout_gravity="center"
+                android:layout_margin="@dimen/dp_10"
                 android:background="@drawable/bg_chang_focus">
+
                 <ImageView
                     android:id="@+id/iv_pepole"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
                     android:layout_gravity="center"
-                    android:scaleType="fitXY">
-                </ImageView>
+                    android:scaleType="fitXY"></ImageView>
             </LinearLayout>
 
             <TextView
                 android:id="@+id/iv_name"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:textSize="@dimen/textsize_20"
                 android:layout_marginLeft="@dimen/textsize_20"
-                android:text="姓名">
-            </TextView>
+                android:text="姓名"
+                android:textSize="@dimen/textsize_20"></TextView>
+
             <TextView
-                android:layout_marginTop="5dp"
                 android:id="@+id/iv_jin"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:textSize="@dimen/textsize_20"
                 android:layout_marginLeft="@dimen/textsize_20"
-                android:text="技能">
-            </TextView>
+                android:layout_marginTop="5dp"
+                android:text="技能"
+                android:textSize="@dimen/textsize_20"></TextView>
 
             <LinearLayout
-                android:layout_marginTop="5dp"
                 android:layout_width="match_parent"
                 android:layout_height="30dp"
-                android:orientation="horizontal"
-                >
+                android:layout_marginTop="5dp"
+                android:orientation="horizontal">
 
                 <TextView
                     android:id="@+id/tv_jixiao"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:textSize="@dimen/textsize_20"
-                    android:layout_marginLeft="@dimen/textsize_20"
                     android:layout_gravity="center_vertical"
-                    android:text="绩效">
-                </TextView>
+                    android:layout_marginLeft="@dimen/textsize_20"
+                    android:text="绩效"
+                    android:textSize="@dimen/textsize_20"></TextView>
 
                 <ImageView
-                    android:visibility="gone"
-                    android:layout_gravity="center_vertical"
                     android:id="@+id/iv_jixiao"
                     android:layout_width="80dp"
                     android:layout_height="20dp"
+                    android:layout_gravity="center_vertical"
                     android:background="@color/red"
-                    />
+                    android:visibility="gone" />
 
             </LinearLayout>
 
 
         </LinearLayout>
+
         <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:layout_marginLeft="@dimen/textsize_20"
-            android:layout_marginRight="@dimen/textsize_20"
             android:layout_marginTop="5dp"
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_marginRight="@dimen/textsize_20"
+            android:orientation="horizontal">
+
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
+
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
-                    android:textSize="@dimen/textsize_20"
-                    android:text="人员">
-                </TextView>
+                    android:text="人员"
+                    android:textSize="@dimen/textsize_20"></TextView>
+
                 <FrameLayout
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
@@ -187,26 +190,52 @@
             </LinearLayout>
 
 
-
         </LinearLayout>
+
         <TextView
             android:id="@+id/get_data"
             android:layout_width="match_parent"
             android:layout_height="@dimen/dp_40"
+            android:layout_gravity="center"
             android:layout_marginLeft="30dp"
+            android:layout_marginTop="30dp"
             android:layout_marginRight="30dp"
-            android:layout_gravity="center"
             android:background="@drawable/bg_button"
             android:gravity="center"
-            android:textColor="@color/white"
-            android:textSize="@dimen/textsize_20"
-            android:text="获取人员信息"
             android:src="@drawable/search_48"
-            android:layout_marginTop="30dp"/>
+            android:text="获取人员信息"
+            android:textColor="@color/white"
+            android:textSize="@dimen/textsize_20" />
 
-    </LinearLayout>
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="30dp"
+            android:layout_marginTop="5dp"
+            android:orientation="horizontal"
+            android:gravity="center_vertical"
+            >
 
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginLeft="@dimen/textsize_20"
+                android:text="关键岗位: "
+                android:textSize="@dimen/textsize_20" />
+
+            <Switch
+                android:id="@+id/s_control"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="10dp"
+                android:thumb="@drawable/custom_switch_thumb"
+                android:track="@drawable/custom_switch_track"
+            />
+
+        </LinearLayout>
 
 
+    </LinearLayout>
+
 
 </LinearLayout>

+ 49 - 2
app/src/main/res/layout/activity_banner.xml

@@ -68,8 +68,25 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/white">
+
+        <TextView
+            android:visibility="invisible"
+            android:id="@+id/tv_key_positions"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_40"
+            android:layout_marginLeft="30dp"
+            android:layout_marginRight="30dp"
+            android:layout_gravity="center"
+            android:background="@color/yellow_light"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:textSize="31sp"
+            android:text="@string/key_positions"
+            android:src="@drawable/search_48"
+            android:layout_marginTop="20dp"/>
+
         <LinearLayout
-            android:layout_marginTop="70dp"
+            android:layout_marginTop="10dp"
             android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content">
@@ -105,6 +122,36 @@
                 android:layout_marginLeft="@dimen/textsize_20"
                 android:text="技能">
             </TextView>
+
+            <LinearLayout
+                android:layout_marginTop="5dp"
+                android:layout_width="match_parent"
+                android:layout_height="30dp"
+                android:orientation="horizontal"
+                >
+
+                <TextView
+                    android:id="@+id/tv_jixiao"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="@dimen/textsize_20"
+                    android:layout_marginLeft="@dimen/textsize_20"
+                    android:layout_gravity="center_vertical"
+                    android:text="绩效">
+                </TextView>
+
+                <ImageView
+                    android:visibility="gone"
+                    android:layout_gravity="center_vertical"
+                    android:id="@+id/iv_jixiao"
+                    android:layout_width="80dp"
+                    android:layout_height="20dp"
+                    android:background="@color/red"
+                    />
+
+            </LinearLayout>
+
+
         </LinearLayout>
         <LinearLayout
             android:layout_marginLeft="@dimen/textsize_20"
@@ -121,7 +168,7 @@
                     android:layout_height="wrap_content"
                     android:layout_gravity="center"
                     android:textSize="@dimen/textsize_20"
-                    android:text="人员">
+                    android:text="工号">
                 </TextView>
                 <FrameLayout
                     android:layout_width="0dp"

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

@@ -33,7 +33,6 @@
             app:srlAccentColor="@android:color/darker_gray" />
     </com.scwang.smartrefresh.layout.SmartRefreshLayout>
 
-
     <LinearLayout
         android:visibility="gone"
         android:layout_width="match_parent"

+ 5 - 1
build.gradle

@@ -3,6 +3,10 @@
 buildscript {
 //    ext.kotlin_version = '1.2.30'
     repositories {
+        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
+        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
+        maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
         maven { url "https://jitpack.io" }
         mavenCentral()
         google()
@@ -51,7 +55,7 @@ task clean(type: Delete) {
 
 ext {
     android = [
-            minSdkVersion    : 16,
+            minSdkVersion    : 17,
             targetSdkVersion : 28,
             compileSdkVersion: 28,
             buildToolsVersion: "28.0.3",

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml

@@ -5,7 +5,7 @@
     android:versionName="2.1.1" >
 
     <uses-sdk
-        android:minSdkVersion="16"
+        android:minSdkVersion="17"
         android:targetSdkVersion="28" />
 
     <application />

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/incremental/packageDebugResources/compile-file-map.properties

@@ -1,4 +1,4 @@
-#Wed Aug 21 14:26:32 CST 2024
+#Fri Sep 20 17:28:20 CST 2024
 D\:\\GongSi\\AS_XiangMu\\ESOP-STANDARD\\ESOP-STANDARD\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\default_ptr_rotate.png=D\:\\GongSi\\AS_XiangMu\\ESOP-STANDARD\\ESOP-STANDARD\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\default_ptr_rotate.png
 D\:\\GongSi\\AS_XiangMu\\ESOP-STANDARD\\ESOP-STANDARD\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-mdpi\\default_ptr_flip.png=D\:\\GongSi\\AS_XiangMu\\ESOP-STANDARD\\ESOP-STANDARD\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-mdpi-v4\\default_ptr_flip.png
 D\:\\GongSi\\AS_XiangMu\\ESOP-STANDARD\\ESOP-STANDARD\\pda_libs\\pulltoreflashlibrary\\src\\main\\res\\drawable-xhdpi\\default_ptr_flip.png=D\:\\GongSi\\AS_XiangMu\\ESOP-STANDARD\\ESOP-STANDARD\\pda_libs\\pulltoreflashlibrary\\build\\intermediates\\packaged_res\\debug\\drawable-xhdpi-v4\\default_ptr_flip.png

+ 1 - 1
pda_libs/pulltoreflashlibrary/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt

@@ -5,7 +5,7 @@
 5    android:versionName="2.1.1" >
 6
 7    <uses-sdk
-8        android:minSdkVersion="16"
+8        android:minSdkVersion="17"
 8-->D:\GongSi\AS_XiangMu\ESOP-STANDARD\ESOP-STANDARD\pda_libs\pulltoreflashlibrary\src\main\AndroidManifest.xml
 9        android:targetSdkVersion="28" />
 9-->D:\GongSi\AS_XiangMu\ESOP-STANDARD\ESOP-STANDARD\pda_libs\pulltoreflashlibrary\src\main\AndroidManifest.xml