Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: files/preferences.js

Issue 8493027: Acquired Opera AdBlock code (Closed)
Patch Set: Created Oct. 2, 2012, 1:15 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: files/preferences.js
===================================================================
new file mode 100644
--- /dev/null
+++ b/files/preferences.js
@@ -0,0 +1,83 @@
+const preferences = {
+ string: function(key, value) { //Gets or sets a string value
+ if(value == undefined) //Gets
Felix Dahlke 2012/10/08 05:57:02 That's a bit dangerous, undefined could in fact ha
+ return widget.preferences.getItem(key);
+ else //Sets
+ widget.preferences.setItem(key, value);
+ },
+ bool: function(key, value) { //Gets or sets a bool value
+ if(value == undefined) { //Gets
Felix Dahlke 2012/10/08 05:57:02 See comment about the same code above.
+ switch(widget.preferences.getItem(key)) {
Felix Dahlke 2012/10/08 05:57:02 How about return key === "true" instead?
+ case 'true':
+ return true;
+ break;
+ default: //Returns false if the value doesn't exist
+ return false;
+ break;
+ }
+ }
+ else { //Sets
+ if(value)
+ widget.preferences.setItem(key, 'true');
+ else
+ this.remove(key); //When set to false, remove the key to save space
+ }
+ },
+ int: function(key, value) { //Gets or sets a int value
+ if(value == undefined) { //Gets
Felix Dahlke 2012/10/08 05:57:02 See comment about the same code above.
+ value = parseInt(widget.preferences.getItem(key));
+ if(value == NaN)
Felix Dahlke 2012/10/08 05:57:02 No, this doesn't work. Use isNan().
+ return 0; //On error return 0
Felix Dahlke 2012/10/08 05:57:02 I think it's dangerous to return 0 in case of an e
+ else
+ return value;
+ }
+ else //Sets
+ widget.preferences.setItem(key, value);
+ },
+ float: function(key, value) { //Gets or sets a float value
+ if(value == undefined) { //Gets
Felix Dahlke 2012/10/08 05:57:02 See comment about the same code above.
+ value = parseFloat(widget.preferences.getItem(key));
+ if(value == NaN)
Felix Dahlke 2012/10/08 05:57:02 See above, use isNan()
+ return 0; //On error return 0
Felix Dahlke 2012/10/08 05:57:02 See above, not sure if this is a good idea.
+ else
+ return value;
+ }
+ else //Sets
+ widget.preferences.setItem(key, value);
+ },
+ array: function(key, value) { //Gets or sets an array in the preferences
+ if(value == undefined) { //Gets
Felix Dahlke 2012/10/08 05:57:02 See comment about the same code above.
+ if(this.exist(key)) {
+ value = widget.preferences.getItem(key);
+ if(value.indexOf("\n") > -1)
Felix Dahlke 2012/10/08 05:57:02 This whole if/else can be replaced by: return valu
+ return value.split("\n");
+ else {
+ return [value];
+ }
+ }
+ return new Array(); //Returns an empty array when no value exists
Felix Dahlke 2012/10/08 05:57:02 Shorter: return []
+ }
+ else if(value instanceof Array) { //Sets
+ value = value.join("\n");
+ widget.preferences.setItem(key, value);
+ }
+ },
+ invert: function(key) { //Inverts a true/false setting
+ switch(widget.preferences.getItem(key)) {
Felix Dahlke 2012/10/08 05:57:02 This switch can be replaced with: widget.preferenc
+ case 'true':
+ widget.preferences.setItem(key, 'false');
+ break;
+ default:
+ widget.preferences.setItem(key, 'true');
+ break;
+ }
+ },
+ exist: function(key) { //Says if a preference exists
Felix Dahlke 2012/10/08 05:57:02 This will return false for a numerical value set t
+ if(widget.preferences.getItem(key) != null && widget.preferences.getItem(key) != '')
+ return true;
+ return false;
+ },
+ remove: function(key) {
+ widget.preferences.removeItem(key);
+ }
+};

Powered by Google App Engine
This is Rietveld