Break dependencies to allow offdevice tests to build
Change-Id: Ia9a2e8f0672b3f72943f26fb15de1d3c7c5ce7f1main
parent
0cc0544a29
commit
1061bfdb34
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* 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.dictionarypack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class to group constants for dictionary pack usage.
|
||||||
|
*
|
||||||
|
* This class only defines constants. It should not make any references to outside code as far as
|
||||||
|
* possible, as it's used to separate cleanly the keyboard code from the dictionary pack code; this
|
||||||
|
* is needed in particular to cleanly compile regression tests.
|
||||||
|
*/
|
||||||
|
public class DictionaryPackConstants {
|
||||||
|
/**
|
||||||
|
* Authority for the ContentProvider protocol.
|
||||||
|
*/
|
||||||
|
// TODO: find some way to factorize this string with the one in the resources
|
||||||
|
public static final String AUTHORITY = "com.android.inputmethod.dictionarypack.aosp";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The action of the intent for publishing that new dictionary data is available.
|
||||||
|
*/
|
||||||
|
// TODO: make this different across different packages. A suggested course of action is
|
||||||
|
// to use the package name inside this string.
|
||||||
|
public static final String NEW_DICTIONARY_INTENT_ACTION =
|
||||||
|
"com.android.inputmethod.dictionarypack.newdict";
|
||||||
|
}
|
|
@ -48,11 +48,8 @@ public final class DictionaryProvider extends ContentProvider {
|
||||||
private static final String TAG = DictionaryProvider.class.getSimpleName();
|
private static final String TAG = DictionaryProvider.class.getSimpleName();
|
||||||
public static final boolean DEBUG = false;
|
public static final boolean DEBUG = false;
|
||||||
|
|
||||||
// Authority and URI matching for the ContentProvider protocol.
|
|
||||||
// TODO: find some way to factorize this string with the one in the resources
|
|
||||||
public static final String AUTHORITY = "com.android.inputmethod.dictionarypack.aosp";
|
|
||||||
public static final Uri CONTENT_URI =
|
public static final Uri CONTENT_URI =
|
||||||
Uri.parse(ContentResolver.SCHEME_CONTENT + "://" + AUTHORITY);
|
Uri.parse(ContentResolver.SCHEME_CONTENT + "://" + DictionaryPackConstants.AUTHORITY);
|
||||||
private static final String QUERY_PARAMETER_MAY_PROMPT_USER = "mayPrompt";
|
private static final String QUERY_PARAMETER_MAY_PROMPT_USER = "mayPrompt";
|
||||||
private static final String QUERY_PARAMETER_TRUE = "true";
|
private static final String QUERY_PARAMETER_TRUE = "true";
|
||||||
private static final String QUERY_PARAMETER_DELETE_RESULT = "result";
|
private static final String QUERY_PARAMETER_DELETE_RESULT = "result";
|
||||||
|
@ -70,12 +67,15 @@ public final class DictionaryProvider extends ContentProvider {
|
||||||
private static final UriMatcher sUriMatcherV2 = new UriMatcher(NO_MATCH);
|
private static final UriMatcher sUriMatcherV2 = new UriMatcher(NO_MATCH);
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
sUriMatcherV1.addURI(AUTHORITY, "list", DICTIONARY_V1_WHOLE_LIST);
|
sUriMatcherV1.addURI(DictionaryPackConstants.AUTHORITY, "list", DICTIONARY_V1_WHOLE_LIST);
|
||||||
sUriMatcherV1.addURI(AUTHORITY, "*", DICTIONARY_V1_DICT_INFO);
|
sUriMatcherV1.addURI(DictionaryPackConstants.AUTHORITY, "*", DICTIONARY_V1_DICT_INFO);
|
||||||
sUriMatcherV2.addURI(AUTHORITY, "*/metadata", DICTIONARY_V2_METADATA);
|
sUriMatcherV2.addURI(DictionaryPackConstants.AUTHORITY, "*/metadata",
|
||||||
sUriMatcherV2.addURI(AUTHORITY, "*/list", DICTIONARY_V2_WHOLE_LIST);
|
DICTIONARY_V2_METADATA);
|
||||||
sUriMatcherV2.addURI(AUTHORITY, "*/dict/*", DICTIONARY_V2_DICT_INFO);
|
sUriMatcherV2.addURI(DictionaryPackConstants.AUTHORITY, "*/list", DICTIONARY_V2_WHOLE_LIST);
|
||||||
sUriMatcherV2.addURI(AUTHORITY, "*/datafile/*", DICTIONARY_V2_DATAFILE);
|
sUriMatcherV2.addURI(DictionaryPackConstants.AUTHORITY, "*/dict/*",
|
||||||
|
DICTIONARY_V2_DICT_INFO);
|
||||||
|
sUriMatcherV2.addURI(DictionaryPackConstants.AUTHORITY, "*/datafile/*",
|
||||||
|
DICTIONARY_V2_DATAFILE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// MIME types for dictionary and dictionary list, as required by ContentProvider contract.
|
// MIME types for dictionary and dictionary list, as required by ContentProvider contract.
|
||||||
|
|
|
@ -123,7 +123,8 @@ public final class DictionarySettingsFragment extends PreferenceFragment
|
||||||
UpdateHandler.unregisterUpdateEventListener(this);
|
UpdateHandler.unregisterUpdateEventListener(this);
|
||||||
activity.unregisterReceiver(mConnectivityChangedReceiver);
|
activity.unregisterReceiver(mConnectivityChangedReceiver);
|
||||||
if (mChangedSettings) {
|
if (mChangedSettings) {
|
||||||
final Intent newDictBroadcast = new Intent(UpdateHandler.NEW_DICTIONARY_INTENT_ACTION);
|
final Intent newDictBroadcast =
|
||||||
|
new Intent(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION);
|
||||||
activity.sendBroadcast(newDictBroadcast);
|
activity.sendBroadcast(newDictBroadcast);
|
||||||
mChangedSettings = false;
|
mChangedSettings = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,14 +88,6 @@ public final class UpdateHandler {
|
||||||
// Name of the category for the main dictionary
|
// Name of the category for the main dictionary
|
||||||
public static final String MAIN_DICTIONARY_CATEGORY = "main";
|
public static final String MAIN_DICTIONARY_CATEGORY = "main";
|
||||||
|
|
||||||
/**
|
|
||||||
* The action of the intent for publishing that new dictionary data is available.
|
|
||||||
*/
|
|
||||||
// TODO: make this different across different packages. A suggested course of action is
|
|
||||||
// to use the package name inside this string.
|
|
||||||
public static final String NEW_DICTIONARY_INTENT_ACTION =
|
|
||||||
"com.android.inputmethod.dictionarypack.newdict";
|
|
||||||
|
|
||||||
// The id for the "dictionary available" notification.
|
// The id for the "dictionary available" notification.
|
||||||
static final int DICT_AVAILABLE_NOTIFICATION_ID = 1;
|
static final int DICT_AVAILABLE_NOTIFICATION_ID = 1;
|
||||||
|
|
||||||
|
@ -552,7 +544,8 @@ public final class UpdateHandler {
|
||||||
* Warn Android Keyboard that the state of dictionaries changed and it should refresh its data.
|
* Warn Android Keyboard that the state of dictionaries changed and it should refresh its data.
|
||||||
*/
|
*/
|
||||||
private static void signalNewDictionaryState(final Context context) {
|
private static void signalNewDictionaryState(final Context context) {
|
||||||
final Intent newDictBroadcast = new Intent(NEW_DICTIONARY_INTENT_ACTION);
|
final Intent newDictBroadcast =
|
||||||
|
new Intent(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION);
|
||||||
context.sendBroadcast(newDictBroadcast);
|
context.sendBroadcast(newDictBroadcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@ package com.android.inputmethod.latin;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import com.android.inputmethod.dictionarypack.DictionaryProvider;
|
|
||||||
import com.android.inputmethod.keyboard.ProximityInfo;
|
import com.android.inputmethod.keyboard.ProximityInfo;
|
||||||
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
|
||||||
|
|
||||||
|
@ -32,7 +31,6 @@ import java.util.Locale;
|
||||||
*/
|
*/
|
||||||
public final class BinaryDictionary extends Dictionary {
|
public final class BinaryDictionary extends Dictionary {
|
||||||
private static final String TAG = BinaryDictionary.class.getSimpleName();
|
private static final String TAG = BinaryDictionary.class.getSimpleName();
|
||||||
public static final String DICTIONARY_PACK_AUTHORITY = DictionaryProvider.AUTHORITY;
|
|
||||||
|
|
||||||
// Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h
|
// Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h
|
||||||
private static final int MAX_WORD_LENGTH = Constants.Dictionary.MAX_WORD_LENGTH;
|
private static final int MAX_WORD_LENGTH = Constants.Dictionary.MAX_WORD_LENGTH;
|
||||||
|
|
|
@ -27,6 +27,7 @@ import android.os.RemoteException;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
|
||||||
import com.android.inputmethod.latin.DictionaryInfoUtils.DictionaryInfo;
|
import com.android.inputmethod.latin.DictionaryInfoUtils.DictionaryInfo;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
|
@ -93,8 +94,7 @@ public final class BinaryDictionaryFileDumper {
|
||||||
*/
|
*/
|
||||||
private static Uri.Builder getProviderUriBuilder(final String path) {
|
private static Uri.Builder getProviderUriBuilder(final String path) {
|
||||||
return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
|
return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT)
|
||||||
.authority(BinaryDictionary.DICTIONARY_PACK_AUTHORITY).appendPath(
|
.authority(DictionaryPackConstants.AUTHORITY).appendPath(path);
|
||||||
path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package com.android.inputmethod.latin;
|
package com.android.inputmethod.latin;
|
||||||
|
|
||||||
import com.android.inputmethod.dictionarypack.UpdateHandler;
|
import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -32,11 +32,6 @@ import android.net.Uri;
|
||||||
public final class DictionaryPackInstallBroadcastReceiver extends BroadcastReceiver {
|
public final class DictionaryPackInstallBroadcastReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
final LatinIME mService;
|
final LatinIME mService;
|
||||||
/**
|
|
||||||
* The action of the intent for publishing that new dictionary data is available.
|
|
||||||
*/
|
|
||||||
/* package */ static final String NEW_DICTIONARY_INTENT_ACTION =
|
|
||||||
UpdateHandler.NEW_DICTIONARY_INTENT_ACTION;
|
|
||||||
|
|
||||||
public DictionaryPackInstallBroadcastReceiver(final LatinIME service) {
|
public DictionaryPackInstallBroadcastReceiver(final LatinIME service) {
|
||||||
mService = service;
|
mService = service;
|
||||||
|
@ -66,7 +61,7 @@ public final class DictionaryPackInstallBroadcastReceiver extends BroadcastRecei
|
||||||
|
|
||||||
// Search for some dictionary pack in the just-installed package. If found, reread.
|
// Search for some dictionary pack in the just-installed package. If found, reread.
|
||||||
for (ProviderInfo info : providers) {
|
for (ProviderInfo info : providers) {
|
||||||
if (BinaryDictionary.DICTIONARY_PACK_AUTHORITY.equals(info.authority)) {
|
if (DictionaryPackConstants.AUTHORITY.equals(info.authority)) {
|
||||||
mService.resetSuggestMainDict();
|
mService.resetSuggestMainDict();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -86,7 +81,7 @@ public final class DictionaryPackInstallBroadcastReceiver extends BroadcastRecei
|
||||||
// TODO: Only reload dictionary on REMOVED when the removed package is the one we
|
// TODO: Only reload dictionary on REMOVED when the removed package is the one we
|
||||||
// read dictionary from?
|
// read dictionary from?
|
||||||
mService.resetSuggestMainDict();
|
mService.resetSuggestMainDict();
|
||||||
} else if (action.equals(NEW_DICTIONARY_INTENT_ACTION)) {
|
} else if (action.equals(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION)) {
|
||||||
mService.resetSuggestMainDict();
|
mService.resetSuggestMainDict();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,7 @@ import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
||||||
import com.android.inputmethod.annotations.UsedForTesting;
|
import com.android.inputmethod.annotations.UsedForTesting;
|
||||||
import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
|
import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
|
||||||
import com.android.inputmethod.compat.SuggestionSpanUtils;
|
import com.android.inputmethod.compat.SuggestionSpanUtils;
|
||||||
|
import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
|
||||||
import com.android.inputmethod.event.EventInterpreter;
|
import com.android.inputmethod.event.EventInterpreter;
|
||||||
import com.android.inputmethod.keyboard.KeyDetector;
|
import com.android.inputmethod.keyboard.KeyDetector;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
|
@ -450,8 +451,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
|
||||||
registerReceiver(mDictionaryPackInstallReceiver, packageFilter);
|
registerReceiver(mDictionaryPackInstallReceiver, packageFilter);
|
||||||
|
|
||||||
final IntentFilter newDictFilter = new IntentFilter();
|
final IntentFilter newDictFilter = new IntentFilter();
|
||||||
newDictFilter.addAction(
|
newDictFilter.addAction(DictionaryPackConstants.NEW_DICTIONARY_INTENT_ACTION);
|
||||||
DictionaryPackInstallBroadcastReceiver.NEW_DICTIONARY_INTENT_ACTION);
|
|
||||||
registerReceiver(mDictionaryPackInstallReceiver, newDictFilter);
|
registerReceiver(mDictionaryPackInstallReceiver, newDictFilter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue