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

@@ -212,7 +212,7 @@ public class MainPresenter implements MainContact.Presenter {
JsonObject jsonObject = JsonParser.parseString(new Gson().toJson(response.data)).getAsJsonObject();
int locked = jsonObject.get("lock").getAsInt();
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);
//后台1是锁定底层0是锁定
if (locked == 1) {
@@ -237,7 +237,7 @@ public class MainPresenter implements MainContact.Presenter {
@Override
public void onError(@NonNull Throwable e) {
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);
mView.setLockedState(locked == 0);
}
@@ -716,7 +716,7 @@ public class MainPresenter implements MainContact.Presenter {
mView.getDeviceBatchFinished();
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) {
// NetInterfaceManager.getInstance()
// .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
public void getBrowserList() {
// if (JGYUtils.isOfficialVersion()) {
SetBrowserList();
// } else {
// NewSetBrowserList();
// }
NetInterfaceManager.getInstance()
.getBrowserListSettingObservable()
.observeOn(Schedulers.io())
.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();
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)) {
whiteString.append(",").append(homepagURL);
Log.e("getBrowserBookmarks ", "homepagURL: " + homepagURL);
@@ -1044,18 +1102,18 @@ public class MainPresenter implements MainContact.Presenter {
@Override
public void getBrowserWhiteList() {
new URLUtils(mContext).setBrowserList();
try {
int qch_website_isBlackWebUrl = Settings.System.getInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl");
String BlackBrowserArray = Settings.System.getString(mContext.getContentResolver(), "BlackBrowserArray");
String DeselectBrowserArray = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
String qch_webblack_url = Settings.System.getString(mContext.getContentResolver(), "qch_webblack_url");
Log.e("getBrowserWhiteList", "qch_website_isBlackWebUrl: " + qch_website_isBlackWebUrl);
Log.e("getBrowserWhiteList", "BlackBrowserArray: " + BlackBrowserArray);
Log.e("getBrowserWhiteList", "DeselectBrowserArray: " + DeselectBrowserArray);
Log.e("getBrowserWhiteList", "qch_webblack_url: " + qch_webblack_url);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
// try {
// int qch_website_isBlackWebUrl = Settings.System.getInt(mContext.getContentResolver(), "qch_website_isBlackWebUrl");
// String BlackBrowserArray = Settings.System.getString(mContext.getContentResolver(), "BlackBrowserArray");
// String DeselectBrowserArray = Settings.System.getString(mContext.getContentResolver(), "DeselectBrowserArray");
// String qch_webblack_url = Settings.System.getString(mContext.getContentResolver(), "qch_webblack_url");
// Log.e("getBrowserWhiteList", "qch_website_isBlackWebUrl: " + qch_website_isBlackWebUrl);
// Log.e("getBrowserWhiteList", "BlackBrowserArray: " + BlackBrowserArray);
// Log.e("getBrowserWhiteList", "DeselectBrowserArray: " + DeselectBrowserArray);
// Log.e("getBrowserWhiteList", "qch_webblack_url: " + qch_webblack_url);
// } catch (Settings.SettingNotFoundException e) {
// e.printStackTrace();
// }
}
@Override
@@ -1457,7 +1515,7 @@ public class MainPresenter implements MainContact.Presenter {
@Override
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) {
mView.setScreenLockStateFinished(false, "");
return;

View File

@@ -494,14 +494,64 @@ public class HTTPInterface {
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) {
// if (JGYUtils.isOfficialVersion()) {
SetBrowserList(context);
// OldSetBrowserList(context);
// } else {
// NewSetBrowserList(context);
// }
OkGo.post(URLAddress.SET_BROWSER_LIST)
.params("key", NetInterfaceManager.HTTP_KEY)
.params("sn", Utils.getSerial())
.execute(new StringCallback() {
@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) {

View File

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