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

Commit 0f55e6cb authored by Kurt Partridge's avatar Kurt Partridge Committed by Android (Google) Code Review
Browse files

Merge "improve ResearchLogger performance"

parents a8ef547d 347fcab0
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -792,6 +792,19 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        super.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd,
        super.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd,
                composingSpanStart, composingSpanEnd);
                composingSpanStart, composingSpanEnd);


        if (ProductionFlag.IS_EXPERIMENTAL) {
            if (ResearchLogger.UnsLogGroup.ON_UPDATE_SELECTION.isEnabled) {
                final String s = "onUpdateSelection: oss=" + oldSelStart
                    + ", ose=" + oldSelEnd
                    + ", lss=" + mLastSelectionStart
                    + ", lse=" + mLastSelectionEnd
                    + ", nss=" + newSelStart
                    + ", nse=" + newSelEnd
                    + ", cs=" + composingSpanStart
                    + ", ce=" + composingSpanEnd;
                ResearchLogger.logUnstructured(ResearchLogger.UnsLogGroup.ON_UPDATE_SELECTION, s);
            }
        }
        if (DEBUG) {
        if (DEBUG) {
            Log.i(TAG, "onUpdateSelection: oss=" + oldSelStart
            Log.i(TAG, "onUpdateSelection: oss=" + oldSelStart
                    + ", ose=" + oldSelEnd
                    + ", ose=" + oldSelEnd
+18 −5
Original line number Original line Diff line number Diff line
@@ -259,20 +259,33 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
        write(LogGroup.STATE_CHANGE, subgroup + "\t" + details);
        write(LogGroup.STATE_CHANGE, subgroup + "\t" + details);
    }
    }


    public static enum UnsLogGroup {
        // TODO: expand to include one flag per log point
        // TODO: support selective enabling of flags
        ON_UPDATE_SELECTION;

        public boolean isEnabled = true;
    }

    public static void logUnstructured(UnsLogGroup logGroup, String details) {
    }

    private void write(final LogGroup logGroup, final String log) {
    private void write(final LogGroup logGroup, final String log) {
        // TODO: rewrite in native for better performance
        mLoggingHandler.post(new Runnable() {
        mLoggingHandler.post(new Runnable() {
            @Override
            @Override
            public void run() {
            public void run() {
                final long currentTime = System.currentTimeMillis();
                final long currentTime = System.currentTimeMillis();
                mDate.setTime(currentTime);
                final long upTime = SystemClock.uptimeMillis();
                final long upTime = SystemClock.uptimeMillis();

                final StringBuilder builder = new StringBuilder();
                final String printString = String.format("%s\t%d\t%s\t%s\n",
                builder.append(currentTime);
                        mDateFormat.format(mDate), upTime, logGroup.mLogString, log);
                builder.append('\t'); builder.append(upTime);
                builder.append('\t'); builder.append(logGroup.mLogString);
                builder.append('\t'); builder.append(log);
                if (LatinImeLogger.sDBG) {
                if (LatinImeLogger.sDBG) {
                    Log.d(TAG, "Write: " + '[' + logGroup.mLogString + ']' + log);
                    Log.d(TAG, "Write: " + '[' + logGroup.mLogString + ']' + log);
                }
                }
                if (mLogFileManager.append(printString)) {
                if (mLogFileManager.append(builder.toString())) {
                    // success
                    // success
                } else {
                } else {
                    if (LatinImeLogger.sDBG) {
                    if (LatinImeLogger.sDBG) {