summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java')
-rw-r--r--src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java
index e52ab7a..1bf68ce 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java
@@ -21,6 +21,9 @@ import com.android.settings.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
+import android.os.Message;
+import android.os.Messenger;
+import android.os.RemoteException;
import android.view.View;
public class UserDictionaryAddWordActivity extends Activity {
@@ -30,6 +33,10 @@ public class UserDictionaryAddWordActivity extends Activity {
public static final String MODE_EDIT_ACTION = "com.android.settings.USER_DICTIONARY_EDIT";
public static final String MODE_INSERT_ACTION = "com.android.settings.USER_DICTIONARY_INSERT";
+ /* package */ static final int CODE_WORD_ADDED = 0;
+ /* package */ static final int CODE_CANCEL = 1;
+ /* package */ static final int CODE_ALREADY_PRESENT = 2;
+
private UserDictionaryAddWordContents mContents;
@Override
@@ -67,12 +74,31 @@ public class UserDictionaryAddWordActivity extends Activity {
mContents.saveStateIntoBundle(outState);
}
+ private void reportBackToCaller(final int resultCode, final Bundle result) {
+ final Intent senderIntent = getIntent();
+ final Object listener = senderIntent.getExtras().get("listener");
+ if (!(listener instanceof Messenger)) return; // This will work if listener is null too.
+ final Messenger messenger = (Messenger)listener;
+
+ final Message m = Message.obtain();
+ m.obj = result;
+ m.what = resultCode;
+ try {
+ messenger.send(m);
+ } catch (RemoteException e) {
+ // Couldn't report back, but there is nothing we can do to fix it
+ }
+ }
+
public void onClickCancel(final View v) {
+ reportBackToCaller(CODE_CANCEL, null);
finish();
}
public void onClickConfirm(final View v) {
- mContents.apply(this);
+ final Bundle parameters = new Bundle();
+ final int resultCode = mContents.apply(this, parameters);
+ reportBackToCaller(resultCode, parameters);
finish();
}
}