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

Commit 00ed4704 authored by Kurt Partridge's avatar Kurt Partridge
Browse files

Move UUID preference reading to ResearchSettings.java

Change-Id: I8157249259cf8c3218c5c82a5729f4cbc1fb4eeb
parent abaa88fd
Loading
Loading
Loading
Loading
+6 −19
Original line number Diff line number Diff line
@@ -154,7 +154,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
    // constants related to specific log points
    private static final String WHITESPACE_SEPARATORS = " \t\n\r";
    private static final int MAX_INPUTVIEW_LENGTH_TO_CAPTURE = 8192; // must be >=1
    private static final String PREF_RESEARCH_LOGGER_UUID_STRING = "pref_research_logger_uuid";
    private static final String PREF_RESEARCH_SAVED_CHANNEL = "pref_research_saved_channel";

    private static final ResearchLogger sInstance = new ResearchLogger();
@@ -162,7 +161,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
    private static String sAllowedAccountDomain = null;
    // to write to a different filename, e.g., for testing, set mFile before calling start()
    /* package */ File mFilesDir;
    /* package */ String mUUIDString;
    /* package */ ResearchLog mMainResearchLog;
    // mFeedbackLog records all events for the session, private or not (excepting
    // passwords).  It is written to permanent storage only if the user explicitly commands
@@ -249,7 +247,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
        }
        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(latinIME);
        if (prefs != null) {
            mUUIDString = getUUID(prefs);
            if (!prefs.contains(PREF_USABILITY_STUDY_MODE)) {
                Editor e = prefs.edit();
                e.putBoolean(PREF_USABILITY_STUDY_MODE, DEFAULT_USABILITY_STUDY_MODE);
@@ -413,7 +410,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
    private File createLogFile(final File filesDir) {
        final StringBuilder sb = new StringBuilder();
        sb.append(LOG_FILENAME_PREFIX).append('-');
        sb.append(mUUIDString).append('-');
        final String uuid = ResearchSettings.readResearchLoggerUuid(mPrefs);
        sb.append(uuid).append('-');
        sb.append(TIMESTAMP_DATEFORMAT.format(new Date())).append('-');
        // Sometimes logFiles are created within milliseconds of each other.  Append a counter to
        // separate these.
@@ -431,7 +429,8 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
    private File createUserRecordingFile(final File filesDir) {
        final StringBuilder sb = new StringBuilder();
        sb.append(USER_RECORDING_FILENAME_PREFIX).append('-');
        sb.append(mUUIDString).append('-');
        final String uuid = ResearchSettings.readResearchLoggerUuid(mPrefs);
        sb.append(uuid).append('-');
        sb.append(TIMESTAMP_DATEFORMAT.format(new Date()));
        sb.append(USER_RECORDING_FILENAME_SUFFIX);
        return new File(filesDir, sb.toString());
@@ -1143,18 +1142,6 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
        }
    }

    private static String getUUID(final SharedPreferences prefs) {
        String uuidString = prefs.getString(PREF_RESEARCH_LOGGER_UUID_STRING, null);
        if (null == uuidString) {
            UUID uuid = UUID.randomUUID();
            uuidString = uuid.toString();
            Editor editor = prefs.edit();
            editor.putString(PREF_RESEARCH_LOGGER_UUID_STRING, uuidString);
            editor.apply();
        }
        return uuidString;
    }

    private String scrubWord(String word) {
        final Dictionary dictionary = getDictionary();
        if (dictionary == null) {
@@ -1201,9 +1188,9 @@ public class ResearchLogger implements SharedPreferences.OnSharedPreferenceChang
                        0);
                final Integer versionCode = packageInfo.versionCode;
                final String versionName = packageInfo.versionName;
                final String uuid = ResearchSettings.readResearchLoggerUuid(researchLogger.mPrefs);
                researchLogger.enqueueEvent(LOGSTATEMENT_LATIN_IME_ON_START_INPUT_VIEW_INTERNAL,
                        researchLogger.mUUIDString, editorInfo.packageName,
                        Integer.toHexString(editorInfo.inputType),
                        uuid, editorInfo.packageName, Integer.toHexString(editorInfo.inputType),
                        Integer.toHexString(editorInfo.imeOptions), editorInfo.fieldId,
                        Build.DISPLAY, Build.MODEL, prefs, versionCode, versionName,
                        OUTPUT_FORMAT_VERSION, IS_LOGGING_EVERYTHING,
+39 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.inputmethod.research;

import android.content.SharedPreferences;

import java.util.UUID;

public final class ResearchSettings {
    public static final String PREF_RESEARCH_LOGGER_UUID = "pref_research_logger_uuid";

    private ResearchSettings() {
        // Intentional empty constructor for singleton.
    }

    public static String readResearchLoggerUuid(final SharedPreferences prefs) {
        if (prefs.contains(PREF_RESEARCH_LOGGER_UUID)) {
            return prefs.getString(PREF_RESEARCH_LOGGER_UUID, null);
        }
        // Generate a random string as uuid if not yet set
        final String newUuid = UUID.randomUUID().toString();
        prefs.edit().putString(PREF_RESEARCH_LOGGER_UUID, newUuid).apply();
        return newUuid;
    }
}