summaryrefslogtreecommitdiffstats
path: root/src/com/android/nfc/handover/BluetoothOppHandover.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2012-12-13 16:44:23 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2012-12-13 16:44:23 -0800
commitbe1939b4b6003ac7a65fcb95a3912f5e1ce8e75f (patch)
tree694dc2546dd2397528d4b78d067716f451792662 /src/com/android/nfc/handover/BluetoothOppHandover.java
parent525c260303268a83da4c3413b953d13c9084e834 (diff)
downloadpackages_apps_nfc-be1939b4b6003ac7a65fcb95a3912f5e1ce8e75f.tar.gz
packages_apps_nfc-be1939b4b6003ac7a65fcb95a3912f5e1ce8e75f.tar.bz2
packages_apps_nfc-be1939b4b6003ac7a65fcb95a3912f5e1ce8e75f.zip
Snapshot b80adb2c263702442cf2f2d771168400e6ceb9f8
Change-Id: I391d8e1be1a61e68b01f0db371dbb4ed3e5b5933
Diffstat (limited to 'src/com/android/nfc/handover/BluetoothOppHandover.java')
-rw-r--r--src/com/android/nfc/handover/BluetoothOppHandover.java72
1 files changed, 14 insertions, 58 deletions
diff --git a/src/com/android/nfc/handover/BluetoothOppHandover.java b/src/com/android/nfc/handover/BluetoothOppHandover.java
index ceb3c62..fdb5eff 100644
--- a/src/com/android/nfc/handover/BluetoothOppHandover.java
+++ b/src/com/android/nfc/handover/BluetoothOppHandover.java
@@ -16,25 +16,17 @@
package com.android.nfc.handover;
-import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
-import android.content.ActivityNotFoundException;
-import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
+import android.os.UserHandle;
import android.util.Log;
import android.webkit.MimeTypeMap;
-import android.widget.Toast;
-
-import com.android.nfc.handover.HandoverManager.HandoverPowerManager;
-import com.android.nfc.R;
-
import java.util.ArrayList;
import java.util.Arrays;
@@ -61,20 +53,19 @@ public class BluetoothOppHandover implements Handler.Callback {
final BluetoothDevice mDevice;
final Uri[] mUris;
- final HandoverPowerManager mHandoverPowerManager;
final boolean mRemoteActivating;
final Handler mHandler;
+ final Long mCreateTime;
int mState;
- Long mStartTime;
public BluetoothOppHandover(Context context, BluetoothDevice device, Uri[] uris,
- HandoverPowerManager powerManager, boolean remoteActivating) {
+ boolean remoteActivating) {
mContext = context;
mDevice = device;
mUris = uris;
- mHandoverPowerManager = powerManager;
mRemoteActivating = remoteActivating;
+ mCreateTime = SystemClock.elapsedRealtime();
mHandler = new Handler(context.getMainLooper(),this);
mState = STATE_INIT;
@@ -104,33 +95,24 @@ public class BluetoothOppHandover implements Handler.Callback {
* to begin the BT sequence. Must be called on Main thread.
*/
public void start() {
- mStartTime = SystemClock.elapsedRealtime();
-
- IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
- mContext.registerReceiver(mReceiver, filter);
-
- if (!mHandoverPowerManager.isBluetoothEnabled()) {
- if (mHandoverPowerManager.enableBluetooth()) {
- mState = STATE_TURNING_ON;
- } else {
- Toast.makeText(mContext, mContext.getString(R.string.beam_failed),
- Toast.LENGTH_SHORT).show();
- complete();
- }
- } else {
- // BT already enabled
- if (mRemoteActivating) {
- mHandler.sendEmptyMessageDelayed(MSG_START_SEND, REMOTE_BT_ENABLE_DELAY_MS);
+ if (mRemoteActivating) {
+ Long timeElapsed = SystemClock.elapsedRealtime() - mCreateTime;
+ if (timeElapsed < REMOTE_BT_ENABLE_DELAY_MS) {
+ mHandler.sendEmptyMessageDelayed(MSG_START_SEND,
+ REMOTE_BT_ENABLE_DELAY_MS - timeElapsed);
} else {
- // Remote BT enabled too, start send immediately
+ // Already waited long enough for BT to come up
+ // - start send.
sendIntent();
}
+ } else {
+ // Remote BT enabled already, start send immediately
+ sendIntent();
}
}
void complete() {
mState = STATE_COMPLETE;
- mContext.unregisterReceiver(mReceiver);
}
void sendIntent() {
@@ -153,32 +135,6 @@ public class BluetoothOppHandover implements Handler.Callback {
complete();
}
- void handleIntent(Intent intent) {
- String action = intent.getAction();
- if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action) && mState == STATE_TURNING_ON) {
- int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
- if (state == BluetoothAdapter.STATE_ON) {
- // Add additional delay if needed
- Long timeElapsed = SystemClock.elapsedRealtime() - mStartTime;
- if (mRemoteActivating && timeElapsed < REMOTE_BT_ENABLE_DELAY_MS) {
- mHandler.sendEmptyMessageDelayed(MSG_START_SEND,
- REMOTE_BT_ENABLE_DELAY_MS - timeElapsed);
- } else {
- sendIntent();
- }
- } else if (state == BluetoothAdapter.STATE_OFF) {
- complete();
- }
- return;
- }
- }
-
- final BroadcastReceiver mReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- handleIntent(intent);
- }
- };
@Override
public boolean handleMessage(Message msg) {