diff options
author | Damian Minkov <damencho@jitsi.org> | 2013-03-05 22:03:43 +0000 |
---|---|---|
committer | Damian Minkov <damencho@jitsi.org> | 2013-03-05 22:03:43 +0000 |
commit | 46bcbd306ed8e17d602bdb9a99bba21e907e72b6 (patch) | |
tree | 5d37b91892a6a4b515834ce287a54d69670ded7f /src/net | |
parent | b2cc5dc5bfbae7f10bdf7e82a5f75e7b53f5de48 (diff) | |
download | jitsi-46bcbd306ed8e17d602bdb9a99bba21e907e72b6.zip jitsi-46bcbd306ed8e17d602bdb9a99bba21e907e72b6.tar.gz jitsi-46bcbd306ed8e17d602bdb9a99bba21e907e72b6.tar.bz2 |
Dispatches video contact details. Uses voice as default number detail, if no type is available. Use position index in MetaContactRightButtonMenu.
Diffstat (limited to 'src/net')
7 files changed, 107 insertions, 59 deletions
diff --git a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java index ab651e4..7f5cfd1 100644 --- a/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java +++ b/src/net/java/sip/communicator/impl/gui/main/call/CallManager.java @@ -22,12 +22,7 @@ import net.java.sip.communicator.plugin.desktoputil.transparent.*; import net.java.sip.communicator.service.contactlist.*; import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.FaxDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.MobilePhoneDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PagerDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PhoneNumberDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkPhoneDetail; +import net.java.sip.communicator.service.protocol.ServerStoredDetails.*; import net.java.sip.communicator.service.protocol.event.*; import net.java.sip.communicator.service.protocol.media.*; import net.java.sip.communicator.util.*; @@ -1649,6 +1644,13 @@ public class CallManager getI18NString( "service.gui.MOBILE_PHONE"); } + else if(d instanceof VideoDetail) + { + localizedType = + GuiActivator.getResources(). + getI18NString( + "service.gui.VIDEO_PHONE"); + } else { localizedType = diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java index ce8aed4..fa6f92a 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java @@ -25,10 +25,7 @@ import net.java.sip.communicator.service.contactlist.*; import net.java.sip.communicator.service.contactsource.*; import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.FaxDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PagerDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PhoneNumberDetail; +import net.java.sip.communicator.service.protocol.ServerStoredDetails.*; import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.account.*; import net.java.sip.communicator.util.skin.*; @@ -771,6 +768,7 @@ public class ContactListTreeCellRenderer // Check if contact has additional phone numbers, if yes show the // call button boolean hasPhone = false; + boolean hasVideoPhone = false; // check for phone stored in contact info only // if telephony contact is missing @@ -814,6 +812,10 @@ public class ContactListTreeCellRenderer pnd.getNumber().length() > 0) { hasPhone = true; + + if(d instanceof VideoDetail) + hasVideoPhone = true; + break; } } @@ -848,7 +850,8 @@ public class ContactListTreeCellRenderer && AccountUtils.getOpSetRegisteredProviders( OperationSetVideoTelephony.class, null, - null).size() > 0)) + null).size() > 0) + || hasVideoPhone) { x += addButton(callVideoButton, ++gridX, x, false); } diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java index eec6fec..671a2d0 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java @@ -29,13 +29,8 @@ import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.gui.Container; import net.java.sip.communicator.service.gui.event.*; import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.service.protocol.OperationSetExtendedAuthorizations.SubscriptionStatus; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.FaxDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.MobilePhoneDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PagerDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PhoneNumberDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkPhoneDetail; +import net.java.sip.communicator.service.protocol.OperationSetExtendedAuthorizations.*; +import net.java.sip.communicator.service.protocol.ServerStoredDetails.*; import net.java.sip.communicator.util.*; import net.java.sip.communicator.util.account.*; import net.java.sip.communicator.util.skin.*; @@ -452,6 +447,13 @@ public class MetaContactRightButtonMenu getI18NString( "service.gui.MOBILE_PHONE"); } + else if(d instanceof VideoDetail) + { + localizedType = + GuiActivator.getResources(). + getI18NString( + "service.gui.VIDEO_PHONE"); + } else { localizedType = @@ -823,7 +825,12 @@ public class MetaContactRightButtonMenu if (component.getComponent() == null) continue; - this.add((Component)component.getComponent()); + if(component.getPositionIndex() != -1) + this.add((Component)component.getComponent(), + component.getPositionIndex()); + else + this.add((Component)component.getComponent()); + } } GuiActivator.getUIService().addPluginComponentListener(this); @@ -1292,10 +1299,23 @@ public class MetaContactRightButtonMenu if (c.getComponent() == null) return; + int ix = c.getPositionIndex(); + if (constraints == null) - this.add((Component) c.getComponent()); + { + if(ix != -1) + this.add((Component) c.getComponent(), ix); + else + this.add((Component) c.getComponent()); + } else - this.add((Component) c.getComponent(), constraints); + { + if(ix != -1) + this.add((Component) c.getComponent(), constraints, ix); + else + this.add((Component) c.getComponent(), constraints); + } + c.setCurrentContact(metaContact); diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaUIContact.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaUIContact.java index 01189e6..fd4173d 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaUIContact.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaUIContact.java @@ -18,13 +18,8 @@ import net.java.sip.communicator.service.contactlist.*; import net.java.sip.communicator.service.gui.*; import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.service.protocol.OperationSetExtendedAuthorizations.SubscriptionStatus; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.FaxDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.MobilePhoneDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PagerDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.PhoneNumberDetail; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.WorkPhoneDetail; +import net.java.sip.communicator.service.protocol.OperationSetExtendedAuthorizations.*; +import net.java.sip.communicator.service.protocol.ServerStoredDetails.*; import net.java.sip.communicator.util.*; /** @@ -544,6 +539,13 @@ public class MetaUIContact getI18NString( "service.gui.MOBILE_PHONE"); } + else if(d instanceof VideoDetail) + { + localizedType = + GuiActivator.getResources(). + getI18NString( + "service.gui.VIDEO_PHONE"); + } else { localizedType = diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/InfoRetreiver.java b/src/net/java/sip/communicator/impl/protocol/jabber/InfoRetreiver.java index 2f6009d..9928c2a 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/InfoRetreiver.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/InfoRetreiver.java @@ -9,8 +9,7 @@ package net.java.sip.communicator.impl.protocol.jabber; import java.lang.reflect.*; import java.util.*; -import net.java.sip.communicator.service.protocol.*; -import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail; +import net.java.sip.communicator.service.protocol.ServerStoredDetails.*; import net.java.sip.communicator.util.*; import org.jivesoftware.smack.*; @@ -157,23 +156,23 @@ public class InfoRetreiver tmp = checkForFullName(card); if(tmp != null) - result.add(new ServerStoredDetails.DisplayNameDetail(tmp)); + result.add(new DisplayNameDetail(tmp)); tmp = card.getFirstName(); if(tmp != null) - result.add(new ServerStoredDetails.FirstNameDetail(tmp)); + result.add(new FirstNameDetail(tmp)); tmp = card.getMiddleName(); if(tmp != null) - result.add(new ServerStoredDetails.MiddleNameDetail(tmp)); + result.add(new MiddleNameDetail(tmp)); tmp = card.getLastName(); if(tmp != null) - result.add(new ServerStoredDetails.LastNameDetail(tmp)); + result.add(new LastNameDetail(tmp)); tmp = card.getNickName(); if(tmp != null) - result.add(new ServerStoredDetails.NicknameDetail(tmp)); + result.add(new NicknameDetail(tmp)); // Home Details // addrField one of @@ -181,46 +180,50 @@ public class InfoRetreiver // LOCALITY, REGION, PCODE, CTRY tmp = card.getAddressFieldHome("STREET"); if(tmp != null) - result.add(new ServerStoredDetails.AddressDetail(tmp)); + result.add(new AddressDetail(tmp)); tmp = card.getAddressFieldHome("LOCALITY"); if(tmp != null) - result.add(new ServerStoredDetails.CityDetail(tmp)); + result.add(new CityDetail(tmp)); tmp = card.getAddressFieldHome("REGION"); if(tmp != null) - result.add(new ServerStoredDetails.ProvinceDetail(tmp)); + result.add(new ProvinceDetail(tmp)); tmp = card.getAddressFieldHome("PCODE"); if(tmp != null) - result.add(new ServerStoredDetails.PostalCodeDetail(tmp)); + result.add(new PostalCodeDetail(tmp)); // tmp = card.getAddressFieldHome("CTRY"); // if(tmp != null) -// result.add(new ServerStoredDetails.CountryDetail(tmp); +// result.add(new CountryDetail(tmp); // phoneType one of //VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF tmp = card.getPhoneHome("VOICE"); if(tmp != null) - result.add(new ServerStoredDetails.PhoneNumberDetail(tmp)); + result.add(new PhoneNumberDetail(tmp)); + + tmp = card.getPhoneHome("VIDEO"); + if(tmp != null) + result.add(new VideoDetail(tmp)); tmp = card.getPhoneHome("FAX"); if(tmp != null) - result.add(new ServerStoredDetails.FaxDetail(tmp)); + result.add(new FaxDetail(tmp)); tmp = card.getPhoneHome("PAGER"); if(tmp != null) - result.add(new ServerStoredDetails.PagerDetail(tmp)); + result.add(new PagerDetail(tmp)); tmp = card.getPhoneHome("CELL"); if(tmp != null) - result.add(new ServerStoredDetails.MobilePhoneDetail(tmp)); + result.add(new MobilePhoneDetail(tmp)); tmp = card.getEmailHome(); if(tmp != null) - result.add(new ServerStoredDetails.EmailAddressDetail(tmp)); + result.add(new EmailAddressDetail(tmp)); // Work Details // addrField one of @@ -228,30 +231,30 @@ public class InfoRetreiver // LOCALITY, REGION, PCODE, CTRY tmp = card.getAddressFieldWork("STREET"); if(tmp != null) - result.add(new ServerStoredDetails.WorkAddressDetail(tmp)); + result.add(new WorkAddressDetail(tmp)); tmp = card.getAddressFieldWork("LOCALITY"); if(tmp != null) - result.add(new ServerStoredDetails.WorkCityDetail(tmp)); + result.add(new WorkCityDetail(tmp)); tmp = card.getAddressFieldWork("REGION"); if(tmp != null) - result.add(new ServerStoredDetails.WorkProvinceDetail(tmp)); + result.add(new WorkProvinceDetail(tmp)); tmp = card.getAddressFieldWork("PCODE"); if(tmp != null) - result.add(new ServerStoredDetails.WorkPostalCodeDetail(tmp)); + result.add(new WorkPostalCodeDetail(tmp)); // tmp = card.getAddressFieldWork("CTRY"); // if(tmp != null) -// result.add(new ServerStoredDetails.WorkCountryDetail(tmp); +// result.add(new WorkCountryDetail(tmp); // phoneType one of //VOICE, FAX, PAGER, MSG, CELL, VIDEO, BBS, MODEM, ISDN, PCS, PREF tmp = card.getPhoneWork("VOICE"); if(tmp != null) - result.add(new ServerStoredDetails.WorkPhoneDetail(tmp)); + result.add(new WorkPhoneDetail(tmp)); tmp = card.getPhoneWork("FAX"); if(tmp != null) @@ -263,16 +266,16 @@ public class InfoRetreiver tmp = card.getPhoneWork("CELL"); if(tmp != null) - result.add(new ServerStoredDetails.WorkMobilePhoneDetail(tmp)); + result.add(new WorkMobilePhoneDetail(tmp)); tmp = card.getEmailWork(); if(tmp != null) - result.add(new ServerStoredDetails.EmailAddressDetail(tmp)); + result.add(new EmailAddressDetail(tmp)); tmp = card.getOrganization(); if(tmp != null) - result.add(new ServerStoredDetails.WorkOrganizationNameDetail(tmp)); + result.add(new WorkOrganizationNameDetail(tmp)); tmp = card.getOrganizationUnit(); if(tmp != null) @@ -280,8 +283,7 @@ public class InfoRetreiver byte[] imageBytes = card.getAvatar(); if(imageBytes != null && imageBytes.length > 0) - result.add(new ServerStoredDetails.ImageDetail( - "Image", imageBytes)); + result.add(new ImageDetail("Image", imageBytes)); } catch (Throwable exc) { @@ -405,7 +407,7 @@ public class InfoRetreiver * Work department */ public static class WorkDepartmentNameDetail - extends ServerStoredDetails.NameDetail + extends NameDetail { /** * Constructor. @@ -422,7 +424,7 @@ public class InfoRetreiver * Fax at work */ public static class WorkFaxDetail - extends ServerStoredDetails.FaxDetail + extends FaxDetail { /** * Constructor. @@ -440,7 +442,7 @@ public class InfoRetreiver * Pager at work */ public static class WorkPagerDetail - extends ServerStoredDetails.PhoneNumberDetail + extends PhoneNumberDetail { /** * Constructor. diff --git a/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactQuery.java b/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactQuery.java index 43c0ec5..c2beb27 100644 --- a/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactQuery.java +++ b/src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactQuery.java @@ -165,6 +165,13 @@ public class PhoneNumberContactQuery PNContactSourceActivator.getResources() .getI18NString("service.gui.MOBILE_PHONE"); } + else if(d instanceof VideoDetail) + { + localizedType = + PNContactSourceActivator.getResources(). + getI18NString( + "service.gui.VIDEO_PHONE"); + } else { localizedType = diff --git a/src/net/java/sip/communicator/service/protocol/ServerStoredDetails.java b/src/net/java/sip/communicator/service/protocol/ServerStoredDetails.java index 3433923..3d9043b 100644 --- a/src/net/java/sip/communicator/service/protocol/ServerStoredDetails.java +++ b/src/net/java/sip/communicator/service/protocol/ServerStoredDetails.java @@ -390,6 +390,18 @@ public class ServerStoredDetails } /** + * A detail used for representing a work mobile phone number. + */ + public static class VideoDetail extends PhoneNumberDetail + { + public VideoDetail(String number) + { + super(number); + super.detailDisplayName = "Video"; + } + } + + /** * A Pager number. */ public static class PagerDetail extends PhoneNumberDetail |