aboutsummaryrefslogtreecommitdiffstats
path: root/src/net
diff options
context:
space:
mode:
authorDamian Minkov <damencho@jitsi.org>2013-03-05 22:03:43 +0000
committerDamian Minkov <damencho@jitsi.org>2013-03-05 22:03:43 +0000
commit46bcbd306ed8e17d602bdb9a99bba21e907e72b6 (patch)
tree5d37b91892a6a4b515834ce287a54d69670ded7f /src/net
parentb2cc5dc5bfbae7f10bdf7e82a5f75e7b53f5de48 (diff)
downloadjitsi-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')
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/call/CallManager.java14
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/contactlist/ContactListTreeCellRenderer.java13
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/contactlist/MetaContactRightButtonMenu.java40
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/contactlist/contactsource/MetaUIContact.java16
-rw-r--r--src/net/java/sip/communicator/impl/protocol/jabber/InfoRetreiver.java64
-rw-r--r--src/net/java/sip/communicator/plugin/phonenumbercontactsource/PhoneNumberContactQuery.java7
-rw-r--r--src/net/java/sip/communicator/service/protocol/ServerStoredDetails.java12
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