Sketchy/Android/js/diff.js
Mahdi Dibaiee 709ce388cc Download
2014-05-02 19:43:10 +04:30

137 lines
4.4 KiB
JavaScript

$(document).ready(function() {
$(document).on('resume', function() {
sizeAndPos();
})
document.addEventListener('deviceready', function() {
sizeAndPos();
$('*').off('click mousemove mousedown mouseup mouseleave').on('click mousemove mousedown mouseup mouseleave', function(e) {
e.preventDefault;
})
/*$('a[href^="http"]').tap(function(e) {
e.preventDefault();
var href = $(this).attr('href');
var view = new MozActivity({
name: 'view',
data: {
type: 'url',
url: href
}
})
return false;
}).click(function(e) {
e.preventDefault();
return false;
})*/
/*$('a[href^="mailto"]').tap(function(e) {
e.preventDefault();
var mail = new MozActivity({
name: 'new',
data: {
type: 'mail',
url: $(this).attr('href')
}
})
return false;
}).click(function(e) {
e.preventDefault();
return false;
})*/
window.save = function() {
var f = c.getImageData(0, 0, width(), height());
switch(save.background) {
case 'white': {
c.fillStyle = 'white';
c.globalCompositeOperation = 'destination-over';
c.fillRect(0, 0, width(), height());
c.fillStyle = settings.color;
c.globalCompositeOperation = settings.composite;
break;
}
case 'current color': {
c.fillStyle = settings.bg;
c.globalCompositeOperation = 'destination-over';
c.fillRect(0, 0, width(), height());
c.globalCompositeOperation = settings.composite;
break;
}
}
var data = $c[0].toDataURL();
if( save.type == 'sketchy project' ) {
var list = JSON.parse(localStorage.getItem('projects'));
var index;
if( list && list.some(function(a, i) { if( a.name == save['file name'] ) {index = i; return true} return false }) ) {
if( confirm('A sketch with this name already exists. Do you want to overwrite ' + save['file name'] + '?') ) {
console.log(index);
list[index] = {
name: save['file name'],
data: data,
points: window.points,
settings: settings
}
localStorage.setItem('projects', JSON.stringify(list));
}
}
else {
list ? list.push({
name: save['file name'],
data: data,
points: window.points,
settings: settings
}) : list = [{
name: save['file name'],
data: data,
points: window.points,
settings: settings
}];
localStorage.setItem('projects', JSON.stringify(list));
}
} else {
var img = dataToBlob(data);
var sd = window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
window.alert('SD');
/*var req = fs.root.getFile(save['file name'] + '.png', {create: true}, function(entry) {
alert('Entry');
entry.createWriter(function(writer) {
writer.write(img);
alert('Your Sketch was saved successfuly');
}, function() {
alert('Something bad happened trying to save your sketch ' + save['file name'] + '\n Possible reasons:\n Duplicate Name \n Not enough permission')
})
})*/
}, function(e) {
alert('SD Error')
//alert('Couldn\'t access filesystem\nERR: ' + e.code);
});
}
c.putImageData(f, 0, 0);
}
window.load = function() {
var file = JSON.parse(localStorage.getItem('projects')).filter(function(a) { return a.name == load.file })[0];
var img = document.createElement('img');
img.src = file.data;
img.onload = function() {
c.clearRect(0, 0, width(), height());
c.drawImage(img, 0, 0);
window.points = file.points;
window.points.history = [{ data: c.createImageData($c.width(), $c.height()), points: []}, { data: c.getImageData(0, 0, width(), height()), points: file.points}];
$c.first().css('background', file.settings.bg);
window.settings.bg = file.settings.bg;
}
}
if( !localStorage.getItem('sawVote') ) {
$('.vote').removeClass('hidden');
localStorage.setItem('sawVote', true);
}
}, false)
})