1/*
2 * Copyright (C) 2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16
17package com.android.inputmethod.dictionarypack;
18
19/**
20 * A class to group constants for dictionary pack usage.
21 *
22 * This class only defines constants. It should not make any references to outside code as far as
23 * possible, as it's used to separate cleanly the keyboard code from the dictionary pack code; this
24 * is needed in particular to cleanly compile regression tests.
25 */
26public class DictionaryPackConstants {
27    /**
28     * The root domain for the dictionary pack, upon which authorities and actions will append
29     * their own distinctive strings.
30     */
31    private static final String DICTIONARY_DOMAIN = "com.android.inputmethod.dictionarypack.aosp";
32
33    /**
34     * Authority for the ContentProvider protocol.
35     */
36    // TODO: find some way to factorize this string with the one in the resources
37    public static final String AUTHORITY = DICTIONARY_DOMAIN;
38
39    /**
40     * The action of the intent for publishing that new dictionary data is available.
41     */
42    // TODO: make this different across different packages. A suggested course of action is
43    // to use the package name inside this string.
44    // NOTE: The appended string should be uppercase like all other actions, but it's not for
45    // historical reasons.
46    public static final String NEW_DICTIONARY_INTENT_ACTION = DICTIONARY_DOMAIN + ".newdict";
47
48    /**
49     * The action of the intent sent by the dictionary pack to ask for a client to make
50     * itself known. This is used when the settings activity is brought up for a client the
51     * dictionary pack does not know about.
52     */
53    public static final String UNKNOWN_DICTIONARY_PROVIDER_CLIENT = DICTIONARY_DOMAIN
54            + ".UNKNOWN_CLIENT";
55
56    // In the above intents, the name of the string extra that contains the name of the client
57    // we want information about.
58    public static final String DICTIONARY_PROVIDER_CLIENT_EXTRA = "client";
59
60    /**
61     * The action of the intent to tell the dictionary provider to update now.
62     */
63    public static final String UPDATE_NOW_INTENT_ACTION = DICTIONARY_DOMAIN
64            + ".UPDATE_NOW";
65
66    /**
67     * The intent action to inform the dictionary provider to initialize the db
68     * and update now.
69     */
70    public static final String INIT_AND_UPDATE_NOW_INTENT_ACTION = DICTIONARY_DOMAIN
71            + ".INIT_AND_UPDATE_NOW";
72}
73