Fixed crashes when uploads or downloads are inserted in the notification bar (Android 2.x and 3.x)

This commit is contained in:
David A. Velasco 2012-06-19 11:05:00 +02:00
parent eed9eed824
commit 194490b3b8
2 changed files with 8 additions and 1 deletions

View file

@ -124,6 +124,9 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
mNotification.contentView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.progressbar_layout);
mNotification.contentView.setProgressBar(R.id.status_progress, 100, 0, mTotalDownloadSize == -1);
mNotification.contentView.setImageViewResource(R.id.status_icon, R.drawable.icon);
// dvelasco ; contentIntent MUST be assigned to avoid app crashes in versions previous to Android 4.x ;
// BUT an empty Intent is not a very elegant solution; something smart should happen when a user 'clicks' on a download in the notification bar
mNotification.contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
mNotificationMngr.notify(1, mNotification);

View file

@ -16,6 +16,7 @@ import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.net.Uri;
@ -148,7 +149,10 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
mNotification.contentView = new RemoteViews(getApplicationContext().getPackageName(), R.layout.progressbar_layout);
mNotification.contentView.setProgressBar(R.id.status_progress, 100, 0, false);
mNotification.contentView.setImageViewResource(R.id.status_icon, R.drawable.icon);
// dvelasco ; contentIntent MUST be assigned to avoid app crashes in versions previous to Android 4.x ;
// BUT an empty Intent is not a very elegant solution; something smart should happen when a user 'clicks' on an upload in the notification bar
mNotification.contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
mNotificationManager.notify(42, mNotification);
WebdavClient wc = new WebdavClient(ocUri);