am b8fc9e7d: Merge "Launcher changes to handle UTS test mode." into eclair

Merge commit 'b8fc9e7df69db4b1647ef780f5620836c86f70ea' into eclair-plus-aosp

* commit 'b8fc9e7df69db4b1647ef780f5620836c86f70ea':
  Launcher changes to handle UTS test mode.
This commit is contained in:
Wink Saville 2010-02-12 15:57:30 -08:00 committed by Android Git Automerger
commit c447060643
1 changed files with 56 additions and 0 deletions

View File

@ -43,13 +43,16 @@ import android.graphics.Rect;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemProperties;
import android.provider.ContactsContract;
import android.provider.LiveFolders;
import android.telephony.PhoneNumberUtils;
import android.text.Selection;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
@ -201,6 +204,8 @@ public final class Launcher extends Activity
private ImageView mPreviousView;
private ImageView mNextView;
private boolean mUtsTestMode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -406,6 +411,7 @@ public final class Launcher extends Activity
super.onResume();
mPaused = false;
mUtsTestMode = SystemProperties.getInt("persist.sys.uts-test-mode", 0) == 1;
if (mRestoring) {
mWorkspaceLoading = true;
@ -456,6 +462,10 @@ public final class Launcher extends Activity
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mUtsTestMode) {
return handleUtsTestModeKeyDown(keyCode, event);
}
boolean handled = super.onKeyDown(keyCode, event);
if (!handled && acceptFilter() && keyCode != KeyEvent.KEYCODE_ENTER) {
boolean gotKey = TextKeyListener.getInstance().onKeyDown(mWorkspace, mDefaultKeySsb,
@ -474,6 +484,52 @@ public final class Launcher extends Activity
return handled;
}
public boolean handleUtsTestModeKeyDown(int keyCode, KeyEvent event) {
Log.d(TAG, "UTS-TEST-MODE");
boolean handled = super.onKeyDown(keyCode, event);
if (!handled && acceptFilter() && keyCode != KeyEvent.KEYCODE_ENTER) {
boolean gotKey = TextKeyListener.getInstance().onKeyDown(mWorkspace, mDefaultKeySsb,
keyCode, event);
if (gotKey && mDefaultKeySsb != null && mDefaultKeySsb.length() > 0) {
// something usable has been typed - dispatch it now.
final String str = mDefaultKeySsb.toString();
boolean isDialable = true;
final int count = str.length();
for (int i = 0; i < count; i++) {
if (!PhoneNumberUtils.isReallyDialable(str.charAt(i))) {
isDialable = false;
break;
}
}
Intent intent;
if (isDialable) {
intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", str, null));
} else {
intent = new Intent(ContactsContract.Intents.UI.FILTER_CONTACTS_ACTION);
intent.putExtra(ContactsContract.Intents.UI.FILTER_TEXT_EXTRA_KEY, str);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
try {
startActivity(intent);
} catch (android.content.ActivityNotFoundException ex) {
// Oh well... no one knows how to filter/dial. Life goes on.
}
mDefaultKeySsb.clear();
mDefaultKeySsb.clearSpans();
Selection.setSelection(mDefaultKeySsb, 0);
return true;
}
}
return handled;
}
private String getTypedText() {
return mDefaultKeySsb.toString();
}