|
|
@@ -96,31 +96,10 @@ public class ApkUtils {
|
|
|
final ApkFileInfo apkFileInfo = new ApkFileInfo();
|
|
|
apkFileInfo.setPath(apkPath);
|
|
|
Observable.just(apkFileInfo)
|
|
|
- .filter(new Predicate<ApkFileInfo>() {
|
|
|
- @Override
|
|
|
- public boolean test(ApkFileInfo item){
|
|
|
- return !TextUtils.isEmpty(item.getPath());
|
|
|
- }
|
|
|
- })
|
|
|
- .filter(new Predicate<ApkFileInfo>() {
|
|
|
- @Override
|
|
|
- public boolean test(ApkFileInfo item) {
|
|
|
- return item.existsPath();
|
|
|
- }
|
|
|
- })
|
|
|
- .filter(new Predicate<ApkFileInfo>() {
|
|
|
- @Override
|
|
|
- public boolean test(ApkFileInfo item) {
|
|
|
- return !TextUtils.isEmpty(item.initPackageNameFromPath(context).getPackageName());
|
|
|
- }
|
|
|
- })
|
|
|
- .filter(new Predicate<ApkFileInfo>() {
|
|
|
- @Override
|
|
|
- public boolean test(ApkFileInfo item) {
|
|
|
- //已经安装且签名的md5相同,文件与安装应用的md5也相同,则过滤掉
|
|
|
- return !(item.checkInstall(context) && item.checkApkAndFileSignMd5() && item.checkApkAndFileMd5());
|
|
|
- }
|
|
|
- })
|
|
|
+ .filter(item -> !TextUtils.isEmpty(item.getPath()))
|
|
|
+ .filter(ApkFileInfo::existsPath)
|
|
|
+ .filter(item -> !TextUtils.isEmpty(item.initPackageNameFromPath(context).getPackageName()))
|
|
|
+ .filter(item -> !(item.checkInstall(context) && item.checkApkAndFileSignMd5() && item.checkApkAndFileMd5()))//已经安装且签名的md5相同,文件与安装应用的md5也相同,则过滤掉
|
|
|
.subscribeOn(Schedulers.io())
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
.subscribe(new AbsObserver<ApkFileInfo>() {
|
|
|
@@ -150,14 +129,11 @@ public class ApkUtils {
|
|
|
} else {//签名不同,则提示卸载
|
|
|
ViewUtil.showMsgDialog(SheepApp.getInstance(), new DialogConfig()
|
|
|
.setTitle("提示").setMsg("需要卸载当前应用才能继续安装,是否继续").setBtnLeftText("不用了")
|
|
|
- .setBtnRightText("继续").setBtnRightOnClickListener(new View.OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(View view) {
|
|
|
- //这里卸载后 没法继续,需要在接收卸载广播的地方进行安装操作
|
|
|
- DataUtil.putAsString(DataKey.KEY_WILL_INSTALL_APK_PATH, item.getPath());
|
|
|
- DataUtil.putAsString(DataKey.KEY_WILL_INSTALL_APK_PACKAGE_NAME, item.getPackageName());
|
|
|
- uninstallApk(SheepApp.getInstance(), item.getPackageName());
|
|
|
- }
|
|
|
+ .setBtnRightText("继续").setBtnRightOnClickListener(view -> {
|
|
|
+ //这里卸载后 没法继续,需要在接收卸载广播的地方进行安装操作
|
|
|
+ DataUtil.putAsString(DataKey.KEY_WILL_INSTALL_APK_PATH, item.getPath());
|
|
|
+ DataUtil.putAsString(DataKey.KEY_WILL_INSTALL_APK_PACKAGE_NAME, item.getPackageName());
|
|
|
+ uninstallApk(SheepApp.getInstance(), item.getPackageName());
|
|
|
}));
|
|
|
}
|
|
|
}
|