LeOS-Genesis/app/src/main/java/com/darkweb/genesissearchengine/pluginManager/pluginController.java

295 lines
11 KiB
Java
Raw Normal View History

2020-01-24 16:23:31 +01:00
package com.darkweb.genesissearchengine.pluginManager;
2020-09-11 12:54:25 +02:00
import android.app.Activity;
2020-10-05 13:12:00 +02:00
2020-01-24 16:23:31 +01:00
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController;
import com.darkweb.genesissearchengine.constants.enums;
import com.darkweb.genesissearchengine.constants.keys;
2020-09-11 12:54:25 +02:00
import com.darkweb.genesissearchengine.constants.status;
2020-01-24 16:23:31 +01:00
import com.darkweb.genesissearchengine.constants.strings;
import com.darkweb.genesissearchengine.dataManager.dataController;
2020-10-05 13:12:00 +02:00
import com.darkweb.genesissearchengine.dataManager.dataEnums;
2020-01-24 16:23:31 +01:00
import com.darkweb.genesissearchengine.helperManager.eventObserver;
import com.darkweb.genesissearchengine.helperManager.helperMethod;
//import org.torproject.android.service.wrapper.orbotLocalConstants;
2020-10-05 13:12:00 +02:00
import java.util.Arrays;
2020-01-24 16:23:31 +01:00
import java.util.Collections;
import java.util.List;
2020-09-11 12:54:25 +02:00
import java.util.Locale;
2020-01-24 16:23:31 +01:00
public class pluginController
{
/*Plugin Instance*/
private adManager mAdManager;
private analyticManager mAnalyticManager;
private firebaseManager mFirebaseManager;
private messageManager mMessageManager;
private activityContextManager mContextManager;
private boolean mIsInitialized = false;
2020-09-11 12:54:25 +02:00
private langManager mLangManager;
2020-01-24 16:23:31 +01:00
/*Private Variables*/
private static pluginController ourInstance = new pluginController();
private homeController mHomeController;
/*Initializations*/
public static pluginController getInstance()
{
return ourInstance;
}
public void initialize(){
instanceObjectInitialization();
mIsInitialized = true;
}
public void preInitialize(homeController context){
2020-09-11 12:54:25 +02:00
mLangManager = new langManager(context,new langCallback());
2020-10-20 16:55:08 +02:00
mLangManager.setDefaultLanguage(new Locale(status.sSettingLanguage));
2020-01-24 16:23:31 +01:00
}
private void instanceObjectInitialization()
{
mHomeController = activityContextManager.getInstance().getHomeController();
mContextManager = activityContextManager.getInstance();
mAdManager = new adManager(getAppContext(),new admobCallback(), mHomeController.getBannerAd());
mAnalyticManager = new analyticManager(getAppContext(),new analyticCallback());
mFirebaseManager = new firebaseManager(getAppContext(),new firebaseCallback());
mMessageManager = new messageManager(new messageCallback());
}
public void initializeAllServices(AppCompatActivity context){
orbotManager.getInstance().initialize(context,new orbotCallback());
}
/*Helper Methods*/
private AppCompatActivity getAppContext()
{
return mHomeController;
}
public boolean isInitialized(){
return mIsInitialized;
}
/*---------------------------------------------- EXTERNAL REQUEST LISTENER-------------------------------------------------------*/
/*Message Manager*/
2020-11-27 12:40:46 +01:00
public void MessageManagerHandler(AppCompatActivity app_context,List<Object> data,enums.etype type){
2020-01-24 16:23:31 +01:00
mMessageManager.createMessage(app_context,data,type);
}
public void onResetMessage(){
if(mMessageManager!=null){
mMessageManager.onReset();
}
}
/*Firebase Manager*/
public void logEvent(String value){
if(mFirebaseManager!=null){
mFirebaseManager.logEvent(value);
}
}
/*Ad Manager*/
public void initializeBannerAds(){
mAdManager.loadAds();
}
public boolean isAdvertLoaded(){
return mAdManager.isAdvertLoaded();
}
/*Onion Proxy Manager*/
public void initializeOrbot(){
orbotManager.getInstance().startOrbot(getAppContext());
}
public boolean isOrbotRunning(){
return orbotManager.getInstance().isOrbotRunning();
}
public void setProxy(String url){
orbotManager.getInstance().setProxy(url);
}
2020-11-11 13:11:13 +01:00
public void updatePrivacy(){
orbotManager.getInstance().setPrivacyPrefs();
}
2020-01-24 16:23:31 +01:00
public String orbotLogs(){
return orbotManager.getInstance().getLogs();
}
public void enableTorNotification(){
orbotManager.getInstance().enableTorNotification();
}
public void disableTorNotification(){
orbotManager.getInstance().disableTorNotification();
}
public void enableTorNotificationNoBandwidth(){
orbotManager.getInstance().enableTorNotificationNoBandwidth();
}
public void setNotificationStatus(int status){
orbotManager.getInstance().initNotification(status);
}
public int getNotificationStatus(){
return orbotManager.getInstance().getNotificationStatus();
}
2020-11-27 12:40:46 +01:00
2020-10-05 13:12:00 +02:00
public void updateBridges(boolean p_status){
orbotManager.getInstance().updateBridges(p_status);
}
public void updateVPN(boolean p_status){
orbotManager.getInstance().updateVPN(p_status);
}
2020-01-24 16:23:31 +01:00
/*------------------------------------------------ CALLBACK LISTENERS------------------------------------------------------------*/
/*Ad Manager*/
private class admobCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-01-24 16:23:31 +01:00
{
mHomeController.onSetBannerAdMargin();
2020-10-05 13:12:00 +02:00
return null;
2020-01-24 16:23:31 +01:00
}
}
/*Analytics Manager*/
private class analyticCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-01-24 16:23:31 +01:00
{
mAnalyticManager.logUser();
2020-10-05 13:12:00 +02:00
return null;
2020-01-24 16:23:31 +01:00
}
}
/*Fabric Manager*/
private class fabricCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-01-24 16:23:31 +01:00
{
2020-10-05 13:12:00 +02:00
return null;
2020-01-24 16:23:31 +01:00
}
}
/*Firebase Manager*/
private class firebaseCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-01-24 16:23:31 +01:00
{
2020-10-05 13:12:00 +02:00
return null;
2020-01-24 16:23:31 +01:00
}
}
2020-09-11 12:54:25 +02:00
/*Lang Manager*/
private class langCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-09-11 12:54:25 +02:00
{
2020-10-05 13:12:00 +02:00
return null;
2020-09-11 12:54:25 +02:00
}
}
2020-01-24 16:23:31 +01:00
/*Onion Proxy Manager*/
private class orbotCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-01-24 16:23:31 +01:00
{
2020-10-05 13:12:00 +02:00
return null;
2020-01-24 16:23:31 +01:00
}
}
2020-09-11 12:54:25 +02:00
/*Lang Manager*/
2020-11-27 12:40:46 +01:00
public void setLanguage(){
2020-10-20 16:55:08 +02:00
mLangManager.setDefaultLanguage(new Locale(status.sSettingLanguage));
2020-09-11 12:54:25 +02:00
}
public void onCreate(Activity activity) {
2020-11-27 12:40:46 +01:00
if(activity==null || !activity.isDestroyed()){
mLangManager.onCreate(activity);
}
2020-09-11 12:54:25 +02:00
}
public void onResume(Activity activity) {
mLangManager.onResume(activity);
}
2020-01-24 16:23:31 +01:00
/*Message Manager*/
private class messageCallback implements eventObserver.eventListener{
@Override
2020-11-27 12:40:46 +01:00
public Object invokeObserver(List<Object> data, Object event_type)
2020-01-24 16:23:31 +01:00
{
if(event_type.equals(enums.etype.welcome))
{
mHomeController.onLoadURL(data.get(0).toString());
}
else if(event_type.equals(enums.etype.cancel_welcome)){
2020-10-20 16:55:08 +02:00
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_WELCOME_ENABLED,false));
2020-01-24 16:23:31 +01:00
}
else if(event_type.equals(enums.etype.ignore_abi)){
2020-02-28 19:10:00 +01:00
//mHomeController.ignoreAbiError();
2020-01-24 16:23:31 +01:00
}
else if(event_type.equals(enums.etype.reload)){
if(orbotManager.getInstance().isOrbotRunning())
{
mHomeController.onReload(null);
}
else {
mMessageManager.createMessage(mHomeController, Collections.singletonList(data.get(0).toString()),enums.etype.start_orbot);
}
}
else if(event_type.equals(enums.etype.clear_history)){
2020-10-05 13:12:00 +02:00
dataController.getInstance().invokeHistory(dataEnums.eHistoryCommands.M_CLEAR_HISTORY ,null);
2020-01-24 16:23:31 +01:00
mContextManager.getHistoryController().onclearData();
mHomeController.onClearSession();
2020-11-11 13:11:13 +01:00
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
2020-10-20 16:55:08 +02:00
mHomeController.initTab(false);
2020-01-24 16:23:31 +01:00
}
else if(event_type.equals(enums.etype.clear_bookmark)){
2020-10-20 16:55:08 +02:00
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_CLEAR_BOOKMARK ,data);
2020-01-24 16:23:31 +01:00
mContextManager.getBookmarkController().onclearData();
}
else if(event_type.equals(enums.etype.bookmark)){
String [] dataParser = data.get(0).toString().split("split");
if(dataParser.length>1){
2020-10-20 16:55:08 +02:00
logEvent(strings.EVENT_URL_BOOKMARKED);
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_ADD_BOOKMARK ,Arrays.asList(dataParser[0],dataParser[1]));
2020-01-24 16:23:31 +01:00
}else {
2020-10-20 16:55:08 +02:00
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_ADD_BOOKMARK ,Arrays.asList(dataParser[0],""));
2020-01-24 16:23:31 +01:00
}
}
else if(event_type.equals(enums.etype.app_rated)){
2020-10-20 16:55:08 +02:00
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.PROXY_IS_APP_RATED,true));
2020-01-24 16:23:31 +01:00
}
else if(event_type.equals(enums.etype.download_file)){
mHomeController.onDownloadFile();
}
else if(event_type.equals(enums.etype.download_file_manual)){
mHomeController.onManualDownload(data.get(0).toString());
}
else if(event_type.equals(enums.etype.connect_vpn)){
//orbotLocalConstants.sIsTorInitialized = (boolean)data.get(0);
}
else if(event_type.equals(enums.etype.open_link_new_tab)){
mHomeController.onOpenLinkNewTab(data.get(0).toString());
}
else if(event_type.equals(enums.etype.open_link_current_tab)){
mHomeController.onLoadURL(data.get(0).toString());
}
else if(event_type.equals(enums.etype.copy_link)){
helperMethod.copyURL(data.get(0).toString(),mContextManager.getHomeController());
}
else if(event_type.equals(enums.etype.clear_tab)){
2020-11-11 13:11:13 +01:00
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_CLEAR_TAB, null);
2020-10-20 16:55:08 +02:00
mHomeController.initTab(true);
2020-01-24 16:23:31 +01:00
activityContextManager.getInstance().getTabController().finish();
}
2020-10-05 13:12:00 +02:00
return null;
2020-01-24 16:23:31 +01:00
}
}
}