summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/bluetooth/opp/BluetoothOppService.java103
1 files changed, 14 insertions, 89 deletions
diff --git a/src/com/android/bluetooth/opp/BluetoothOppService.java b/src/com/android/bluetooth/opp/BluetoothOppService.java
index 84c50dc1c..3fde44b93 100644
--- a/src/com/android/bluetooth/opp/BluetoothOppService.java
+++ b/src/com/android/bluetooth/opp/BluetoothOppService.java
@@ -414,7 +414,6 @@ public class BluetoothOppService extends Service {
case BluetoothAdapter.STATE_TURNING_OFF:
if (V) Log.v(TAG, "Receiver DISABLED_ACTION ");
mNotifier.btOffNotification();
- removePendingTransfer();
//FIX: Don't block main thread
/*
mSocketListener.stop();
@@ -862,94 +861,6 @@ public class BluetoothOppService extends Service {
}
}
- private void removePendingTransfer() {
- if (V) Log.v(TAG, "Remove pending share");
- Cursor cursor = null;
- try {
- cursor = getContentResolver().query(BluetoothShare.CONTENT_URI, null, null,
- null, BluetoothShare._ID);
- } catch (SQLiteException e) {
- if (cursor != null){
- cursor.close();
- }
- cursor = null;
- Log.e(TAG, "UpdateThread: " + e);
- } catch (CursorWindowAllocationException e) {
- cursor = null;
- Log.e(TAG, "UpdateThread: " + e);
- }
-
- if (cursor == null) {
- return;
- }
-
- cursor.moveToFirst();
- int arrayPos = 0;
- boolean isAfterLast = cursor.isAfterLast();
-
- while (!isAfterLast || arrayPos < mShares.size()) {
- String uriString = cursor.getString(cursor.getColumnIndexOrThrow(BluetoothShare.URI));
- Uri uri;
- if (uriString != null) {
- uri = Uri.parse(uriString);
- Log.d(TAG, "removeShare parsed URI: " + uri);
- } else {
- uri = null;
- Log.e(TAG, "removeShare found null URI at cursor!");
- }
- BluetoothOppShareInfo info = new BluetoothOppShareInfo(
- cursor.getInt(cursor.getColumnIndexOrThrow(BluetoothShare._ID)),
- uri,
- cursor.getString(cursor.getColumnIndexOrThrow(BluetoothShare.FILENAME_HINT)),
- cursor.getString(cursor.getColumnIndexOrThrow(BluetoothShare._DATA)),
- cursor.getString(cursor.getColumnIndexOrThrow(BluetoothShare.MIMETYPE)),
- cursor.getInt(cursor.getColumnIndexOrThrow(BluetoothShare.DIRECTION)),
- cursor.getString(cursor.getColumnIndexOrThrow(BluetoothShare.DESTINATION)),
- cursor.getInt(cursor.getColumnIndexOrThrow(BluetoothShare.VISIBILITY)),
- cursor.getInt(cursor.getColumnIndexOrThrow(BluetoothShare.USER_CONFIRMATION)),
- cursor.getInt(cursor.getColumnIndexOrThrow(BluetoothShare.STATUS)),
- cursor.getLong(cursor.getColumnIndexOrThrow(BluetoothShare.TOTAL_BYTES)),
- cursor.getLong(cursor.getColumnIndexOrThrow(BluetoothShare.CURRENT_BYTES)),
- cursor.getLong(cursor.getColumnIndexOrThrow(BluetoothShare.TIMESTAMP)),
- cursor.getInt(cursor.getColumnIndexOrThrow(Constants.MEDIA_SCANNED)) != Constants.MEDIA_SCANNED_NOT_SCANNED);
-
- if (V) {
- Log.v(TAG, "Service remove entry");
- Log.v(TAG, "ID : " + info.mId);
- // Log.v(TAG, "URI : " + ((info.mUri != null) ? "yes" : "no"));
- Log.v(TAG, "URI : " + info.mUri);
- Log.v(TAG, "HINT : " + info.mHint);
- Log.v(TAG, "FILENAME: " + info.mFilename);
- Log.v(TAG, "MIMETYPE: " + info.mMimetype);
- Log.v(TAG, "DIRECTION: " + info.mDirection);
- Log.v(TAG, "DESTINAT: " + info.mDestination);
- Log.v(TAG, "VISIBILI: " + info.mVisibility);
- Log.v(TAG, "CONFIRM : " + info.mConfirm);
- Log.v(TAG, "STATUS : " + info.mStatus);
- Log.v(TAG, "TOTAL : " + info.mTotalBytes);
- Log.v(TAG, "CURRENT : " + info.mCurrentBytes);
- Log.v(TAG, "TIMESTAMP : " + info.mTimestamp);
- Log.v(TAG, "SCANNED : " + info.mMediaScanned);
- }
-
- if (info.isReadyToStart()) {
- if (info.mDirection == BluetoothShare.DIRECTION_OUTBOUND) {
- BluetoothOppSendFileInfo sendFileInfo = BluetoothOppUtility.getSendFileInfo(
- info.mUri);
- Constants.updateShareStatus(this, info.mId, BluetoothShare.STATUS_BAD_REQUEST);
- BluetoothOppUtility.closeSendFileInfo(info.mUri);
- }
- }
-
- ++arrayPos;
- cursor.moveToNext();
- isAfterLast = cursor.isAfterLast();
- }
- cursor.close();
- if (V) Log.v(TAG, "Freeing cursor: " + cursor);
- cursor = null;
- }
-
/**
* Removes the local copy of the info about a share.
*/
@@ -1119,6 +1030,20 @@ public class BluetoothOppService extends Service {
WHERE_INVISIBLE_COMPLETE_INBOUND_FAILED, null);
if (V) Log.v(TAG, "Deleted complete inbound failed shares, number = " + delNum);
+ // remove outbound share interrupted by battery removal
+ final String WHERE_OUTBOUND_INTERRUPTED_ON_POWER_OFF = BluetoothShare.DIRECTION + "="
+ + BluetoothShare.DIRECTION_OUTBOUND + " AND " + BluetoothShare.STATUS + "="
+ + BluetoothShare.STATUS_PENDING + " OR " + BluetoothShare.STATUS + "="
+ + BluetoothShare.STATUS_RUNNING;
+
+ try {
+ delNum = contentResolver.delete(BluetoothShare.CONTENT_URI,
+ WHERE_OUTBOUND_INTERRUPTED_ON_POWER_OFF, null);
+ if (V) Log.v(TAG, "Delete interrupted outbound share, number = " + delNum);
+ } catch (SQLiteException e) {
+ Log.e(TAG, "trimDatabase: could not deleted interrupted outbound failed shares: " + e);
+ }
+
final String WHERE_INBOUND_INTERRUPTED_ON_POWER_OFF = BluetoothShare.DIRECTION + "="
+ BluetoothShare.DIRECTION_INBOUND + " AND " + BluetoothShare.STATUS + "="
+ BluetoothShare.STATUS_RUNNING;