Comments (3)
I totally agree that the handling of pSetMan/checking the service/responding to problem needs to be improved. For this first pass, I was more concerned with adding deny-on-fail functionality, knowing that I'd need to clean it up.
The basic structure I was thinking is this:
byte privacyOutcome;
PrivacySettings pSet;
if (pSetMan == null) {
//create new pSetMan
}
try {
//get the privacy settings, etc
//inside the functions checking the service connection etc, add re-connecting to the service
//get the appropriate privacy settings
} catch (PrivacyServiceException e) {
//deny access
privacyOutcome = PrivacySettings.ERROR;
}
switch (privacyOutcome) {
case REAL:
//do the real thing
break;
case ERROR:
//do the error thing;
break;
...
}
The reason the 'pSetMan == null' check is necessary is because reflection can be used to destroy the pSetMan object.
Also, we still need the PrivacyServiceException to handle if something goes bad actually getting the data from the service (vs returning null in error conditions).
The reason for using a switch is because that way multiple error conditions can be handled together if necessary. If there are not multiple error conditions then the privacyOutcome thing isn't necessary, and the producing of results can be mixed into the try-catch code above.
Is that pretty similar to what you were thinking?
from platform_frameworks_base.
Just have a look at my new patches. You can find my solution in the class: PrivacySettingsManager.java
from platform_frameworks_base.
Sorry, I'm not sure where your new patches are. I don't see them in Github, and the first post of the XDA thread doesn't seem to have a modified version.
Sorry it has taken me ages to get back to you - I've only just had my internet reconnected (I moved house).
from platform_frameworks_base.
Related Issues (14)
- extraneous branches HOT 3
- Syntax Error in PrivacyLocationManager? HOT 3
- Refactor
- Privacy Imports HOT 1
- IPrivacySettingsManager task killer
- Good Work
- how to rebuilt the framework and run it on phone HOT 47
- Cache incorrectly returns objects with all permissions allowed HOT 1
- PrivacyTelephonyRegistry HOT 2
- PrivacyManagerService change HOT 1
- Gps-v1.0.1 HOT 11
- Boot loops in CM10 HOT 8
- Merge + rename WatchDog
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from platform_frameworks_base.