From f2a9335b58e7922d79ff6744cc65ab98a4f551de Mon Sep 17 00:00:00 2001 From: Jorge Ruesga Date: Mon, 7 Jan 2013 22:45:27 +0100 Subject: [PATCH] CMFM: Fix FC caused by accessing ui outside of UI thread Patchset 2: Formatting Change-Id: I1323b4f92a64dd23afe4aa28d3569ce01d72c039 Signed-off-by: jruesga --- .../filemanager/ui/widgets/NavigationView.java | 22 ++++++++++++++-------- .../filemanager/util/ExceptionUtil.java | 1 + 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java index afcf457..6974669 100644 --- a/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java +++ b/src/com/cyanogenmod/filemanager/ui/widgets/NavigationView.java @@ -906,14 +906,20 @@ public class NavigationView extends RelativeLayout implements * * @param out Fade out (true); Fade in (false) */ - void fadeEfect(boolean out) { - Animation fadeAnim = out ? - new AlphaAnimation(1, 0) : - new AlphaAnimation(0, 1); - fadeAnim.setDuration(50L); - fadeAnim.setFillAfter(true); - fadeAnim.setInterpolator(new AccelerateInterpolator()); - NavigationView.this.startAnimation(fadeAnim); + void fadeEfect(final boolean out) { + Activity activity = (Activity)getContext(); + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + Animation fadeAnim = out ? + new AlphaAnimation(1, 0) : + new AlphaAnimation(0, 1); + fadeAnim.setDuration(50L); + fadeAnim.setFillAfter(true); + fadeAnim.setInterpolator(new AccelerateInterpolator()); + NavigationView.this.startAnimation(fadeAnim); + } + }); } }; task.execute(fNewDir); diff --git a/src/com/cyanogenmod/filemanager/util/ExceptionUtil.java b/src/com/cyanogenmod/filemanager/util/ExceptionUtil.java index 658a28c..e7d6074 100644 --- a/src/com/cyanogenmod/filemanager/util/ExceptionUtil.java +++ b/src/com/cyanogenmod/filemanager/util/ExceptionUtil.java @@ -293,6 +293,7 @@ public final class ExceptionUtil { Object result = CommandHelper.reexecute( context, executable, null); if (relaunchable.getTask() != null) { + relaunchable.getTask().cancel(true); relaunchable.getTask().execute(result); } } -- 2.11.0