diff --git a/RefreshRecyclerView/src/main/java/cn/lemon/view/adapter/BaseViewHolder.java b/RefreshRecyclerView/src/main/java/cn/lemon/view/adapter/BaseViewHolder.java index a74b306..6ec791c 100644 --- a/RefreshRecyclerView/src/main/java/cn/lemon/view/adapter/BaseViewHolder.java +++ b/RefreshRecyclerView/src/main/java/cn/lemon/view/adapter/BaseViewHolder.java @@ -28,6 +28,13 @@ public class BaseViewHolder extends RecyclerView.ViewHolder{ onItemViewClick(mData); } }); + itemView.setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View view) { + onItemViewLongClick(mData); + return true; + } + }); } public void onInitializeView() { @@ -55,5 +62,8 @@ public class BaseViewHolder extends RecyclerView.ViewHolder{ public void onItemViewClick(T data) { + } + public void onItemViewLongClick(T data){ + } } diff --git a/app/src/main/java/com/yutou/jianr_mg/Adapters/GameDataAdapters/WarAdapter.java b/app/src/main/java/com/yutou/jianr_mg/Adapters/GameDataAdapters/WarAdapter.java index f55f257..0a8d8e0 100644 --- a/app/src/main/java/com/yutou/jianr_mg/Adapters/GameDataAdapters/WarAdapter.java +++ b/app/src/main/java/com/yutou/jianr_mg/Adapters/GameDataAdapters/WarAdapter.java @@ -12,6 +12,7 @@ import android.widget.TextView; import com.alibaba.fastjson.JSON; import com.kaopiz.kprogresshud.KProgressHUD; import com.nostra13.universalimageloader.core.ImageLoader; +import com.yutou.jianr_mg.Data.AppData; import com.yutou.jianr_mg.Interfaces.ModInterface; import com.yutou.jianr_mg.R; import com.yutou.jianr_mg.Tools.ModUtils; @@ -104,7 +105,7 @@ public class WarAdapter extends RecyclerAdapter>> { @Override public void onItemViewClick(List> data) { super.onItemViewClick(data); - Utils.toast(getContext(),"详细内容正在咕,敬请期待"); + Utils.toast(getContext(),"详细内容正在咕,敬请期待:"+ AppData.magicPackageName); /* JSONArray array=new JSONArray(); for (Map datum : data) { try { diff --git a/app/src/main/java/com/yutou/jianr_mg/Adapters/MainUtilsAdapter.java b/app/src/main/java/com/yutou/jianr_mg/Adapters/MainUtilsAdapter.java index 5ddd662..56daea4 100644 --- a/app/src/main/java/com/yutou/jianr_mg/Adapters/MainUtilsAdapter.java +++ b/app/src/main/java/com/yutou/jianr_mg/Adapters/MainUtilsAdapter.java @@ -11,11 +11,13 @@ import com.yutou.jianr_mg.Application; import com.yutou.jianr_mg.Data.AppData; import com.yutou.jianr_mg.Data.MAppTools; import com.yutou.jianr_mg.R; +import com.yutou.jianr_mg.Tools.JianRUtils; import com.yutou.jianr_mg.Tools.Utils; import com.yutou.jianr_mg.views.BaseActivity; import cn.lemon.view.adapter.BaseViewHolder; import cn.lemon.view.adapter.RecyclerAdapter; +import me.drakeet.materialdialog.MaterialDialog; public class MainUtilsAdapter extends RecyclerAdapter { private ImageLoader imageLoader; @@ -94,5 +96,31 @@ public class MainUtilsAdapter extends RecyclerAdapter { Utils.toast(getContext(), "启动失败,请升级至最新版本或联系管理员"); } } + + @Override + public void onItemViewLongClick(MAppTools data) { + super.onItemViewLongClick(data); + String type = data.getMainFunction().split("#")[1]; + if(AppData.plugsin.containsKey(data.getPluginName()+".jar")) { + if (type.equals("localActivity")) { + MaterialDialog dialog = new MaterialDialog(getContext()); + dialog.setTitle("卸载插件"); + dialog.setMessage("确定删除" + data.getName() + "插件?"); + dialog.setNegativeButton("取消", v -> dialog.dismiss()); + dialog.setPositiveButton("确定", v -> { + try { + AppData.plugsin.remove(data.getPluginName() + ".jar"); + Utils.removePlugins(data.getPluginName()); + Utils.toast(getContext(), "卸载成功,重启生效"); + dialog.dismiss(); + } catch (Exception e) { + e.printStackTrace(); + } + }); + dialog.show(); + + } + } + } } } diff --git a/app/src/main/java/com/yutou/jianr_mg/MainActivity.java b/app/src/main/java/com/yutou/jianr_mg/MainActivity.java index ba8259d..d225f76 100644 --- a/app/src/main/java/com/yutou/jianr_mg/MainActivity.java +++ b/app/src/main/java/com/yutou/jianr_mg/MainActivity.java @@ -41,6 +41,7 @@ public class MainActivity extends AppCompatActivity { ActivitysManager.finishActivity(LoadingActivity.class); initViews(); JianRUtils.downlaodInit(true); + JianRUtils.readClientVersionIsbigzhao(this); new Thread(()->{ JianRUtils.reloadJianNiang(); JianRUtils.reloadEquipmnts(); diff --git a/app/src/main/java/com/yutou/jianr_mg/Network/HttpApi.java b/app/src/main/java/com/yutou/jianr_mg/Network/HttpApi.java index 6602fd1..4db2b8e 100644 --- a/app/src/main/java/com/yutou/jianr_mg/Network/HttpApi.java +++ b/app/src/main/java/com/yutou/jianr_mg/Network/HttpApi.java @@ -5,10 +5,11 @@ package com.yutou.jianr_mg.Network; */ public class HttpApi { - public static final String HOME="http://jianr.jianrmod.cn/"; - // public static final String HOME = "http://192.168.31.240:8088/"; //zzz_gz wifi + // public static final String HOME="http://jianr.jianrmod.cn/"; + //public static final String HOME = "http://192.168.31.240:8088/"; //zzz_gz wifi + // public static final String HOME = "http://192.168.43.68:8088/"; //zzz_gz wifi //public static final String HOME = "http://192.168.137.1:8088/"; //笔记本本身WIFI - // public static final String HOME = "http://192.168.1.84:8088/"; //公司 + public static final String HOME = "http://192.168.1.84:8088/"; //公司 public static final String HOME_URL=HOME+"android/"; //服务器 public static final String MOD_ALL = "mod/all.do"; diff --git a/app/src/main/java/com/yutou/jianr_mg/Tools/JianRUtils.java b/app/src/main/java/com/yutou/jianr_mg/Tools/JianRUtils.java index f97d233..94b2dd1 100644 --- a/app/src/main/java/com/yutou/jianr_mg/Tools/JianRUtils.java +++ b/app/src/main/java/com/yutou/jianr_mg/Tools/JianRUtils.java @@ -1,5 +1,8 @@ package com.yutou.jianr_mg.Tools; +import android.content.Context; +import android.content.SharedPreferences; + import com.alibaba.fastjson.JSON; import com.yutou.jianr_mg.Application; import com.yutou.jianr_mg.Data.AppData; @@ -177,36 +180,39 @@ public class JianRUtils { } return data; } + private static List jianNiangs; private static List equipmnts; + public static void reloadJianNiang() { try { - if(jianNiangs==null){ - jianNiangs=new ArrayList<>(); - JSONArray array=new JSONArray(Utils.readFile(Utils.getAppPath() + "/jdata/shipCardWu.json")); + if (jianNiangs == null) { + jianNiangs = new ArrayList<>(); + JSONArray array = new JSONArray(Utils.readFile(Utils.getAppPath() + "/jdata/shipCardWu.json")); for (int i = 0; i < array.length(); i++) { - JSONObject json=array.getJSONObject(i); - JianNiang jianNiang= JSON.parseObject(json.toString(),JianNiang.class); + JSONObject json = array.getJSONObject(i); + JianNiang jianNiang = JSON.parseObject(json.toString(), JianNiang.class); jianNiangs.add(jianNiang); } - System.out.println("缓存舰娘数:"+jianNiangs.size()); + System.out.println("缓存舰娘数:" + jianNiangs.size()); } } catch (Exception e) { e.printStackTrace(); getInit(); } } + public static List reloadEquipmnts() { try { - if(equipmnts==null){ - equipmnts=new ArrayList<>(); - JSONArray array=new JSONArray(Utils.readFile(Utils.getAppPath() + "/jdata/shipEquipmnt.json")); + if (equipmnts == null) { + equipmnts = new ArrayList<>(); + JSONArray array = new JSONArray(Utils.readFile(Utils.getAppPath() + "/jdata/shipEquipmnt.json")); for (int i = 0; i < array.length(); i++) { - JSONObject json=array.getJSONObject(i); - ShipEquipmnt jianNiang= JSON.parseObject(json.toString(),ShipEquipmnt.class); + JSONObject json = array.getJSONObject(i); + ShipEquipmnt jianNiang = JSON.parseObject(json.toString(), ShipEquipmnt.class); equipmnts.add(jianNiang); } - System.out.println("缓存装备数:"+equipmnts.size()); + System.out.println("缓存装备数:" + equipmnts.size()); } } catch (Exception e) { e.printStackTrace(); @@ -214,22 +220,24 @@ public class JianRUtils { } return equipmnts; } - public static ShipEquipmnt getEquipmnt(int cid,int type){ - try{ - Listequipmnts=reloadEquipmnts(); + + public static ShipEquipmnt getEquipmnt(int cid, int type) { + try { + List equipmnts = reloadEquipmnts(); for (ShipEquipmnt equipmnt : equipmnts) { - if(equipmnt.getCid()==cid){ + if (equipmnt.getCid() == cid) { return equipmnt; } - if(equipmnt.getType()==type){ + if (equipmnt.getType() == type) { return equipmnt; } } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } return null; } + public static void getInit() { File file = new File(Utils.getAppPath() + "/getInitConfigs"); try { @@ -265,11 +273,32 @@ public class JianRUtils { @Override public void over(boolean isOver) { - new Thread(()->{ + new Thread(() -> { JianRUtils.reloadJianNiang(); JianRUtils.reloadEquipmnts(); }).start(); } }); } + + public static void readClientVersionIsbigzhao(Context context) { + SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); + AppData.magicPackageName = sp.getString("magicVersion", "com.bigzhao.jianrmagicbox"); + } + + public static boolean readClientVersion(Context context) { + SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); + return sp.getString("magicVersion", "com.bigzhao.jianrmagicbox").equals("com.bigzhao.jianrmagicbox"); + } + public static void changeClientVersion(boolean b,Context context) { + SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); + if(b){ + sp.edit().putString("magicVersion","com.huanmeng.zhanjian2").apply(); + AppData.magicPackageName="com.huanmeng.zhanjian2"; + }else{ + sp.edit().putString("magicVersion","com.bigzhao.jianrmagicbox").apply(); + AppData.magicPackageName="com.bigzhao.jianrmagicbox"; + } + + } } diff --git a/app/src/main/java/com/yutou/jianr_mg/Tools/Utils.java b/app/src/main/java/com/yutou/jianr_mg/Tools/Utils.java index 6b6aad9..6f0872d 100644 --- a/app/src/main/java/com/yutou/jianr_mg/Tools/Utils.java +++ b/app/src/main/java/com/yutou/jianr_mg/Tools/Utils.java @@ -218,9 +218,9 @@ public class Utils { public static boolean writerFile(String srcFile, String data) { File file = new File(srcFile); - File path=new File(file.getAbsolutePath().split(file.getName())[0]); + File path = new File(file.getAbsolutePath().split(file.getName())[0]); if (!path.exists()) { - path.mkdirs(); + path.mkdirs(); } try { PrintWriter writer = new PrintWriter(file); @@ -265,8 +265,10 @@ public class Utils { } public static boolean getApplicationPackName(Context context, String packName) { + List packages = context.getPackageManager().getInstalledPackages(0); for (PackageInfo info : packages) { + System.out.println("被检测的包名:" + packName + " 当前包名:" + info.packageName); if (info.packageName.equals(packName)) { return true; } @@ -415,22 +417,22 @@ public class Utils { } static void Base64Decode(String base64, File file) { - try{ - byte[] b=Base64.decode(base64,Base64.DEFAULT); - if(!file.exists()){ + try { + byte[] b = Base64.decode(base64, Base64.DEFAULT); + if (!file.exists()) { file.createNewFile(); } - FileOutputStream outputStream=new FileOutputStream(file); + FileOutputStream outputStream = new FileOutputStream(file); outputStream.write(b); outputStream.flush(); outputStream.close(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } public static String getVersion() { - String versionName=null; + String versionName = null; try { PackageManager pm = Application.application.getPackageManager(); PackageInfo pi = pm.getPackageInfo(Application.application.getPackageName(), 0); @@ -440,4 +442,27 @@ public class Utils { } return versionName; } + + public static void removePlugins(String s) { + File file = new File(Application.application.getFilesDir() + "/plugin/" + s + ".jar"); + if (file.exists()) { + file.delete(); + } + File dex = new File(Application.application.getFilesDir() + "/plugin/oat/"); + if (dex.exists()) { + for (File listFile : dex.listFiles()) { + if (listFile.getName().contains(s)) { + listFile.delete(); + } + } + } + File arm = new File(Application.application.getFilesDir() + "/plugin/oat/arm/"); + if (arm.exists()) { + for (File listFile : arm.listFiles()) { + if (listFile.getName().contains(s)) { + listFile.delete(); + } + } + } + } } diff --git a/app/src/main/java/com/yutou/jianr_mg/services/MagicBoxService.java b/app/src/main/java/com/yutou/jianr_mg/services/MagicBoxService.java index 8a49664..602b952 100644 --- a/app/src/main/java/com/yutou/jianr_mg/services/MagicBoxService.java +++ b/app/src/main/java/com/yutou/jianr_mg/services/MagicBoxService.java @@ -10,6 +10,7 @@ import com.bigzhao.jianrmagicbox.aidl.IMagicBoxBinder; import com.yutou.jianr_mg.Application; import com.yutou.jianr_mg.Data.AppData; import com.yutou.jianr_mg.Databases.JianRDataDataBase; +import com.yutou.jianr_mg.Tools.JianRUtils; import com.yutou.jianr_mg.Tools.Utils; import com.yutou.jianr_mg.views.WarView; @@ -46,6 +47,7 @@ public class MagicBoxService { } public static MagicBoxService init() { + JianRUtils.readClientVersionIsbigzhao(Application.application); if (!Utils.getApplicationPackName(Application.application, AppData.magicPackageName)) { System.out.println("没有安装客户端"); return null; diff --git a/app/src/main/java/com/yutou/jianr_mg/views/ConfigActivity.java b/app/src/main/java/com/yutou/jianr_mg/views/ConfigActivity.java index 076b085..2721f88 100644 --- a/app/src/main/java/com/yutou/jianr_mg/views/ConfigActivity.java +++ b/app/src/main/java/com/yutou/jianr_mg/views/ConfigActivity.java @@ -9,8 +9,11 @@ import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; +import com.yutou.jianr_mg.Application; +import com.yutou.jianr_mg.Data.AppData; import com.yutou.jianr_mg.Network.HttpApi; import com.yutou.jianr_mg.R; +import com.yutou.jianr_mg.Tools.JianRUtils; import com.yutou.jianr_mg.Tools.RootUtils; import com.yutou.jianr_mg.Tools.Utils; @@ -30,41 +33,52 @@ public class ConfigActivity extends AppCompatActivity { } private void initView() { - listView = findViewById(R.id.listView); + listView = findViewById(R.id.listView); listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, config)); listView.setOnItemClickListener((parent, view, position, id) -> { - Intent intent=null; - switch (position){ + Intent intent = null; + switch (position) { case 0: RootUtils.setRootInstallModel(ConfigActivity.this); break; case 1: Utils.initImageLoader(ConfigActivity.this).clearDiskCache(); - Toast.makeText(ConfigActivity.this,"咕",Toast.LENGTH_LONG).show(); + Toast.makeText(ConfigActivity.this, "咕", Toast.LENGTH_LONG).show(); break; case 2: - intent=new Intent(this,WebActivity.class); - intent.putExtra("url", HttpApi.HOME_URL+"../html/join.jsp"); + intent = new Intent(this, WebActivity.class); + intent.putExtra("url", HttpApi.HOME_URL + "../html/join.jsp"); break; case 3: - intent=new Intent(this,WebActivity.class); - intent.putExtra("url", HttpApi.HOME_URL+"../html/about.jsp"); + intent = new Intent(this, WebActivity.class); + intent.putExtra("url", HttpApi.HOME_URL + "../html/about.jsp"); break; case 4: - intent=new Intent(this,LicenseActivity.class); + intent = new Intent(this, LicenseActivity.class); + break; + case 5: + if (JianRUtils.readClientVersion(Application.application)) { + JianRUtils.changeClientVersion(true,Application.application); + Utils.toast(Application.application,"已切换至覆盖版兼容模式"); + }else { + JianRUtils.changeClientVersion(false,Application.application); + Utils.toast(Application.application,"已切换至共存版兼容模式"); + } break; } - if(intent!=null){ + if (intent != null) { startActivity(intent); } }); } - private void initCofig(){ - config=new ArrayList<>(); + + private void initCofig() { + config = new ArrayList<>(); config.add("设置ROOT安装模式"); config.add("清空图片缓存"); config.add("加群"); config.add("关于我们"); config.add("开源项目协议"); + config.add("切换专用客户端版本"); } }