Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: content/public/android/java/src/org/chromium/content/app/DownloadProcessService.java

Issue 1622743005: Introduce background Download process to android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressing siever's comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
no sievers 2016/02/03 22:46:52 nit: 2016
qinmin 2016/02/03 23:37:36 Done.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.content.app;
6
7 import android.annotation.SuppressLint;
8 import android.app.Notification;
9 import android.content.Intent;
10 import android.os.Build;
11 import android.os.Bundle;
12 import android.os.IBinder;
13 import android.os.RemoteException;
14
15 import org.chromium.base.Log;
16 import org.chromium.base.annotations.JNINamespace;
17 import org.chromium.content.browser.ChildProcessConstants;
18 import org.chromium.content.common.IChildProcessCallback;
19
20 /**
21 * Background download process for handling all transferable downloads.
22 */
23 @JNINamespace("content")
24 public class DownloadProcessService extends ChildProcessService {
25 private static final String TAG = "DownloadProcess";
26 private long mClientContext;
27 private IChildProcessCallback mCallback;
28 private int mDownloadCount;
29
30 @Override
31 public void onCreate() {
32 super.onCreate();
33 // TODO(qinmin): Use the first pending download as notification, or
34 // get a more proper notification for this.
35 startForeground(ChildProcessConstants.DOWNLOAD_PROCESS_NOTIFICATION_ID, new Notification());
36 }
37
38 @Override
39 @SuppressLint("NewApi")
40 public int onStartCommand(Intent intent, int flags, int startId) {
41 assert Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
42 initializeParams(intent);
43 Bundle bundle = intent.getExtras();
44 if (bundle != null) {
45 IBinder binder = bundle.getBinder(ChildProcessConstants.EXTRA_CHILD_ PROCESS_CALLBACK);
46 mCallback = IChildProcessCallback.Stub.asInterface(binder);
47 getServiceInfo(bundle);
48 }
49 return START_STICKY;
50 }
51
52 /**
53 * Will be called by the native side when a download starts or is rejected.
54 */
no sievers 2016/02/03 22:46:52 @CalledByNative
qinmin 2016/02/03 23:37:36 added @CalledByNative in the comments. This is not
55 private void onDownloadStarted(boolean started, int downloadId) {
56 if (mCallback != null) {
57 try {
58 mCallback.onDownloadStarted(started, downloadId);
59 } catch (RemoteException e) {
60 Log.e(TAG, "Unable to callback the browser process.", e);
61 }
62 }
63 if (started) mDownloadCount++;
64 }
65
66 /**
67 * Will be called by the native side when a download completes.
68 */
69 private void onDownloadCompleted(boolean success) {
no sievers 2016/02/03 22:46:52 @CalledByNative
qinmin 2016/02/03 23:37:36 same as above
70 mDownloadCount--;
71 if (mDownloadCount == 0) stopSelf();
72 }
73 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698