cba93f50c3
This change adds basic support for an external dictionary provider. It adds methods for reading the dictionary itself from an asset in the dictionary provider package directly, obtaining the file name through the ContentProvider interface; it also adds a way of getting the data through an InputStream and copying the file locally. Incidentally this change also adds the code needed to listen for updating the dictionary provider package and reloading it in time. This change also goes hand-in-hand with Iab31db6e, which implements the small closed part of this. Issue: 3414944 Change-Id: I5e4fff99a59bb99dbdb002102db6c90e6cb41c8a
52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
/*
|
|
* Copyright (C) 2011 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.latin;
|
|
|
|
import java.io.File;
|
|
|
|
/**
|
|
* Immutable class to hold the address of an asset.
|
|
* As opposed to a normal file, an asset is usually represented as a contiguous byte array in
|
|
* the package file. Open it correctly thus requires the name of the package it is in, but
|
|
* also the offset in the file and the length of this data. This class encapsulates these three.
|
|
*/
|
|
class AssetFileAddress {
|
|
public final String mFilename;
|
|
public final long mOffset;
|
|
public final long mLength;
|
|
|
|
public AssetFileAddress(final String filename, final long offset, final long length) {
|
|
mFilename = filename;
|
|
mOffset = offset;
|
|
mLength = length;
|
|
}
|
|
|
|
public static AssetFileAddress makeFromFileName(final String filename) {
|
|
if (null == filename) return null;
|
|
File f = new File(filename);
|
|
if (null == f || !f.isFile()) return null;
|
|
return new AssetFileAddress(filename, 0l, f.length());
|
|
}
|
|
|
|
public static AssetFileAddress makeFromFileNameAndOffset(final String filename,
|
|
final long offset, final long length) {
|
|
if (null == filename) return null;
|
|
File f = new File(filename);
|
|
if (null == f || !f.isFile()) return null;
|
|
return new AssetFileAddress(filename, offset, length);
|
|
}
|
|
}
|