Android Open Source - lamp Bluetooth Socket Listener






From Project

Back to project page lamp.

License

The source code is released under:

GNU General Public License

If you think the Android project lamp listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**    Copyright (C) 2013 Marek Sebera <marek@msebera.cz>
 */*  ww  w.  j  av a  2 s  . c  o m*/
 *    This program is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    This program is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 * 
 *    You should have received a copy of the GNU General Public License
 *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * */
package cz.tomsuch.lampicka.util;

import java.io.InputStream;
import java.util.Scanner;
import java.util.regex.Pattern;

import cz.tomsuch.lampicka.interfaces.BluetoothInputLineListener;

/**
 * Reads from socket, while it is not closed
 * 
 * @author Marek Sebera <marek@msebera.cz>
 * */
public class BluetoothSocketListener implements Runnable {

  private FixedBluetoothSocket socket;
  private InputStream inStream;
  private BluetoothInputLineListener listener;
  private Scanner scanner;

  /**
   * Constructor
   * 
   * @param socket
   *            must not be null
   * @param listener
   *            must not be null
   * */
  public BluetoothSocketListener(FixedBluetoothSocket socket,
      BluetoothInputLineListener listener) {
    assert (socket != null);
    assert (listener != null);
    this.socket = socket;
    this.listener = listener;
  }

  /**
   * Main runnable loop
   * 
   * Is invoked by Thread.start() usually
   * */
  public void run() {
    try {
      inStream = socket.getInputStream();
      scanner = new Scanner(inStream);
      scanner.useDelimiter(Pattern.compile("[\\r|\\n|\\r\\n]+"));
      while (true) {
        try {
          String line = scanner.next();
          listener.handleReceivedLine(line);
        } catch (Throwable e) {
          break;
        }
      }
    } catch (Throwable e) {
      e.printStackTrace();
      // We don't care what happens here, as the only problems comes up on
      // closing socket
    }
  }
}




Java Source Code List

cz.tomsuch.lampicka.AppController.java
cz.tomsuch.lampicka.abstracts.CustomSeekBar.java
cz.tomsuch.lampicka.activities.LampActivity.java
cz.tomsuch.lampicka.activities.LampsActivity.java
cz.tomsuch.lampicka.adapters.BluetoothDevicesAdapter.java
cz.tomsuch.lampicka.enums.BluetoothLampBacklightMode.java
cz.tomsuch.lampicka.enums.BluetoothLampColorSetMode.java
cz.tomsuch.lampicka.enums.BluetoothLampCommand.java
cz.tomsuch.lampicka.enums.BluetoothLampEffect.java
cz.tomsuch.lampicka.impl.DefaultBluetoothLamp.java
cz.tomsuch.lampicka.interfaces.BluetoothInputLineListener.java
cz.tomsuch.lampicka.interfaces.BluetoothLampCommandListener.java
cz.tomsuch.lampicka.interfaces.BluetoothLamp.java
cz.tomsuch.lampicka.interfaces.OnColorChangedListener.java
cz.tomsuch.lampicka.interfaces.PalleteDialogColorListener.java
cz.tomsuch.lampicka.pallete.ColorChooserDialog.java
cz.tomsuch.lampicka.pallete.PalleteDialog.java
cz.tomsuch.lampicka.util.BluetoothDeviceComparator.java
cz.tomsuch.lampicka.util.BluetoothDeviceWrapper.java
cz.tomsuch.lampicka.util.BluetoothSocketListener.java
cz.tomsuch.lampicka.util.ColorPickerView.java
cz.tomsuch.lampicka.util.FixedBluetoothSocket.java
cz.tomsuch.lampicka.util.HorizontalSeekBar.java
cz.tomsuch.lampicka.util.Preferences.java
cz.tomsuch.lampicka.util.VerticalSeekBar.java