From 96fe4b483e7fbaa9cc84e5fab89dec43c4c682f0 Mon Sep 17 00:00:00 2001 From: Sebastien Vincent Date: Wed, 17 Mar 2010 15:04:41 +0000 Subject: [PATCH] Check if screen's DisplayMode is not null. --- .../impl/neomedia/MediaServiceImpl.java | 17 +++++----- .../neomedia/device/ScreenDeviceImpl.java | 31 +++++++++++-------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java b/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java index 2c6ca1ec1..70d1810a6 100644 --- a/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java +++ b/src/net/java/sip/communicator/impl/neomedia/MediaServiceImpl.java @@ -476,17 +476,17 @@ public ZrtpControl createZrtpControl() { return new ZrtpControlImpl(); } - + /** * Get available screens. - * + * * @return screens */ public List getAvailableScreenDevices() { List ret = new ArrayList(); ScreenDevice screens[] = ScreenDeviceImpl.getAvailableScreenDevice(); - + if(screens != null) { /* populates screen list */ @@ -497,7 +497,7 @@ public List getAvailableScreenDevices() } return ret; } - + /** * Get default screen device. * @@ -509,19 +509,20 @@ public ScreenDevice getDefaultScreenDevice() ScreenDevice best = null; int width = 0; int height = 0; - + for(ScreenDevice sc : screens) { java.awt.Dimension res = sc.getSize(); - - if(width < res.getSize().width || height < res.getSize().height) + + if(res != null && (width < res.getSize().width || + height < res.getSize().height)) { width = res.width; height = res.height; best = sc; } } - + return best; } } diff --git a/src/net/java/sip/communicator/impl/neomedia/device/ScreenDeviceImpl.java b/src/net/java/sip/communicator/impl/neomedia/device/ScreenDeviceImpl.java index 1fd8dad3d..6b5bd467d 100644 --- a/src/net/java/sip/communicator/impl/neomedia/device/ScreenDeviceImpl.java +++ b/src/net/java/sip/communicator/impl/neomedia/device/ScreenDeviceImpl.java @@ -12,7 +12,7 @@ /** * Implementation of ScreenDevice. - * + * * @author Sebastien Vincent */ public class ScreenDeviceImpl implements ScreenDevice @@ -21,10 +21,10 @@ public class ScreenDeviceImpl implements ScreenDevice * AWT GraphicsDevice. */ GraphicsDevice screen = null; - + /** * Returns all available ScreenDevice device. - * + * * @return array of ScreenDevice device */ public static ScreenDevice[] getAvailableScreenDevice() @@ -33,7 +33,7 @@ public static ScreenDevice[] getAvailableScreenDevice() GraphicsDevice devices[] = null; GraphicsEnvironment ge = null; int i = 0; - + try { ge = GraphicsEnvironment. @@ -43,31 +43,31 @@ public static ScreenDevice[] getAvailableScreenDevice() { ge = null; } - + if(ge == null) { return null; } devices = ge.getScreenDevices(); - + if(devices == null || devices.length == 0) { return null; } - + screens = new ScreenDevice[devices.length]; - + for(GraphicsDevice dev : devices) { /* we know that GraphicsDevice type is TYPE_RASTER_SCREEN */ screens[i] = new ScreenDeviceImpl(dev); i++; } - + return screens; } - + /** * Constructor. * @@ -77,17 +77,22 @@ protected ScreenDeviceImpl(GraphicsDevice screen) { this.screen = screen; } - + /** * Get current resolution of ScreenDevice device. - * + * * @return current resolution of the screen */ public Dimension getSize() { /* get current display resolution */ DisplayMode mode = screen.getDisplayMode(); - return new Dimension(mode.getWidth(), mode.getHeight()); + + if(mode != null) + { + return new Dimension(mode.getWidth(), mode.getHeight()); + } + return null; } }