summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/providers/downloads/DownloadReceiver.java')
-rw-r--r--src/com/android/providers/downloads/DownloadReceiver.java159
1 files changed, 0 insertions, 159 deletions
diff --git a/src/com/android/providers/downloads/DownloadReceiver.java b/src/com/android/providers/downloads/DownloadReceiver.java
deleted file mode 100644
index 03a37186..00000000
--- a/src/com/android/providers/downloads/DownloadReceiver.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.providers.downloads;
-
-import android.app.NotificationManager;
-import android.content.ActivityNotFoundException;
-import android.content.BroadcastReceiver;
-import android.content.ContentUris;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.database.Cursor;
-import android.provider.Downloads;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.net.Uri;
-import android.util.Config;
-import android.util.Log;
-
-import java.io.File;
-import java.util.List;
-
-/**
- * Receives system broadcasts (boot, network connectivity)
- */
-public class DownloadReceiver extends BroadcastReceiver {
-
- public void onReceive(Context context, Intent intent) {
- if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Receiver onBoot");
- }
- context.startService(new Intent(context, DownloadService.class));
- } else if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Receiver onConnectivity");
- }
- NetworkInfo info = (NetworkInfo)
- intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
- if (info != null && info.isConnected()) {
- context.startService(new Intent(context, DownloadService.class));
- }
- } else if (intent.getAction().equals(Constants.ACTION_RETRY)) {
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Receiver retry");
- }
- context.startService(new Intent(context, DownloadService.class));
- } else if (intent.getAction().equals(Constants.ACTION_OPEN)
- || intent.getAction().equals(Constants.ACTION_LIST)) {
- if (Constants.LOGVV) {
- if (intent.getAction().equals(Constants.ACTION_OPEN)) {
- Log.v(Constants.TAG, "Receiver open for " + intent.getData());
- } else {
- Log.v(Constants.TAG, "Receiver list for " + intent.getData());
- }
- }
- Cursor cursor = context.getContentResolver().query(
- intent.getData(), null, null, null, null);
- if (cursor != null) {
- if (cursor.moveToFirst()) {
- int statusColumn = cursor.getColumnIndexOrThrow(Downloads.STATUS);
- int status = cursor.getInt(statusColumn);
- int visibilityColumn = cursor.getColumnIndexOrThrow(Downloads.VISIBILITY);
- int visibility = cursor.getInt(visibilityColumn);
- if (Downloads.isStatusCompleted(status)
- && visibility == Downloads.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) {
- ContentValues values = new ContentValues();
- values.put(Downloads.VISIBILITY, Downloads.VISIBILITY_VISIBLE);
- context.getContentResolver().update(intent.getData(), values, null, null);
- }
-
- if (intent.getAction().equals(Constants.ACTION_OPEN)) {
- int filenameColumn = cursor.getColumnIndexOrThrow(Downloads._DATA);
- int mimetypeColumn = cursor.getColumnIndexOrThrow(Downloads.MIMETYPE);
- String filename = cursor.getString(filenameColumn);
- String mimetype = cursor.getString(mimetypeColumn);
- Uri path = Uri.parse(filename);
- // If there is no scheme, then it must be a file
- if (path.getScheme() == null) {
- path = Uri.fromFile(new File(filename));
- }
- Intent activityIntent = new Intent(Intent.ACTION_VIEW);
- activityIntent.setDataAndType(path, mimetype);
- activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- try {
- context.startActivity(activityIntent);
- } catch (ActivityNotFoundException ex) {
- if (Config.LOGD) {
- Log.d(Constants.TAG, "no activity for " + mimetype, ex);
- }
- // nothing anyone can do about this, but we're in a clean state,
- // swallow the exception entirely
- }
- } else {
- int packageColumn =
- cursor.getColumnIndexOrThrow(Downloads.NOTIFICATION_PACKAGE);
- int classColumn =
- cursor.getColumnIndexOrThrow(Downloads.NOTIFICATION_CLASS);
- String pckg = cursor.getString(packageColumn);
- String clazz = cursor.getString(classColumn);
- if (pckg != null && clazz != null) {
- Intent appIntent = new Intent(Downloads.NOTIFICATION_CLICKED_ACTION);
- appIntent.setClassName(pckg, clazz);
- if (intent.getBooleanExtra("multiple", true)) {
- appIntent.setData(Downloads.CONTENT_URI);
- } else {
- appIntent.setData(intent.getData());
- }
- context.sendBroadcast(appIntent);
- }
- }
- }
- cursor.close();
- }
- NotificationManager notMgr = (NotificationManager) context
- .getSystemService(Context.NOTIFICATION_SERVICE);
- if (notMgr != null) {
- notMgr.cancel((int) ContentUris.parseId(intent.getData()));
- }
- } else if (intent.getAction().equals(Constants.ACTION_HIDE)) {
- if (Constants.LOGVV) {
- Log.v(Constants.TAG, "Receiver hide for " + intent.getData());
- }
- Cursor cursor = context.getContentResolver().query(
- intent.getData(), null, null, null, null);
- if (cursor != null) {
- if (cursor.moveToFirst()) {
- int statusColumn = cursor.getColumnIndexOrThrow(Downloads.STATUS);
- int status = cursor.getInt(statusColumn);
- int visibilityColumn = cursor.getColumnIndexOrThrow(Downloads.VISIBILITY);
- int visibility = cursor.getInt(visibilityColumn);
- if (Downloads.isStatusCompleted(status)
- && visibility == Downloads.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) {
- ContentValues values = new ContentValues();
- values.put(Downloads.VISIBILITY, Downloads.VISIBILITY_VISIBLE);
- context.getContentResolver().update(intent.getData(), values, null, null);
- }
- }
- cursor.close();
- }
- }
- }
-}