Bug Fixes

Bug Fixes
master
Abdul Mannan Saeed 2022-04-22 21:04:52 -07:00
parent ed6967bdfa
commit ad847d004f
51 changed files with 1020 additions and 295 deletions

View File

@ -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>

View File

@ -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/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_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/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_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/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_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="..\:/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/home_view.xml" value="0.15833333333333333" />
<entry key="app/src/main/res/layouts/home/layout/popup_search_view.xml" value="0.67" /> <entry key="app/src/main/res/layouts/home/layout/popup_search_view.xml" value="0.67" />

View File

@ -43,7 +43,7 @@
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" /> android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
<activity <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" /> android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" />
<activity <activity

View File

@ -48,7 +48,7 @@
</ul> </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="$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> </div>
</body> </body>
</html> </html>

View File

@ -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> <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> <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> </div>
</body> </body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -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",
};

View File

@ -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);
});

View File

@ -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);
});

View File

@ -0,0 +1,6 @@
/*Strings*/
var strings = {
emptyString : "",
};

View File

@ -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 dont 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>

View File

@ -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

View File

@ -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.

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

View File

@ -1,6 +1,8 @@
package com.hiddenservices.onionservices.appManager.homeManager.geckoManager; package com.hiddenservices.onionservices.appManager.homeManager.geckoManager;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.hiddenservices.onionservices.constants.status;
import com.hiddenservices.onionservices.constants.strings; import com.hiddenservices.onionservices.constants.strings;
import com.hiddenservices.onionservices.helperManager.helperMethod; import com.hiddenservices.onionservices.helperManager.helperMethod;
import com.example.myapplication.R; 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_M4",mContext.getString(R.string.ERROR_M4));
message = message.replace("$ERROR_M5",mContext.getString(R.string.ERROR_M5)); message = message.replace("$ERROR_M5",mContext.getString(R.string.ERROR_M5));
message = message.replace("$ERROR_M6",mContext.getString(R.string.ERROR_M6)); 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); message = message.replace("$ERROR", error);
return message; return message;

View File

@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.List; 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;
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_URL_CACHED_DARK; 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.constants.CONST_REPORT_URL;
import static com.hiddenservices.onionservices.constants.enums.etype.M_INDEX_WEBSITE; import static com.hiddenservices.onionservices.constants.enums.etype.M_INDEX_WEBSITE;
import static com.hiddenservices.onionservices.constants.enums.etype.on_handle_external_intent; 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){ public void onValidateInitializeFromStartup(NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext){
boolean mStatus = mSession.onValidateInitializeFromStartup(); boolean mStatus = mSession.onValidateInitializeFromStartup();
if(mStatus){ if(mStatus){
boolean mState = mSession.onRestoreState(); boolean mState = mSession.onRestoreState();
if(!mState){ if(!mState){
@ -189,16 +191,18 @@ public class geckoClients
if(status.sTorBrowsing){ 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: \"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("# 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); StringBuilder buf = new StringBuilder(mYAML);
int portIndex = mYAML.indexOf("network.proxy.socks_port"); int portIndex = mYAML.indexOf("network.proxy.socks_port");
int breakIndex = mYAML.indexOf("\n",portIndex); int breakIndex = mYAML.indexOf("\n",portIndex);
mYAML = buf.replace(portIndex, breakIndex,"network.proxy.socks_port: "+ orbotLocalConstants.mSOCKSPort).toString(); mYAML = buf.replace(portIndex, breakIndex,"network.proxy.socks_port: "+ orbotLocalConstants.mSOCKSPort).toString();
helperMethod.writeToFile(cacheFile.getPath(), mYAML); 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(); return cacheFile.getAbsolutePath();
} }
@ -281,7 +285,7 @@ public class geckoClients
if(mRuntime==null){ if(mRuntime==null){
GeckoRuntimeSettings.Builder mSettings = new GeckoRuntimeSettings.Builder(); GeckoRuntimeSettings.Builder mSettings = new GeckoRuntimeSettings.Builder();
if(status.sShowImages == 2){ if(status.sShowImages == 2){
mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config-noimage.yaml")); //mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config-noimage.yaml"));
}else { }else {
mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config.yaml")); mSettings.configFilePath(getAssetsCacheFile(context, "geckoview-config.yaml"));
} }
@ -306,14 +310,21 @@ public class geckoClients
mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.STRICT); mRuntime.getSettings().getContentBlocking().setAntiTracking(ContentBlocking.AntiTracking.STRICT);
} }
dataController.getInstance().initializeListData();
}
initBrowserManager();
} }
public void initBrowserManager(){
if(mIconManager == null){
mIconManager = new BrowserIconManager(); mIconManager = new BrowserIconManager();
} }
}
public void onGetFavIcon(ImageView pImageView, String pURL, AppCompatActivity pcontext){ public void onGetFavIcon(ImageView pImageView, String pURL, AppCompatActivity pcontext){
initBrowserManager();
pURL = helperMethod.completeURL(helperMethod.getDomainName(pURL)); pURL = helperMethod.completeURL(helperMethod.getDomainName(pURL));
mIconManager.onLoadIconIntoView(pcontext,mRuntime, pImageView, pURL); mIconManager.onLoadIconIntoView(pcontext,mRuntime, pImageView, pURL);
} }
@ -405,6 +416,11 @@ public class geckoClients
} }
public void loadURL(String url, NestedGeckoView mNestedGeckoView, AppCompatActivity pcontext) { 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); url = helperMethod.completeURL(url);
mSession = (geckoSession)mNestedGeckoView.getSession(); mSession = (geckoSession)mNestedGeckoView.getSession();
if(mSession==null){ if(mSession==null){

View File

@ -699,7 +699,11 @@ geckoSession extends GeckoSession implements MediaSession.Delegate,GeckoSession.
public void onClose(){ public void onClose(){
stop(); stop();
if(!mPrevURL.equals("about:blank")){
mCurrentURL = mPrevURL; mCurrentURL = mPrevURL;
}else {
mPrevURL = mCurrentURL;
}
//mIsLoaded = false; //mIsLoaded = false;
//isPageLoading = false; //isPageLoading = false;
} }

View File

@ -144,7 +144,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
private ConstraintLayout mWebViewContainer; private ConstraintLayout mWebViewContainer;
/*View Objects*/ /*View Objects*/
private ProgressBar mProgressBar; public ProgressBar mProgressBar;
private ConstraintLayout mSplashScreen; private ConstraintLayout mSplashScreen;
private editTextManager mSearchbar; private editTextManager mSearchbar;
private ImageView mLoadingIcon; private ImageView mLoadingIcon;
@ -248,6 +248,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
initBundle(); initBundle();
initTor(); initTor();
} }
public void initTor(){ public void initTor(){
@ -541,7 +542,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback()); mGeckoView.onSetHomeEvent(new nestedGeckoViewCallback());
mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false); mGeckoClient.initialize(mGeckoView, new geckoViewCallback(), this,false);
mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this); mGeckoClient.onValidateInitializeFromStartup(mGeckoView, homeController.this);
dataController.getInstance().initializeListData();
} }
public void onUpdateStatusBarTheme(){ public void onUpdateStatusBarTheme(){
@ -581,8 +581,10 @@ public class homeController extends AppCompatActivity implements ComponentCallba
catch (Throwable e) { catch (Throwable e) {
e.printStackTrace(); e.printStackTrace();
} }
}
public void onCloseAllTabs(){
dataController.getInstance().invokeTab(dataEnums.eTabCommands.CLOSE_ALL_TABS, null);
} }
public void initializeGeckoView(boolean isForced, boolean pDatabaseSavable){ public void initializeGeckoView(boolean isForced, boolean pDatabaseSavable){
@ -1488,6 +1490,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
@Override @Override
public void onPause(){ public void onPause(){
super.onPause(); super.onPause();
if(mGeckoClient.getSession()!=null){
mGeckoClient.getSession().setActive(false);
}
if(mGeckoClient.getSession()==null) if(mGeckoClient.getSession()==null)
return; return;
if(mHomeViewController!=null){ if(mHomeViewController!=null){
@ -1527,6 +1532,9 @@ public class homeController extends AppCompatActivity implements ComponentCallba
@Override @Override
public void onResume() public void onResume()
{ {
if(mGeckoClient.getSession()!=null){
mGeckoClient.getSession().setActive(true);
}
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME); pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_RESUME);
activityContextManager.getInstance().setCurrentActivity(this); activityContextManager.getInstance().setCurrentActivity(this);
@ -1906,7 +1914,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
status.sTorBrowsing = true; status.sTorBrowsing = true;
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_STRING, Arrays.asList(keys.SETTING_SEARCH_ENGINE, constants.CONST_BACKEND_GENESIS_URL)); 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)); 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); pluginController.getInstance().onMessageManagerInvoke(Collections.singletonList(this), M_IMAGE_UPDATE);
} }

View File

@ -1,5 +1,7 @@
package com.hiddenservices.onionservices.appManager.homeManager.homeController; 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 android.util.Patterns;
import com.hiddenservices.onionservices.constants.status; import com.hiddenservices.onionservices.constants.status;
@ -15,6 +17,9 @@ class homeModel
} }
String urlComplete(String pURL, String pSearchEngine){ 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")){ if(pURL.startsWith("data")){
return pURL; return pURL;
} }

View File

@ -43,6 +43,7 @@ import androidx.fragment.app.FragmentContainerView;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.applovin.mediation.ads.MaxAdView; import com.applovin.mediation.ads.MaxAdView;
import com.hiddenservices.onionservices.appManager.activityContextManager;
import com.hiddenservices.onionservices.constants.*; import com.hiddenservices.onionservices.constants.*;
import com.hiddenservices.onionservices.dataManager.dataController; import com.hiddenservices.onionservices.dataManager.dataController;
import com.hiddenservices.onionservices.dataManager.dataEnums; 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_DOMAIN_URL;
import static com.hiddenservices.onionservices.constants.constants.CONST_GENESIS_URL_CACHED; 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_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 org.mozilla.geckoview.GeckoSessionSettings.USER_AGENT_MODE_DESKTOP;
import static java.lang.Thread.sleep; import static java.lang.Thread.sleep;
@ -1041,6 +1043,9 @@ class homeViewController
if(url.endsWith("genesisconfigurenewidentity.com/")){ if(url.endsWith("genesisconfigurenewidentity.com/")){
return; 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)){ if(url.startsWith(CONST_GENESIS_URL_CACHED) || url.startsWith(CONST_GENESIS_URL_CACHED_DARK)){
mSearchbar.setTag(R.id.msearchbarProcessing,true); mSearchbar.setTag(R.id.msearchbarProcessing,true);
@ -1338,6 +1343,7 @@ class homeViewController
void onProgressBarUpdate(int value, boolean mForced){ void onProgressBarUpdate(int value, boolean mForced){
mProgressBar = activityContextManager.getInstance().getHomeController().mProgressBar;
if(value != 0 && value != 100){ if(value != 0 && value != 100){
mAppBar.setExpanded(true,true); mAppBar.setExpanded(true,true);
status.sDisableExpandTemp = true; status.sDisableExpandTemp = true;

View File

@ -4,6 +4,8 @@ import android.content.Intent;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
@ -15,6 +17,7 @@ import androidx.recyclerview.widget.SimpleItemAnimator;
import com.hiddenservices.onionservices.appManager.activityContextManager; import com.hiddenservices.onionservices.appManager.activityContextManager;
import com.hiddenservices.onionservices.appManager.helpManager.helpController; 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.constants;
import com.hiddenservices.onionservices.constants.keys; import com.hiddenservices.onionservices.constants.keys;
import com.hiddenservices.onionservices.constants.status; 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.eLangManager.M_SUPPORTED_SYSTEM_LANGUAGE_INFO;
import static com.hiddenservices.onionservices.pluginManager.pluginEnums.eMessageManager.M_LANGUAGE_SUPPORT_FAILURE; import static com.hiddenservices.onionservices.pluginManager.pluginEnums.eMessageManager.M_LANGUAGE_SUPPORT_FAILURE;
import org.torproject.android.service.wrapper.orbotLocalConstants;
public class languageController extends AppCompatActivity { public class languageController extends AppCompatActivity {
/*Private Variables*/ /*Private Variables*/
@ -141,7 +146,8 @@ public class languageController extends AppCompatActivity {
String mSystemLangugage = mSystemLocale.toString(); String mSystemLangugage = mSystemLocale.toString();
status.sSettingLanguage = CONST_LANGUAGE_DEFAULT_LANG; status.sSettingLanguage = CONST_LANGUAGE_DEFAULT_LANG;
status.sSettingLanguageRegion = 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; mDefaultLanguageNotSupported = true;
} }
}else { }else {
@ -162,7 +168,7 @@ public class languageController extends AppCompatActivity {
} }
if(mDefaultLanguageNotSupported){ 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; status.mThemeApplying = true;

View File

@ -48,7 +48,7 @@ public class settingGeneralController extends AppCompatActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
onInitTheme(); //onInitTheme();
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED); pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if(!status.mThemeApplying){ if(!status.mThemeApplying){
@ -138,9 +138,6 @@ public class settingGeneralController extends AppCompatActivity {
if(mIsThemeChangable){ if(mIsThemeChangable){
status.mThemeApplying = true; 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(() -> new Handler().postDelayed(() ->
@ -148,6 +145,12 @@ public class settingGeneralController extends AppCompatActivity {
if(activityContextManager.getInstance().getHomeController() != null){ if(activityContextManager.getInstance().getHomeController() != null){
activityContextManager.getInstance().getHomeController().onReInitTheme(); activityContextManager.getInstance().getHomeController().onReInitTheme();
activityContextManager.getInstance().getSettingController().onInitTheme(); 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); }, 100);

View File

@ -1,4 +1,4 @@
package com.hiddenservices.onionservices.appManager.proxyStatusManager; package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;

View File

@ -1,4 +1,4 @@
package com.hiddenservices.onionservices.appManager.proxyStatusManager; package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
public class proxyStatusEnums public class proxyStatusEnums
{ {

View File

@ -1,4 +1,4 @@
package com.hiddenservices.onionservices.appManager.proxyStatusManager; package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
import com.hiddenservices.onionservices.eventObserver; import com.hiddenservices.onionservices.eventObserver;

View File

@ -1,4 +1,4 @@
package com.hiddenservices.onionservices.appManager.proxyStatusManager; package com.hiddenservices.onionservices.appManager.settingManager.proxyStatusManager;
import android.os.Build; import android.os.Build;
import android.view.View; import android.view.View;
@ -12,6 +12,8 @@ import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.example.myapplication.R; import com.example.myapplication.R;
import com.google.android.material.switchmaterial.SwitchMaterial; import com.google.android.material.switchmaterial.SwitchMaterial;
import com.hiddenservices.onionservices.constants.status;
import java.util.List; import java.util.List;
class proxyStatusViewController class proxyStatusViewController
@ -57,7 +59,11 @@ class proxyStatusViewController
} }
private void initViews(String pOrbotStatus, boolean pVPNStatus, boolean pGatewayStatus){ private void initViews(String pOrbotStatus, boolean pVPNStatus, boolean pGatewayStatus){
if(!status.sTorBrowsing){
mOrbotStatus.setText("In Active");
}else {
mOrbotStatus.setText(pOrbotStatus); mOrbotStatus.setText(pOrbotStatus);
}
mVpnStatus.setChecked(pVPNStatus); mVpnStatus.setChecked(pVPNStatus);
mBridgeStatus.setChecked(pGatewayStatus); mBridgeStatus.setChecked(pGatewayStatus);
} }

View File

@ -4,13 +4,14 @@ import android.content.res.Configuration;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.LinearLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.AppCompatDelegate;
import com.hiddenservices.onionservices.appManager.activityContextManager; import com.hiddenservices.onionservices.appManager.activityContextManager;
import com.hiddenservices.onionservices.appManager.helpManager.helpController; 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.accessibilityManager.settingAccessibilityController;
import com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController; import com.hiddenservices.onionservices.appManager.settingManager.advanceManager.settingAdvanceController;
import com.hiddenservices.onionservices.appManager.settingManager.clearManager.settingClearController; 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.eventObserver;
import com.hiddenservices.onionservices.helperManager.helperMethod; import com.hiddenservices.onionservices.helperManager.helperMethod;
import com.hiddenservices.onionservices.appManager.activityThemeManager; import com.hiddenservices.onionservices.appManager.activityThemeManager;
import com.hiddenservices.onionservices.libs.trueTime.trueTimeEncryption;
import com.hiddenservices.onionservices.pluginManager.pluginController; import com.hiddenservices.onionservices.pluginManager.pluginController;
import com.hiddenservices.onionservices.pluginManager.pluginEnums; import com.hiddenservices.onionservices.pluginManager.pluginEnums;
import com.example.myapplication.R; import com.example.myapplication.R;
@ -46,6 +46,10 @@ public class settingHomeController extends AppCompatActivity
private settingHomeViewController mSettingViewController; private settingHomeViewController mSettingViewController;
private settingHomeModel mSettingModel; private settingHomeModel mSettingModel;
private LinearLayout mOption15;
private LinearLayout mOption16;
/*Initializations*/ /*Initializations*/
@ -67,6 +71,7 @@ public class settingHomeController extends AppCompatActivity
listenersInitializations(); listenersInitializations();
} }
@Override @Override
public void onConfigurationChanged(@NonNull Configuration newConfig) { public void onConfigurationChanged(@NonNull Configuration newConfig) {
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED); pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
@ -100,7 +105,10 @@ public class settingHomeController extends AppCompatActivity
private void viewsInitializations() private void viewsInitializations()
{ {
activityContextManager.getInstance().setSettingController(this); 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() private void listenersInitializations()
@ -255,8 +263,12 @@ public class settingHomeController extends AppCompatActivity
public void onPrivacyPolicy(View view) { public void onPrivacyPolicy(View view) {
finish(); finish();
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)); activityContextManager.getInstance().getHomeController().onLoadURL(helperMethod.setGenesisVerificationToken(constants.CONST_PRIVACY_POLICY_URL));
} }
}
public void onRateApplication(View view) { public void onRateApplication(View view) {
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(activityContextManager.getInstance().getHomeController().onGetCurrentURL(), this), M_RATE_APP); pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(activityContextManager.getInstance().getHomeController().onGetCurrentURL(), this), M_RATE_APP);

View File

@ -4,11 +4,19 @@ import android.os.Build;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.LinearLayout;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat; 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.hiddenservices.onionservices.eventObserver;
import com.example.myapplication.R; import com.example.myapplication.R;
import com.hiddenservices.onionservices.helperManager.helperMethod;
import java.util.List; import java.util.List;
class settingHomeViewController class settingHomeViewController
@ -18,13 +26,19 @@ class settingHomeViewController
private eventObserver.eventListener mEvent; private eventObserver.eventListener mEvent;
private AppCompatActivity mContext; private AppCompatActivity mContext;
private LinearLayout mOption15;
private LinearLayout mOption16;
/*Initializations*/ /*Initializations*/
settingHomeViewController(settingHomeController mContext, eventObserver.eventListener mEvent) settingHomeViewController(settingHomeController mContext, eventObserver.eventListener mEvent, LinearLayout pOption15, LinearLayout pOption16)
{ {
this.mEvent = mEvent; this.mEvent = mEvent;
this.mContext = mContext; this.mContext = mContext;
this.mOption15 = pOption15;
this.mOption16 = pOption16;
initPostUI(); initPostUI();
} }
@ -44,6 +58,12 @@ class settingHomeViewController
mContext.getWindow().setStatusBarColor(ContextCompat.getColor(mContext, R.color.c_background)); 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){ public Object onTrigger(settingHomeEnums.eHomeViewController pCommands, List<Object> pData){

View File

@ -257,7 +257,7 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
TextView mDate; TextView mDate;
ImageView mLoadSession; ImageView mLoadSession;
ImageButton mRemoveRow; ImageButton mRemoveRow;
ThumbnailCrop mWebThumbnail; ImageView mWebThumbnail;
FrameLayout mSelectedView; FrameLayout mSelectedView;
FrameLayout mItemSelectionMenu; FrameLayout mItemSelectionMenu;
Button mItemSelectionMenuButton; Button mItemSelectionMenuButton;

View File

@ -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_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_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_PRIVACY_POLICY_URL = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/privacy";
public static final String CONST_REPORT_URL = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/report?url="; public static final String CONST_REPORT_URL = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/report?url=";
public static final String CONST_SITEMAP = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/sitemap"; public static final String CONST_SITEMAP = "http://trcip42ymcgvv5hsa7nxpwdnott46ebomnn5pm5lovg5hpszyo4n35yd.onion/sitemap";

View File

@ -25,7 +25,7 @@ public class dataController
{ {
/*Private Variables*/ /*Private Variables*/
private tabDataModel mTabModel; private tabDataModel mTabModel = null;
private preferenceDataModel mPreferenceModel; private preferenceDataModel mPreferenceModel;
private historyDataModel mHistoryModel; private historyDataModel mHistoryModel;
private imageDataModel mImageDataModel; private imageDataModel mImageDataModel;
@ -48,6 +48,7 @@ public class dataController
/*Initializations*/ /*Initializations*/
public void initialize(AppCompatActivity pAppContext){ public void initialize(AppCompatActivity pAppContext){
if(mTabModel == null){
mHistoryModel = new historyDataModel(new invokeHistoryCallbacks()); mHistoryModel = new historyDataModel(new invokeHistoryCallbacks());
mTabModel = new tabDataModel(new invokeTabCallbacks()); mTabModel = new tabDataModel(new invokeTabCallbacks());
mPreferenceModel = new preferenceDataModel(pAppContext); mPreferenceModel = new preferenceDataModel(pAppContext);
@ -60,6 +61,7 @@ public class dataController
mSqlCipherDataModel = new sqlCipherDataModel(); mSqlCipherDataModel = new sqlCipherDataModel();
mCrawlerDataModel = new crawlerDataModel(pAppContext); mCrawlerDataModel = new crawlerDataModel(pAppContext);
} }
}
public void initializeListData(){ public void initializeListData(){
mReferenceWebsiteDataModel.onTrigger(dataEnums.eReferenceWebsiteCommands.M_LOAD,Collections.singletonList(activityContextManager.getInstance().getHomeController())); mReferenceWebsiteDataModel.onTrigger(dataEnums.eReferenceWebsiteCommands.M_LOAD,Collections.singletonList(activityContextManager.getInstance().getHomeController()));
mBridgeWebsiteDataModel.onTrigger(dataEnums.eBridgeWebsiteCommands.M_LOAD,Collections.singletonList(activityContextManager.getInstance().getHomeController())); mBridgeWebsiteDataModel.onTrigger(dataEnums.eBridgeWebsiteCommands.M_LOAD,Collections.singletonList(activityContextManager.getInstance().getHomeController()));

View File

@ -33,7 +33,7 @@ public class dataEnums
} }
public enum eTabCommands{ 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{ public enum eImageCommands{

View File

@ -84,33 +84,10 @@ class imageDataModel
}.start();*/ }.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 */ /* External Triggers */
public Object onTrigger(dataEnums.eImageCommands pCommands, List<Object> pData){ 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; return null;
} }

View File

@ -82,7 +82,6 @@ public class tabRowModel
public Bitmap getBitmap() { public Bitmap getBitmap() {
return mBitmap; return mBitmap;
} }
public String getDate(){ public String getDate(){
return mDate; return mDate;
} }

View File

@ -194,18 +194,22 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
int sepPos = pQuery.indexOf("."); int sepPos = pQuery.indexOf(".");
if (sepPos == -1) { if (sepPos == -1) {
mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".com", strings.GENERIC_EMPTY_STR,-1)); mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".com", strings.GENERIC_EMPTY_STR,-1));
if(status.sTorBrowsing){
mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".onion", strings.GENERIC_EMPTY_STR,-1)); mCurrentList.add( mSize, new historyRowModel(mQueryOriginal+".onion", strings.GENERIC_EMPTY_STR,-1));
}
}else }else
{ {
if(!pQuery.equals(pQuery.substring(0,sepPos)+".com")){ if(!pQuery.equals(pQuery.substring(0,sepPos)+".com")){
mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".com", strings.GENERIC_EMPTY_STR,-1)); mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".com", strings.GENERIC_EMPTY_STR,-1));
} }
if(!pQuery.equals(pQuery.substring(0,sepPos)+".onion")){ if(!pQuery.equals(pQuery.substring(0,sepPos)+".onion")){
if(status.sTorBrowsing){
mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".onion", strings.GENERIC_EMPTY_STR,-1)); mCurrentList.add( mSize, new historyRowModel(pQuery.substring(0,sepPos)+".onion", strings.GENERIC_EMPTY_STR,-1));
} }
} }
} }
} }
}
if(mHostAppend){ if(mHostAppend){
if(mCurrentList.get(0).getDescription().startsWith(pQuery)){ if(mCurrentList.get(0).getDescription().startsWith(pQuery)){
@ -330,7 +334,10 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
mHintListLocalCache.add(new historyRowModel("Wow Head","https://wowhead.com",-1 )); mHintListLocalCache.add(new historyRowModel("Wow Head","https://wowhead.com",-1 ));
mHintListLocalCache.add(new historyRowModel("Bing","https://bing.com",-1 )); mHintListLocalCache.add(new historyRowModel("Bing","https://bing.com",-1 ));
mHintListLocalCache.add(new historyRowModel("Google","https://google.com",-1 )); mHintListLocalCache.add(new historyRowModel("Google","https://google.com",-1 ));
if(status.sTorBrowsing){
mHintListLocalCache.add(new historyRowModel("Genesis Search","https://genesis.onion",-1 )); mHintListLocalCache.add(new historyRowModel("Genesis Search","https://genesis.onion",-1 ));
}
return mHintListLocalCache; return mHintListLocalCache;
} }

View File

@ -42,6 +42,13 @@ class tabDataModel
private ArrayList<tabRowModel> mTabs = new ArrayList<>(); private ArrayList<tabRowModel> mTabs = new ArrayList<>();
void initializeTab(ArrayList<tabRowModel> pTabMdel){ 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.clear();
mTabs.addAll(pTabMdel); mTabs.addAll(pTabMdel);
} }
@ -52,6 +59,12 @@ class tabDataModel
return mTabs; return mTabs;
} }
private void closeAllTabs(){
for(int mCounter=0;mCounter<mTabs.size();mCounter++){
mTabs.get(mCounter).getSession().close();
}
}
geckoSession getHomePage(){ geckoSession getHomePage(){
if(mTabs.size()>0){ if(mTabs.size()>0){
return mTabs.get(0).getSession(); return mTabs.get(0).getSession();
@ -92,11 +105,15 @@ class tabDataModel
for(int counter = 0; counter< size; counter++){ for(int counter = 0; counter< size; counter++){
if(mTabs.size()>0){ if(mTabs.size()>0){
mTabs.get(0).getSession().stop(); mTabs.get(0).getSession().stop();
mTabs.get(0).getSession().setActive(false);
mTabs.get(0).getSession().purgeHistory();
mTabs.get(0).getSession().close(); mTabs.get(0).getSession().close();
mTabs.remove(0); mTabs.remove(0);
} }
} }
if(mTabs.size()>0){ if(mTabs.size()>0){
mTabs.get(0).getSession().setActive(false);
mTabs.get(0).getSession().purgeHistory();
mTabs.get(0).getSession().close(); mTabs.get(0).getSession().close();
mTabs.remove(0); mTabs.remove(0);
} }
@ -107,6 +124,8 @@ class tabDataModel
void closeTab(geckoSession mSession,Object pID) { void closeTab(geckoSession mSession,Object pID) {
mSession.stop(); mSession.stop();
mSession.setActive(false);
mSession.purgeHistory();
mSession.close(); mSession.close();
try { try {
@ -114,6 +133,8 @@ class tabDataModel
for(int counter = 0; counter< mTabs.size(); counter++){ for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getSessionID().equals(mSession.getSessionID())) 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().stop();
mTabs.get(counter).getSession().close(); mTabs.get(counter).getSession().close();
mID = mTabs.get(counter).getmId(); mID = mTabs.get(counter).getmId();
@ -166,7 +187,7 @@ class tabDataModel
} }
boolean updateTab(String mSessionID, geckoSession pSession) { boolean updateTab(String mSessionID, geckoSession pSession) {
boolean mChanged = false;
for(int counter = 0; counter< mTabs.size(); counter++){ for(int counter = 0; counter< mTabs.size(); counter++){
if(mTabs.get(counter).getSession().getSessionID().equals(mSessionID)) if(mTabs.get(counter).getSession().getSessionID().equals(mSessionID))
@ -308,6 +329,9 @@ class tabDataModel
if(pCommands == dataEnums.eTabCommands.GET_TOTAL_TAB){ if(pCommands == dataEnums.eTabCommands.GET_TOTAL_TAB){
return getTotalTabs(); return getTotalTabs();
} }
if(pCommands == dataEnums.eTabCommands.CLOSE_ALL_TABS){
closeAllTabs();
}
else if(pCommands == dataEnums.eTabCommands.GET_CURRENT_TAB){ else if(pCommands == dataEnums.eTabCommands.GET_CURRENT_TAB){
return getCurrentTab(); return getCurrentTab();
} }
@ -331,7 +355,6 @@ class tabDataModel
else if(pCommands == dataEnums.eTabCommands.M_ADD_TAB){ else if(pCommands == dataEnums.eTabCommands.M_ADD_TAB){
int mTabs = addTabs((geckoSession)pData.get(0), (boolean)pData.get(1)); int mTabs = addTabs((geckoSession)pData.get(0), (boolean)pData.get(1));
//activityContextManager.getInstance().getHomeController().initTabCountForced(); //activityContextManager.getInstance().getHomeController().initTabCountForced();
return mTabs; return mTabs;
} }
else if(pCommands == dataEnums.eTabCommands.M_UPDATE_SESSION_STATE){ else if(pCommands == dataEnums.eTabCommands.M_UPDATE_SESSION_STATE){

View File

@ -1099,6 +1099,7 @@ public class helperMethod
Intent mainIntent = Intent.makeRestartActivityTask(componentName); Intent mainIntent = Intent.makeRestartActivityTask(componentName);
mainIntent.putExtra(M_RESTART_APP_KEY, pOpenOnRestart); mainIntent.putExtra(M_RESTART_APP_KEY, pOpenOnRestart);
activityContextManager.getInstance().getHomeController().getApplicationContext().startActivity(mainIntent); activityContextManager.getInstance().getHomeController().getApplicationContext().startActivity(mainIntent);
activityContextManager.getInstance().getHomeController().overridePendingTransition(R.anim.popup_scale_in, R.anim.popup_scale_out);
} }
}); });
Runtime.getRuntime().exit(0); Runtime.getRuntime().exit(0);

View File

@ -106,7 +106,7 @@ public class langManager {
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale; Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
String mSystemLangugage = mSystemLocale.toString(); 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(); return "Default | " + mSystemLocale.getDisplayName();
}else { }else {
return mSystemLocale.getDisplayName() + " | is unsupported"; return mSystemLocale.getDisplayName() + " | is unsupported";

View File

@ -33,5 +33,4 @@ dependencies {
implementation "org.mozilla.components:support-base:100.0.20220327143103" implementation "org.mozilla.components:support-base:100.0.20220327143103"
implementation "org.mozilla.components:concept-fetch: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-httpurlconnection:100.0.20220327143103"
testImplementation "org.mozilla.components:lib-fetch-okhttp:100.0.20220327143103"
} }