summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2014-01-04 20:24:04 -0800
committerRicardo Cerqueira <ricardo@cyngn.com>2015-11-12 13:46:07 +0000
commit963984615ade8d7d47e657937ac333542d79e06e (patch)
tree2d5a93402ac00b37d3b9ef038a41fdb81d83b2ea /src
parent713bd3abe8aeb86ead20a99e86506c4db7a1ebd6 (diff)
downloadandroid_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.java28
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();
}