From 2e421b5d604584e4b3427c84a7cc9f29b9c013d9 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Sat, 23 Feb 2013 02:26:27 +0530 Subject: [PATCH] Don't dispose of services if they don't need disposing Was causing random crashes intermittently because we were trying to unbind services that were not bound. --- .../src/main/java/org/wikimedia/commons/ShareActivity.java | 6 +++++- .../commons/contributions/ContributionsActivity.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/commons/src/main/java/org/wikimedia/commons/ShareActivity.java b/commons/src/main/java/org/wikimedia/commons/ShareActivity.java index ee471c545..cf9112f51 100644 --- a/commons/src/main/java/org/wikimedia/commons/ShareActivity.java +++ b/commons/src/main/java/org/wikimedia/commons/ShareActivity.java @@ -46,9 +46,11 @@ public class ShareActivity extends AuthenticatedActivity { private Uri mediaUri; private UploadService uploadService; + private boolean isUploadServiceConnected; private ServiceConnection uploadServiceConnection = new ServiceConnection() { public void onServiceConnected(ComponentName componentName, IBinder binder) { uploadService = (UploadService) ((HandlerService.HandlerServiceLocalBinder)binder).getService(); + isUploadServiceConnected = true; } public void onServiceDisconnected(ComponentName componentName) { @@ -191,7 +193,9 @@ public class ShareActivity extends AuthenticatedActivity { @Override protected void onDestroy() { super.onDestroy(); - unbindService(uploadServiceConnection); + if(isUploadServiceConnected) { + unbindService(uploadServiceConnection); + } } @Override diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java index 4beb44f37..6e9981e0c 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java @@ -46,9 +46,11 @@ public class ContributionsActivity } private UploadService uploadService; + private boolean isUploadServiceConnected; private ServiceConnection uploadServiceConnection = new ServiceConnection() { public void onServiceConnected(ComponentName componentName, IBinder binder) { uploadService = (UploadService) ((HandlerService.HandlerServiceLocalBinder)binder).getService(); + isUploadServiceConnected = true; } public void onServiceDisconnected(ComponentName componentName) { @@ -62,7 +64,9 @@ public class ContributionsActivity @Override protected void onDestroy() { super.onDestroy(); - unbindService(uploadServiceConnection); + if(isUploadServiceConnected) { + unbindService(uploadServiceConnection); + } } private String CONTRIBUTION_SELECTION = "";