LeOS-Genesis/app/src/main/java/com/hiddenservices/onionservices/dataManager/bridgesDataModel.java

87 lines
2.7 KiB
Java
Raw Normal View History

2022-03-29 21:55:20 +02:00
package com.hiddenservices.onionservices.dataManager;
2021-05-29 09:55:46 +02:00
import android.content.Context;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
2022-03-29 21:55:20 +02:00
import com.hiddenservices.onionservices.constants.keys;
import com.hiddenservices.onionservices.constants.status;
import com.hiddenservices.onionservices.constants.strings;
2022-05-02 18:26:09 +02:00
2021-05-29 09:55:46 +02:00
import java.util.Arrays;
import java.util.List;
2022-05-02 18:26:09 +02:00
2022-03-29 21:55:20 +02:00
import static com.hiddenservices.onionservices.constants.constants.*;
2021-05-29 09:55:46 +02:00
public class bridgesDataModel {
/* Local Variables */
private String mBridges;
private boolean mLoading = false;
/* Initializations */
2022-05-02 18:26:09 +02:00
public bridgesDataModel() {
2021-05-29 09:55:46 +02:00
mBridges = status.sBridgesDefault;
}
/* Helper Methods */
2022-05-02 18:26:09 +02:00
private void onLoad(Context pContext) {
if (!mLoading) {
2021-05-29 09:55:46 +02:00
mLoading = true;
String mRefURL;
2022-05-02 18:26:09 +02:00
if (status.sDeveloperBuild) {
2021-05-29 09:55:46 +02:00
mRefURL = CONST_GENESIS_BRIDGE_WEBSITES_DEV;
2022-05-02 18:26:09 +02:00
} else {
2021-05-29 09:55:46 +02:00
mRefURL = CONST_GENESIS_BRIDGE_WEBSITES;
}
StringRequest stringRequest = new StringRequest(Request.Method.GET, mRefURL,
response -> {
2022-05-02 18:26:09 +02:00
if (response.length() > 10) {
2021-05-29 09:55:46 +02:00
mBridges = response;
status.sBridgesDefault = response;
2022-05-02 18:26:09 +02:00
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.BRIDGE_DEFAULT, strings.BRIDGES_DEFAULT));
2021-05-29 09:55:46 +02:00
mLoading = false;
2022-05-02 18:26:09 +02:00
} else {
2021-05-29 09:55:46 +02:00
mBridges = status.sReferenceWebsites;
}
},
error -> {
mBridges = status.sReferenceWebsites;
mLoading = false;
});
RequestQueue requestQueue = Volley.newRequestQueue(pContext);
requestQueue.add(stringRequest);
}
}
2022-05-02 18:26:09 +02:00
private String onFetch() {
2021-05-29 09:55:46 +02:00
try {
return mBridges;
2022-05-02 18:26:09 +02:00
} catch (Exception ignored) {
}
2021-05-29 09:55:46 +02:00
return strings.GENERIC_EMPTY_SPACE;
}
/* External Triggers */
2022-05-02 18:26:09 +02:00
public Object onTrigger(dataEnums.eBridgeWebsiteCommands p_commands, List<Object> pData) {
if (p_commands == dataEnums.eBridgeWebsiteCommands.M_LOAD) {
2021-05-29 09:55:46 +02:00
onLoad((Context) pData.get(0));
}
2022-05-02 18:26:09 +02:00
if (p_commands == dataEnums.eBridgeWebsiteCommands.M_FETCH) {
2021-05-29 09:55:46 +02:00
return onFetch();
}
return null;
}
}