diff --git a/celebrity/src/main/java/com/github/rtyley/android/screenshot/celebrity/Screenshots.java b/celebrity/src/main/java/com/github/rtyley/android/screenshot/celebrity/Screenshots.java index 51149fe..2f4b4e2 100644 --- a/celebrity/src/main/java/com/github/rtyley/android/screenshot/celebrity/Screenshots.java +++ b/celebrity/src/main/java/com/github/rtyley/android/screenshot/celebrity/Screenshots.java @@ -6,8 +6,20 @@ public class Screenshots { + /** + * The paparazzo process filters logcat for this tag + */ + public static final String TAG = "screenshot_request"; + public static void poseForScreenshot() { - Log.d("screenshot_request", ""); + /* Note that the log message can not be blank, otherwise it won't + * register with logcat. + */ + Log.d(TAG, "{}"); + + /* Wait for the development machine to take the screenshot (usually takes about + * half a second) + */ try { sleep(1000L); } catch (InterruptedException e) {} } diff --git a/paparazzo/src/main/java/com/github/rtyley/android/screenshot/paparazzo/OnDemandScreenshotService.java b/paparazzo/src/main/java/com/github/rtyley/android/screenshot/paparazzo/OnDemandScreenshotService.java index 61a351b..55c26e9 100644 --- a/paparazzo/src/main/java/com/github/rtyley/android/screenshot/paparazzo/OnDemandScreenshotService.java +++ b/paparazzo/src/main/java/com/github/rtyley/android/screenshot/paparazzo/OnDemandScreenshotService.java @@ -124,12 +124,20 @@ private void takeScreenshotFor(String logLine) { } } + /** + * Parse the logline into key-value pairs. The logline format is comma-separated + * key-value pairs surrounded by curly braces, ie: + * + * {foo=bar,name=ARandomName} + */ private Map keyValueMapFor(String logLine) { Map keyValueMap = new HashMap(); - for (String keyValuePair : logLine.split(",")) { - int separatorIndex = keyValuePair.indexOf("="); - if (separatorIndex > 0) { - keyValueMap.put(keyValuePair.substring(0, separatorIndex), keyValuePair.substring(separatorIndex)); + if (logLine.startsWith("{") && logLine.endsWith("}")) { + for (String keyValuePair : logLine.substring(1, logLine.length()-1).split(",")) { + int separatorIndex = keyValuePair.indexOf("="); + if (separatorIndex > 0) { + keyValueMap.put(keyValuePair.substring(0, separatorIndex), keyValuePair.substring(separatorIndex)); + } } } return keyValueMap;