Merge pull request #79 from lbryio/service-notification

Removed service foreground notification
This commit is contained in:
akinwale 2018-04-24 15:59:20 +01:00 committed by GitHub
commit 77a86da984
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 8 deletions

View file

@ -34,6 +34,11 @@ public class LbrynetService extends PythonService {
public static LbrynetService serviceInstance; public static LbrynetService serviceInstance;
@Override
public boolean canDisplayNotification() {
return false;
}
@Override @Override
public int startType() { public int startType() {
return START_STICKY; return START_STICKY;

View file

@ -11,6 +11,7 @@ import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReactMethod;
import io.lbry.browser.MainActivity;
import io.lbry.browser.R; import io.lbry.browser.R;
import io.lbry.browser.receivers.NotificationDeletedReceiver; import io.lbry.browser.receivers.NotificationDeletedReceiver;
@ -19,6 +20,7 @@ import java.util.HashMap;
import java.util.Random; import java.util.Random;
public class DownloadManagerModule extends ReactContextBaseJavaModule { public class DownloadManagerModule extends ReactContextBaseJavaModule {
private Context context; private Context context;
private HashMap<Integer, NotificationCompat.Builder> builders = new HashMap<Integer, NotificationCompat.Builder>(); private HashMap<Integer, NotificationCompat.Builder> builders = new HashMap<Integer, NotificationCompat.Builder>();
@ -72,18 +74,25 @@ public class DownloadManagerModule extends ReactContextBaseJavaModule {
} }
} }
private PendingIntent getLaunchPendingIntent() {
Intent launchIntent = new Intent(context, MainActivity.class);
launchIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context, 0, launchIntent, 0);
return intent;
}
@ReactMethod @ReactMethod
public void startDownload(String id, String fileName) { public void startDownload(String id, String fileName) {
createNotificationGroup(); createNotificationGroup();
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context); NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context); NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setContentTitle(String.format("Downloading %s...", fileName)) builder.setContentIntent(getLaunchPendingIntent())
.setSmallIcon(R.drawable.ic_file_download_black_24dp) .setContentTitle(String.format("Downloading %s...", fileName))
.setGroup(GROUP_DOWNLOADS)
.setPriority(NotificationCompat.PRIORITY_LOW) .setPriority(NotificationCompat.PRIORITY_LOW)
.setGroup(GROUP_DOWNLOADS); .setProgress(MAX_PROGRESS, 0, false)
.setSmallIcon(R.drawable.ic_file_download_black_24dp);
builder.setProgress(MAX_PROGRESS, 0, false);
int notificationId = generateNotificationId(); int notificationId = generateNotificationId();
downloadIdNotificationIdMap.put(id, notificationId); downloadIdNotificationIdMap.put(id, notificationId);
@ -106,9 +115,10 @@ public class DownloadManagerModule extends ReactContextBaseJavaModule {
createNotificationGroup(); createNotificationGroup();
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context); NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
NotificationCompat.Builder builder = builders.get(notificationId); NotificationCompat.Builder builder = builders.get(notificationId);
builder.setProgress(MAX_PROGRESS, new Double(progress).intValue(), false); builder.setContentIntent(getLaunchPendingIntent())
builder.setContentText(String.format("%.0f%% (%s / %s)", progress, formatBytes(writtenBytes), formatBytes(totalBytes))); .setContentText(String.format("%.0f%% (%s / %s)", progress, formatBytes(writtenBytes), formatBytes(totalBytes)))
builder.setGroup(GROUP_DOWNLOADS); .setGroup(GROUP_DOWNLOADS)
.setProgress(MAX_PROGRESS, new Double(progress).intValue(), false);
notificationManager.notify(notificationId, builder.build()); notificationManager.notify(notificationId, builder.build());
if (progress == MAX_PROGRESS) { if (progress == MAX_PROGRESS) {