mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
ed6967bdfa
commit
ad847d004f
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="SERIAL_NUMBER" />
|
||||
<value value="buqgytw8mbq4qs8d" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2022-04-23T03:36:49.929184900Z" />
|
||||
</component>
|
||||
</project>
|
|
@ -83,9 +83,14 @@
|
|||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/home/layout/notification_menu.xml" value="0.14791666666666667" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/home/layout/popup_search_view.xml" value="0.14791666666666667" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/home/layout/popup_side_menu.xml" value="1.0" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/orbot/layout/orbot_settings_view.xml" value="0.18541666666666667" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/proxyStatus/layout/proxy_status_view.xml" value="0.18541666666666667" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/setting/layout/setting.xml" value="0.5" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/setting/layout/setting_privacy_view.xml" value="0.67" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/setting/layout/setting_search_view.xml" value="0.358695652173913" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/tab/layout/tab_grid_view.xml" value="0.67" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/tab/layout/tab_menu.xml" value="0.18541666666666667" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/layouts/tab/layout/tab_view.xml" value="0.18541666666666667" />
|
||||
<entry key="..\:/workspace/Genesis-Android/app/src/main/res/menu/menu_main.xml" value="0.33" />
|
||||
<entry key="app/src/main/res/layouts/home/layout/home_view.xml" value="0.15833333333333333" />
|
||||
<entry key="app/src/main/res/layouts/home/layout/popup_search_view.xml" value="0.67" />
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||
|
||||
<activity
|
||||
android:name="com.hiddenservices.onionservices.appManager.proxyStatusManager.proxyStatusController"
|
||||
android:name="com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager.proxyStatusController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
|
||||
|
||||
<activity
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
</ul>
|
||||
|
||||
<a href="$URL"><button style="max-width: 450px;height: 50px;float:left;margin-top: 30px;margin-bottom: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:indigo;color: white"> $ERROR_M6</button></a>
|
||||
<a href="https://GenesisConfigureNewIdentity.com"><button style="max-width: 450px;height: 50px;float:left;margin-top: -10px;margin-bottom: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:indigo;color: white">Try New Identity</button></a>
|
||||
<a href="https://GenesisConfigureNewIdentity.com"><button style="display: $ERROR_M7;max-width: 450px;height: 50px;float:left;margin-top: -10px;margin-bottom: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:indigo;color: white">Try New Identity</button></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -49,7 +49,7 @@
|
|||
|
||||
<a href="$URL"><button style="max-width: 450px;height: 50px;float:left;margin-top: 30px;margin-bottom: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:indigo;color: white"> $ERROR_M6</button></a>
|
||||
<br>
|
||||
<a href="https://GenesisConfigureNewIdentity.com"><button style="max-width: 450px;height: 50px;float:left;margin-top: -10px;margin-bottom: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:indigo;color: white">Try New Identity</button></a>
|
||||
<a href="https://GenesisConfigureNewIdentity.com"><button style="display: $ERROR_M7;max-width: 450px;height: 50px;float:left;margin-top: -10px;margin-bottom: 30px;width: 100%;font-weight: bold;font-family: Arial, Helvetica, sans-serif;font-size: 1em;border-radius: 5px;padding-bottom: 10px;padding-top: 10px;border: none;background:indigo;color: white">Try New Identity</button></a>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,25 @@
|
|||
|
||||
/*Enums*/
|
||||
|
||||
var Commands = {
|
||||
onLoadReferenceWebsites : "onLoadReferenceWebsites",
|
||||
onClickReferenceWebsite : "onClickReferenceWebsite"
|
||||
};
|
||||
|
||||
/*Links*/
|
||||
|
||||
var GET = {
|
||||
pData : "pData",
|
||||
};
|
||||
|
||||
|
||||
var UIID = {
|
||||
mReferenceWebsites : "mReferenceWebsites",
|
||||
};
|
||||
|
||||
var ReferenceWebsitesDataID = {
|
||||
mIcon : "mIcon",
|
||||
mHeader : "mHeader",
|
||||
mBody : "mBody",
|
||||
mUrl : "mUrl",
|
||||
};
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
/*Homepage Classes*/
|
||||
|
||||
class homepage {
|
||||
|
||||
mLastLinkID = "";
|
||||
|
||||
constructor() {
|
||||
}
|
||||
|
||||
/*Helper Methods*/
|
||||
|
||||
onLoadReferenceWebsites(){
|
||||
document.getElementById('mReferenceWebsites').className = 'hide';
|
||||
}
|
||||
|
||||
onLoadReferenceWebsiteContent(mJson){
|
||||
var mResponseJson = mJson;
|
||||
var mOBJ = JSON.parse(mResponseJson);
|
||||
var mReferenceHTML = strings.emptyString;
|
||||
|
||||
var mIDCounter = 0;
|
||||
Object.keys(mOBJ).forEach(function(key) {
|
||||
var mObject = mOBJ[key];
|
||||
mReferenceHTML += '<a href="'+mObject[ReferenceWebsitesDataID.mUrl]+'" class="gc--clear-selection" style="text-decoration:none;"> <div class="home__reference"> <h6 class="home__reference--header">'+mObject[ReferenceWebsitesDataID.mHeader]+'</h6> <p class="home__reference_info">' + mObject[ReferenceWebsitesDataID.mBody] + '</p><div class="home__reference-image-container"> <img class="home__reference-image" alt="" src="'+ mObject[ReferenceWebsitesDataID.mIcon] +'"/> </div><p class="home__reference-status"><b>Status | <span class="home__reference-status--color">running</span></b></p></div></a>'
|
||||
mIDCounter+=1;
|
||||
});
|
||||
|
||||
|
||||
var mReferenceID = document.getElementById(UIID.mReferenceWebsites);
|
||||
mReferenceID.innerHTML = mReferenceHTML;
|
||||
|
||||
document.getElementById('mReferenceWebsites').className = 'show';
|
||||
}
|
||||
|
||||
onLoadStaticWebpage(pData){
|
||||
if(this.mLastLinkID.localeCompare("") != 0){
|
||||
document.getElementById(this.mLastLinkID).style.backgroundColor = "#1c1b21";
|
||||
}
|
||||
|
||||
document.getElementById(pData[0]).style.backgroundColor = "#18171c";
|
||||
window.open(pData[1],"_self");
|
||||
this.mLastLinkID = pData[0];
|
||||
}
|
||||
|
||||
/*Ajax Request*/
|
||||
|
||||
onParseReferenceWebsites() {
|
||||
var $_GET=[];
|
||||
decodeURIComponent(window.location.href).replace(/[?&]+([^=&]+)=([^&]*)/gi,function(a,name,value){$_GET[name]=value;});
|
||||
|
||||
setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
|
||||
setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, $_GET[GET.pData]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let mHomepageLoader = new homepage();
|
||||
|
||||
/*Helper Classes Manager*/
|
||||
function onTriggerScriptHandler(pCommand,pData) {
|
||||
if(pCommand == Commands.onLoadReferenceWebsites){
|
||||
mHomepageLoader.onParseReferenceWebsites()
|
||||
}
|
||||
else if(pCommand == Commands.onClickReferenceWebsite){
|
||||
mHomepageLoader.onLoadStaticWebpage(pData)
|
||||
}
|
||||
}
|
||||
|
||||
/*Default Loaders*/
|
||||
$(window).on('load', function() {
|
||||
/* For Local Testing */
|
||||
|
||||
// var mResponseJson = '[{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://wikileaks.org/static/img/wl-logo.png", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"}]';
|
||||
// setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
|
||||
// setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, mResponseJson);
|
||||
document.getElementById("pBody").classList.toggle('body_fadein');
|
||||
|
||||
setTimeout(function (){
|
||||
onTriggerScriptHandler(Commands.onLoadReferenceWebsites, null)
|
||||
}, 100);
|
||||
});
|
|
@ -0,0 +1,82 @@
|
|||
|
||||
/*Homepage Classes*/
|
||||
|
||||
class homepage {
|
||||
|
||||
mLastLinkID = "";
|
||||
|
||||
constructor() {
|
||||
}
|
||||
|
||||
/*Helper Methods*/
|
||||
|
||||
onLoadReferenceWebsites(){
|
||||
document.getElementById('mReferenceWebsites').className = 'hide';
|
||||
}
|
||||
|
||||
onLoadReferenceWebsiteContent(mJson){
|
||||
var mResponseJson = mJson;
|
||||
var mOBJ = JSON.parse(mResponseJson);
|
||||
var mReferenceHTML = strings.emptyString;
|
||||
|
||||
var mIDCounter = 0;
|
||||
Object.keys(mOBJ).forEach(function(key) {
|
||||
var mObject = mOBJ[key];
|
||||
mReferenceHTML += '<a href="'+mObject[ReferenceWebsitesDataID.mUrl]+'" class="gc--clear-selection" style="text-decoration:none;"> <div class="home__reference"> <h6 class="home__reference--header">'+mObject[ReferenceWebsitesDataID.mHeader]+'</h6> <p class="home__reference_info">' + mObject[ReferenceWebsitesDataID.mBody] + '</p><div class="home__reference-image-container"> <img class="home__reference-image" alt="" src="'+ mObject[ReferenceWebsitesDataID.mIcon] +'"/> </div><p class="home__reference-status"><b>Status | <span class="home__reference-status--color">running</span></b></p></div></a>'
|
||||
mIDCounter+=1;
|
||||
});
|
||||
|
||||
|
||||
var mReferenceID = document.getElementById(UIID.mReferenceWebsites);
|
||||
mReferenceID.innerHTML = mReferenceHTML;
|
||||
|
||||
document.getElementById('mReferenceWebsites').className = 'show';
|
||||
}
|
||||
|
||||
onLoadStaticWebpage(pData){
|
||||
if(this.mLastLinkID.localeCompare("") != 0){
|
||||
document.getElementById(this.mLastLinkID).style.backgroundColor = "#ffffff";
|
||||
}
|
||||
|
||||
document.getElementById(pData[0]).style.backgroundColor = "#f2f2f2";
|
||||
window.open(pData[1],"_self");
|
||||
this.mLastLinkID = pData[0];
|
||||
}
|
||||
|
||||
/*Ajax Request*/
|
||||
|
||||
onParseReferenceWebsites() {
|
||||
var $_GET=[];
|
||||
decodeURIComponent(window.location.href).replace(/[?&]+([^=&]+)=([^&]*)/gi,function(a,name,value){$_GET[name]=value;});
|
||||
|
||||
setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
|
||||
setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, $_GET[GET.pData]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let mHomepageLoader = new homepage();
|
||||
|
||||
/*Helper Classes Manager*/
|
||||
function onTriggerScriptHandler(pCommand,pData) {
|
||||
if(pCommand == Commands.onLoadReferenceWebsites){
|
||||
mHomepageLoader.onParseReferenceWebsites()
|
||||
}
|
||||
else if(pCommand == Commands.onClickReferenceWebsite){
|
||||
mHomepageLoader.onLoadStaticWebpage(pData)
|
||||
}
|
||||
}
|
||||
|
||||
/*Default Loaders*/
|
||||
$(window).on('load', function() {
|
||||
/* For Local Testing */
|
||||
|
||||
// var mResponseJson = '[{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://wikileaks.org/static/img/wl-logo.png", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"},{ "mIcon":"https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196", "mHeader":"Experience", "mBody":"Donec id elit non mi porta gravida at eget metus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui"}]';
|
||||
// setTimeout(mHomepageLoader.onLoadReferenceWebsites, 500);
|
||||
// setTimeout(mHomepageLoader.onLoadReferenceWebsiteContent, 1000, mResponseJson);
|
||||
document.getElementById("pBody").classList.toggle('body_fadein');
|
||||
|
||||
setTimeout(function (){
|
||||
onTriggerScriptHandler(Commands.onLoadReferenceWebsites, null)
|
||||
}, 1000);
|
||||
});
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
/*Strings*/
|
||||
|
||||
var strings = {
|
||||
emptyString : "",
|
||||
};
|
|
@ -0,0 +1,112 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
|
||||
<!--Includes-->
|
||||
<link rel="icon" href="../resources/images/favicon.ico">
|
||||
<link rel="stylesheet" href="style/home/cs-privacy.css" />
|
||||
<link rel="stylesheet" href="style/shared/cs-global-properties.css" />
|
||||
<link rel="stylesheet" href="../resources/style/cs-bootstrap.css">
|
||||
<link rel="stylesheet" href="style/shared/font-awesome/css/all.min.css"/>
|
||||
<link rel="stylesheet" href="style/home/cs-homepage.css" />
|
||||
|
||||
<!--Javascripts-->
|
||||
<script src="../resources/javascript/js-jquery.js"></script>
|
||||
<script src="../resources/javascript/bootstrap.bundle.min.js"></script>
|
||||
<script type="../resources/javascript/bootstrap.js"></script>
|
||||
<script type="../resources/javascript/bootstrap.min.js"></script>
|
||||
<script src="javascript/enum-homepage.js"></script>
|
||||
<script src="javascript/string-homepage.js"></script>
|
||||
<script src="javascript/js-homepage.js"></script>
|
||||
|
||||
<!--Meta Data-->
|
||||
<title>Genesis Search Engine | Dark Web Based Search Engine</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="Darkweb or Deepweb Search Engine working on multiple layered network including i2p,onion and riddle. Optimized Searches with mobile support and seperate Mobile Apps"> </head>
|
||||
|
||||
<body class="clear_selection" id="pBody">
|
||||
<body class="privacy">
|
||||
|
||||
<div class="privacy__welcome gs-disable-highlight">
|
||||
<br>
|
||||
<img class="privacy__icon gs-disable-highlight" src="images/privacy.png" alt="Loading...">
|
||||
<p class="privacy__welcome-header gs-disable-highlight">We don't collect or share</p>
|
||||
<p class="privacy__welcome-header privacy__welcome-header--bottom gs-disable-highlight">personal information.</p>
|
||||
|
||||
<p class="privacy__welcome-info gs-disable-highlight">That's our privacy policy in a nutshell.</p>
|
||||
<a href="mailto:genesishiddentechnologies@gmail.com" class="gc--clear-selection" style="text-decoration: none"><div class="privacy__welcome-mail gs-disable-highlight">Contact Developer</div></a>
|
||||
</div>
|
||||
<div class="privacy__body">
|
||||
|
||||
<div class="privacy__paragraph-container privacy__paragraph-container--top">
|
||||
<h4 class="privacy__body-header"><b>Search Leakage</b></h4>
|
||||
<p class="privacy__body--info" >At other search engines, when you do a search and then click on a link, your search terms are sent to that site you clicked on (in the <a href="https://duckduckgo.com/?q=HTTP referrer header">HTTP referrer header</a>). We call this sharing of personal information "search leakage”, For example, when you search for something private, you are sharing that private search not only with your search engine, but also with all the sites that you clicked on (for that search). In addition, when you visit any site, your computer automatically sends information about it to that site (including your <a href="https://duckduckgo.com/?q=user agent">User agent</a> and <a href="https://duckduckgo.com/?q=IP address">IP address</a>). This information can often be used to identify you directly. So when you do that private search, not only can those other sites know your search terms, but they can also know that you searched it. It is this combination of available information about you that raises privacy concerns. Genesis prevents search leakage by default. Instead, when you click on a link on our site, we route (redirect) that request in such a way so that it does not send your search terms to other sites. The other sites will still know that you visited them, but they will not know what search you entered beforehand. <br><br>At some other search engines (including us), you can also use an encrypted version (HTTPS), which as a byproduct doesn't usually send your search terms to sites. However, it is slower to connect to these versions and if you click on a site that also uses HTTPS then your search is sent. Nevertheless, the encrypted version does protect your search from being leaked onto the computers it travels on between you and us.</p>
|
||||
<a class="anchor"></a>
|
||||
<p class="privacy__body--info">At Genesis, our encrypted version goes even further and automatically changes links from a number of major Web sites to point to the encrypted versions of those sites. It is modeled after (and uses code from) the HTTPS Everywhere. These sites include Wikipedia, Facebook, Twitter, and Amazon to name a few. Another way to prevent search leakage is by using something called a <a href="https://duckduckgo.com/?q=POST request">POST request</a>, which has the effect of not showing your search in your browser, and, as a consequence, does not send it to other sites. You can turn on POST requests on our settings page, but it has its own issues. POST requests usually break browser back buttons, and they make it impossible for you to easily share your search by copying and pasting it out of your Web browser's address bar. <br><br>Finally, if you want to prevent sites from knowing you visited them at all, you can use a proxy like <a href="https://duckduckgo.com/?q=Tor">Tor</a>. Genesis actually operates a <a href="https://duckduckgo.com/?q=Tor exit enclave">Tor exit enclave</a>, which means you can get end to end anonymous and encrypted searching using Tor & DDG together. You can enter !proxy domain into Genesis as well, and we will route you through a proxy, e.g. !proxy breadpig.com. Unfortunately, proxies can also be slow, and free proxies (like the one we use) are funded by arguably excessive advertising. Because of these drawbacks in HTTPS, POST and proxies we decided to take the redirect approach to combat search leakage. However, we leave the choice up to you. You can deviate from the default on our settings page by toggling the redirect or address bar settings. You can also use our encrypted version.</p>
|
||||
<a class="anchor"></a>
|
||||
</div>
|
||||
|
||||
<hr class="hr privacy__line-break"/>
|
||||
<div class="privacy__paragraph-container">
|
||||
<h4 class="privacy__body-header"><b>Search History</b></h4>
|
||||
<p class="privacy__body--info">Other search engines save your search history. Usually your searches are saved along with the date and time of the search, some information about your computer (e.g. your IP address, User agent and often a unique identifier stored in a <a href="https://duckduckgo.com/?q=browser cookie">browser cookie</a>), and if you are logged in, your account information (e.g. name and email address). With only the timestamp and computer information, your searches can often be traced directly to you. With the additional account information, they are associated directly with you. Also, note that with this information your searches can be tied together. This means someone can see everything you've been searching, not just one isolated search. You can usually find out a lot about a person from their search history. It's sort of creepy that people at search engines can see all this info about you, but that is not the main concern. The main concern is when they either a) release it to the public or b) give it to law enforcement. Why would they release it to the public? AOL famously released supposedly anonymous search terms for research purposes, except they didn't do a good job of making them completely anonymous, and they were ultimately. <br><br>The other way to release it to the public is by accident. Search engines could lose data, or get hacked, or accidentally expose data due to security holes or incompetence, all of which has happened with personal information on the Internet. Why would search engines give your search history to law enforcement? Simply because law enforcement asked for it, usually as part of a legal investigation. If you read privacy policies and terms of service carefully you will notice that they say they can give your information on court order. This makes sense because they may be legally obligated to do so. However, search engines are not legally obligated to collect personal information in the first place. They do it on their own volition. The bottom line is if search engines have your information, it could get out, even if they have the best intentions. And this information (your search history) can be pretty personal. <br><br>For these reasons, Genesis takes the approach to not collect any personal information. The decisions of whether and how to comply with law enforcement requests, whether and how to anonymize data, and how to best protect your information from hackers are out of our hands. Your search history is safe with us because it cannot be tied to you in any way.</p>
|
||||
<a class="anchor"></a>
|
||||
</div>
|
||||
|
||||
<hr class="hr privacy__line-break"/>
|
||||
<div class="privacy__paragraph-container">
|
||||
<h4 class="privacy__body-header"><b>Information Not Collected</b></h4>
|
||||
<p class="privacy__body--info">When you search at Genesis, we don't know who you are and there is no way to tie your searches together. When you access Genesis (or any Web site), your Web browser automatically sends information about your computer, e.g. your User agent and IP address because this information could be used to link you to your searches, we do not log (store) it at all. This is a very unusual practice, but we feel it is an important step to protect your privacy. It is unusual for a few reasons. First, most server software auto-stores this information, so you have to go out of your way not to store it. Second, most businesses want to keep as much information as possible because they don't know when it will be useful. Third, many search engines actively use this information, for example to show you more targeted advertising. <br><br>Another way that your searches are often tied together at other search engines are through browser cookies, which are pieces of information that sit on your computer and get sent to the search engine on each request. What search engines often do is store a unique identifier in your browser and then associate that identifier with your searches. <br><br>At Genesis, no cookies are used by default. In response to efforts by the EFF and others, the major search engines have begun "anonymizing" their search log data after periods of time. Sure, this is better than not doing so, but you should note that this does not make your search history anonymous in the same way that it is at Genesis. What search engines generally do when they anonymize data is get rid of part of your IP address or turn it into something that doesn't look exactly like an IP address and they do the same thing for uniquely identifying cookies. However, in many cases, this so-called anonymous data can still tie your searches together, which can be used to reconstruct who you are and what you searched for. Additionally, search engines usually are silent on what they do with the User agent, which has been shown to also have enough information to often be personally identifiable, especially if isolated to a particular search session (day).</p>
|
||||
<a class="anchor"></a>
|
||||
</div>
|
||||
|
||||
<hr class="hr privacy__line-break"/>
|
||||
<div class="privacy__paragraph-container">
|
||||
<h4 class="privacy__body-header"><b>Information Collected</b></h4>
|
||||
<p class="privacy__body--info">At Genesis, no cookies are used by default. If you have changed any settings, then cookies are used to store those changes. However, in that case, they are not stored in a personally identifiable way. For example, the large size setting is stored as 's=l'; no unique identifier is in there. Furthermore, if you prefer not to use cookies to store settings, you can use URL parameters instead.
|
||||
<br><br>We do not use any third parties to do the code insertion, and we do not work with any sites that share personally identifiable information (e.g. name, address, etc.) via their affiliate programs. This means that no information is shared from Genesis to the sites, and the only information that is collected from this process is product information, which is not tied to any particular user and which we do not save or store on our end. It is completely analogous to the search result case from the previous paragraph--we can see anonymous product info such that we cannot tie them to any particular person (or even tie multiple purchases together). <br><br>This whole affiliate process is an attempt to keep advertising to a minimal level on Genesis. Finally, if you give us feedback, it may be stored in our email. However, you can give anonymous feedback (by not entering your email or other personal info on the feedback form).
|
||||
</p>
|
||||
<a class="anchor"></a>
|
||||
|
||||
</div>
|
||||
|
||||
<hr class="hr privacy__line-break"/>
|
||||
<div class="privacy__paragraph-container">
|
||||
<h4 class="privacy__body-header"><b>Information Shared</b></h4>
|
||||
<p class="privacy__body--info">If you turn redirects off in the settings and you don't either turn POST on or use our encrypted site, then your search could leak to sites you click on. Yet as explained above, this does not happen by default. Also, like anyone else, we will comply with court ordered legal requests. However, in our case, we don't expect any because there is nothing useful to give them since we don't collect any personal information</p>
|
||||
</div>
|
||||
|
||||
|
||||
<hr class="hr privacy__line-break"/>
|
||||
<div class="privacy__paragraph-container">
|
||||
<h4 class="privacy__body-header"><b>Web Content Policy</b></h4>
|
||||
<p class="privacy__body--info"> This SERVICE is provided by at no cost and is intended for use as is. This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service. If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that we collect is used for providing and improving the Service. We will not use or share your information with anyone except as described in this Privacy Policy. The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at <a href="https://boogle.store/privacy">https://boogle.store/privacy</a> unless otherwise defined in this Privacy Policy. </p>
|
||||
|
||||
<p class="privacy__body--info">
|
||||
For a better experience, while using our Service, we may collect a certain personally identifiable information that is Advertisement Identifier. The information that we collect is retained on your device and is not collected by me in any way. The app does use third party services that may collect information used to identify you. Link to privacy policy of third party service providers used by the app are <br>
|
||||
<ul class="privacy__body-list">
|
||||
<li>Google Play Services: <a href="https://policies.google.com/privacy">https://policies.google.com/privacy</a></li>
|
||||
<li><a href="https://support.google.com/admob/answer/6128543?hl=en">https://support.google.com/admob/answer/6128543?hl=en</a></li>
|
||||
</ul>
|
||||
<p class="privacy__body--info">
|
||||
This application collects user android advertisement identifier and sends it to third party that is google admob for displaying best advertisement suited for that individual but We don’t personally maintain or use this advertisement identifier in any way. We may employ third-party companies and individuals due to the following reasons:
|
||||
</p>
|
||||
<p class="privacy__body--info">
|
||||
<ul class="privacy__body-list">
|
||||
<li>To facilitate our Service</li>
|
||||
<li>To provide the Service on our behalf</li>
|
||||
<li>To perform Service-related services or</li>
|
||||
<li>To analyzing service usage</li>
|
||||
</ul>
|
||||
<p class="privacy__body--info">We want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose. We value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and we cannot guarantee its absolute security</p>
|
||||
<p class="privacy__body--info">This Service only contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by us. Therefore, we strongly advise you to review the Privacy Policy of these websites. We have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services. We may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. We will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.</p><br><br><br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,127 @@
|
|||
/*Privacy Policy Text*/
|
||||
.privacy{
|
||||
background: #ffffff ;
|
||||
}
|
||||
.privacy__welcome{
|
||||
height: 400px;
|
||||
background-image: linear-gradient(to bottom, #ffb31a, #ffb31a);
|
||||
}
|
||||
.privacy__icon{
|
||||
width: 80px;
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.privacy__welcome-header{
|
||||
font-size: 28px;
|
||||
text-align:center;
|
||||
color: whitesmoke;
|
||||
margin-top: 0;
|
||||
padding-top: 3px
|
||||
}
|
||||
.privacy__welcome-header--bottom{
|
||||
margin-top: -31px;
|
||||
}
|
||||
.privacy__welcome-info{
|
||||
font-size: 18px;
|
||||
text-align:center;
|
||||
color: whitesmoke;
|
||||
margin-top: 25px;
|
||||
padding-top: 3px
|
||||
}
|
||||
.privacy__welcome-mail{
|
||||
font-size: 15px;/
|
||||
text-align:center;
|
||||
margin: 25px auto auto;
|
||||
font-weight: bold;
|
||||
padding: 13px 13px 13px 33px;
|
||||
width: 200px;
|
||||
border-radius: 5px;
|
||||
border: 2px solid white;
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
}
|
||||
.privacy__welcome-mail:hover{
|
||||
background: white;
|
||||
color: darkslategray;
|
||||
text-underline: none;
|
||||
text-decoration: none;
|
||||
border: 2px solid white;
|
||||
}
|
||||
.privacy__body{
|
||||
background-image: linear-gradient(to bottom,#ffffff, #ffffff);
|
||||
font-size: 18px;
|
||||
}
|
||||
.privacy__paragraph-container{
|
||||
padding-top: 30px;
|
||||
padding-left: 2%;
|
||||
padding-right: 4%;
|
||||
background-image: linear-gradient(to bottom, #f7f7f7, #f7f7f7, #ffffff);
|
||||
}
|
||||
.privacy__paragraph-container--top{
|
||||
padding-top: 60px;
|
||||
}
|
||||
.privacy__body-header{
|
||||
padding-bottom: 7px;
|
||||
padding-top:2px;
|
||||
text-align: start;
|
||||
margin-bottom: 30px;
|
||||
color: #0c5460;
|
||||
}
|
||||
.privacy__body--info{
|
||||
font-size: 15px;
|
||||
color:#666666;
|
||||
text-align: justify;
|
||||
}
|
||||
.privacy__body-list{
|
||||
font-size:15px;
|
||||
margin-top:10px;
|
||||
padding-left: 15px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;.
|
||||
}
|
||||
.privacy__line-break{
|
||||
background: #ffb31a;
|
||||
border: 0;
|
||||
height: 4px;
|
||||
margin-top: 100px;
|
||||
margin-bottom: 0;
|
||||
margin-left: 30px;
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.footer__catagories--policy{
|
||||
border-bottom: 4px solid whitesmoke;
|
||||
}
|
||||
|
||||
/*Footer-bar Style*/
|
||||
|
||||
@media only screen and (max-width: 943px) {
|
||||
.privacy__body {
|
||||
padding-left:0;
|
||||
padding-right:0;
|
||||
padding-top:0;
|
||||
}
|
||||
.privacy__paragraph-container{
|
||||
padding-top: 30px;
|
||||
padding-left: 4%;
|
||||
padding-right: 4%;
|
||||
}
|
||||
.privacy__paragraph-container--top{
|
||||
padding-top: 50px;
|
||||
}
|
||||
.privacy__line-break{
|
||||
background: #ffb31a;
|
||||
border: 0;
|
||||
height: 6px;
|
||||
margin: 60px 40% 0;
|
||||
width: auto;
|
||||
}
|
||||
.privacy__body-header{
|
||||
padding-bottom: 7px;
|
||||
padding-top:2px;
|
||||
text-align: center;
|
||||
margin-bottom: 30px;
|
||||
color: #0c5460;
|
||||
}
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,149 @@
|
|||
/*global styles*/
|
||||
|
||||
/* visited link */
|
||||
a:visited {
|
||||
color: darkblue;
|
||||
}
|
||||
|
||||
|
||||
/* mouse over link */
|
||||
a:hover {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: darkblue;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#load{
|
||||
width:100%;
|
||||
height:100%;
|
||||
position:fixed;
|
||||
z-index:9999;
|
||||
background:url("https://www.creditmutuel.fr/cmne/fr/banques/webservices/nswr/images/loading.gif") no-repeat center center rgba(0,0,0,0.25)
|
||||
}
|
||||
|
||||
button:focus {
|
||||
outline:0 !important;
|
||||
}
|
||||
input:focus {
|
||||
outline:0 !important;
|
||||
}
|
||||
|
||||
html{
|
||||
overflow-x: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
height: 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-position: left bottom;
|
||||
}
|
||||
|
||||
.delay-load{
|
||||
-webkit-animation: fadein 0; /* Firefox < 16 */
|
||||
-moz-animation: fadein 0s; /* Firefox < 16 */
|
||||
-ms-animation: fadein 0s; /* Internet Explorer */
|
||||
-o-animation: fadein 0s; /* Opera < 12.1 */
|
||||
-animation: fadein 0s;
|
||||
|
||||
-webkit-animation-delay: 0s;
|
||||
-moz-animation-delay: 0s;
|
||||
-ms-animation-delay: 0s;
|
||||
-o-animation-delay: 0s;
|
||||
-animation-delay: 0s;
|
||||
|
||||
-webkit-animation-fill-mode: forwards;
|
||||
-moz-animation-fill-mode: forwards;
|
||||
-ms-animation-fill-mode: forwards;
|
||||
-o-animation-fill-mode: forwards;
|
||||
-animation-fill-mode: forwards;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.body-wrap{
|
||||
max-height: 90%;
|
||||
}
|
||||
|
||||
.gs-disable-highlight
|
||||
{
|
||||
-webkit-touch-callout: none !important;
|
||||
-webkit-user-select: none !important;;
|
||||
-khtml-user-select: none !important;;
|
||||
-moz-user-select: none !important;;
|
||||
-ms-user-select: none !important;;
|
||||
outline:none !important;;
|
||||
}
|
||||
|
||||
.gs-disable-decoration
|
||||
{
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.gs_container_size
|
||||
{
|
||||
min-height: 100%;
|
||||
margin-top: -28px;
|
||||
}
|
||||
|
||||
.hi_search__logo{
|
||||
margin-left: 36%;
|
||||
}
|
||||
|
||||
/*light-header style*/
|
||||
.dark_header{
|
||||
color:#000000;
|
||||
height: 60px;
|
||||
text-align: right;
|
||||
background-image: linear-gradient(to right, #e6e6e6, #ffffff);
|
||||
border-bottom-color:#cfe2e2;
|
||||
border-style: solid;border-right-width: 0;
|
||||
border-left-width: 0;border-top-width: 0;
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
|
||||
|
||||
.scroller {
|
||||
height: 100px;
|
||||
overflow-y: scroll;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
|
||||
@keyframes fadein {
|
||||
from { opacity: 1; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
/* Firefox < 16 */
|
||||
@-moz-keyframes fadein {
|
||||
from { opacity: 0.2; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
/* Safari, Chrome and Opera > 12.1 */
|
||||
@-webkit-keyframes fadein {
|
||||
from { opacity: 0.2; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
|
||||
/* Opera < 12.1 */
|
||||
@-o-keyframes fadein {
|
||||
from { opacity: 0.2; }
|
||||
to { opacity: 1; }
|
||||
}
|
||||
/* Placeholder Text Color */
|
||||
::-webkit-input-placeholder { /* Edge */
|
||||
color: #b3b3b3 !important;
|
||||
}
|
||||
|
||||
:-ms-input-placeholder { /* Internet Explorer 10-11 */
|
||||
color: #b3b3b3 !important;
|
||||
}
|
||||
|
||||
::placeholder {
|
||||
color: #b3b3b3 !important;
|
||||
}
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
|
@ -1,6 +1,8 @@
|
|||
package com.hiddenservices.onionservices.appManager.homeManager.geckoManager;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.constants.strings;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.example.myapplication.R;
|
||||
|
@ -56,6 +58,13 @@ public class errorHandler
|
|||
message = message.replace("$ERROR_M4",mContext.getString(R.string.ERROR_M4));
|
||||
message = message.replace("$ERROR_M5",mContext.getString(R.string.ERROR_M5));
|
||||
message = message.replace("$ERROR_M6",mContext.getString(R.string.ERROR_M6));
|
||||
|
||||
if(status.sTorBrowsing){
|
||||
message = message.replace("$ERROR_M7","block");
|
||||
}else {
|
||||
message = message.replace("$ERROR_M7","none");
|
||||
}
|
||||
|
||||
message = message.replace("$ERROR", error);
|
||||
|
||||
return message;
|
||||
|
|
|
@ -24,6 +24,7 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_URL_CACHED;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_PRIVACY_POLICY_URL_NON_TOR;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_REPORT_URL;
|
||||
import static com.hiddenservices.onionservices.constants.enums.etype.M_INDEX_WEBSITE;
|
||||
import static com.hiddenservices.onionservices.constants.enums.etype.on_handle_external_intent;
|
||||
|
@ -110,6 +111,7 @@ public class geckoClients
|
|||
|
||||
public void onValidateInitializeFromStartup(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
|
||||
boolean mStatus = mSession.onValidateInitializeFromStartup();
|
||||
|
||||
if(mStatus){
|
||||
boolean mState = mSession.onRestoreState();
|
||||
if(!mState){
|
||||
|
@ -189,16 +191,18 @@ public class geckoClients
|
|||
if(status.sTorBrowsing){
|
||||
mYAML = mYAML.replace("# network.proxy.socks: \"127.0.0.1\"","network.proxy.socks: \"127.0.0.1\"");
|
||||
mYAML = mYAML.replace("# network.proxy.socks_port: 9050","network.proxy.socks_port: 9050");
|
||||
mYAML = mYAML.replace("browser.cache.memory.enable: true","browser.cache.memory.enable: true");
|
||||
|
||||
StringBuilder buf = new StringBuilder(mYAML);
|
||||
int portIndex = mYAML.indexOf("network.proxy.socks_port");
|
||||
int breakIndex = mYAML.indexOf("\n",portIndex);
|
||||
mYAML = buf.replace(portIndex, breakIndex,"network.proxy.socks_port: "+ orbotLocalConstants.mSOCKSPort).toString();
|
||||
helperMethod.writeToFile(cacheFile.getPath(), mYAML);
|
||||
}else {
|
||||
mYAML = mYAML.replace("browser.cache.memory.enable: true","browser.cache.memory.enable: false");
|
||||
helperMethod.writeToFile(cacheFile.getPath(), mYAML);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return cacheFile.getAbsolutePath();
|
||||
}
|
||||
|
||||
|
@ -281,7 +285,7 @@ public class geckoClients
|
|||
if(mRuntime==null){
|
||||
GeckoRuntimeSettings.Builder mSettings = new GeckoRuntimeSettings.Builder();
|
||||
if(status.sShowImages == 2){
|
||||
mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config-noimage.yaml"));
|
||||
//mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config-noimage.yaml"));
|
||||
}else {
|
||||
mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config.yaml"));
|
||||
}
|
||||
|
@ -306,14 +310,21 @@ public class geckoClients
|
|||
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.STRICT);
|
||||
}
|
||||
|
||||
dataController.getInstance().initializeListData();
|
||||
}
|
||||
initBrowserManager();
|
||||
}
|
||||
|
||||
mIconManager = new BrowserIconManager();
|
||||
public void initBrowserManager(){
|
||||
if(mIconManager == null){
|
||||
mIconManager = new BrowserIconManager();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void onGetFavIcon(ImageView pImageView, String pURL, AppCompatActivity pcontext){
|
||||
initBrowserManager();
|
||||
pURL = helperMethod.completeURL(helperMethod.getDomainName(pURL));
|
||||
mIconManager.onLoadIconIntoView(pcontext,mRuntime, pImageView, pURL);
|
||||
}
|
||||
|
@ -405,6 +416,11 @@ public class geckoClients
|
|||
}
|
||||
|
||||
public void loadURL(String url, NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext) {
|
||||
if(url.startsWith("https://genesis.onion/privacy")){
|
||||
url=CONST_PRIVACY_POLICY_URL_NON_TOR;
|
||||
}
|
||||
|
||||
|
||||
url = helperMethod.completeURL(url);
|
||||
mSession = (geckoSession)mNestedGeckoView.getSession();
|
||||
if(mSession==null){
|
||||
|
|
|
@ -699,7 +699,11 @@ geckoSession extends GeckoSession implements MediaSession.Delegate,GeckoSession.
|
|||
|
||||
public void onClose(){
|
||||
stop();
|
||||
mCurrentURL = mPrevURL;
|
||||
if(!mPrevURL.equals("about:blank")){
|
||||
mCurrentURL = mPrevURL;
|
||||
}else {
|
||||
mPrevURL = mCurrentURL;
|
||||
}
|
||||
//mIsLoaded = false;
|
||||
//isPageLoading = false;
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
private ConstraintLayout mWebViewContainer;
|
||||
|
||||
/*View Objects*/
|
||||
private ProgressBar mProgressBar;
|
||||
public ProgressBar mProgressBar;
|
||||
private ConstraintLayout mSplashScreen;
|
||||
private editTextManager mSearchbar;
|
||||
private ImageView mLoadingIcon;
|
||||
|
@ -248,6 +248,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
initBundle();
|
||||
initTor();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void initTor(){
|
||||
|
@ -541,7 +542,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback());
|
||||
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
|
||||
mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this);
|
||||
dataController.getInstance().initializeListData();
|
||||
}
|
||||
|
||||
public void onUpdateStatusBarTheme(){
|
||||
|
@ -581,8 +581,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void onCloseAllTabs(){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.CLOSE_ALL_TABS, null);
|
||||
}
|
||||
|
||||
public void initializeGeckoView(boolean isForced, boolean pDatabaseSavable){
|
||||
|
@ -1488,6 +1490,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@Override
|
||||
public void onPause(){
|
||||
super.onPause();
|
||||
if(mGeckoClient.getSession()!=null){
|
||||
mGeckoClient.getSession().setActive(false);
|
||||
}
|
||||
if(mGeckoClient.getSession()==null)
|
||||
return;
|
||||
if(mHomeViewController!=null){
|
||||
|
@ -1527,6 +1532,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
if(mGeckoClient.getSession()!=null){
|
||||
mGeckoClient.getSession().setActive(true);
|
||||
}
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
activityContextManager.getInstance().setCurrentActivity(this);
|
||||
|
||||
|
@ -1906,7 +1914,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
status.sTorBrowsing = true;
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, constants.CONST_BACKEND_GENESIS_URL));
|
||||
}
|
||||
|
||||
mGeckoClient.getSession().purgeHistory();
|
||||
onClearSettings();
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_TOR_BROWSING,status.sTorBrowsing));
|
||||
pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_IMAGE_UPDATE);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.hiddenservices.onionservices.appManager.homeManager.homeController;
|
||||
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_PRIVACY_POLICY_URL_NON_TOR;
|
||||
|
||||
import android.util.Patterns;
|
||||
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
|
@ -15,6 +17,9 @@ class homeModel
|
|||
}
|
||||
|
||||
String urlComplete(String pURL, String pSearchEngine){
|
||||
if(pURL.startsWith(CONST_PRIVACY_POLICY_URL_NON_TOR)){
|
||||
return CONST_PRIVACY_POLICY_URL_NON_TOR;
|
||||
}
|
||||
if(pURL.startsWith("data")){
|
||||
return pURL;
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ import androidx.fragment.app.FragmentContainerView;
|
|||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.applovin.mediation.ads.MaxAdView;
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.constants.*;
|
||||
import com.hiddenservices.onionservices.dataManager.dataController;
|
||||
import com.hiddenservices.onionservices.dataManager.dataEnums;
|
||||
|
@ -61,6 +62,7 @@ import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
|||
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_DOMAIN_URL;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_URL_CACHED;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_URL_CACHED_DARK;
|
||||
import static com.hiddenservices.onionservices.constants.constants.CONST_PRIVACY_POLICY_URL_NON_TOR;
|
||||
import static org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
|
||||
import static java.lang.Thread.sleep;
|
||||
|
||||
|
@ -1041,6 +1043,9 @@ class homeViewController
|
|||
if(url.endsWith("genesisconfigurenewidentity.com/")){
|
||||
return;
|
||||
}
|
||||
if(url.startsWith(CONST_PRIVACY_POLICY_URL_NON_TOR)){
|
||||
url="https://genesis.onion/privacy";
|
||||
}
|
||||
|
||||
if(url.startsWith(CONST_GENESIS_URL_CACHED) || url.startsWith(CONST_GENESIS_URL_CACHED_DARK)){
|
||||
mSearchbar.setTag(R.id.msearchbarProcessing,true);
|
||||
|
@ -1338,6 +1343,7 @@ class homeViewController
|
|||
|
||||
void onProgressBarUpdate(int value, boolean mForced){
|
||||
|
||||
mProgressBar = activityContextManager.getInstance().getHomeController().mProgressBar;
|
||||
if(value != 0 && value != 100){
|
||||
mAppBar.setExpanded(true,true);
|
||||
status.sDisableExpandTemp = true;
|
||||
|
|
|
@ -4,6 +4,8 @@ import android.content.Intent;
|
|||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
|
@ -15,6 +17,7 @@ import androidx.recyclerview.widget.SimpleItemAnimator;
|
|||
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.helpManager.helpController;
|
||||
import com.hiddenservices.onionservices.appManager.homeManager.homeController.homeController;
|
||||
import com.hiddenservices.onionservices.constants.constants;
|
||||
import com.hiddenservices.onionservices.constants.keys;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
|
@ -38,6 +41,8 @@ import static com.hiddenservices.onionservices.constants.constants.CONST_LANGUAG
|
|||
import static com.hiddenservices.onionservices.pluginManager.pluginEnums.eLangManager.M_SUPPORTED_SYSTEM_LANGUAGE_INFO;
|
||||
import static com.hiddenservices.onionservices.pluginManager.pluginEnums.eMessageManager.M_LANGUAGE_SUPPORT_FAILURE;
|
||||
|
||||
import org.torproject.android.service.wrapper.orbotLocalConstants;
|
||||
|
||||
public class languageController extends AppCompatActivity {
|
||||
|
||||
/*Private Variables*/
|
||||
|
@ -141,7 +146,8 @@ public class languageController extends AppCompatActivity {
|
|||
String mSystemLangugage = mSystemLocale.toString();
|
||||
status.sSettingLanguage = CONST_LANGUAGE_DEFAULT_LANG;
|
||||
status.sSettingLanguageRegion = CONST_LANGUAGE_DEFAULT_LANG;
|
||||
if(!mSystemLangugage.equals("cs_CZ") && !mSystemLangugage.equals("en_US") && !mSystemLangugage.equals("ur_PK") && !mSystemLangugage.equals("de_DE") && !mSystemLangugage.equals("ca_ES") && !mSystemLangugage.equals("zh_CN") && !mSystemLangugage.equals("ch_CZ") && !mSystemLangugage.equals("nl_NL") && !mSystemLangugage.equals("fr_FR") && !mSystemLangugage.equals("el_GR") && !mSystemLangugage.equals("hu_HU") && !mSystemLangugage.equals("in_ID") && !mSystemLangugage.equals("it_IT") && !mSystemLangugage.equals("ja_JP") && !mSystemLangugage.equals("ko_KR") && !mSystemLangugage.equals("pt_PT") && !mSystemLangugage.equals("ro_RO") && !mSystemLangugage.equals("ru_RU") && !mSystemLangugage.equals("th_TH") && !mSystemLangugage.equals("tr_TR") && !mSystemLangugage.equals("uk_UA") && !mSystemLangugage.equals("vi_VN")){
|
||||
Log.i("MFUCKER",mSystemLangugage);
|
||||
if(!mSystemLangugage.equals("en_GB") && !mSystemLangugage.equals("cs_CZ") && !mSystemLangugage.equals("en_US") && !mSystemLangugage.equals("ur_PK") && !mSystemLangugage.equals("de_DE") && !mSystemLangugage.equals("ca_ES") && !mSystemLangugage.equals("zh_CN") && !mSystemLangugage.equals("ch_CZ") && !mSystemLangugage.equals("nl_NL") && !mSystemLangugage.equals("fr_FR") && !mSystemLangugage.equals("el_GR") && !mSystemLangugage.equals("hu_HU") && !mSystemLangugage.equals("in_ID") && !mSystemLangugage.equals("it_IT") && !mSystemLangugage.equals("ja_JP") && !mSystemLangugage.equals("ko_KR") && !mSystemLangugage.equals("pt_PT") && !mSystemLangugage.equals("ro_RO") && !mSystemLangugage.equals("ru_RU") && !mSystemLangugage.equals("th_TH") && !mSystemLangugage.equals("tr_TR") && !mSystemLangugage.equals("uk_UA") && !mSystemLangugage.equals("vi_VN")){
|
||||
mDefaultLanguageNotSupported = true;
|
||||
}
|
||||
}else {
|
||||
|
@ -162,7 +168,7 @@ public class languageController extends AppCompatActivity {
|
|||
}
|
||||
|
||||
if(mDefaultLanguageNotSupported){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(Resources.getSystem().getConfiguration().locale.getDisplayName(), this),M_LANGUAGE_SUPPORT_FAILURE);
|
||||
//pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(Resources.getSystem().getConfiguration().locale.getDisplayName(), languageController.this),M_LANGUAGE_SUPPORT_FAILURE);
|
||||
}
|
||||
|
||||
status.mThemeApplying = true;
|
||||
|
|
|
@ -48,7 +48,7 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
onInitTheme();
|
||||
//onInitTheme();
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onCreate(savedInstanceState);
|
||||
if(!status.mThemeApplying){
|
||||
|
@ -138,9 +138,6 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
|
||||
if(mIsThemeChangable){
|
||||
status.mThemeApplying = true;
|
||||
onBackPressed();
|
||||
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
||||
helperMethod.openActivity(settingGeneralController.class, constants.CONST_LIST_HISTORY, settingGeneralController.this,true);
|
||||
|
||||
|
||||
new Handler().postDelayed(() ->
|
||||
|
@ -148,6 +145,12 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
if(activityContextManager.getInstance().getHomeController() != null){
|
||||
activityContextManager.getInstance().getHomeController().onReInitTheme();
|
||||
activityContextManager.getInstance().getSettingController().onInitTheme();
|
||||
activityContextManager.getInstance().getHomeController().onCloseAllTabs();
|
||||
activityContextManager.getInstance().getHomeController().onReload(null);
|
||||
|
||||
onBackPressed();
|
||||
overridePendingTransition(R.anim.fade_in_lang, R.anim.fade_out_lang);
|
||||
helperMethod.openActivity(settingGeneralController.class, constants.CONST_LIST_HISTORY, settingGeneralController.this,true);
|
||||
|
||||
}
|
||||
}, 100);
|
||||
|
|
|
@ -1,130 +1,130 @@
|
|||
package com.hiddenservices.onionservices.appManager.proxyStatusManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.orbotLogManager.orbotLogController;
|
||||
import com.hiddenservices.onionservices.constants.constants;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.appManager.activityThemeManager;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class proxyStatusController extends AppCompatActivity {
|
||||
|
||||
/* PRIVATE VARIABLES */
|
||||
private proxyStatusModel mProxyStatusModel;
|
||||
private proxyStatusViewController mProxyStatusViewController;
|
||||
|
||||
/* INITIALIZATIONS */
|
||||
private TextView mOrbotStatus;
|
||||
private SwitchMaterial mVpnStatus;
|
||||
private SwitchMaterial mBridgeStatus;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
if(!status.sSettingIsAppStarted){
|
||||
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.proxy_status_view);
|
||||
|
||||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
if(newConfig.uiMode != getResources().getConfiguration().uiMode){
|
||||
activityContextManager.getInstance().onResetTheme();
|
||||
activityThemeManager.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mOrbotStatus = findViewById(R.id.pOrbotStatus);
|
||||
mVpnStatus = findViewById(R.id.pVpnStatus);
|
||||
mBridgeStatus = findViewById(R.id.pBridgeStatus);
|
||||
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
mProxyStatusViewController = new proxyStatusViewController(this, mOrbotStatus, mVpnStatus, mBridgeStatus);
|
||||
Object mProxy = pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS);
|
||||
if(mProxy == null){
|
||||
mProxyStatusViewController.onTrigger(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS, Arrays.asList("loading...", status.sVPNStatus,status.sBridgeStatus));
|
||||
}else{
|
||||
mProxyStatusViewController.onTrigger(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS, Arrays.asList(mProxy, status.sVPNStatus,status.sBridgeStatus));
|
||||
}
|
||||
mProxyStatusModel = new proxyStatusModel(new proxyStatusModelCallback());
|
||||
}
|
||||
|
||||
public void orbotLog(View view) {
|
||||
helperMethod.openActivity(orbotLogController.class, constants.CONST_LIST_HISTORY, this,true);
|
||||
}
|
||||
|
||||
public void refreshOrbotStatus(View view) {
|
||||
mProxyStatusViewController.onTrigger(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS, Arrays.asList(pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS), status.sVPNStatus,status.sBridgeStatus));
|
||||
}
|
||||
|
||||
/* LISTENERS */
|
||||
|
||||
public class proxyStatusModelCallback implements eventObserver.eventListener{
|
||||
@Override
|
||||
public Object invokeObserver(List<Object> data, Object e_type)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void onClose(View view){
|
||||
finish();
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
if(!status.sSettingIsAppStarted){
|
||||
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOCAL OVERRIDES */
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause()
|
||||
{
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
onClose(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
}
|
||||
package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.orbotLogManager.orbotLogController;
|
||||
import com.hiddenservices.onionservices.constants.constants;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.appManager.activityThemeManager;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class proxyStatusController extends AppCompatActivity {
|
||||
|
||||
/* PRIVATE VARIABLES */
|
||||
private proxyStatusModel mProxyStatusModel;
|
||||
private proxyStatusViewController mProxyStatusViewController;
|
||||
|
||||
/* INITIALIZATIONS */
|
||||
private TextView mOrbotStatus;
|
||||
private SwitchMaterial mVpnStatus;
|
||||
private SwitchMaterial mBridgeStatus;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
if(!status.sSettingIsAppStarted){
|
||||
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.proxy_status_view);
|
||||
|
||||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
super.onConfigurationChanged(newConfig);
|
||||
if(newConfig.uiMode != getResources().getConfiguration().uiMode){
|
||||
activityContextManager.getInstance().onResetTheme();
|
||||
activityThemeManager.getInstance().onConfigurationChanged(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mOrbotStatus = findViewById(R.id.pOrbotStatus);
|
||||
mVpnStatus = findViewById(R.id.pVpnStatus);
|
||||
mBridgeStatus = findViewById(R.id.pBridgeStatus);
|
||||
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
mProxyStatusViewController = new proxyStatusViewController(this, mOrbotStatus, mVpnStatus, mBridgeStatus);
|
||||
Object mProxy = pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS);
|
||||
if(mProxy == null){
|
||||
mProxyStatusViewController.onTrigger(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS, Arrays.asList("loading...", status.sVPNStatus,status.sBridgeStatus));
|
||||
}else{
|
||||
mProxyStatusViewController.onTrigger(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS, Arrays.asList(mProxy, status.sVPNStatus,status.sBridgeStatus));
|
||||
}
|
||||
mProxyStatusModel = new proxyStatusModel(new proxyStatusModelCallback());
|
||||
}
|
||||
|
||||
public void orbotLog(View view) {
|
||||
helperMethod.openActivity(orbotLogController.class, constants.CONST_LIST_HISTORY, this,true);
|
||||
}
|
||||
|
||||
public void refreshOrbotStatus(View view) {
|
||||
mProxyStatusViewController.onTrigger(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS, Arrays.asList(pluginController.getInstance().onOrbotInvoke(null, pluginEnums.eOrbotManager.M_GET_ORBOT_STATUS), status.sVPNStatus,status.sBridgeStatus));
|
||||
}
|
||||
|
||||
/* LISTENERS */
|
||||
|
||||
public class proxyStatusModelCallback implements eventObserver.eventListener{
|
||||
@Override
|
||||
public Object invokeObserver(List<Object> data, Object e_type)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void onClose(View view){
|
||||
finish();
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
if(!status.sSettingIsAppStarted){
|
||||
overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
}
|
||||
}
|
||||
|
||||
/* LOCAL OVERRIDES */
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
activityContextManager.getInstance().onRemoveStack(this);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause()
|
||||
{
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
onClose(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
}
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
package com.hiddenservices.onionservices.appManager.proxyStatusManager;
|
||||
|
||||
public class proxyStatusEnums
|
||||
{
|
||||
/*Settings Manager*/
|
||||
public enum eProxyStatusViewCommands {
|
||||
M_INIT_VIEWS
|
||||
}
|
||||
|
||||
public enum eProxyStatusModelCommands {
|
||||
}
|
||||
package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
|
||||
|
||||
public class proxyStatusEnums
|
||||
{
|
||||
/*Settings Manager*/
|
||||
public enum eProxyStatusViewCommands {
|
||||
M_INIT_VIEWS
|
||||
}
|
||||
|
||||
public enum eProxyStatusModelCommands {
|
||||
}
|
||||
}
|
|
@ -1,17 +1,17 @@
|
|||
package com.hiddenservices.onionservices.appManager.proxyStatusManager;
|
||||
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
|
||||
class proxyStatusModel
|
||||
{
|
||||
/*Variable Declaration*/
|
||||
|
||||
private eventObserver.eventListener mEvent;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
proxyStatusModel(eventObserver.eventListener mEvent){
|
||||
this.mEvent = mEvent;
|
||||
}
|
||||
|
||||
}
|
||||
package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
|
||||
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
|
||||
class proxyStatusModel
|
||||
{
|
||||
/*Variable Declaration*/
|
||||
|
||||
private eventObserver.eventListener mEvent;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
proxyStatusModel(eventObserver.eventListener mEvent){
|
||||
this.mEvent = mEvent;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,70 +1,76 @@
|
|||
package com.hiddenservices.onionservices.appManager.proxyStatusManager;
|
||||
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
import java.util.List;
|
||||
|
||||
class proxyStatusViewController
|
||||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private AppCompatActivity mContext;
|
||||
private SwitchMaterial mBridgeSwitch;
|
||||
private SwitchMaterial mVpnSwitch;
|
||||
private LinearLayout mCustomizableBridgeMenu;
|
||||
|
||||
/*Initializations*/
|
||||
private TextView mOrbotStatus;
|
||||
private SwitchMaterial mVpnStatus;
|
||||
private SwitchMaterial mBridgeStatus;
|
||||
|
||||
proxyStatusViewController(AppCompatActivity pContext, TextView pOrbotStatus, SwitchMaterial pVpnStatus, SwitchMaterial pBridgeStatus)
|
||||
{
|
||||
this.mContext = pContext;
|
||||
this.mOrbotStatus = pOrbotStatus;
|
||||
this.mVpnStatus = pVpnStatus;
|
||||
this.mBridgeStatus = pBridgeStatus;
|
||||
|
||||
initPostUI();
|
||||
}
|
||||
|
||||
private void initPostUI(){
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
Window window = mContext.getWindow();
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
}
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void initViews(String pOrbotStatus, boolean pVPNStatus, boolean pGatewayStatus){
|
||||
mOrbotStatus.setText(pOrbotStatus);
|
||||
mVpnStatus.setChecked(pVPNStatus);
|
||||
mBridgeStatus.setChecked(pGatewayStatus);
|
||||
}
|
||||
|
||||
public void onTrigger(proxyStatusEnums.eProxyStatusViewCommands pCommands, List<Object> pData){
|
||||
if(pCommands.equals(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS)){
|
||||
initViews((String)pData.get(0),(boolean)pData.get(1),(boolean)pData.get(2));
|
||||
}
|
||||
}
|
||||
}
|
||||
package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
|
||||
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
class proxyStatusViewController
|
||||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private AppCompatActivity mContext;
|
||||
private SwitchMaterial mBridgeSwitch;
|
||||
private SwitchMaterial mVpnSwitch;
|
||||
private LinearLayout mCustomizableBridgeMenu;
|
||||
|
||||
/*Initializations*/
|
||||
private TextView mOrbotStatus;
|
||||
private SwitchMaterial mVpnStatus;
|
||||
private SwitchMaterial mBridgeStatus;
|
||||
|
||||
proxyStatusViewController(AppCompatActivity pContext, TextView pOrbotStatus, SwitchMaterial pVpnStatus, SwitchMaterial pBridgeStatus)
|
||||
{
|
||||
this.mContext = pContext;
|
||||
this.mOrbotStatus = pOrbotStatus;
|
||||
this.mVpnStatus = pVpnStatus;
|
||||
this.mBridgeStatus = pBridgeStatus;
|
||||
|
||||
initPostUI();
|
||||
}
|
||||
|
||||
private void initPostUI(){
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
Window window = mContext.getWindow();
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
window.setStatusBarColor(mContext.getResources().getColor(R.color.blue_dark));
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.landing_ease_blue));
|
||||
}
|
||||
else {
|
||||
if(AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO){
|
||||
mContext.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
}
|
||||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void initViews(String pOrbotStatus, boolean pVPNStatus, boolean pGatewayStatus){
|
||||
if(!status.sTorBrowsing){
|
||||
mOrbotStatus.setText("In Active");
|
||||
}else {
|
||||
mOrbotStatus.setText(pOrbotStatus);
|
||||
}
|
||||
mVpnStatus.setChecked(pVPNStatus);
|
||||
mBridgeStatus.setChecked(pGatewayStatus);
|
||||
}
|
||||
|
||||
public void onTrigger(proxyStatusEnums.eProxyStatusViewCommands pCommands, List<Object> pData){
|
||||
if(pCommands.equals(proxyStatusEnums.eProxyStatusViewCommands.M_INIT_VIEWS)){
|
||||
initViews((String)pData.get(0),(boolean)pData.get(1),(boolean)pData.get(2));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,13 +4,14 @@ import android.content.res.Configuration;
|
|||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.appManager.helpManager.helpController;
|
||||
import com.hiddenservices.onionservices.appManager.proxyStatusManager.proxyStatusController;
|
||||
import com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager.proxyStatusController;
|
||||
import com.hiddenservices.onionservices.appManager.settingManager.accessibilityManager.settingAccessibilityController;
|
||||
import com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController;
|
||||
import com.hiddenservices.onionservices.appManager.settingManager.clearManager.settingClearController;
|
||||
|
@ -28,7 +29,6 @@ import com.hiddenservices.onionservices.dataManager.dataEnums;
|
|||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
import com.hiddenservices.onionservices.appManager.activityThemeManager;
|
||||
import com.hiddenservices.onionservices.libs.trueTime.trueTimeEncryption;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginController;
|
||||
import com.hiddenservices.onionservices.pluginManager.pluginEnums;
|
||||
import com.example.myapplication.R;
|
||||
|
@ -46,6 +46,10 @@ public class settingHomeController extends AppCompatActivity
|
|||
|
||||
private settingHomeViewController mSettingViewController;
|
||||
private settingHomeModel mSettingModel;
|
||||
private LinearLayout mOption15;
|
||||
private LinearLayout mOption16;
|
||||
|
||||
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
|
@ -67,6 +71,7 @@ public class settingHomeController extends AppCompatActivity
|
|||
listenersInitializations();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
|
@ -100,7 +105,10 @@ public class settingHomeController extends AppCompatActivity
|
|||
private void viewsInitializations()
|
||||
{
|
||||
activityContextManager.getInstance().setSettingController(this);
|
||||
mSettingViewController = new settingHomeViewController(this, new settingViewCallback());
|
||||
mOption15 = findViewById(R.id.pOption15);
|
||||
mOption16 = findViewById(R.id.pOption16);
|
||||
|
||||
mSettingViewController = new settingHomeViewController(this, new settingViewCallback(), mOption15, mOption16);
|
||||
}
|
||||
|
||||
private void listenersInitializations()
|
||||
|
@ -255,7 +263,11 @@ public class settingHomeController extends AppCompatActivity
|
|||
|
||||
public void onPrivacyPolicy(View view) {
|
||||
finish();
|
||||
activityContextManager.getInstance().getHomeController().onLoadURL(helperMethod.setGenesisVerificationToken(constants.CONST_PRIVACY_POLICY_URL));
|
||||
if(!status.sTorBrowsing){
|
||||
activityContextManager.getInstance().getHomeController().onLoadURL(helperMethod.setGenesisVerificationToken(constants.CONST_PRIVACY_POLICY_URL_NON_TOR));
|
||||
}else {
|
||||
activityContextManager.getInstance().getHomeController().onLoadURL(helperMethod.setGenesisVerificationToken(constants.CONST_PRIVACY_POLICY_URL));
|
||||
}
|
||||
}
|
||||
|
||||
public void onRateApplication(View view) {
|
||||
|
|
|
@ -4,11 +4,19 @@ import android.os.Build;
|
|||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.hiddenservices.onionservices.appManager.activityContextManager;
|
||||
import com.hiddenservices.onionservices.constants.constants;
|
||||
import com.hiddenservices.onionservices.constants.status;
|
||||
import com.hiddenservices.onionservices.eventObserver;
|
||||
import com.example.myapplication.R;
|
||||
import com.hiddenservices.onionservices.helperManager.helperMethod;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
class settingHomeViewController
|
||||
|
@ -18,13 +26,19 @@ class settingHomeViewController
|
|||
private eventObserver.eventListener mEvent;
|
||||
private AppCompatActivity mContext;
|
||||
|
||||
private LinearLayout mOption15;
|
||||
private LinearLayout mOption16;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
settingHomeViewController(settingHomeController mContext, eventObserver.eventListener mEvent)
|
||||
settingHomeViewController(settingHomeController mContext, eventObserver.eventListener mEvent, LinearLayout pOption15, LinearLayout pOption16)
|
||||
{
|
||||
this.mEvent = mEvent;
|
||||
this.mContext = mContext;
|
||||
|
||||
this.mOption15 = pOption15;
|
||||
this.mOption16 = pOption16;
|
||||
|
||||
initPostUI();
|
||||
}
|
||||
|
||||
|
@ -44,6 +58,12 @@ class settingHomeViewController
|
|||
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background));
|
||||
}
|
||||
}
|
||||
|
||||
if(!status.sTorBrowsing){
|
||||
this.mOption15.setVisibility(View.GONE);
|
||||
this.mOption16.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Object onTrigger(settingHomeEnums.eHomeViewController pCommands, List<Object> pData){
|
||||
|
|
|
@ -257,7 +257,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
TextView mDate;
|
||||
ImageView mLoadSession;
|
||||
ImageButton mRemoveRow;
|
||||
ThumbnailCrop mWebThumbnail;
|
||||
ImageView mWebThumbnail;
|
||||
FrameLayout mSelectedView;
|
||||
FrameLayout mItemSelectionMenu;
|
||||
Button mItemSelectionMenuButton;
|
||||
|
|
|
@ -9,6 +9,10 @@ public class constants
|
|||
public static final String CONST_SAMSUNG_URL = "http://www.samsungapps.com/appquery/appDetail.as?appId=com.darkweb.genesissearchengine.production";
|
||||
public static final String CONST_HUAWEI_URL = "https://appgallery.cloud.huawei.com/uowap/index.html#/detailApp/C105664271?appId=C105664271";
|
||||
|
||||
public static final String CONST_PRIVACY_POLICY_URL_NON_TOR = "resource://android/assets/policy/policy.html";
|
||||
public static final String CONST_REPORT_URL_NON_TOR = "http://http://167.86.99.31/report?url=";
|
||||
public static final String CONST_SITEMAP_NON_TOR = "http://http://167.86.99.31/sitemap";
|
||||
|
||||
public static final String CONST_PRIVACY_POLICY_URL = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/privacy";
|
||||
public static final String CONST_REPORT_URL = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/report?url=";
|
||||
public static final String CONST_SITEMAP = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/sitemap";
|
||||
|
|
|
@ -25,7 +25,7 @@ public class dataController
|
|||
{
|
||||
/*Private Variables*/
|
||||
|
||||
private tabDataModel mTabModel;
|
||||
private tabDataModel mTabModel = null;
|
||||
private preferenceDataModel mPreferenceModel;
|
||||
private historyDataModel mHistoryModel;
|
||||
private imageDataModel mImageDataModel;
|
||||
|
@ -48,17 +48,19 @@ public class dataController
|
|||
/*Initializations*/
|
||||
|
||||
public void initialize(AppCompatActivity pAppContext){
|
||||
mHistoryModel = new historyDataModel(new invokeHistoryCallbacks());
|
||||
mTabModel = new tabDataModel(new invokeTabCallbacks());
|
||||
mPreferenceModel = new preferenceDataModel(pAppContext);
|
||||
mImageDataModel = new imageDataModel();
|
||||
mBookmarkDataModel = new bookmarkDataModel(new invokeBookmarkCallbacks());
|
||||
mSuggestionDataModel = new suggestionDataModel(pAppContext);
|
||||
mHelpDataModel = new helpDataModel();
|
||||
mReferenceWebsiteDataModel = new referenceWebsiteDataModel();
|
||||
mBridgeWebsiteDataModel = new bridgesDataModel();
|
||||
mSqlCipherDataModel = new sqlCipherDataModel();
|
||||
mCrawlerDataModel = new crawlerDataModel(pAppContext);
|
||||
if(mTabModel == null){
|
||||
mHistoryModel = new historyDataModel(new invokeHistoryCallbacks());
|
||||
mTabModel = new tabDataModel(new invokeTabCallbacks());
|
||||
mPreferenceModel = new preferenceDataModel(pAppContext);
|
||||
mImageDataModel = new imageDataModel();
|
||||
mBookmarkDataModel = new bookmarkDataModel(new invokeBookmarkCallbacks());
|
||||
mSuggestionDataModel = new suggestionDataModel(pAppContext);
|
||||
mHelpDataModel = new helpDataModel();
|
||||
mReferenceWebsiteDataModel = new referenceWebsiteDataModel();
|
||||
mBridgeWebsiteDataModel = new bridgesDataModel();
|
||||
mSqlCipherDataModel = new sqlCipherDataModel();
|
||||
mCrawlerDataModel = new crawlerDataModel(pAppContext);
|
||||
}
|
||||
}
|
||||
public void initializeListData(){
|
||||
mReferenceWebsiteDataModel.onTrigger(dataEnums.eReferenceWebsiteCommands.M_LOAD,Collections.singletonList(activityContextManager.getInstance().getHomeController()));
|
||||
|
|
|
@ -33,7 +33,7 @@ public class dataEnums
|
|||
}
|
||||
|
||||
public enum eTabCommands{
|
||||
M_UPDATE_TAB, M_UPDATE_SESSION_STATE,M_ADD_TAB, M_CLEAR_TAB,M_GET_SUGGESTIONS, CLOSE_TAB, GET_TAB, GET_CURRENT_TAB,GET_RECENT_TAB, GET_LAST_TAB, GET_TOTAL_TAB, MOVE_TAB_TO_TOP, M_UPDATE_PIXEL, M_HOME_PAGE
|
||||
M_UPDATE_TAB, M_UPDATE_SESSION_STATE,M_ADD_TAB, M_CLEAR_TAB,M_GET_SUGGESTIONS, CLOSE_TAB, GET_TAB, GET_CURRENT_TAB,GET_RECENT_TAB, GET_LAST_TAB, GET_TOTAL_TAB, CLOSE_ALL_TABS, MOVE_TAB_TO_TOP, M_UPDATE_PIXEL, M_HOME_PAGE
|
||||
}
|
||||
|
||||
public enum eImageCommands{
|
||||
|
|
|
@ -84,33 +84,10 @@ class imageDataModel
|
|||
}.start();*/
|
||||
}
|
||||
|
||||
private Bitmap getBitmapFromURL(String src) {
|
||||
try {
|
||||
java.net.URL url = new java.net.URL(src);
|
||||
Proxy proxy = new Proxy(Proxy.Type.SOCKS, InetSocketAddress.createUnresolved(CONST_PROXY_SOCKS, orbotLocalConstants.mSOCKSPort));
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
|
||||
connection.setConnectTimeout(10000);
|
||||
connection.setDoInput(true);
|
||||
connection.connect();
|
||||
InputStream input = connection.getInputStream();
|
||||
Bitmap myBitmap = BitmapFactory.decodeStream(input);
|
||||
return myBitmap;
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/* External Triggers */
|
||||
|
||||
public Object onTrigger(dataEnums.eImageCommands pCommands, List<Object> pData){
|
||||
|
||||
if(pCommands.equals(dataEnums.eImageCommands.M_REQUEST_IMAGE_URL)){
|
||||
onRequestImage((String) pData.get(0));
|
||||
}
|
||||
else if(pCommands.equals(dataEnums.eImageCommands.M_GET_IMAGE)){
|
||||
return getImage((String) pData.get(0));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -82,7 +82,6 @@ public class tabRowModel
|
|||
public Bitmap getBitmap() {
|
||||
return mBitmap;
|
||||
}
|
||||
|
||||
public String getDate(){
|
||||
return mDate;
|
||||
}
|
||||
|
|
|
@ -194,14 +194,18 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
|
|||
int sepPos = pQuery.indexOf(".");
|
||||
if (sepPos == -1) {
|
||||
mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".com", strings.GENERIC_EMPTY_STR,-1));
|
||||
mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".onion", strings.GENERIC_EMPTY_STR,-1));
|
||||
if(status.sTorBrowsing){
|
||||
mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".onion", strings.GENERIC_EMPTY_STR,-1));
|
||||
}
|
||||
}else
|
||||
{
|
||||
if(!pQuery.equals(pQuery.substring(0,sepPos)+".com")){
|
||||
mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".com", strings.GENERIC_EMPTY_STR,-1));
|
||||
}
|
||||
if(!pQuery.equals(pQuery.substring(0,sepPos)+".onion")){
|
||||
mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".onion", strings.GENERIC_EMPTY_STR,-1));
|
||||
if(status.sTorBrowsing){
|
||||
mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".onion", strings.GENERIC_EMPTY_STR,-1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -330,7 +334,10 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
|
|||
mHintListLocalCache.add(new historyRowModel("Wow Head","https://wowhead.com",-1 ));
|
||||
mHintListLocalCache.add(new historyRowModel("Bing","https://bing.com",-1 ));
|
||||
mHintListLocalCache.add(new historyRowModel("Google","https://google.com",-1 ));
|
||||
mHintListLocalCache.add(new historyRowModel("Genesis Search","https://genesis.onion",-1 ));
|
||||
|
||||
if(status.sTorBrowsing){
|
||||
mHintListLocalCache.add(new historyRowModel("Genesis Search","https://genesis.onion",-1 ));
|
||||
}
|
||||
|
||||
return mHintListLocalCache;
|
||||
}
|
||||
|
|
|
@ -42,6 +42,13 @@ class tabDataModel
|
|||
|
||||
private ArrayList<tabRowModel> mTabs = new ArrayList<>();
|
||||
void initializeTab(ArrayList<tabRowModel> pTabMdel){
|
||||
for(int counter=0;counter<mTabs.size();counter++){
|
||||
if(mTabs.get(counter).getSession()!=null){
|
||||
mTabs.get(counter).getSession().setActive(false);
|
||||
mTabs.get(counter).getSession().purgeHistory();
|
||||
mTabs.get(counter).getSession().close();
|
||||
}
|
||||
}
|
||||
mTabs.clear();
|
||||
mTabs.addAll(pTabMdel);
|
||||
}
|
||||
|
@ -52,6 +59,12 @@ class tabDataModel
|
|||
return mTabs;
|
||||
}
|
||||
|
||||
private void closeAllTabs(){
|
||||
for(int mCounter=0;mCounter<mTabs.size();mCounter++){
|
||||
mTabs.get(mCounter).getSession().close();
|
||||
}
|
||||
}
|
||||
|
||||
geckoSession getHomePage(){
|
||||
if(mTabs.size()>0){
|
||||
return mTabs.get(0).getSession();
|
||||
|
@ -92,11 +105,15 @@ class tabDataModel
|
|||
for(int counter = 0; counter< size; counter++){
|
||||
if(mTabs.size()>0){
|
||||
mTabs.get(0).getSession().stop();
|
||||
mTabs.get(0).getSession().setActive(false);
|
||||
mTabs.get(0).getSession().purgeHistory();
|
||||
mTabs.get(0).getSession().close();
|
||||
mTabs.remove(0);
|
||||
}
|
||||
}
|
||||
if(mTabs.size()>0){
|
||||
mTabs.get(0).getSession().setActive(false);
|
||||
mTabs.get(0).getSession().purgeHistory();
|
||||
mTabs.get(0).getSession().close();
|
||||
mTabs.remove(0);
|
||||
}
|
||||
|
@ -107,6 +124,8 @@ class tabDataModel
|
|||
|
||||
void closeTab(geckoSession mSession,Object pID) {
|
||||
mSession.stop();
|
||||
mSession.setActive(false);
|
||||
mSession.purgeHistory();
|
||||
mSession.close();
|
||||
|
||||
try {
|
||||
|
@ -114,6 +133,8 @@ class tabDataModel
|
|||
for(int counter = 0; counter< mTabs.size(); counter++){
|
||||
if(mTabs.get(counter).getSession().getSessionID().equals(mSession.getSessionID()))
|
||||
{
|
||||
mTabs.get(counter).getSession().setActive(false);
|
||||
mTabs.get(counter).getSession().purgeHistory();
|
||||
mTabs.get(counter).getSession().stop();
|
||||
mTabs.get(counter).getSession().close();
|
||||
mID = mTabs.get(counter).getmId();
|
||||
|
@ -166,7 +187,7 @@ class tabDataModel
|
|||
}
|
||||
|
||||
boolean updateTab(String mSessionID, geckoSession pSession) {
|
||||
|
||||
boolean mChanged = false;
|
||||
for(int counter = 0; counter< mTabs.size(); counter++){
|
||||
|
||||
if(mTabs.get(counter).getSession().getSessionID().equals(mSessionID))
|
||||
|
@ -308,6 +329,9 @@ class tabDataModel
|
|||
if(pCommands == dataEnums.eTabCommands.GET_TOTAL_TAB){
|
||||
return getTotalTabs();
|
||||
}
|
||||
if(pCommands == dataEnums.eTabCommands.CLOSE_ALL_TABS){
|
||||
closeAllTabs();
|
||||
}
|
||||
else if(pCommands == dataEnums.eTabCommands.GET_CURRENT_TAB){
|
||||
return getCurrentTab();
|
||||
}
|
||||
|
@ -331,7 +355,6 @@ class tabDataModel
|
|||
else if(pCommands == dataEnums.eTabCommands.M_ADD_TAB){
|
||||
int mTabs = addTabs((geckoSession)pData.get(0), (boolean)pData.get(1));
|
||||
//activityContextManager.getInstance().getHomeController().initTabCountForced();
|
||||
|
||||
return mTabs;
|
||||
}
|
||||
else if(pCommands == dataEnums.eTabCommands.M_UPDATE_SESSION_STATE){
|
||||
|
|
|
@ -1099,6 +1099,7 @@ public class helperMethod
|
|||
Intent mainIntent = Intent.makeRestartActivityTask(componentName);
|
||||
mainIntent.putExtra(M_RESTART_APP_KEY, pOpenOnRestart);
|
||||
activityContextManager.getInstance().getHomeController().getApplicationContext().startActivity(mainIntent);
|
||||
activityContextManager.getInstance().getHomeController().overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
|
||||
}
|
||||
});
|
||||
Runtime.getRuntime().exit(0);
|
||||
|
|
|
@ -106,7 +106,7 @@ public class langManager {
|
|||
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
|
||||
String mSystemLangugage = mSystemLocale.toString();
|
||||
|
||||
if(mSystemLangugage.equals("cs_CZ") ||mSystemLangugage.equals("ar_AR") || mSystemLangugage.equals("ur_PK") || mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
|
||||
if(mSystemLangugage.equals("cs_CZ") ||mSystemLangugage.equals("ar_AR") || mSystemLangugage.equals("ur_PK") || mSystemLangugage.equals("en_GB") || mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
|
||||
return "Default | " + mSystemLocale.getDisplayName();
|
||||
}else {
|
||||
return mSystemLocale.getDisplayName() + " | is unsupported";
|
||||
|
|
|
@ -33,5 +33,4 @@ dependencies {
|
|||
implementation "org.mozilla.components:support-base:100.0.20220327143103"
|
||||
implementation "org.mozilla.components:concept-fetch:100.0.20220327143103"
|
||||
testImplementation "org.mozilla.components:lib-fetch-httpurlconnection:100.0.20220327143103"
|
||||
testImplementation "org.mozilla.components:lib-fetch-okhttp:100.0.20220327143103"
|
||||
}
|
Loading…
Reference in New Issue