private void refresh() {
    partsArrayList.clear();
    if (((Alexandra) getApplicationContext()).getHome() != null) {
      partsArrayList.clear();
      partsArrayList.add(((Alexandra) getApplicationContext()).getHome().getName());
      partsArrayList.add("GADGETS:");
      for (Gadget gadget : ((Alexandra) getApplicationContext()).getHome().getGadgets()) {
        Log.i(TAG, gadget.getName());

        partsArrayList.add(gadget.getName() + " stan: " + gadget.getState().toString());
      }
      partsArrayList.add("ROOMS:");
      for (Room room : ((Alexandra) getApplicationContext()).getHome().getRooms()) {
        partsArrayList.add(room.getName());
      }
      partsArrayList.add("SCENES:");
      for (Scene scene : ((Alexandra) getApplicationContext()).getHome().getScenes()) {
        partsArrayList.add(scene.getName());
      }
      partsArrayList.add("SCHEDULES:");
      for (ScheduledScene schedule :
          ((Alexandra) getApplicationContext()).getHome().getSchedule()) {
        partsArrayList.add(
            schedule.getScene() + " -> " + schedule.getHour() + ":" + schedule.getMinutes());
      }
    }
    adapter.notifyDataSetChanged();
  }
        @Override
        public void onLeScan(BluetoothDevice bluetoothDevice, int i, byte[] bytes) {
          Log.d(TAG, "discovered device: " + bluetoothDevice.getName());
          Log.d(TAG, "device MAC: " + bluetoothDevice.getAddress());
          Home home = ((Alexandra) getApplicationContext()).getHome();
          if (home != null) {
            for (Gadget gadget : home.getGadgets()) {
              Log.d(TAG, "gadget MAC: " + gadget.getMAC());

              if (gadget.getMAC().equals(bluetoothDevice.getAddress())) {
                Log.d(TAG, "trying to connect GATT");
                gadget.setBluetoothGatt(
                    bluetoothDevice.connectGatt(
                        getApplicationContext(), true, gadget.getBluetoothGattCallback()));
              }
            }
          }
        }