Home | History | Annotate | Download | only in bluetooth
      1 /*
      2  * Copyright (C) 2013 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.cts.verifier.bluetooth;
     18 
     19 import com.android.cts.verifier.PassFailButtons;
     20 import com.android.cts.verifier.R;
     21 
     22 import android.bluetooth.BluetoothAdapter;
     23 import android.bluetooth.BluetoothDevice;
     24 import android.content.BroadcastReceiver;
     25 import android.content.Context;
     26 import android.content.Intent;
     27 import android.content.IntentFilter;
     28 import android.os.Bundle;
     29 import android.view.View;
     30 import android.view.View.OnClickListener;
     31 import android.widget.Button;
     32 import android.widget.Toast;
     33 
     34 public class BleAdvertiserHardwareScanFilterActivity extends PassFailButtons.Activity {
     35 
     36     @Override
     37     public void onCreate(Bundle savedInstanceState) {
     38         super.onCreate(savedInstanceState);
     39         setContentView(R.layout.ble_advertiser_hardware_scan_filter);
     40         setPassFailButtonClickListeners();
     41         setInfoResources(R.string.ble_advertiser_scan_filter_name,
     42                          R.string.ble_advertiser_scan_filter_info, -1);
     43 
     44         ((Button) findViewById(R.id.ble_advertiser_scannable_start))
     45             .setOnClickListener(new OnClickListener() {
     46                 @Override
     47                 public void onClick(View v) {
     48                     Intent intent = new Intent(BleAdvertiserHardwareScanFilterActivity.this,
     49                                                BleAdvertiserService.class);
     50                     intent.putExtra(BleAdvertiserService.EXTRA_COMMAND,
     51                                     BleAdvertiserService.COMMAND_START_SCANNABLE);
     52                     startService(intent);
     53                 }
     54             });
     55         ((Button)findViewById(R.id.ble_advertiser_scannable_stop))
     56             .setOnClickListener(new OnClickListener() {
     57                 @Override
     58                 public void onClick(View v) {
     59                     stopAdvertising();
     60                 }
     61             });
     62         ((Button)findViewById(R.id.ble_advertiser_unscannable_start))
     63             .setOnClickListener(new OnClickListener() {
     64                 @Override
     65                 public void onClick(View v) {
     66                     Intent intent = new Intent(BleAdvertiserHardwareScanFilterActivity.this,
     67                                                BleAdvertiserService.class);
     68                     intent.putExtra(BleAdvertiserService.EXTRA_COMMAND,
     69                                     BleAdvertiserService.COMMAND_START_UNSCANNABLE);
     70                     startService(intent);
     71                 }
     72         });
     73         ((Button)findViewById(R.id.ble_advertiser_unscannable_stop))
     74             .setOnClickListener(new OnClickListener() {
     75                 @Override
     76                 public void onClick(View v) {
     77                     stopAdvertising();
     78                 }
     79         });
     80     }
     81 
     82     @Override
     83     public void onResume() {
     84         super.onResume();
     85         IntentFilter filter = new IntentFilter();
     86         filter.addAction(BleAdvertiserService.BLE_ADV_NOT_SUPPORT);
     87         filter.addAction(BleAdvertiserService.BLE_START_SCANNABLE);
     88         filter.addAction(BleAdvertiserService.BLE_START_UNSCANNABLE);
     89         filter.addAction(BleAdvertiserService.BLE_STOP_SCANNABLE);
     90         filter.addAction(BleAdvertiserService.BLE_STOP_UNSCANNABLE);
     91         registerReceiver(onBroadcast, filter);
     92     }
     93 
     94     @Override
     95     public void onPause() {
     96         super.onPause();
     97         unregisterReceiver(onBroadcast);
     98     }
     99 
    100     @Override
    101     public void onDestroy() {
    102         super.onDestroy();
    103         stopAdvertising();
    104     }
    105 
    106     private void showMessage(String msg) {
    107         Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    108     }
    109 
    110     private void pass() {
    111         this.setTestResultAndFinish(true);
    112     }
    113 
    114     private void stopAdvertising() {
    115         Intent intent = new Intent(BleAdvertiserHardwareScanFilterActivity.this,
    116                                    BleAdvertiserService.class);
    117         intent.putExtra(BleAdvertiserService.EXTRA_COMMAND,
    118                         BleAdvertiserService.COMMAND_STOP_SCANNABLE);
    119         intent.putExtra(BleAdvertiserService.EXTRA_COMMAND,
    120                         BleAdvertiserService.COMMAND_STOP_UNSCANNABLE);
    121         startService(intent);
    122     }
    123 
    124     private BroadcastReceiver onBroadcast = new BroadcastReceiver() {
    125         @Override
    126         public void onReceive(Context context, Intent intent) {
    127             switch (intent.getAction()) {
    128                 case BleAdvertiserService.BLE_START_SCANNABLE:
    129                     showMessage("Start advertising, this should be scanned");
    130                     break;
    131                 case BleAdvertiserService.BLE_START_UNSCANNABLE:
    132                     showMessage("Start advertising, this should not be scanned");
    133                     break;
    134                 case BleAdvertiserService.BLE_STOP_SCANNABLE:
    135                 case BleAdvertiserService.BLE_STOP_UNSCANNABLE:
    136                     showMessage("Stop advertising");
    137                     break;
    138                 case BleAdvertiserService.BLE_ADV_NOT_SUPPORT:
    139                     pass();
    140                     break;
    141             }
    142         }
    143     };
    144 }
    145