API cleanup for the spell checker framework
Bug: 5110151
- Add a bundle to an argment of newSpellCheckerSession
- Expose SpellCheckerSessionImpl in SpellCheckerService
- Fix function names
- etc
Change-Id: Ia8ec783b7b4d5fcd18389854b445fc10fc502297
diff --git a/services/java/com/android/server/TextServicesManagerService.java b/services/java/com/android/server/TextServicesManagerService.java
index e97df84..238b747 100644
--- a/services/java/com/android/server/TextServicesManagerService.java
+++ b/services/java/com/android/server/TextServicesManagerService.java
@@ -31,19 +31,17 @@
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Binder;
+import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
-import android.os.SystemClock;
import android.provider.Settings;
-import android.text.TextUtils;
import android.service.textservice.SpellCheckerService;
-import android.util.Log;
+import android.text.TextUtils;
import android.util.Slog;
import android.view.textservice.SpellCheckerInfo;
import java.util.ArrayList;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
public class TextServicesManagerService extends ITextServicesManager.Stub {
@@ -180,7 +178,8 @@
@Override
public void getSpellCheckerService(String sciId, String locale,
- ITextServicesSessionListener tsListener, ISpellCheckerSessionListener scListener) {
+ ITextServicesSessionListener tsListener, ISpellCheckerSessionListener scListener,
+ Bundle bundle) {
if (!mSystemReady) {
return;
}
@@ -199,7 +198,7 @@
if (bindGroup != null) {
final InternalDeathRecipient recipient =
mSpellCheckerBindGroups.get(sciId).addListener(
- tsListener, locale, scListener, uid);
+ tsListener, locale, scListener, uid, bundle);
if (recipient == null) {
if (DBG) {
Slog.w(TAG, "Didn't create a death recipient.");
@@ -217,7 +216,7 @@
try {
final ISpellCheckerSession session =
bindGroup.mSpellChecker.getISpellCheckerSession(
- recipient.mScLocale, recipient.mScListener);
+ recipient.mScLocale, recipient.mScListener, bundle);
if (session != null) {
tsListener.onServiceConnected(session);
return;
@@ -236,7 +235,8 @@
}
final long ident = Binder.clearCallingIdentity();
try {
- startSpellCheckerServiceInnerLocked(sci, locale, tsListener, scListener, uid);
+ startSpellCheckerServiceInnerLocked(
+ sci, locale, tsListener, scListener, uid, bundle);
} finally {
Binder.restoreCallingIdentity(ident);
}
@@ -246,13 +246,13 @@
private void startSpellCheckerServiceInnerLocked(SpellCheckerInfo info, String locale,
ITextServicesSessionListener tsListener, ISpellCheckerSessionListener scListener,
- int uid) {
+ int uid, Bundle bundle) {
if (DBG) {
Slog.w(TAG, "Start spell checker session inner locked.");
}
final String sciId = info.getId();
final InternalServiceConnection connection = new InternalServiceConnection(
- sciId, locale, scListener);
+ sciId, locale, scListener, bundle);
final Intent serviceIntent = new Intent(SpellCheckerService.SERVICE_INTERFACE);
serviceIntent.setComponent(info.getComponent());
if (DBG) {
@@ -263,7 +263,7 @@
return;
}
final SpellCheckerBindGroup group = new SpellCheckerBindGroup(
- connection, tsListener, locale, scListener, uid);
+ connection, tsListener, locale, scListener, uid, bundle);
mSpellCheckerBindGroups.put(sciId, group);
}
@@ -332,10 +332,10 @@
public SpellCheckerBindGroup(InternalServiceConnection connection,
ITextServicesSessionListener listener, String locale,
- ISpellCheckerSessionListener scListener, int uid) {
+ ISpellCheckerSessionListener scListener, int uid, Bundle bundle) {
mInternalConnection = connection;
mConnected = false;
- addListener(listener, locale, scListener, uid);
+ addListener(listener, locale, scListener, uid, bundle);
}
public void onServiceConnected(ISpellCheckerService spellChecker) {
@@ -346,7 +346,7 @@
for (InternalDeathRecipient listener : mListeners) {
try {
final ISpellCheckerSession session = spellChecker.getISpellCheckerSession(
- listener.mScLocale, listener.mScListener);
+ listener.mScLocale, listener.mScListener, listener.mBundle);
listener.mTsListener.onServiceConnected(session);
} catch (RemoteException e) {
Slog.e(TAG, "Exception in getting the spell checker session: " + e);
@@ -360,7 +360,7 @@
}
public InternalDeathRecipient addListener(ITextServicesSessionListener tsListener,
- String locale, ISpellCheckerSessionListener scListener, int uid) {
+ String locale, ISpellCheckerSessionListener scListener, int uid, Bundle bundle) {
if (DBG) {
Slog.d(TAG, "addListener: " + locale);
}
@@ -375,7 +375,7 @@
}
}
recipient = new InternalDeathRecipient(
- this, tsListener, locale, scListener, uid);
+ this, tsListener, locale, scListener, uid, bundle);
scListener.asBinder().linkToDeath(recipient, 0);
mListeners.add(recipient);
} catch(RemoteException e) {
@@ -440,11 +440,13 @@
private final ISpellCheckerSessionListener mListener;
private final String mSciId;
private final String mLocale;
+ private final Bundle mBundle;
public InternalServiceConnection(
- String id, String locale, ISpellCheckerSessionListener listener) {
+ String id, String locale, ISpellCheckerSessionListener listener, Bundle bundle) {
mSciId = id;
mLocale = locale;
mListener = listener;
+ mBundle = bundle;
}
@Override
@@ -473,14 +475,16 @@
public final String mScLocale;
private final SpellCheckerBindGroup mGroup;
public final int mUid;
+ public final Bundle mBundle;
public InternalDeathRecipient(SpellCheckerBindGroup group,
ITextServicesSessionListener tsListener, String scLocale,
- ISpellCheckerSessionListener scListener, int uid) {
+ ISpellCheckerSessionListener scListener, int uid, Bundle bundle) {
mTsListener = tsListener;
mScListener = scListener;
mScLocale = scLocale;
mGroup = group;
mUid = uid;
+ mBundle = bundle;
}
public boolean hasSpellCheckerListener(ISpellCheckerSessionListener listener) {