Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce9e7f66 authored by Kurt Partridge's avatar Kurt Partridge
Browse files

[Rlog48b] Better visual indicator for logging state

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

Change-Id: I39d39de6254fd57107ea5355c43b154244520985
parent 44219ff2
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -130,4 +130,8 @@ public class Replayer {
            handler.postAtTime(callback, presentDoneTime + 1);
        }
    }

    public boolean isReplaying() {
        return mIsReplaying;
    }
}
+19 −3
Original line number Diff line number Diff line
@@ -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();