Merge "[LE Audio] To add the vibrate when the scan is successful"
This commit is contained in:
@@ -26,6 +26,8 @@ import android.graphics.SurfaceTexture;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
import android.os.VibrationEffect;
|
||||||
|
import android.os.Vibrator;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Size;
|
import android.util.Size;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@@ -45,6 +47,8 @@ import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
|
|||||||
import com.android.settingslib.bluetooth.BluetoothUtils;
|
import com.android.settingslib.bluetooth.BluetoothUtils;
|
||||||
import com.android.settingslib.qrcode.QrCamera;
|
import com.android.settingslib.qrcode.QrCamera;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
|
||||||
public class QrCodeScanModeFragment extends InstrumentedFragment implements
|
public class QrCodeScanModeFragment extends InstrumentedFragment implements
|
||||||
TextureView.SurfaceTextureListener,
|
TextureView.SurfaceTextureListener,
|
||||||
QrCamera.ScannerCallback {
|
QrCamera.ScannerCallback {
|
||||||
@@ -61,6 +65,8 @@ public class QrCodeScanModeFragment extends InstrumentedFragment implements
|
|||||||
private static final long SHOW_ERROR_MESSAGE_INTERVAL = 10000;
|
private static final long SHOW_ERROR_MESSAGE_INTERVAL = 10000;
|
||||||
private static final long SHOW_SUCCESS_SQUARE_INTERVAL = 1000;
|
private static final long SHOW_SUCCESS_SQUARE_INTERVAL = 1000;
|
||||||
|
|
||||||
|
private static final Duration VIBRATE_DURATION_QR_CODE_RECOGNITION = Duration.ofMillis(3);
|
||||||
|
|
||||||
private boolean mIsGroupOp;
|
private boolean mIsGroupOp;
|
||||||
private int mCornerRadius;
|
private int mCornerRadius;
|
||||||
private BluetoothDevice mSink;
|
private BluetoothDevice mSink;
|
||||||
@@ -209,16 +215,39 @@ public class QrCodeScanModeFragment extends InstrumentedFragment implements
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case MESSAGE_SCAN_BROADCAST_SUCCESS:
|
case MESSAGE_SCAN_BROADCAST_SUCCESS:
|
||||||
|
/* TODO(b/265281156) : Move the logic to BluetoothFindBroadcastsFragment.
|
||||||
|
* We only pass the QR code string to the previous page.
|
||||||
|
*/
|
||||||
mController.addSource(mSink, mBroadcastMetadata, mIsGroupOp);
|
mController.addSource(mSink, mBroadcastMetadata, mIsGroupOp);
|
||||||
updateSummary();
|
notifyUserForQrCodeRecognition();
|
||||||
mSummary.sendAccessibilityEvent(
|
|
||||||
AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private void notifyUserForQrCodeRecognition() {
|
||||||
|
if (mCamera != null) {
|
||||||
|
mCamera.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
mErrorMessage.setVisibility(View.INVISIBLE);
|
||||||
|
|
||||||
|
triggerVibrationForQrCodeRecognition(getContext());
|
||||||
|
|
||||||
|
getActivity().finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void triggerVibrationForQrCodeRecognition(Context context) {
|
||||||
|
Vibrator vibrator = context.getSystemService(Vibrator.class);
|
||||||
|
if (vibrator == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vibrator.vibrate(VibrationEffect.createOneShot(
|
||||||
|
VIBRATE_DURATION_QR_CODE_RECOGNITION.toMillis(),
|
||||||
|
VibrationEffect.DEFAULT_AMPLITUDE));
|
||||||
|
}
|
||||||
|
|
||||||
private void showErrorMessage(@StringRes int messageResId) {
|
private void showErrorMessage(@StringRes int messageResId) {
|
||||||
final Message message = mHandler.obtainMessage(MESSAGE_SHOW_ERROR_MESSAGE,
|
final Message message = mHandler.obtainMessage(MESSAGE_SHOW_ERROR_MESSAGE,
|
||||||
getString(messageResId));
|
getString(messageResId));
|
||||||
|
Reference in New Issue
Block a user