Skip to content

Commit

Permalink
Don't check for Orbot until the next time the app is opened if the us…
Browse files Browse the repository at this point in the history
…er bypasses it #69
  • Loading branch information
bsenyk committed Feb 11, 2016
1 parent 5e5de49 commit 6a8f479
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 40 deletions.
9 changes: 4 additions & 5 deletions platforms/android/assets/www/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@ angular.module('starter', ['ionic', 'ngCordova', 'starter.controllers', 'starter
StatusBar.styleDefault();
}



//keep track of whether the user is online
$window.isOnline = $cordovaNetwork.isOnline();

//ask at least once per session to run Orbot before downloading
$window.checkedOrbotInstalled = false;
$window.checkedOrbotActive = false;

$window.skipOrbotCheck = false;
$ionicPlatform.on('resume', function(){
$window.skipOrbotCheck = false;
});

// listen for Online event
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
Expand Down
37 changes: 22 additions & 15 deletions platforms/android/assets/www/js/controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,21 +119,26 @@ angular.module('starter.controllers', ['starter.services'])

function _activateOrbotOrOverride() {
var dfd = $q.defer();
navigator.startApp.check("org.torproject.android", function(message) { /* success */
console.log("app exists: ");
console.log(message.versionName);
console.log(message.packageName);
console.log(message.versionCode);
console.log(message.applicationInfo);
window.checkedOrbotInstalled = true;

dfd.resolve();
},
function(error) { /* error */
console.log(error);
window.checkedOrbotInstalled = true;
dfd.reject();
});
if(window.skipOrbotCheck) {
//don't check for orbot if the user has bypassed it intentionally
dfd.resolve();
} else {
navigator.startApp.check("org.torproject.android", function(message) { /* success */
console.log("app exists: ");
console.log(message.versionName);
console.log(message.packageName);
console.log(message.versionCode);
console.log(message.applicationInfo);
window.isOrbotInstalled = true;

dfd.resolve();
},
function(error) { /* error */
console.log(error);
window.isOrbotInstalled = false;
dfd.reject();
});
}
return dfd.promise;
}

Expand Down Expand Up @@ -289,6 +294,7 @@ angular.module('starter.controllers', ['starter.services'])
$scope.$broadcast('scroll.refreshComplete');
} else if(res==="unprotected") {
//the user cancelled... just get the topic list anyways
window.skipOrbotCheck = true;
_downloadTopicList();
} else if(res==="offline") {
_loadLocalTopicList();
Expand Down Expand Up @@ -400,6 +406,7 @@ angular.module('starter.controllers', ['starter.services'])
window.open('market://details?id=org.torproject.android', '_system');
} else if(res==="unprotected") {
//the user cancelled... just get the topic anyways
window.skipOrbotCheck = true;
_performTopicDownload(topic);
} else if(res==="offline") {
//do nothing... staying offline
Expand Down
9 changes: 4 additions & 5 deletions www/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@ angular.module('starter', ['ionic', 'ngCordova', 'starter.controllers', 'starter
StatusBar.styleDefault();
}



//keep track of whether the user is online
$window.isOnline = $cordovaNetwork.isOnline();

//ask at least once per session to run Orbot before downloading
$window.checkedOrbotInstalled = false;
$window.checkedOrbotActive = false;

$window.skipOrbotCheck = false;
$ionicPlatform.on('resume', function(){
$window.skipOrbotCheck = false;
});

// listen for Online event
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
Expand Down
37 changes: 22 additions & 15 deletions www/js/controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,21 +119,26 @@ angular.module('starter.controllers', ['starter.services'])

function _activateOrbotOrOverride() {
var dfd = $q.defer();
navigator.startApp.check("org.torproject.android", function(message) { /* success */
console.log("app exists: ");
console.log(message.versionName);
console.log(message.packageName);
console.log(message.versionCode);
console.log(message.applicationInfo);
window.checkedOrbotInstalled = true;

dfd.resolve();
},
function(error) { /* error */
console.log(error);
window.checkedOrbotInstalled = true;
dfd.reject();
});
if(window.skipOrbotCheck) {
//don't check for orbot if the user has bypassed it intentionally
dfd.resolve();
} else {
navigator.startApp.check("org.torproject.android", function(message) { /* success */
console.log("app exists: ");
console.log(message.versionName);
console.log(message.packageName);
console.log(message.versionCode);
console.log(message.applicationInfo);
window.isOrbotInstalled = true;

dfd.resolve();
},
function(error) { /* error */
console.log(error);
window.isOrbotInstalled = false;
dfd.reject();
});
}
return dfd.promise;
}

Expand Down Expand Up @@ -289,6 +294,7 @@ angular.module('starter.controllers', ['starter.services'])
$scope.$broadcast('scroll.refreshComplete');
} else if(res==="unprotected") {
//the user cancelled... just get the topic list anyways
window.skipOrbotCheck = true;
_downloadTopicList();
} else if(res==="offline") {
_loadLocalTopicList();
Expand Down Expand Up @@ -400,6 +406,7 @@ angular.module('starter.controllers', ['starter.services'])
window.open('market://details?id=org.torproject.android', '_system');
} else if(res==="unprotected") {
//the user cancelled... just get the topic anyways
window.skipOrbotCheck = true;
_performTopicDownload(topic);
} else if(res==="offline") {
//do nothing... staying offline
Expand Down

0 comments on commit 6a8f479

Please sign in to comment.