SpellCheckerInfo.java revision 562ab585f9e413d9696ee250e5ec02f95889a157
1988323c57bd25a58f05dfa492d9b9c8ab62c5153satok/* 2988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Copyright (C) 2011 The Android Open Source Project 3988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 4988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * use this file except in compliance with the License. You may obtain a copy of 6988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * the License at 7988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 8988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * http://www.apache.org/licenses/LICENSE-2.0 9988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 10988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Unless required by applicable law or agreed to in writing, software 11988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * License for the specific language governing permissions and limitations under 14988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * the License. 15988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 16988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 17988323c57bd25a58f05dfa492d9b9c8ab62c5153satokpackage android.view.textservice; 18988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 19988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.content.ComponentName; 20988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.content.Context; 21562ab585f9e413d9696ee250e5ec02f95889a157satokimport android.content.pm.PackageManager; 22988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.content.pm.ResolveInfo; 23988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.content.pm.ServiceInfo; 24562ab585f9e413d9696ee250e5ec02f95889a157satokimport android.graphics.drawable.Drawable; 25988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.os.Parcel; 26988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.os.Parcelable; 27988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 28988323c57bd25a58f05dfa492d9b9c8ab62c5153satok/** 29988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * This class is used to specify meta information of an spell checker. 30988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 31988323c57bd25a58f05dfa492d9b9c8ab62c5153satokpublic final class SpellCheckerInfo implements Parcelable { 32988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final ResolveInfo mService; 33988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final String mId; 34988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 35988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 36988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 37988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @hide 38988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 39988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SpellCheckerInfo(Context context, ResolveInfo service) { 40988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mService = service; 41988323c57bd25a58f05dfa492d9b9c8ab62c5153satok ServiceInfo si = service.serviceInfo; 42988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mId = new ComponentName(si.packageName, si.name).flattenToShortString(); 43988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 44988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 45988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 46988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 47988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @hide 48988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 49988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SpellCheckerInfo(Parcel source) { 50988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mId = source.readString(); 51988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mService = ResolveInfo.CREATOR.createFromParcel(source); 52988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 53988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 54988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 55988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Return a unique ID for this spell checker. The ID is generated from 56988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * the package and class name implementing the method. 57988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 58988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public String getId() { 59988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mId; 60988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 61988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 62988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 63988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 64988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Return the component of the service that implements. 65988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 66988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public ComponentName getComponent() { 67988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new ComponentName( 68988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mService.serviceInfo.packageName, mService.serviceInfo.name); 69988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 70988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 71988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 72988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Return the .apk package that implements this input method. 73988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 74988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public String getPackageName() { 75988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mService.serviceInfo.packageName; 76988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 77988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 78988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 79988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to package this object into a {@link Parcel}. 80988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 81988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param dest The {@link Parcel} to be written. 82988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param flags The flags used for parceling. 83988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 84988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 85988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public void writeToParcel(Parcel dest, int flags) { 86988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeString(mId); 87988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mService.writeToParcel(dest, flags); 88988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 89988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 90988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 91988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 92988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 93988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 94988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final Parcelable.Creator<SpellCheckerInfo> CREATOR 95988323c57bd25a58f05dfa492d9b9c8ab62c5153satok = new Parcelable.Creator<SpellCheckerInfo>() { 96988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 97988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SpellCheckerInfo createFromParcel(Parcel source) { 98988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new SpellCheckerInfo(source); 99988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 100988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 101988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 102988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SpellCheckerInfo[] newArray(int size) { 103988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new SpellCheckerInfo[size]; 104988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 105988323c57bd25a58f05dfa492d9b9c8ab62c5153satok }; 106988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 107988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 108562ab585f9e413d9696ee250e5ec02f95889a157satok * Load the user-displayed label for this spell checker. 109562ab585f9e413d9696ee250e5ec02f95889a157satok * 110562ab585f9e413d9696ee250e5ec02f95889a157satok * @param pm Supply a PackageManager used to load the spell checker's resources. 111562ab585f9e413d9696ee250e5ec02f95889a157satok */ 112562ab585f9e413d9696ee250e5ec02f95889a157satok public CharSequence loadLabel(PackageManager pm) { 113562ab585f9e413d9696ee250e5ec02f95889a157satok return mService.loadLabel(pm); 114562ab585f9e413d9696ee250e5ec02f95889a157satok } 115562ab585f9e413d9696ee250e5ec02f95889a157satok 116562ab585f9e413d9696ee250e5ec02f95889a157satok /** 117562ab585f9e413d9696ee250e5ec02f95889a157satok * Load the user-displayed icon for this spell checker. 118562ab585f9e413d9696ee250e5ec02f95889a157satok * 119562ab585f9e413d9696ee250e5ec02f95889a157satok * @param pm Supply a PackageManager used to load the spell checker's resources. 120562ab585f9e413d9696ee250e5ec02f95889a157satok */ 121562ab585f9e413d9696ee250e5ec02f95889a157satok public Drawable loadIcon(PackageManager pm) { 122562ab585f9e413d9696ee250e5ec02f95889a157satok return mService.loadIcon(pm); 123562ab585f9e413d9696ee250e5ec02f95889a157satok } 124562ab585f9e413d9696ee250e5ec02f95889a157satok 125562ab585f9e413d9696ee250e5ec02f95889a157satok /** 126988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 127988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 128988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 129988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int describeContents() { 130988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return 0; 131988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 132988323c57bd25a58f05dfa492d9b9c8ab62c5153satok} 133