diff --git a/src/com/android/settings/bluetooth/RequestPermissionActivity.java b/src/com/android/settings/bluetooth/RequestPermissionActivity.java index d1567a95203..9fdb33860ff 100644 --- a/src/com/android/settings/bluetooth/RequestPermissionActivity.java +++ b/src/com/android/settings/bluetooth/RequestPermissionActivity.java @@ -16,6 +16,11 @@ package com.android.settings.bluetooth; +import com.android.internal.app.AlertActivity; +import com.android.internal.app.AlertController; +import com.android.settings.R; + +import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; @@ -29,10 +34,6 @@ import android.util.Log; import android.view.View; import android.widget.TextView; -import com.android.internal.app.AlertActivity; -import com.android.internal.app.AlertController; -import com.android.settings.R; - /** * RequestPermissionActivity asks the user whether to enable discovery. This is * usually started by an application wanted to start bluetooth and or discovery @@ -47,12 +48,6 @@ public class RequestPermissionActivity extends AlertActivity implements private static final int MAX_DISCOVERABLE_TIMEOUT = 300; - // Result code: Error - public static final int RESULT_ERROR = -2; - - // Result code: User rejected the request - public static final int RESULT_USER_DENIED = -1; - // Non-error return code: BT is starting or has started successfully. Used // by this Activity and RequestPermissionHelperActivity /* package */ static final int RESULT_BT_STARTING_OR_STARTED = -1000; @@ -180,7 +175,7 @@ public class RequestPermissionActivity extends AlertActivity implements protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode != REQUEST_CODE_START_BT) { Log.e(TAG, "Unexpected onActivityResult " + requestCode + " " + resultCode); - setResult(RESULT_ERROR); + setResult(Activity.RESULT_CANCELED); finish(); return; } @@ -208,7 +203,7 @@ public class RequestPermissionActivity extends AlertActivity implements break; case DialogInterface.BUTTON_NEGATIVE: - setResult(RESULT_USER_DENIED); + setResult(Activity.RESULT_CANCELED); break; } } @@ -218,14 +213,18 @@ public class RequestPermissionActivity extends AlertActivity implements if (mEnableOnly) { // BT enabled. Done - returnCode = 0; + returnCode = Activity.RESULT_OK; } else if (mLocalManager.getBluetoothAdapter().setScanMode( BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, mTimeout)) { // If already in discoverable mode, this will extend the timeout. persistDiscoverableEndTimestamp(System.currentTimeMillis() + mTimeout * 1000); returnCode = mTimeout; + // Activity.RESULT_FIRST_USER should be 1 + if (returnCode < Activity.RESULT_FIRST_USER) { + returnCode = Activity.RESULT_FIRST_USER; + } } else { - returnCode = RESULT_ERROR; + returnCode = Activity.RESULT_CANCELED; } setResult(returnCode); @@ -254,14 +253,14 @@ public class RequestPermissionActivity extends AlertActivity implements Log.e(TAG, "Error: this activity may be started only with intent " + BluetoothAdapter.ACTION_REQUEST_ENABLE + " or " + BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); - setResult(RESULT_ERROR); + setResult(Activity.RESULT_CANCELED); return true; } mLocalManager = LocalBluetoothManager.getInstance(this); if (mLocalManager == null) { Log.e(TAG, "Error: there's a problem starting bluetooth"); - setResult(RESULT_ERROR); + setResult(Activity.RESULT_CANCELED); return true; } @@ -284,7 +283,7 @@ public class RequestPermissionActivity extends AlertActivity implements @Override public void onBackPressed() { - setResult(RequestPermissionActivity.RESULT_USER_DENIED); + setResult(Activity.RESULT_CANCELED); super.onBackPressed(); } } diff --git a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java index b8e0672d1b3..c8698687f05 100644 --- a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java +++ b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java @@ -16,6 +16,11 @@ package com.android.settings.bluetooth; +import com.android.internal.app.AlertActivity; +import com.android.internal.app.AlertController; +import com.android.settings.R; + +import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.content.DialogInterface; import android.content.Intent; @@ -24,10 +29,6 @@ import android.util.Log; import android.view.View; import android.widget.TextView; -import com.android.internal.app.AlertActivity; -import com.android.internal.app.AlertController; -import com.android.settings.R; - /** * RequestPermissionHelperActivity asks the user whether to enable discovery. * This is usually started by RequestPermissionActivity. @@ -107,12 +108,12 @@ public class RequestPermissionHelperActivity extends AlertActivity implements || mLocalManager.getBluetoothAdapter().enable()) { returnCode = RequestPermissionActivity.RESULT_BT_STARTING_OR_STARTED; } else { - returnCode = RequestPermissionActivity.RESULT_ERROR; + returnCode = Activity.RESULT_CANCELED; } break; case DialogInterface.BUTTON_NEGATIVE: - returnCode = RequestPermissionActivity.RESULT_USER_DENIED; + returnCode = Activity.RESULT_CANCELED; break; default: return; @@ -131,14 +132,14 @@ public class RequestPermissionHelperActivity extends AlertActivity implements mTimeout = intent.getIntExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, BluetoothDiscoverableEnabler.DEFAULT_DISCOVERABLE_TIMEOUT); } else { - setResult(RequestPermissionActivity.RESULT_ERROR); + setResult(Activity.RESULT_CANCELED); return true; } mLocalManager = LocalBluetoothManager.getInstance(this); if (mLocalManager == null) { Log.e(TAG, "Error: there's a problem starting bluetooth"); - setResult(RequestPermissionActivity.RESULT_ERROR); + setResult(Activity.RESULT_CANCELED); return true; } @@ -147,7 +148,7 @@ public class RequestPermissionHelperActivity extends AlertActivity implements @Override public void onBackPressed() { - setResult(RequestPermissionActivity.RESULT_USER_DENIED); + setResult(Activity.RESULT_CANCELED); super.onBackPressed(); } } diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml index cf2e03c0548..8a0ce218230 100644 --- a/tests/AndroidManifest.xml +++ b/tests/AndroidManifest.xml @@ -4,9 +4,9 @@ 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. @@ -17,8 +17,18 @@ + + + + + + + + + - + diff --git a/tests/res/layout/bluetooth_request_permission_test.xml b/tests/res/layout/bluetooth_request_permission_test.xml new file mode 100644 index 00000000000..8bb0daa7dac --- /dev/null +++ b/tests/res/layout/bluetooth_request_permission_test.xml @@ -0,0 +1,46 @@ + + + + + + + + + +