version:2.1.0

update:
fix:浏览器黑白名单会导致浏览器设置主页自由访问
add:
This commit is contained in:
2021-06-09 14:33:42 +08:00
parent c257c9a2cf
commit ff98f8d7a0
4 changed files with 148 additions and 65 deletions

View File

@@ -78,8 +78,8 @@ android {
// //老平台正式 // //老平台正式
// official { // official {
// flavorDimensions "default" // flavorDimensions "default"
// versionCode 1038 // versionCode 1039
// versionName "2.0.3.8" // versionName "2.0.3.9"
// /*********************************极光推送************************************/ // /*********************************极光推送************************************/
// manifestPlaceholders = [ // manifestPlaceholders = [
// JPUSH_PKGNAME: "com.jiaoguanyi.appstore", // JPUSH_PKGNAME: "com.jiaoguanyi.appstore",
@@ -229,7 +229,7 @@ android {
variant.outputs.each { output -> variant.outputs.each { output ->
def outputFile = "" def outputFile = ""
if (outputFile != null) { if (outputFile != null) {
def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${buildType.name}.apk" def fileName = "${appName()}-${variant.versionCode}-V${variant.versionName}-${releaseTime()}-${productFlavors[0].name}-${buildType.name}.apk"
output.outputFileName = fileName output.outputFileName = fileName
} }
} }

View File

@@ -212,7 +212,7 @@ public class MainPresenter implements MainContact.Presenter {
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject(); JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
int locked = jsonObject.get("lock").getAsInt(); int locked = jsonObject.get("lock").getAsInt();
Log.e("getLockedState", "locked: " + locked); Log.e("getLockedState", "locked: " + locked);
int oldState = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", -1); int oldState = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", 0);
Log.e("getLockedState", "qch_unlock_ipad: " + oldState); Log.e("getLockedState", "qch_unlock_ipad: " + oldState);
//后台1是锁定底层0是锁定 //后台1是锁定底层0是锁定
if (locked == 1) { if (locked == 1) {
@@ -237,7 +237,7 @@ public class MainPresenter implements MainContact.Presenter {
@Override @Override
public void onError(@NonNull Throwable e) { public void onError(@NonNull Throwable e) {
Log.e("getLockedState", "onError: " + e.getMessage()); Log.e("getLockedState", "onError: " + e.getMessage());
int locked = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", -1); int locked = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", 0);
Log.e("getLockedState", "locked: " + locked); Log.e("getLockedState", "locked: " + locked);
mView.setLockedState(locked == 0); mView.setLockedState(locked == 0);
} }
@@ -716,7 +716,7 @@ public class MainPresenter implements MainContact.Presenter {
mView.getDeviceBatchFinished(); mView.getDeviceBatchFinished();
return; return;
} }
int locked = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", -1); int locked = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", 0);
if (locked == 0) { if (locked == 0) {
// NetInterfaceManager.getInstance() // NetInterfaceManager.getInstance()
// .getBatchObservable() // .getBatchObservable()
@@ -821,13 +821,71 @@ public class MainPresenter implements MainContact.Presenter {
}); });
} }
// TODO: 2021/6/8 使用现有代码会影响浏览器主页管控
// @Override
// public void getBrowserList() {
//// if (JGYUtils.isOfficialVersion()) {
// SetBrowserList();
//// } else {
//// NewSetBrowserList();
//// }
// }
@Override @Override
public void getBrowserList() { public void getBrowserList() {
// if (JGYUtils.isOfficialVersion()) { NetInterfaceManager.getInstance()
SetBrowserList(); .getBrowserListSettingObservable()
// } else { .observeOn(Schedulers.io())
// NewSetBrowserList(); .subscribe(new Observer<BaseResponse<BrowserData>>() {
// } @Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getBrowserList", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<BrowserData> browserDataBaseResponse) {
Log.e("getBrowserList", "onNext: ");
if (browserDataBaseResponse.code == 200) {
String white = browserDataBaseResponse.data.getWhite();
if (!TextUtils.isEmpty(white)) {
String homePage = Settings.System.getString(mContext.getContentResolver(), "homepagURL");
if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) {
white += "," + homePage;
}
boolean whiteList = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", white);
Log.e("getBrowserList", "setBrowserList white: " + white + ":" + whiteList);
mView.getBrowserListFinished(white);
} else {
Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", " ");
mView.getBrowserListFinished("");
}
String black = browserDataBaseResponse.data.getBlack();
if (!TextUtils.isEmpty(black)) {
boolean blackList = Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", black);
Log.e("getBrowserList", "setBrowserList black: " + black + ":" + blackList);
} else {
Settings.System.putString(mContext.getContentResolver(), "qch_webblack_url", " ");
}
} else {
mView.getBrowserListFinished("");
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getBrowserList", "onError: " + e.getMessage());
String whiteURLList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
Log.e("getBrowserList", "whiteURLList: " + whiteURLList);
mView.getBrowserListFinished(whiteURLList);
onComplete();
}
@Override
public void onComplete() {
Log.e("getBrowserList", "onComplete: ");
}
});
} }
@@ -974,7 +1032,7 @@ public class MainPresenter implements MainContact.Presenter {
//主页 //主页
String homepagURL = browserBookmarksBaseResponse.data.getHomepage(); String homepagURL = browserBookmarksBaseResponse.data.getHomepage();
boolean home = Settings.System.putString(mContext.getContentResolver(), "homepagURL", homepagURL); boolean home = Settings.System.putString(mContext.getContentResolver(), "homepagURL", homepagURL);
Log.e("getBrowserBookmarks", "onNext: homepagURL: save homepagURL = " + home); Log.e("getBrowserBookmarks", "onNext: homepagURL: save homepagURL = " + homepagURL);
if (whiteLists.size() <= 0 || !whiteLists.contains(homepagURL)) { if (whiteLists.size() <= 0 || !whiteLists.contains(homepagURL)) {
whiteString.append(",").append(homepagURL); whiteString.append(",").append(homepagURL);
Log.e("getBrowserBookmarks ", "homepagURL: " + homepagURL); Log.e("getBrowserBookmarks ", "homepagURL: " + homepagURL);
@@ -1044,18 +1102,18 @@ public class MainPresenter implements MainContact.Presenter {
@Override @Override
public void getBrowserWhiteList() { public void getBrowserWhiteList() {
new URLUtils(mContext).setBrowserList(); new URLUtils(mContext).setBrowserList();
try { // try {
int qch_website_isBlackWebUrl = Settings.System.getInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl"); // int qch_website_isBlackWebUrl = Settings.System.getInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl");
String BlackBrowserArray = Settings.System.getString(mContext.getContentResolver(), "BlackBrowserArray"); // String BlackBrowserArray = Settings.System.getString(mContext.getContentResolver(), "BlackBrowserArray");
String DeselectBrowserArray = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray"); // String DeselectBrowserArray = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
String qch_webblack_url = Settings.System.getString(mContext.getContentResolver(), "qch_webblack_url"); // String qch_webblack_url = Settings.System.getString(mContext.getContentResolver(), "qch_webblack_url");
Log.e("getBrowserWhiteList", "qch_website_isBlackWebUrl: " + qch_website_isBlackWebUrl); // Log.e("getBrowserWhiteList", "qch_website_isBlackWebUrl: " + qch_website_isBlackWebUrl);
Log.e("getBrowserWhiteList", "BlackBrowserArray: " + BlackBrowserArray); // Log.e("getBrowserWhiteList", "BlackBrowserArray: " + BlackBrowserArray);
Log.e("getBrowserWhiteList", "DeselectBrowserArray: " + DeselectBrowserArray); // Log.e("getBrowserWhiteList", "DeselectBrowserArray: " + DeselectBrowserArray);
Log.e("getBrowserWhiteList", "qch_webblack_url: " + qch_webblack_url); // Log.e("getBrowserWhiteList", "qch_webblack_url: " + qch_webblack_url);
} catch (Settings.SettingNotFoundException e) { // } catch (Settings.SettingNotFoundException e) {
e.printStackTrace(); // e.printStackTrace();
} // }
} }
@Override @Override
@@ -1457,7 +1515,7 @@ public class MainPresenter implements MainContact.Presenter {
@Override @Override
public void getScreenLockState() { public void getScreenLockState() {
int locked = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", -1); int locked = Settings.System.getInt(mContext.getContentResolver(), "qch_unlock_ipad", 0);
if (JGYUtils.isOfficialVersion() || locked == 1) { if (JGYUtils.isOfficialVersion() || locked == 1) {
mView.setScreenLockStateFinished(false, ""); mView.setScreenLockStateFinished(false, "");
return; return;

View File

@@ -494,14 +494,64 @@ public class HTTPInterface {
context.sendBroadcast(intent); context.sendBroadcast(intent);
} }
// TODO: 2021/6/8 使用现有代码会影响浏览器主页管控
// //设置浏览器黑白名单
// synchronized public static void setBrowserBlackList(final Context context) {
//// if (JGYUtils.isOfficialVersion()) {
// SetBrowserList(context);
//// OldSetBrowserList(context);
//// } else {
//// NewSetBrowserList(context);
//// }
// }
//设置浏览器黑白名单 //设置浏览器黑白名单
synchronized public static void setBrowserBlackList(final Context context) { synchronized public static void setBrowserBlackList(final Context context) {
// if (JGYUtils.isOfficialVersion()) { OkGo.post(URLAddress.SET_BROWSER_LIST)
SetBrowserList(context); .params("key", NetInterfaceManager.HTTP_KEY)
// OldSetBrowserList(context); .params("sn", Utils.getSerial())
// } else { .execute(new StringCallback() {
// NewSetBrowserList(context); @Override
// } public void onSuccess(String s, Call call, Response response) {
try {
JSONObject jsonObject = JSON.parseObject(s);
int code = jsonObject.getInteger("code");
String msg = jsonObject.getString("msg");
if (code == 200) {
JSONObject data = JSON.parseObject(jsonObject.getString("data"));
String white = data.getString("white");
String homePage = Settings.System.getString(context.getContentResolver(), "homepagURL");
if (!TextUtils.isEmpty(white)) {
if (!TextUtils.isEmpty(homePage) && !white.contains(homePage)) {
white += "," + homePage;
}
boolean whiteList = Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", white);
new URLUtils(context).setBrowserList();
Log.e("SystemSetting", "setBrowserList----white-----" + whiteList + ":" + white);
} else {
Settings.System.putString(context.getContentResolver(), "DeselectBrowserArray", " ");
}
String black = data.getString("black");
if (!TextUtils.isEmpty(black)) {
boolean blackList = Settings.System.putString(context.getContentResolver(), "qch_webblack_url", black);
Log.e("SystemSetting", "setBrowserList----black-----" + blackList + ":" + black);
} else {
Settings.System.putString(context.getContentResolver(), "qch_webblack_url", " ");
}
} else {
Log.e("fht", "setBrowserList" + msg);
}
} catch (JSONException e) {
Log.e("fht", "setBrowserList" + e.getMessage());
}
}
@Override
public void onError(Call call, Response response, Exception e) {
super.onError(call, response, e);
}
});
} }
private static void NewSetBrowserList(Context context) { private static void NewSetBrowserList(Context context) {

View File

@@ -11,8 +11,6 @@ import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -32,54 +30,37 @@ import okhttp3.Response;
public class URLUtils { public class URLUtils {
private static String TAG = URLUtils.class.getSimpleName(); private static String TAG = URLUtils.class.getSimpleName();
private Context mContext; private Context mContext;
private HashSet<String> baseURLList = new HashSet<>(); private List<String> baseURLList = new ArrayList<>();
public URLUtils(Context context) { public URLUtils(Context context) {
this.mContext = context; this.mContext = context;
} }
public void setBrowserList() { public void setBrowserList() {
boolean isOld = Settings.System.getInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl", 0) == 0; String whiteList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
String whiteList = "";
if (isOld) {
whiteList = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
Log.e(TAG, "setBrowserList: "+ whiteList);
} else {
whiteList = Settings.System.getString(mContext.getContentResolver(), "BlackBrowserArray");
Log.e(TAG, "setBrowserList: "+whiteList );
}
if (TextUtils.isEmpty(whiteList)) { if (TextUtils.isEmpty(whiteList)) {
Log.e(TAG, "getBrowserWhiteList: " + "whiteList is empty"); Log.e(TAG, "getBrowserWhiteList: " + "whiteList is empty");
} else { } else {
HashSet<String> URLList = new HashSet<>(Arrays.asList(whiteList.split(","))); List<String> URLList = Arrays.asList(whiteList.split(","));
Observable.create(new ObservableOnSubscribe<String>() { Observable.create(new ObservableOnSubscribe<String>() {
@Override @Override
public void subscribe(ObservableEmitter<String> emitter) throws Exception { public void subscribe(ObservableEmitter<String> emitter) throws Exception {
baseURLList.clear(); baseURLList.clear();
baseURLList.addAll(URLList); baseURLList.addAll(URLList);
for (String url : URLList) { for (String url : URLList) {
if (TextUtils.isEmpty(url)){
continue;
}
if (url.startsWith("http://")) { if (url.startsWith("http://")) {
String noHttp = url.substring(7); String noHttp = url.substring(7);
if (!baseURLList.contains(noHttp)) { if (!baseURLList.contains(noHttp)) {
baseURLList.add(noHttp); baseURLList.add(noHttp);
} }
emitter.onNext(getOkHttpURL(url)); }
} else if (url.startsWith("https://")) { if (url.startsWith("https://")) {
String noHttps = url.substring(8); String noHttps = url.substring(8);
if (!baseURLList.contains(noHttps)) { if (!baseURLList.contains(noHttps)) {
baseURLList.add(noHttps); baseURLList.add(noHttps);
} }
emitter.onNext(getOkHttpURL(url));
} else {
baseURLList.add("http://" + url);
emitter.onNext(getOkHttpURL("http://" + url));
baseURLList.add("https://" + url);
emitter.onNext(getOkHttpURL("https://" + url));
} }
emitter.onNext(getOkHttpURL(url));
Log.e(TAG, "subscribe: " + url); Log.e(TAG, "subscribe: " + url);
} }
emitter.onComplete(); emitter.onComplete();
@@ -116,7 +97,7 @@ public class URLUtils {
@Override @Override
public void onError(Throwable e) { public void onError(Throwable e) {
Log.e(TAG, "onError: " + e.getMessage());
} }
@Override @Override
@@ -130,18 +111,13 @@ public class URLUtils {
stringBuilder.append(s); stringBuilder.append(s);
} }
String DeselectBrowserArray = stringBuilder.toString(); String DeselectBrowserArray = stringBuilder.toString();
boolean write = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", DeselectBrowserArray);
boolean write;
if (isOld){
write = Settings.System.putString(mContext.getContentResolver(), "DeselectBrowserArray", DeselectBrowserArray);
}else {
write = Settings.System.putString(mContext.getContentResolver(), "BlackBrowserArray", DeselectBrowserArray);
}
Log.e(TAG, "onComplete: " + "white list: " + DeselectBrowserArray); Log.e(TAG, "onComplete: " + "white list: " + DeselectBrowserArray);
Log.e(TAG, "onComplete: " + "write :" + write); Log.e(TAG, "onComplete: " + "write :" + write);
} }
}); });
} }
} }
private String getOkHttpURL(String URL) { private String getOkHttpURL(String URL) {
@@ -247,7 +223,6 @@ public class URLUtils {
sb.append(c); sb.append(c);
} }
} }
// Log.e(TAG, "getUserAgent: " + sb.toString());
return sb.toString(); return sb.toString();
} }
} }