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

Commit fe39d576 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Support versioned important notice

This change must be checked in together with If38a754d00.

Bug: 10587358
Change-Id: I91580f9468bc5ee7ed1694d7852a60dc6793dac0
parent 1b3a142c
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -20,11 +20,14 @@

<resources>
    <integer name="config_important_notice_version">0</integer>
    <!-- TODO: Make title and contents resource to string array indexed by version. -->
    <!-- The text of the important notice displayed on the suggestion strip. -->
    <string name="important_notice_title"></string>
    <!-- The contents of the important notice. -->
    <string name="important_notice_contents"></string>
    <!-- The array of the text of the important notices displayed on the suggestion strip. -->
    <string-array name="important_notice_title_array">
        <!-- empty -->
    </string-array>
    <!-- The array of the contents of the important notices. -->
    <string-array name="important_notice_contents_array">
        <!-- empty -->
    </string-array>
    <!-- Description for option enabling the use by the keyboards of sent/received messages, e-mail and typing history to improve suggestion accuracy [CHAR LIMIT=68] -->
    <string name="use_personalized_dicts_summary">Learn from your communications and typed data to improve suggestions</string>
</resources>
+16 −3
Original line number Diff line number Diff line
@@ -1190,15 +1190,28 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
                new AlertDialog.Builder(context, AlertDialog.THEME_HOLO_DARK);
        builder.setMessage(ImportantNoticeUtils.getNextImportantNoticeContents(context));
        builder.setPositiveButton(android.R.string.ok, null /* listener */);
        final int nextVersion = ImportantNoticeUtils.getNextImportantNoticeVersion(context);
        final OnClickListener onClickListener = new OnClickListener() {
            @Override
            public void onClick(final DialogInterface dialog, final int position) {
                switch (nextVersion) {
                case ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS:
                    if (position == DialogInterface.BUTTON_NEGATIVE) {
                        launchSettings();
                    }
                    break;
                default:
                    break;
                }
            }
        };
        switch (nextVersion) {
        case ImportantNoticeUtils.VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS:
            builder.setNegativeButton(R.string.go_to_settings, onClickListener);
            break;
        default:
            break;
        }
        final AlertDialog importantNoticeDialog = builder.create();
        importantNoticeDialog.setOnShowListener(new OnShowListener() {
            @Override
+14 −14
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ public final class ImportantNoticeUtils {
        return context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);
    }

    public static int getCurrentImportantNoticeVersion(final Context context) {
    private static int getCurrentImportantNoticeVersion(final Context context) {
        return context.getResources().getInteger(R.integer.config_important_notice_version);
    }

@@ -68,7 +68,7 @@ public final class ImportantNoticeUtils {
        return getImportantNoticePreferences(context).getInt(KEY_IMPORTANT_NOTICE_VERSION, 0);
    }

    private static int getNextImportantNoticeVersion(final Context context) {
    public static int getNextImportantNoticeVersion(final Context context) {
        return getLastImportantNoticeVersion(context) + 1;
    }

@@ -92,23 +92,23 @@ public final class ImportantNoticeUtils {
                .apply();
    }

    // TODO: Make title resource to string array indexed by version.
    public static String getNextImportantNoticeTitle(final Context context) {
        switch (getNextImportantNoticeVersion(context)) {
        case VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS:
            return context.getString(R.string.important_notice_title);
        default:
            return null;
        final int nextVersion = getCurrentImportantNoticeVersion(context);
        final String[] importantNoticeTitleArray = context.getResources().getStringArray(
                R.array.important_notice_title_array);
        if (nextVersion > 0 && nextVersion < importantNoticeTitleArray.length) {
            return importantNoticeTitleArray[nextVersion];
        }
        return null;
    }

    // TODO: Make content resource to string array indexed by version.
    public static String getNextImportantNoticeContents(final Context context) {
        switch (getNextImportantNoticeVersion(context)) {
        case VERSION_TO_ENABLE_PERSONALIZED_SUGGESTIONS:
            return context.getString(R.string.important_notice_contents);
        default:
            return null;
        final int nextVersion = getNextImportantNoticeVersion(context);
        final String[] importantNoticeContentsArray = context.getResources().getStringArray(
                R.array.important_notice_contents_array);
        if (nextVersion > 0 && nextVersion < importantNoticeContentsArray.length) {
            return importantNoticeContentsArray[nextVersion];
        }
        return null;
    }
}