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

234 lines
9.8 KiB
Java
Raw Normal View History

2020-01-24 16:23:31 +01:00
package com.darkweb.genesissearchengine.pluginManager;
import androidx.appcompat.app.AppCompatActivity;
import com.darkweb.genesissearchengine.appManager.activityContextManager;
import com.darkweb.genesissearchengine.appManager.homeManager.homeController;
2021-01-18 11:07:12 +01:00
import com.darkweb.genesissearchengine.appManager.settingManager.privacyManager.settingPrivacyController;
import com.darkweb.genesissearchengine.constants.constants;
2020-01-24 16:23:31 +01:00
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.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;
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;
2021-01-28 11:22:41 +01:00
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eAdManagerCallbacks.M_SHOW_LOADED_ADS;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.*;
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManagerCallbacks.*;
2020-01-24 16:23:31 +01:00
public class pluginController
{
/*Plugin Instance*/
private adManager mAdManager;
2021-01-28 11:22:41 +01:00
private com.darkweb.genesissearchengine.pluginManager.analyticManager mAnalyticsManager;
2020-01-24 16:23:31 +01:00
private messageManager mMessageManager;
2021-01-18 11:07:12 +01:00
private notifictionManager mNotificationManager;
2020-01-24 16:23:31 +01:00
private activityContextManager mContextManager;
2020-09-11 12:54:25 +02:00
private langManager mLangManager;
2021-01-28 11:22:41 +01:00
private orbotManager mOrbotManager;
2020-01-24 16:23:31 +01:00
/*Private Variables*/
private static pluginController ourInstance = new pluginController();
private homeController mHomeController;
2021-01-28 11:22:41 +01:00
private boolean mIsInitialized = false;
2020-01-24 16:23:31 +01:00
/*Initializations*/
public static pluginController getInstance()
{
return ourInstance;
}
2021-01-28 11:22:41 +01:00
public void preInitialize(homeController context){
mLangManager = new langManager(context,new langCallback(), new Locale(status.sSettingLanguage));
}
2020-01-24 16:23:31 +01:00
public void initialize(){
instanceObjectInitialization();
mIsInitialized = true;
}
private void instanceObjectInitialization()
{
mHomeController = activityContextManager.getInstance().getHomeController();
mContextManager = activityContextManager.getInstance();
2021-01-28 11:22:41 +01:00
mNotificationManager = new notifictionManager(mHomeController,new notificationCallback());
mAdManager = new adManager(mHomeController,new admobCallback(), mHomeController.getBannerAd());
mAnalyticsManager = new com.darkweb.genesissearchengine.pluginManager.analyticManager(mHomeController,new analyticManager());
2020-01-24 16:23:31 +01:00
mMessageManager = new messageManager(new messageCallback());
2021-01-28 11:22:41 +01:00
mOrbotManager = orbotManager.getInstance();
2020-01-24 16:23:31 +01:00
}
/*Helper Methods*/
public boolean isInitialized(){
return mIsInitialized;
}
2021-01-28 11:22:41 +01:00
public void initializeAllServices(AppCompatActivity context){
int mNotificationStatus = (Integer) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_INT, Arrays.asList(keys.SETTING_NOTIFICATION_STATUS,1));
orbotManager.getInstance().initialize(context,new orbotCallback(), mNotificationStatus);
2020-10-05 13:12:00 +02:00
}
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
{
2021-01-28 11:22:41 +01:00
if(event_type.equals(M_SHOW_LOADED_ADS))
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
}
}
2021-01-28 11:22:41 +01:00
public Object onAdsInvoke(List<Object> pData, pluginEnums.eAdManager pEventType){
if(mAdManager !=null){
return mAdManager.onTrigger(pData, pEventType);
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
return null;
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
/*Analytics Manager*/
private class analyticManager implements eventObserver.eventListener{
2020-01-24 16:23:31 +01:00
@Override
2021-01-28 11:22:41 +01:00
public Object invokeObserver(List<Object> data, Object event_type) { return null; }
}
public void onAnalyticsInvoke(List<Object> pData, pluginEnums.eAnalyticManager pEventType){
if(mAnalyticsManager !=null){
mAnalyticsManager.onTrigger(pData, pEventType);
2020-01-24 16:23:31 +01:00
}
}
2021-01-28 11:22:41 +01:00
2021-01-18 11:07:12 +01:00
/*Notification Manager*/
private class notificationCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> data, Object event_type)
{
return null;
}
}
2021-01-28 11:22:41 +01:00
public Object onNotificationInvoke(List<Object> pData, pluginEnums.eNotificationManager pEventType){
if(mNotificationManager!=null){
return mNotificationManager.onTrigger(pData, pEventType);
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01: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
}
}
2021-01-28 11:22:41 +01:00
public Object onOrbotInvoke(List<Object> pData, pluginEnums.eOrbotManager pEventType){
if(mOrbotManager !=null){
return mOrbotManager.onTrigger(pData, pEventType);
}
return null;
}
2020-09-11 12:54:25 +02:00
/*Lang Manager*/
2021-01-28 11:22:41 +01:00
public Object onLanguageInvoke(List<Object> pData, pluginEnums.eLangManager pEventType){
return mLangManager.onTrigger(pData, pEventType);
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01:00
private class langCallback implements eventObserver.eventListener{
@Override
public Object invokeObserver(List<Object> data, Object event_type)
{
return null;
2020-11-27 12:40:46 +01:00
}
2020-09-11 12:54:25 +02:00
}
2020-01-24 16:23:31 +01:00
/*Message Manager*/
2021-01-28 11:22:41 +01:00
public void onMessageManagerInvoke(List<Object> pData, pluginEnums.eMessageManager pEventType){
mMessageManager.onTrigger(pData,pEventType);
}
2020-01-24 16:23:31 +01:00
private class messageCallback implements eventObserver.eventListener{
@Override
2021-01-28 11:22:41 +01:00
public Object invokeObserver(List<Object> pData, Object pEventType)
2020-01-24 16:23:31 +01:00
{
2021-01-28 11:22:41 +01:00
if(pEventType.equals(enums.etype.welcome))
2020-01-24 16:23:31 +01:00
{
2021-01-28 11:22:41 +01:00
mHomeController.onLoadURL(pData.get(0).toString());
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_SECURE_CONNECTION)){
2021-01-18 11:07:12 +01:00
helperMethod.openActivity(settingPrivacyController.class, constants.CONST_LIST_HISTORY, mHomeController,true);
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_CANCEL_WELCOME)){
status.sSettingIsWelcomeEnabled = false;
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
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(enums.etype.reload)){
if((Boolean) mOrbotManager.onTrigger(null, pluginEnums.eOrbotManager.M_IS_ORBOT_RUNNING))
2020-01-24 16:23:31 +01:00
{
mHomeController.onReload(null);
}
else {
2021-01-28 11:22:41 +01:00
mMessageManager.onTrigger(Arrays.asList(mHomeController, Collections.singletonList(pData.get(0).toString())),M_START_ORBOT);
2020-01-24 16:23:31 +01:00
}
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_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
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_CLEAR_BOOKMARK)){
dataController.getInstance().invokeBookmark(dataEnums.eBookmarkCommands.M_CLEAR_BOOKMARK ,pData);
2020-01-24 16:23:31 +01:00
mContextManager.getBookmarkController().onclearData();
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_BOOKMARK)){
String [] dataParser = pData.get(0).toString().split("split");
2020-01-24 16:23:31 +01:00
if(dataParser.length>1){
2020-10-20 16:55:08 +02:00
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
}
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_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
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_DOWNLOAD_FILE)){
2020-01-24 16:23:31 +01:00
mHomeController.onDownloadFile();
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_DOWNLOAD_FILE_MANUAL)){
mHomeController.onManualDownload(pData.get(0).toString());
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_OPEN_LINK_NEW_TAB)){
mHomeController.onOpenLinkNewTab(pData.get(0).toString());
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_OPEN_LINK_CURRENT_TAB)){
mHomeController.onLoadURL(pData.get(0).toString());
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_COPY_LINK)){
helperMethod.copyURL(pData.get(0).toString(),mContextManager.getHomeController());
2020-01-24 16:23:31 +01:00
}
2021-01-28 11:22:41 +01:00
else if(pEventType.equals(M_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
}
}
}