summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxmao <xmao@codeaurora.org>2015-02-14 03:21:02 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2015-03-04 23:51:43 -0800
commitb8c04885a32c89d4343912da22c79a732f3be35a (patch)
treec0761732d6c1054dd816a3ef7455077ba786e5cf
parent7ef4e713a50574fc943537e70f245db974078750 (diff)
downloadandroid_packages_apps_InCallUI-b8c04885a32c89d4343912da22c79a732f3be35a.tar.gz
android_packages_apps_InCallUI-b8c04885a32c89d4343912da22c79a732f3be35a.tar.bz2
android_packages_apps_InCallUI-b8c04885a32c89d4343912da22c79a732f3be35a.zip
InCallUI: Fix InCallUI process crash issue while ending a call.
- Fix the crash due to apply UI changes in non-UI thread. Change-Id: I537516febbe56871dcd42ed26e476d5799df4d96
-rw-r--r--src/com/android/incallui/RcsRichScreen.java104
1 files changed, 48 insertions, 56 deletions
diff --git a/src/com/android/incallui/RcsRichScreen.java b/src/com/android/incallui/RcsRichScreen.java
index 2afef43c..f7ae857a 100644
--- a/src/com/android/incallui/RcsRichScreen.java
+++ b/src/com/android/incallui/RcsRichScreen.java
@@ -222,65 +222,57 @@ public class RcsRichScreen {
msurface.setVisibility(View.GONE);
mGifMovieView.setVisibility(View.GONE);
missdnAddress.setVisibility(View.GONE);
- new Thread() {
- @Override
- public void run() {
- if (null != result.getGreeting()
- && !TextUtils.isEmpty(result.getGreeting())) {
- mGreeting.setVisibility(View.VISIBLE);
- StringBuilder greetingString = new StringBuilder();
- greetingString.append(mContext.getResources().getString(
- R.string.rcs_greeting_string));
- greetingString.append(result.getGreeting());
- mGreeting.setText(greetingString.toString());
- }
- if (null != result.getMissdnAddress()
- && !TextUtils.isEmpty(result.getMissdnAddress())) {
- missdnAddress.setVisibility(View.VISIBLE);
- StringBuilder missdnAddressString = new StringBuilder();
- missdnAddressString.append(mContext.getResources().getString(
- R.string.rcs_missdnaddress_string));
- missdnAddressString.append(result.getMissdnAddress());
- missdnAddress.setText(missdnAddressString.toString());
- } else {
- missdnAddress.setVisibility(View.GONE);
- try {
- Log.i(TAG, "getRichScreenApi.DownloadHomeLocRules"
- + RcsApiManager.getRichScreenApi());
- RcsApiManager.getRichScreenApi().downloadHomeLocRules(
- mPhoneEevnt);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- String sorceType = result.getSourceType();
- switch (Integer.valueOf(sorceType)) {
- case RCS_STATIC_IMAGE: {
+ if (!TextUtils.isEmpty(result.getGreeting())) {
+ mGreeting.setVisibility(View.VISIBLE);
+ StringBuilder greetingString = new StringBuilder();
+ greetingString.append(mContext.getResources().getString(
+ R.string.rcs_greeting_string));
+ greetingString.append(result.getGreeting());
+ mGreeting.setText(greetingString.toString());
+ }
+ if (!TextUtils.isEmpty(result.getMissdnAddress())) {
+ missdnAddress.setVisibility(View.VISIBLE);
+ StringBuilder missdnAddressString = new StringBuilder();
+ missdnAddressString.append(mContext.getResources().getString(
+ R.string.rcs_missdnaddress_string));
+ missdnAddressString.append(result.getMissdnAddress());
+ missdnAddress.setText(missdnAddressString.toString());
+ } else {
+ missdnAddress.setVisibility(View.GONE);
+ try {
+ Log.i(TAG, "getRichScreenApi.DownloadHomeLocRules"
+ + RcsApiManager.getRichScreenApi());
+ RcsApiManager.getRichScreenApi().downloadHomeLocRules(
+ mPhoneEevnt);
+ } catch (Exception e) {
+ Log.w(TAG,e);
+ }
+ }
+ String sorceType = result.getSourceType();
+ switch (Integer.valueOf(sorceType)) {
+ case RCS_STATIC_IMAGE: {
- mRcsPhoto.setVisibility(View.VISIBLE);
- Bitmap bitmap = BitmapFactory
- .decodeFile(result.getLocalSourceUrl());
- mRcsPhoto.setImageBitmap(bitmap);
+ mRcsPhoto.setVisibility(View.VISIBLE);
+ Bitmap bitmap = BitmapFactory
+ .decodeFile(result.getLocalSourceUrl());
+ mRcsPhoto.setImageBitmap(bitmap);
- }
- break;
- case RCS_VIRTUAL_IMAGE: {
- mGifMovieView.setVisibility(View.VISIBLE);
- mGifMovieView.setMovieResource(result.getLocalSourceUrl());
- }
- break;
- case RCS_VIDEO: {
- msurface.setVisibility(View.VISIBLE);
- videoPath = result.getLocalSourceUrl();
- }
- break;
- default:
- mRcsPhoto.setVisibility(View.VISIBLE);
- break;
- }
}
- }.start();
+ break;
+ case RCS_VIRTUAL_IMAGE: {
+ mGifMovieView.setVisibility(View.VISIBLE);
+ mGifMovieView.setMovieResource(result.getLocalSourceUrl());
+ }
+ break;
+ case RCS_VIDEO: {
+ msurface.setVisibility(View.VISIBLE);
+ videoPath = result.getLocalSourceUrl();
+ }
+ break;
+ default:
+ mRcsPhoto.setVisibility(View.VISIBLE);
+ break;
+ }
}
public String getPhoneEventForRichScreen(int state, int videoState) {