diff options
author | Koushik Dutta <koushd@gmail.com> | 2014-01-04 20:24:04 -0800 |
---|---|---|
committer | Ricardo Cerqueira <ricardo@cyngn.com> | 2015-11-12 13:46:07 +0000 |
commit | 963984615ade8d7d47e657937ac333542d79e06e (patch) | |
tree | 2d5a93402ac00b37d3b9ef038a41fdb81d83b2ea /src | |
parent | 713bd3abe8aeb86ead20a99e86506c4db7a1ebd6 (diff) | |
download | android_packages_apps_Screencast-963984615ade8d7d47e657937ac333542d79e06e.tar.gz android_packages_apps_Screencast-963984615ade8d7d47e657937ac333542d79e06e.tar.bz2 android_packages_apps_Screencast-963984615ade8d7d47e657937ac333542d79e06e.zip |
Fix resolution
Change-Id: I89653426824124afeacc398fe8a964cbf44ff6ed
Diffstat (limited to 'src')
-rw-r--r-- | src/com/cyanogenmod/screencast/ScreencastService.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/com/cyanogenmod/screencast/ScreencastService.java b/src/com/cyanogenmod/screencast/ScreencastService.java index 8db208c..ccb9bc4 100644 --- a/src/com/cyanogenmod/screencast/ScreencastService.java +++ b/src/com/cyanogenmod/screencast/ScreencastService.java @@ -35,7 +35,9 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.Display; import android.widget.Toast; +import android.graphics.Point; +import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; @@ -93,6 +95,27 @@ public class ScreencastService extends Service { notificationManager.notify(0, mBuilder.build()); } + protected Point getNativeResolution() { + DisplayManager dm = (DisplayManager)getSystemService(DISPLAY_SERVICE); + Display display = dm.getDisplay(Display.DEFAULT_DISPLAY); + Point ret = new Point(); + try { + display.getRealSize(ret); + } + catch (Exception e) { + try { + Method mGetRawH = Display.class.getMethod("getRawHeight"); + Method mGetRawW = Display.class.getMethod("getRawWidth"); + ret.x = (Integer) mGetRawW.invoke(display); + ret.y = (Integer) mGetRawH.invoke(display); + } + catch (Exception ex) { + display.getSize(ret); + } + } + return ret; + } + void registerScreencaster() throws RemoteException { DisplayManager dm = (DisplayManager)getSystemService(DISPLAY_SERVICE); Display display = dm.getDisplay(Display.DEFAULT_DISPLAY); @@ -100,8 +123,9 @@ public class ScreencastService extends Service { display.getMetrics(metrics); assert recorder == null; - recorder = new RecordingDevice(this, metrics.widthPixels, metrics.heightPixels); - VirtualDisplay vd = recorder.registerVirtualDisplay(this, SCREENCASTER_NAME, metrics.widthPixels, metrics.heightPixels, metrics.densityDpi); + Point size = getNativeResolution(); + recorder = new RecordingDevice(this, size.x, size.y); + VirtualDisplay vd = recorder.registerVirtualDisplay(this, SCREENCASTER_NAME, size.x, size.y, metrics.densityDpi); if (vd == null) cleanup(); } |