@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.widget_conf_layout);

    dbhelper = new DesktopHostsDBHelper(this);
    Intent intent = getIntent();
    Bundle extras = intent.getExtras();
    final int mAppWidgetId;

    if (extras != null) {
      mAppWidgetId =
          extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    } else {
      mAppWidgetId = 0;
    }

    // get All Hosts
    Cursor cursor = dbhelper.getAllCursor();
    int hostcount = cursor.getCount();

    if (hostcount == 0) { // Don't create Widget when no Desktops are registered
      cursor.close();
      finish();
    } else {
      ListView hostslistview = (ListView) findViewById(R.id.widgethostslistView);
      final Spinner playerspinner = (Spinner) findViewById(R.id.playerspinner);

      final ArrayAdapter<CharSequence> playeradapter =
          ArrayAdapter.createFromResource(
              this, R.array.playerarray, android.R.layout.simple_spinner_item);
      playeradapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      playerspinner.setAdapter(playeradapter);
      final HostsAdapter hostadapter = new HostsAdapter(this, cursor);

      hostslistview.setAdapter(hostadapter);
      hostslistview.setOnItemClickListener(
          new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
              Cursor itemcursor = (Cursor) parent.getItemAtPosition(pos);
              String hostname = itemcursor.getString(1);
              Long uuid = itemcursor.getLong(0);

              itemcursor.close();
              int ipos = playerspinner.getSelectedItemPosition();
              String player = playeradapter.getItem(ipos).toString();
              complete(mAppWidgetId, hostname, uuid, player);
            }
          });
    }

    dbhelper.close();
  }
  @SuppressWarnings("unused")
  private void testreaddb() {
    Cursor cursor = dbhelper.getHostsOnWifiCursor("<unknown ssid>");
    System.out.println(cursor.getCount());

    if (cursor.moveToFirst()) {
      do {
        System.out.println(cursor.getLong(0));
        System.out.println(cursor.getString(2));
        System.out.println(cursor.getInt(3));
        // System.out.println(cursor.getString(6));
      } while (cursor.moveToNext());
    }
  }
  private void loadHostlist() {
    hostslistview.removeAllViewsInLayout();
    HostsAdapter ha = new HostsAdapter(this, dbhelper.getAllCursor());
    hostslistview.setAdapter(ha);
    hostslistview.setOnItemLongClickListener(
        new OnItemLongClickListener() {

          @Override
          public boolean onItemLongClick(AdapterView<?> arg0, View parent, int pos, long id) {
            Cursor cursor = dbhelper.getHostByIdCursor(id);
            String ip = cursor.getString(2);
            int port = cursor.getInt(3);
            String wifi = cursor.getString(6);
            cursor.close();

            showEditHostDialog(id, ip, port, wifi);

            return false;
          }
        });
    hostslistview.setOnItemClickListener(
        new OnItemClickListener() {

          @Override
          public void onItemClick(AdapterView<?> arg0, View parent, int pos, long id) {
            Cursor cursor = dbhelper.getHostByIdCursor(id);
            String host = cursor.getString(2);
            int port = cursor.getInt(3);
            cursor.close();

            Intent i = new Intent(getApplicationContext(), StatusUpdateService.class);
            i.putExtra("commandtype", "PING");
            i.putExtra("message", "");
            i.putExtra("host", host);
            i.putExtra("port", port);
            startService(i);
            Toast pingmsg =
                Toast.makeText(getApplicationContext(), "send Ping", Toast.LENGTH_SHORT);
            pingmsg.show();
          }
        });
  }
 @Override
 protected void onDestroy() {
   dbhelper.close();
   super.onDestroy();
 }