[Rlog48b] Better visual indicator for logging state

Now applies yellow bars if recording, green bars if replaying.

Change-Id: I39d39de6254fd57107ea5355c43b154244520985
This commit is contained in:
Kurt Partridge 2013-01-31 09:57:47 -08:00
parent 44219ff28f
commit ce9e7f667d
2 changed files with 23 additions and 3 deletions

View file

@ -130,4 +130,8 @@ public class Replayer {
handler.postAtTime(callback, presentDoneTime + 1);
}
}
public boolean isReplaying() {
return mIsReplaying;
}
}

View file

@ -819,7 +819,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
}
private boolean isAllowedToLog() {
return !mIsPasswordView && !mIsLoggingSuspended && sIsLogging && !mInFeedbackDialog;
return !mIsPasswordView && !mIsLoggingSuspended && sIsLogging && !mInFeedbackDialog
&& !isReplaying();
}
public void requestIndicatorRedraw() {
@ -832,15 +833,30 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
mMainKeyboardView.invalidateAllKeys();
}
private boolean isReplaying() {
return mReplayer.isReplaying();
}
private int getIndicatorColor() {
if (isMakingUserRecording()) {
return Color.YELLOW;
}
if (isReplaying()) {
return Color.GREEN;
}
return Color.RED;
}
public void paintIndicator(KeyboardView view, Paint paint, Canvas canvas, int width,
int height) {
// TODO: Reimplement using a keyboard background image specific to the ResearchLogger
// and remove this method.
// The check for MainKeyboardView ensures that the indicator only decorates the main
// keyboard, not every keyboard.
if (IS_SHOWING_INDICATOR && isAllowedToLog() && view instanceof MainKeyboardView) {
if (IS_SHOWING_INDICATOR && (isAllowedToLog() || isReplaying())
&& view instanceof MainKeyboardView) {
final int savedColor = paint.getColor();
paint.setColor(isMakingUserRecording() ? Color.YELLOW : Color.RED);
paint.setColor(getIndicatorColor());
final Style savedStyle = paint.getStyle();
paint.setStyle(Style.STROKE);
final float savedStrokeWidth = paint.getStrokeWidth();