diff options
| author | xmao <xmao@codeaurora.org> | 2015-02-14 03:21:02 +0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-03-04 23:51:43 -0800 |
| commit | b8c04885a32c89d4343912da22c79a732f3be35a (patch) | |
| tree | c0761732d6c1054dd816a3ef7455077ba786e5cf | |
| parent | 7ef4e713a50574fc943537e70f245db974078750 (diff) | |
| download | android_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.java | 104 |
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) { |
