Package com.gwtmobile.phonegap.kitchensink.client

Source Code of com.gwtmobile.phonegap.kitchensink.client.BluetoothUi$BluetoothUiUiBinder

/* Copyright (c) 2011 Zhihua (Dennis) Jiang
*
* author: Daniel Tizón
*
* 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. See the
* License for the specific language governing permissions and limitations under
* the License.
*/

package com.gwtmobile.phonegap.kitchensink.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;
import com.gwtmobile.ui.client.event.SelectionChangedEvent;
import com.gwtmobile.ui.client.page.Page;
import com.gwtmobile.phonegap.client.plugins.android.Bluetooth;
import com.gwtmobile.phonegap.client.plugins.android.Bluetooth.Callback;
import com.gwtmobile.phonegap.client.plugins.android.Bluetooth.StringCallback;

public class BluetoothUi extends Page {

  @UiField
  HTML text;

  private static BluetoothUiUiBinder uiBinder = GWT
      .create(BluetoothUiUiBinder.class);

  interface BluetoothUiUiBinder extends UiBinder<Widget, BluetoothUi> {
  }

  public BluetoothUi() {
    initWidget(uiBinder.createAndBindUi(this));
  }

  @UiHandler("list")
  void onListSelectionChanged(SelectionChangedEvent e) {
    switch (e.getSelection()) {
    case 0:
      isBTEnabled();
      break;
    case 1:
      enableBT();
      break;
    case 2:
      disableBT();
      break;
    case 3:
      listDevices();
      break;
    case 4:
      pairBT("6C:9B:02:44:FA:BF");
      break;
    case 5:
      listBoundDevices();
      break;
    case 6:
      stopDiscovering();
      break;
    case 7:
      isBound("6C:9B:02:44:FA:BF");
      break;
    }
  }

  public void isBTEnabled() {
    Bluetooth.isBTEnabled(new Callback() {
      @Override
      public void onSuccess(boolean result) {
        try {
          String state = "";
          if (result)
            state = "Enabled";
          if (!result)
            state = "Disabled";
          text.setHTML("Result:<br/>" + state);
        } catch (Exception e) {
          e.printStackTrace();
        }

      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void enableBT() {
    Bluetooth.enableBT(new Callback() {
      @Override
      public void onSuccess(boolean result) {
        try {
          String state = "";
          if (result)
            state = "Success";
          if (!result)
            state = "Error";
          text.setHTML("Result:<br/>" + state);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void disableBT() {
    Bluetooth.disableBT(new Callback() {
      @Override
      public void onSuccess(boolean result) {
        try {
          String state = "";
          if (result)
            state = "Success";
          if (!result)
            state = "Error";
          text.setHTML("Result:<br/>" + state);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void listDevices() {
    Bluetooth.listDevices(new StringCallback() {
      @Override
      public void onSuccess(String result) {
        try {
          String textHTML = "";
          JSONValue value = JSONParser.parseLenient(result);
          JSONArray devicesArray = value.isArray();

          if (devicesArray != null) {

            textHTML = "Result:";

            for (int i = 0; i < devicesArray.size(); i++) {
              JSONObject deviceObj = devicesArray.get(i)
                  .isObject();
              textHTML = textHTML + "<br/>"
                  + deviceObj.get("name");
            }

            text.setHTML(textHTML);

          }
        } catch (Exception e) {
          e.printStackTrace();
          text.setHTML("Error: " + e.getMessage());
        }
      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void pairBT(String address) {
    Bluetooth.pairBT(address, new Callback() {
      @Override
      public void onSuccess(boolean result) {
        try {
          String state = "";
          if (result)
            state = "Success";
          if (!result)
            state = "Error";
          text.setHTML("Result:<br/>" + state);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void listBoundDevices() {
    Bluetooth.listBoundDevices(new StringCallback() {
      @Override
      public void onSuccess(String result) {
        try {
          String textHTML = "";
          JSONValue value = JSONParser.parseLenient(result);
          JSONArray devicesArray = value.isArray();

          if (devicesArray != null) {
            textHTML = "Result:";
            for (int i = 0; i < devicesArray.size(); i++) {
              JSONObject deviceObj = devicesArray.get(i).isObject();
              textHTML = textHTML + "<br/>"
                  + deviceObj.get("name");
            }
            text.setHTML(textHTML);
          }
        } catch (Exception e) {
          e.printStackTrace();
          text.setHTML("Error: " + e.getMessage());
        }
      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void stopDiscovering() {
    Bluetooth.stopDiscovering(new Callback() {
      @Override
      public void onSuccess(boolean result) {
        try {
          String state = "";
          if (result)
            state = "Success";
          if (!result)
            state = "Error";
          text.setHTML("Result:<br/>" + state);
        } catch (Exception e) {
          e.printStackTrace();
        }

      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

  public void isBound(String address) {
    Bluetooth.isBound(address, new Callback() {
      @Override
      public void onSuccess(boolean result) {
        try {
          String state = "";
          if (result)
            state = "Yes";
          if (!result)
            state = "No";
          text.setHTML("Result:<br/>" + state);
        } catch (Exception e) {
          e.printStackTrace();
        }

      }

      @Override
      public void onError(String message) {
        text.setHTML("Error: " + message);
      }
    });
  }

}
TOP

Related Classes of com.gwtmobile.phonegap.kitchensink.client.BluetoothUi$BluetoothUiUiBinder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.