| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 | 
							- <link rel="import" href="../../bower_components/paper-icon-button/paper-icon-button.html">
 
- <link rel="import" href="../file-sharing/file-input-behavior.html">
 
- <link rel="import" href="../text-sharing/text-input-behavior.html">
 
- <dom-module id="buddy-avatar">
 
-     <template>
 
-         <style>
 
-         :host {
 
-             display: block;
 
-             @apply(--layout-vertical);
 
-             @apply(--layout-center-center);
 
-             width: 120px;
 
-             height: 124px;
 
-             cursor: pointer;
 
-         }
 
-         
 
-         paper-icon-button {
 
-             display: inline-block;
 
-             width: 64px !important;
 
-             height: 64px !important;
 
-             border-radius: 50%;
 
-             overflow: hidden;
 
-             padding: 12px;
 
-             margin-bottom: 6px;
 
-             background-color: #4285f4;
 
-             color: white;
 
-         }
 
-         
 
-         :host:hover paper-icon-button {
 
-             transform: scale(1.05);
 
-         }
 
-         
 
-         .paper-font-subhead {
 
-             text-align: center;
 
-             margin-top: 0px;
 
-             line-height: 18px;
 
-         }
 
-         
 
-         .paper-font-body1 {
 
-             text-align: center;
 
-             width: 100%;
 
-             font-size: 13px;
 
-             color: grey;
 
-             margin-top: 0px !important;
 
-             line-height: 16px;
 
-         }
 
-         
 
-         :host,
 
-         .paper-font-subhead,
 
-         .paper-font-body1 {
 
-             -webkit-user-select: none;
 
-             -moz-user-select: none;
 
-             -ms-user-select: none;
 
-             user-select: none;
 
-             width: 120px;
 
-             white-space: nowrap;
 
-             overflow: hidden;
 
-             text-overflow: ellipsis;
 
-         }
 
-         
 
-         @media all and (min-height: 440px) {
 
-             :host([only]) {
 
-                 padding: 20vh;
 
-             }
 
-         }
 
-         
 
-         .container {
 
-             @apply(--layout-vertical);
 
-             @apply(--layout-center);
 
-             height: 112px;
 
-             padding-top: 16px;
 
-             display: block;
 
-         }
 
-         </style>
 
-         <div class="container">
 
-             <paper-icon-button icon="{{_displayIcon}}"></paper-icon-button>
 
-             <div class="paper-font-subhead">{{_displayName}}</div>
 
-             <div class="paper-font-body1">{{status}}</div>
 
-         </div>
 
-     </template>
 
-     <script>
 
-     'use strict';
 
-     Polymer({
 
-         is: 'buddy-avatar',
 
-         behaviors: [Snapdrop.FileInputBehavior, Snapdrop.TextInputBehavior],
 
-         properties: {
 
-             contact: Object,
 
-             _displayName: {
 
-                 computed: '_computeDisplayName(contact)'
 
-             },
 
-             _displayIcon: {
 
-                 computed: '_computeDisplayIcon(contact)'
 
-             },
 
-             status: {
 
-                 type: String,
 
-                 value: '',
 
-             },
 
-             defaultStatus: {
 
-                 computed: '_computeDefaultStatus(contact)'
 
-             }
 
-         },
 
-         _computeDisplayName: function(contact) {
 
-             if (!contact.name.os) {
 
-                 return contact.name;
 
-             }
 
-             return this._computeDeviceName(contact.name);
 
-         },
 
-         _computeDeviceName: function(contact) {
 
-             if (contact.model) {
 
-                 return contact.os + ' ' + contact.model;
 
-             }
 
-             contact.os = contact.os.replace('Mac OS', 'Mac');
 
-             return contact.os + ' ' + contact.browser;
 
-         },
 
-         _computeDisplayIcon: function(contact) {
 
-             contact = contact.device || contact.name;
 
-             if (contact.type === 'mobile') {
 
-                 return 'chat:phone-iphone';
 
-             }
 
-             if (contact.type === 'tablet') {
 
-                 return 'chat:tablet-mac';
 
-             }
 
-             return 'chat:desktop-mac';
 
-         },
 
-         _computeDefaultStatus: function(contact) {
 
-             var status = contact.device ? this._computeDeviceName(contact.device) : '';
 
-             this.status = status;
 
-             return status;
 
-         },
 
-         attached: function() {
 
-             this.async(function() {
 
-                 app.conn.addEventListener('file-offered', function(e) {
 
-                     if (e.detail.to === this.contact.peerId) {
 
-                         this.status = 'Waiting to accept...';
 
-                     }
 
-                 }.bind(this), false);
 
-                 app.conn.addEventListener('upload-started', function(e) {
 
-                     if (e.detail.to === this.contact.peerId) {
 
-                         this.status = 'Uploading...';
 
-                     }
 
-                 }.bind(this), false);
 
-                 app.conn.addEventListener('download-started', function(e) {
 
-                     if (e.detail.from === this.contact.peerId) {
 
-                         this.status = 'Downloading...';
 
-                     }
 
-                 }.bind(this), false);
 
-                 app.conn.addEventListener('upload-complete', function(e) {
 
-                     if (e.detail.from === this.contact.peerId) {
 
-                         this.status = this.defaultStatus;
 
-                     }
 
-                 }.bind(this), false);
 
-                 app.conn.addEventListener('download-complete', function(e) {
 
-                     if (e.detail.from === this.contact.peerId) {
 
-                         this.status = this.defaultStatus;
 
-                     }
 
-                 }.bind(this), false);
 
-                 app.conn.addEventListener('file-declined', function(e) {
 
-                     if (e.detail.from === this.contact.peerId) {
 
-                         this.status = this.defaultStatus;
 
-                     }
 
-                 }.bind(this), false);
 
-                 app.conn.addEventListener('upload-error', function(e) {
 
-                     this.status = this.defaultStatus;
 
-                 }.bind(this), false);
 
-             }, 200);
 
-         }
 
-     });
 
-     </script>
 
- </dom-module>
 
 
  |