diff --git a/app/build.gradle b/app/build.gradle index 228b948..b890c74 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ android { defaultConfig { applicationId "com.aoleyun.sn" - versionCode 228 - versionName "1.6.0629-2" + versionCode 229 + versionName "1.6.0711" //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. minSdkVersion 24 @@ -776,6 +776,7 @@ dependencies { //Google implementation 'com.google.code.gson:gson:2.9.0' implementation 'com.google.zxing:core:3.5.0' +// implementation 'com.google.mlkit:face-detection:16.1.7' //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.13.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d859b29..baee31b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -214,7 +214,7 @@ android:name=".activity.update.UpdateActivity" android:exported="true" android:icon="@drawable/com_aoleyun_update" - android:label="检查更新" + android:label="策略更新" android:launchMode="singleInstance"> diff --git a/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java b/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java index d07d112..e264bcd 100644 --- a/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java +++ b/app/src/main/java/com/aoleyun/sn/disklrucache/CacheHelper.java @@ -6,10 +6,7 @@ import android.graphics.drawable.Drawable; import android.os.Environment; import android.util.Log; -import com.aoleyun.sn.comm.CommonConfig; import com.jakewharton.disklrucache.DiskLruCache; -import com.tencent.mmkv.BuildConfig; -import com.tencent.mmkv.MMKV; import org.json.JSONArray; import org.json.JSONException; @@ -20,29 +17,28 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Serializable; +import java.nio.charset.StandardCharsets; /** * 磁盘缓存帮助类 + * https://www.cnblogs.com/aademeng/articles/6817058.html */ public class CacheHelper { - private static final String TAG = "CacheHelper"; - - private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); + private static final String TAG = "DiskLruCacheHelper"; private static final String DIR_NAME = "diskCache"; private static final int MAX_COUNT = 1024 * 1024 * 1024; private static final int DEFAULT_APP_VERSION = 1; private DiskLruCache mDiskLruCache; - private Context mContext; public CacheHelper(Context context) { - this.mContext = context; mDiskLruCache = generateCache(context, DIR_NAME, MAX_COUNT); } @@ -75,9 +71,8 @@ public class CacheHelper { int appVersion = context == null ? DEFAULT_APP_VERSION : Utils.getAppVersion(context); - DiskLruCache diskLruCache = null; try { - diskLruCache = DiskLruCache.open( + return DiskLruCache.open( dir, appVersion, DEFAULT_APP_VERSION, @@ -85,13 +80,12 @@ public class CacheHelper { } catch (IOException e) { e.printStackTrace(); } - return diskLruCache; + return null; } private DiskLruCache generateCache(Context context, String dirName, int maxCount) { - DiskLruCache diskLruCache = null; try { - diskLruCache = DiskLruCache.open( + return DiskLruCache.open( getDiskCacheDir(context, dirName), Utils.getAppVersion(context), DEFAULT_APP_VERSION, @@ -99,7 +93,7 @@ public class CacheHelper { } catch (IOException e) { e.printStackTrace(); } - return diskLruCache; + return null; } // ======================================= @@ -107,9 +101,7 @@ public class CacheHelper { // ======================================= public void put(String key, String value) { - Log.e(TAG, "put: " + key); - mMMKV.encode(key + "_time", System.currentTimeMillis()); - mMMKV.encode(key + "_mmkv", value); + Log.e(TAG, "put: key = " + key + " value = " + value); DiskLruCache.Editor edit = null; BufferedWriter bw = null; @@ -119,15 +111,16 @@ public class CacheHelper { return; } OutputStream os = edit.newOutputStream(0); - bw = new BufferedWriter(new OutputStreamWriter(os)); + bw = new BufferedWriter(new OutputStreamWriter(os, StandardCharsets.UTF_8)); bw.write(value); edit.commit();//write CLEAN } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "put: " + e.getMessage()); try { - //s - edit.abort();//write REMOVE + if (edit != null) { + edit.abort();//write REMOVE + } } catch (IOException e1) { e1.printStackTrace(); Log.e(TAG, "put: " + e1.getMessage()); @@ -148,30 +141,27 @@ public class CacheHelper { Log.e(TAG, "getAsString: " + key); InputStream inputStream = null; try { - //write READ inputStream = get(key); if (inputStream == null) { - return mMMKV.decodeString(key + "_mmkv", null); + return null; } StringBuilder sb = new StringBuilder(); - int len = 0; - byte[] buf = new byte[128]; - while ((len = inputStream.read(buf)) != -1) { - sb.append(new String(buf, 0, len)); - } - if (BuildConfig.DEBUG) { - Log.e(TAG, "getAsString: " + sb.toString()); + InputStreamReader isr = new InputStreamReader(inputStream, StandardCharsets.UTF_8); + char[] buf = new char[1024]; + int len; + while ((len = isr.read(buf)) != -1) { + sb.append(buf, 0, len); } return sb.toString(); } catch (IOException e) { e.printStackTrace(); Log.e(TAG, "getAsString: " + e.getMessage()); + } finally { if (inputStream != null) { try { inputStream.close(); - } catch (IOException e1) { - e1.printStackTrace(); - Log.e(TAG, "getAsString: " + e1.getMessage()); + } catch (IOException e) { + e.printStackTrace(); } } } @@ -205,9 +195,9 @@ public class CacheHelper { public JSONArray getAsJSONArray(String key) { String JSONString = getAsString(key); + if (JSONString == null) return null; try { - JSONArray obj = new JSONArray(JSONString); - return obj; + return new JSONArray(JSONString); } catch (Exception e) { e.printStackTrace(); return null; @@ -239,7 +229,9 @@ public class CacheHelper { } catch (Exception e) { e.printStackTrace(); try { - editor.abort();//write REMOVE + if (editor != null) { + editor.abort();//write REMOVE + } } catch (IOException e1) { e1.printStackTrace(); } @@ -262,8 +254,8 @@ public class CacheHelper { if (is == null) { return null; } - ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buf = new byte[256]; int len = 0; while ((len = is.read(buf)) != -1) { @@ -272,6 +264,12 @@ public class CacheHelper { res = baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); + } finally { + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } } return res; } @@ -295,7 +293,9 @@ public class CacheHelper { } catch (IOException e) { e.printStackTrace(); try { - editor.abort(); + if (editor != null) { + editor.abort(); + } } catch (IOException e1) { e1.printStackTrace(); } @@ -371,8 +371,8 @@ public class CacheHelper { // ======================================= public boolean remove(String key) { try { - key = Utils.hashKeyForDisk(key); - return mDiskLruCache.remove(key); + String hashKey = Utils.hashKeyForDisk(key); + return mDiskLruCache.remove(hashKey); } catch (IOException e) { e.printStackTrace(); } @@ -385,7 +385,6 @@ public class CacheHelper { public void delete() throws IOException { mDiskLruCache.delete(); - mMMKV.clearAll(); } public void flush() throws IOException { @@ -419,12 +418,12 @@ public class CacheHelper { //basic editor public DiskLruCache.Editor editor(String key) { try { - key = Utils.hashKeyForDisk(key); + String hashKey = Utils.hashKeyForDisk(key); //wirte DIRTY - DiskLruCache.Editor edit = mDiskLruCache.edit(key); + DiskLruCache.Editor edit = mDiskLruCache.edit(hashKey); //edit maybe null :the entry is editing if (edit == null) { - Log.w(TAG, "the entry spcified key:" + key + " is editing by other . "); + Log.w(TAG, "the entry spcified key:" + hashKey + " is editing by other . "); } return edit; } catch (IOException e) { @@ -461,19 +460,17 @@ public class CacheHelper { // ======================================= private File getDiskCacheDir(Context context, String uniqueName) { - String cachePath; + File cacheDir; if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) || !Environment.isExternalStorageRemovable()) { - if (context.getExternalCacheDir() != null) { - cachePath = context.getExternalCacheDir().getPath(); - } else if (context.getExternalFilesDir("cache") != null) { - cachePath = context.getExternalFilesDir("cache").getPath(); - } else { - cachePath = context.getCacheDir().getPath(); + cacheDir = context.getExternalCacheDir(); + if (cacheDir == null) { + cacheDir = context.getCacheDir(); } } else { - cachePath = context.getCacheDir().getPath(); + cacheDir = context.getCacheDir(); } - return new File(cachePath + File.separator + uniqueName); + return new File(cacheDir, uniqueName); } + } diff --git a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java index aa42641..4b509bf 100644 --- a/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java +++ b/app/src/main/java/com/aoleyun/sn/network/NetInterfaceManager.java @@ -407,19 +407,19 @@ public class NetInterfaceManager { public static Observable withCache(Observable networkObservable, String cacheKey, long expireTimeMillis) { return Observable.defer(() -> { // Log.e(TAG, "withCache: cacheKey = " + cacheKey); - // 1. 读取缓存 - T cacheData = CACHE_MANAGER.getCache(cacheKey); - if (cacheData != null) { - Log.e(TAG, "withCache: getCache " + cacheKey); - return Observable.just(cacheData); - } + // 1. 读取缓存 + T cacheData = CACHE_MANAGER.getCache(cacheKey); + if (cacheData != null) { + Log.e(TAG, "withCache: getCache " + cacheKey); + return Observable.just(cacheData); + } - Log.e(TAG, "withCache: request " + cacheKey); - // 2. 无缓存则发起网络请求,成功后缓存 - return networkObservable - .subscribeOn(Schedulers.io()) - .doOnNext(data -> CACHE_MANAGER.saveCache(cacheKey, data, expireTimeMillis)); - }) + Log.e(TAG, "withCache: request " + cacheKey); + // 2. 无缓存则发起网络请求,成功后缓存 + return networkObservable + .subscribeOn(Schedulers.io()) + .doOnNext(data -> CACHE_MANAGER.saveCache(cacheKey, data, expireTimeMillis)); + }) .subscribeOn(Schedulers.io()) // 缓存IO切到子线程 .observeOn(AndroidSchedulers.mainThread()); } @@ -644,13 +644,13 @@ public class NetInterfaceManager { public Observable> getSnTagObservable() { return withCache(schedule(getDevicesStatusApi().getSnTag(Utils.getSerial(mContext))), UrlAddress.GET_DEVICES_TAGS, - 10 * CACHE_EXPIRE_ONE_MINUTE); + CACHE_EXPIRE_ONE_MINUTE); } public Observable> getPushTagObservable() { return withCache(schedule(getDevicesStatusApi().getPushTag(Utils.getSerial(mContext), 1)), UrlAddress.GET_PUSH_TAG, - 10 * CACHE_EXPIRE_ONE_MINUTE); + CACHE_EXPIRE_ONE_MINUTE); } public Observable> getScreenLockObservable() { @@ -881,36 +881,36 @@ public class NetInterfaceManager { Observable> ailogUpdateObservable = getUpdateObservable(PackageNames.AILOG); Observable.zip(infoUpdateObservable, storeUpdateObservable, desktopUpdateObservable, - notifyUpdateObservable, browserUpdateObservable, ailogUpdateObservable, - new Function6, BaseResponse, BaseResponse, - BaseResponse, BaseResponse, BaseResponse, - List>() { - @Override - public List apply - (BaseResponse appUpdateInfoBaseResponse, BaseResponse appUpdateInfoBaseResponse2, BaseResponse appUpdateInfoBaseResponse3, - BaseResponse appUpdateInfoBaseResponse4, BaseResponse appUpdateInfoBaseResponse5, BaseResponse appUpdateInfoBaseResponse6) throws Throwable { - List appUpdateInfos = new ArrayList<>(); - if (appUpdateInfoBaseResponse.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse.data); - } - if (appUpdateInfoBaseResponse2.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse2.data); - } - if (appUpdateInfoBaseResponse3.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse3.data); - } - if (appUpdateInfoBaseResponse4.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse4.data); - } - if (appUpdateInfoBaseResponse5.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse5.data); - } - if (appUpdateInfoBaseResponse6.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse6.data); - } - return appUpdateInfos; - } - }) + notifyUpdateObservable, browserUpdateObservable, ailogUpdateObservable, + new Function6, BaseResponse, BaseResponse, + BaseResponse, BaseResponse, BaseResponse, + List>() { + @Override + public List apply + (BaseResponse appUpdateInfoBaseResponse, BaseResponse appUpdateInfoBaseResponse2, BaseResponse appUpdateInfoBaseResponse3, + BaseResponse appUpdateInfoBaseResponse4, BaseResponse appUpdateInfoBaseResponse5, BaseResponse appUpdateInfoBaseResponse6) throws Throwable { + List appUpdateInfos = new ArrayList<>(); + if (appUpdateInfoBaseResponse.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse.data); + } + if (appUpdateInfoBaseResponse2.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse2.data); + } + if (appUpdateInfoBaseResponse3.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse3.data); + } + if (appUpdateInfoBaseResponse4.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse4.data); + } + if (appUpdateInfoBaseResponse5.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse5.data); + } + if (appUpdateInfoBaseResponse6.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse6.data); + } + return appUpdateInfos; + } + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) @@ -1031,40 +1031,40 @@ public class NetInterfaceManager { Observable> learningDesktopObservable = getUpdateObservable(desktop, useCache); Observable.zip(infoUpdateObservable, storeUpdateObservable, desktopUpdateObservable, - notifyUpdateObservable, browserUpdateObservable, learningDesktopObservable, ailogUpdateObservable, - new Function7, BaseResponse, BaseResponse, BaseResponse, - BaseResponse, BaseResponse, BaseResponse, List>() { - @Override - public List apply - (BaseResponse appUpdateInfoBaseResponse, BaseResponse appUpdateInfoBaseResponse2, BaseResponse appUpdateInfoBaseResponse3, - BaseResponse appUpdateInfoBaseResponse4, BaseResponse appUpdateInfoBaseResponse5, BaseResponse appUpdateInfoBaseResponse6, - BaseResponse appUpdateInfoBaseResponse7 - ) throws Throwable { - List appUpdateInfos = new ArrayList<>(); - if (appUpdateInfoBaseResponse.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse.data); - } - if (appUpdateInfoBaseResponse2.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse2.data); - } - if (appUpdateInfoBaseResponse3.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse3.data); - } - if (appUpdateInfoBaseResponse4.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse4.data); - } - if (appUpdateInfoBaseResponse5.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse5.data); - } - if (appUpdateInfoBaseResponse6.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse6.data); - } - if (appUpdateInfoBaseResponse7.isSuccess()) { - appUpdateInfos.add(appUpdateInfoBaseResponse7.data); - } - return appUpdateInfos; - } - }) + notifyUpdateObservable, browserUpdateObservable, learningDesktopObservable, ailogUpdateObservable, + new Function7, BaseResponse, BaseResponse, BaseResponse, + BaseResponse, BaseResponse, BaseResponse, List>() { + @Override + public List apply + (BaseResponse appUpdateInfoBaseResponse, BaseResponse appUpdateInfoBaseResponse2, BaseResponse appUpdateInfoBaseResponse3, + BaseResponse appUpdateInfoBaseResponse4, BaseResponse appUpdateInfoBaseResponse5, BaseResponse appUpdateInfoBaseResponse6, + BaseResponse appUpdateInfoBaseResponse7 + ) throws Throwable { + List appUpdateInfos = new ArrayList<>(); + if (appUpdateInfoBaseResponse.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse.data); + } + if (appUpdateInfoBaseResponse2.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse2.data); + } + if (appUpdateInfoBaseResponse3.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse3.data); + } + if (appUpdateInfoBaseResponse4.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse4.data); + } + if (appUpdateInfoBaseResponse5.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse5.data); + } + if (appUpdateInfoBaseResponse6.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse6.data); + } + if (appUpdateInfoBaseResponse7.isSuccess()) { + appUpdateInfos.add(appUpdateInfoBaseResponse7.data); + } + return appUpdateInfos; + } + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) @@ -1186,53 +1186,53 @@ public class NetInterfaceManager { public void getDefaultDesktop(BehaviorSubject lifecycle, onCompleteCallback callback) { Observable.zip(getDesktopObservable(), getDesktopsDiyUpdate(), new BiFunction, BaseResponse, List>() { - @Override - public List apply(BaseResponse forceDownloadDataBaseResponse, BaseResponse forceDownloadDataBaseResponse2) throws Throwable { - List forceDownloadDataList = new ArrayList<>(); - if (forceDownloadDataBaseResponse.isSuccess()) { - forceDownloadDataList.add(forceDownloadDataBaseResponse.data); - } - if (forceDownloadDataBaseResponse2.isSuccess()) { - forceDownloadDataList.add(forceDownloadDataBaseResponse2.data); - } - return forceDownloadDataList; - } - }) + @Override + public List apply(BaseResponse forceDownloadDataBaseResponse, BaseResponse forceDownloadDataBaseResponse2) throws Throwable { + List forceDownloadDataList = new ArrayList<>(); + if (forceDownloadDataBaseResponse.isSuccess()) { + forceDownloadDataList.add(forceDownloadDataBaseResponse.data); + } + if (forceDownloadDataBaseResponse2.isSuccess()) { + forceDownloadDataList.add(forceDownloadDataBaseResponse2.data); + } + return forceDownloadDataList; + } + }) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) .subscribe(getDefaultDesktopObserver(callback)); } public void getDefaultDesktop(onCompleteCallback callback) { Observable.zip(getDesktopObservable(), getDesktopsDiyUpdate(), new BiFunction, BaseResponse, List>() { - @Override - public List apply(BaseResponse forceDownloadDataBaseResponse, BaseResponse forceDownloadDataBaseResponse2) throws Throwable { - List forceDownloadDataList = new ArrayList<>(); - if (forceDownloadDataBaseResponse.isSuccess()) { - forceDownloadDataList.add(forceDownloadDataBaseResponse.data); - } - if (forceDownloadDataBaseResponse2.isSuccess()) { - forceDownloadDataList.add(forceDownloadDataBaseResponse2.data); - } - return forceDownloadDataList; - } - }) + @Override + public List apply(BaseResponse forceDownloadDataBaseResponse, BaseResponse forceDownloadDataBaseResponse2) throws Throwable { + List forceDownloadDataList = new ArrayList<>(); + if (forceDownloadDataBaseResponse.isSuccess()) { + forceDownloadDataList.add(forceDownloadDataBaseResponse.data); + } + if (forceDownloadDataBaseResponse2.isSuccess()) { + forceDownloadDataList.add(forceDownloadDataBaseResponse2.data); + } + return forceDownloadDataList; + } + }) .subscribe(getDefaultDesktopObserver(callback)); } public void getDefaultDesktop() { Observable.zip(getDesktopObservable(), getDesktopsDiyUpdate(), new BiFunction, BaseResponse, List>() { - @Override - public List apply(BaseResponse forceDownloadDataBaseResponse, BaseResponse forceDownloadDataBaseResponse2) throws Throwable { - List forceDownloadDataList = new ArrayList<>(); - if (forceDownloadDataBaseResponse.isSuccess()) { - forceDownloadDataList.add(forceDownloadDataBaseResponse.data); - } - if (forceDownloadDataBaseResponse2.isSuccess()) { - forceDownloadDataList.add(forceDownloadDataBaseResponse2.data); - } - return forceDownloadDataList; - } - }) + @Override + public List apply(BaseResponse forceDownloadDataBaseResponse, BaseResponse forceDownloadDataBaseResponse2) throws Throwable { + List forceDownloadDataList = new ArrayList<>(); + if (forceDownloadDataBaseResponse.isSuccess()) { + forceDownloadDataList.add(forceDownloadDataBaseResponse.data); + } + if (forceDownloadDataBaseResponse2.isSuccess()) { + forceDownloadDataList.add(forceDownloadDataBaseResponse2.data); + } + return forceDownloadDataList; + } + }) .subscribe(getDefaultDesktopObserver(null)); } @@ -2555,18 +2555,18 @@ public class NetInterfaceManager { public void getBookMarkBlackWhiteList(BehaviorSubject lifecycle, onCompleteCallback callback) { Observable.zip(getBrowserBookmarksObservable(), getBrowserListSettingObservable(), new BiFunction, BaseResponse, String>() { - @Override - public String apply(BaseResponse browserBookmarksBaseResponse, BaseResponse browserDataBaseResponse) throws Throwable { - String homePage = ""; - if (browserBookmarksBaseResponse.isSuccess()) { - homePage = browserBookmarksBaseResponse.data.getHomepage(); - } + @Override + public String apply(BaseResponse browserBookmarksBaseResponse, BaseResponse browserDataBaseResponse) throws Throwable { + String homePage = ""; + if (browserBookmarksBaseResponse.isSuccess()) { + homePage = browserBookmarksBaseResponse.data.getHomepage(); + } - setBrowserBookmarks(browserBookmarksBaseResponse); - setBlackWhiteList(browserDataBaseResponse, homePage); - return homePage; - } - }) + setBrowserBookmarks(browserBookmarksBaseResponse); + setBlackWhiteList(browserDataBaseResponse, homePage); + return homePage; + } + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) @@ -2599,18 +2599,18 @@ public class NetInterfaceManager { public void getBookMarkBlackWhiteList() { Observable.zip(getBrowserBookmarksObservable(), getBrowserListSettingObservable(), new BiFunction, BaseResponse, String>() { - @Override - public String apply(BaseResponse browserBookmarksBaseResponse, BaseResponse browserDataBaseResponse) throws Throwable { - String homePage = ""; - if (browserBookmarksBaseResponse.isSuccess()) { - homePage = browserBookmarksBaseResponse.data.getHomepage(); - } + @Override + public String apply(BaseResponse browserBookmarksBaseResponse, BaseResponse browserDataBaseResponse) throws Throwable { + String homePage = ""; + if (browserBookmarksBaseResponse.isSuccess()) { + homePage = browserBookmarksBaseResponse.data.getHomepage(); + } - setBrowserBookmarks(browserBookmarksBaseResponse); - setBlackWhiteList(browserDataBaseResponse, homePage); - return homePage; - } - }) + setBrowserBookmarks(browserBookmarksBaseResponse); + setBlackWhiteList(browserDataBaseResponse, homePage); + return homePage; + } + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @@ -3164,31 +3164,31 @@ public class NetInterfaceManager { public void getAllInfoAndSetting(BehaviorSubject lifecycle) { Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction>, BaseResponse>, List>() { - @Override - public List apply(BaseResponse> appListInfoResponse, BaseResponse> netAndLaunchDataResponse) throws Throwable { - Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code); - Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code); + @Override + public List apply(BaseResponse> appListInfoResponse, BaseResponse> netAndLaunchDataResponse) throws Throwable { + Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code); + Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code); - if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) { - List appListInfos = appListInfoResponse.data; - Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); - mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); - List netAndLaunchDataList = netAndLaunchDataResponse.data; - JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos); - return appListInfos; - } else if (appListInfoResponse.isSuccess()) { - List appListInfos = appListInfoResponse.data; - Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); - mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); - return appListInfos; - } else if (netAndLaunchDataResponse.isSuccess()) { - List netAndLaunchDataList = netAndLaunchDataResponse.data; - JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList); - } - return null; - } - }) + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos); + return appListInfos; + } else if (appListInfoResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + return appListInfos; + } else if (netAndLaunchDataResponse.isSuccess()) { + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList); + } + return null; + } + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY)) @@ -3218,31 +3218,31 @@ public class NetInterfaceManager { @Deprecated public void getAllInfoAndSetting() { Observable.zip(getAllAppControl(), getAppAutoStartUpdateAndNetObservable(), new BiFunction>, BaseResponse>, List>() { - @Override - public List apply(BaseResponse> appListInfoResponse, BaseResponse> netAndLaunchDataResponse) throws Throwable { - Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code); - Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code); + @Override + public List apply(BaseResponse> appListInfoResponse, BaseResponse> netAndLaunchDataResponse) throws Throwable { + Log.e("getAllInfoAndSetting", "apply: appListInfoResponse code = " + appListInfoResponse.code); + Log.e("getAllInfoAndSetting", "apply: netAndLaunchDataResponse code = " + netAndLaunchDataResponse.code); - if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) { - List appListInfos = appListInfoResponse.data; - Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); - mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + if (appListInfoResponse.isSuccess() && netAndLaunchDataResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); - List netAndLaunchDataList = netAndLaunchDataResponse.data; - JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos); - return appListInfos; - } else if (appListInfoResponse.isSuccess()) { - List appListInfos = appListInfoResponse.data; - Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); - mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); - return appListInfos; - } else if (netAndLaunchDataResponse.isSuccess()) { - List netAndLaunchDataList = netAndLaunchDataResponse.data; - JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList); - } - return null; - } - }) + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList, appListInfos); + return appListInfos; + } else if (appListInfoResponse.isSuccess()) { + List appListInfos = appListInfoResponse.data; + Set pkgList = appListInfos.stream().map(AppListInfo::getApp_package).collect(Collectors.toSet()); + mMMKV.encode(CommonConfig.ALL_APP_PKG_SET, pkgList); + return appListInfos; + } else if (netAndLaunchDataResponse.isSuccess()) { + List netAndLaunchDataList = netAndLaunchDataResponse.data; + JgyUtils.getInstance().setNetAndlaunch(netAndLaunchDataList); + } + return null; + } + }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer>() { diff --git a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java index 88a471c..aa39d97 100644 --- a/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java +++ b/app/src/main/java/com/aoleyun/sn/utils/JgyUtils.java @@ -1,5 +1,7 @@ package com.aoleyun.sn.utils; +import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; + import android.annotation.SuppressLint; import android.app.ActivityManager; import android.app.ActivityManagerNative; @@ -125,8 +127,6 @@ import io.reactivex.rxjava3.core.ObservableOnSubscribe; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -import static android.app.ActivityManager.RECENT_IGNORE_UNAVAILABLE; - public class JgyUtils { private static final String TAG = "JgyUtils"; @@ -1804,8 +1804,10 @@ public class JgyUtils { if (ApkUtils.canremove_systemapp.contains(packageName)) { continue; } - if (ApkUtils.aihuaApp.contains(packageName)) { - continue; + if ("K101".equals(Build.MODEL) || "AS001".equals(Build.MODEL)) { + if (ApkUtils.aihuaApp.contains(packageName)) { + continue; + } } if (ApkUtils.mJxwApp.contains(packageName)) { continue; diff --git a/app/src/main/res/drawable-hdpi/com_aoleyun_update.png b/app/src/main/res/drawable-hdpi/com_aoleyun_update.png index d0c9e8d..3083cc8 100644 Binary files a/app/src/main/res/drawable-hdpi/com_aoleyun_update.png and b/app/src/main/res/drawable-hdpi/com_aoleyun_update.png differ diff --git a/app/src/main/res/layout/activity_update.xml b/app/src/main/res/layout/activity_update.xml index 58b3004..ff14477 100644 --- a/app/src/main/res/layout/activity_update.xml +++ b/app/src/main/res/layout/activity_update.xml @@ -41,7 +41,7 @@ android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="应用更新检测" + android:text="管控策略检测" android:textColor="@color/black" android:textSize="@dimen/sp_14" android:textStyle="bold" diff --git a/build.gradle b/build.gradle index 2d04768..1a19f98 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '2.3.21' + ext.kotlin_version = '2.4.0' repositories { google()