Browse Source

Fixed sizing of contact buddy pictures on creation.

pull/111/head
Simon Eisenmann 11 years ago
parent
commit
db82f8e8e8
  1. 2
      static/js/filters/buddyimagesrc.js
  2. 65
      static/js/services/buddypicture.js
  3. 1
      static/js/services/contacts.js

2
static/js/filters/buddyimagesrc.js

@ -72,7 +72,7 @@ define(["underscore"], function(_) { @@ -72,7 +72,7 @@ define(["underscore"], function(_) {
// Check if we should handle it as blob.
url = display.buddyPicture;
if (url.indexOf("data:") === 0) {
var blob = buddyPicture.toBlob(null, url);
var blob = buddyPicture.toBlob(url);
url = display.buddyPictureLocalUrl = urls[id] = blobToObjectURL(blob);
return url;
}

65
static/js/services/buddypicture.js

@ -21,18 +21,18 @@ @@ -21,18 +21,18 @@
define(['underscore'], function(underscore) {
// buddyPicture
return ["mediaStream", "$window", function(mediaStream, $window) {
// buddyPicture
return ["mediaStream", "$window", function(mediaStream, $window) {
var buddyPicture = {
var buddyPicture = {
update: function(data, url) {
update: function(data, url) {
if (typeof(url) !== "undefined") {
data.buddyPicture = url;
} else {
url = data.buddyPicture;
}
if (typeof(url) !== "undefined") {
data.buddyPicture = url;
} else {
url = data.buddyPicture;
}
if (!url) {
return;
}
@ -41,29 +41,46 @@ @@ -41,29 +41,46 @@
data.buddyPicture = data.buddyPictureLocalUrl = mediaStream.url.buddy(url.substr(4));
}
},
},
toString: function(img, mime_type) {
toString: function(img, mime_type) {
if (img) {
if (typeof(mime_type) === "undefined") {
mime_type = "image/jpeg";
}
var canvas = $window.document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
if (img) {
if (typeof(mime_type) === "undefined") {
mime_type = "image/jpeg";
}
var canvas = $window.document.createElement("canvas");
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
return canvas.toDataURL(mime_type);
}
return null;
}
return null;
},
toBlob: function(dataUrl, img, mime_type) {
if (img) {
dataUrl = buddyPicture.toString(img, mime_type);
}
var byteString = atob(dataUrl.split(",")[1]);
var mimeString = dataUrl.split(",")[0].split(":")[1].split(";")[0];
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ab], {type: mimeString});
}
}
};
};
return buddyPicture;
return buddyPicture;
}];
}];
});

1
static/js/services/contacts.js

@ -216,7 +216,6 @@ define(['underscore', 'jquery', 'modernizr', 'sjcl', 'text!partials/contactsmana @@ -216,7 +216,6 @@ define(['underscore', 'jquery', 'modernizr', 'sjcl', 'text!partials/contactsmana
var d = this.decrypt(data.contact);
if (d) {
var contact = contactData.addByData(d);
// TODO(longsleep): Convert buddyImage string to Blob.
this.e.triggerHandler("contactadded", d);
} else {
// Remove empty or invalid entries automatically.

Loading…
Cancel
Save