Android Open Source - One-Button-App---Android one Buttons






From Project

Back to project page One-Button-App---Android.

License

The source code is released under:

Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (...

If you think the Android project One-Button-App---Android 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

package edu.cc.oba;
//from w  w w.  j  a va2  s .c o  m
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;

public class oneButtons extends Activity {
  public static TabHost mTabHost;
  final String imageStatus = null;

  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.onebutton);

    // One Buttons

    // List view of all one buttons (Only Name)
    // get active requests for the user (For now) and inactive list.
    updateListViewActive();
    updateListViewInactive();

    final ListView listView = (ListView) findViewById(R.id.listView);

    listView.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> arg0, View v, int position,
          long id) {
        // Toast.makeText(getBaseContext(),
        // ((TextView)v.findViewById(R.id.lngValue)).getText().toString(),4).show();

        int req_id = Integer.parseInt(((TextView) v
            .findViewById(R.id.imageID)).getText().toString());
        String imagename = ((TextView) v.findViewById(R.id.imageName))
            .getText().toString();
        String status = ((TextView) v.findViewById(R.id.imageStatus))
            .getText().toString();

        if (status.compareToIgnoreCase("ready") == 0) {
          String[] conn_data = TestOBA.oba.getConnectData(req_id);

          Toast.makeText(getBaseContext(), conn_data.toString(),
              Toast.LENGTH_LONG);
          Log.i("COnnDATA", conn_data.toString());

          if (imagename.contains("Win"))
            StartRdpIntent(conn_data);
          else
            conn_do_ssh(conn_data, imagename); // On Click of
                              // Listview, get
                              // putty/rdp
        } else if (status.compareToIgnoreCase("loading") == 0) {
          Toast.makeText(getBaseContext(),
              "Please wait till your reservation is ready",
              Toast.LENGTH_LONG).show();
        } else if (status.compareToIgnoreCase("timedout") == 0) {
          Toast.makeText(getBaseContext(),
              "Your reservation has timed out", Toast.LENGTH_LONG)
              .show();
          updateListViewActive();
          updateListViewInactive(); // at the same time, we need to
                        // add it into the inactive
                        // list and update the active list.
        }

      }

    });
    
    final ListView listViewInactive = (ListView) findViewById(R.id.listView_inactive);
    
    listViewInactive.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> arg0, View v, int position,
          long id) {
        // Toast.makeText(getBaseContext(),
        // ((TextView)v.findViewById(R.id.lngValue)).getText().toString(),4).show();

        final int request_id = Integer.parseInt(((TextView) v
            .findViewById(R.id.listView_inactive)).getText()
            .toString());
        
        AlertDialog adb = new AlertDialog.Builder(this).create();
        adb.setCancelable(true);
        adb.setButton("ACTIVATE",
            new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                // CODE TO EXTEND RESERVATION

              }
            });
      }

    });

    mainUITabs.mTabHost
        .setOnTabChangedListener(new TabHost.OnTabChangeListener() {

          @Override
          public void onTabChanged(String tabId) {
            // TODO Auto-generated method stub
            if (tabId.compareTo(("One Buttons")) == 0) {
              updateListViewActive();
              updateListViewInactive();
            }
          }
        });
    // Show user active and inactive one buttons
  }

  private void updateListViewActive() {
    ArrayList<Map<String, String>> list = build(1);
    
    String[] from = { "imagename", "requestid", "status" };
    int[] to = { R.id.imageName, R.id.imageID, R.id.imageStatus };

    System.out.println(list.toString());

    SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.row,
        from, to);

    final ListView listView = (ListView) findViewById(R.id.listView);

    listView.setAdapter(adapter);
    listView.setTextFilterEnabled(true);

  }

  private void updateListViewInactive() {
    ArrayList<Map<String, String>> list = build(0);

    String[] from = { "imagename", "requestid", "status" };
    int[] to = { R.id.imageName, R.id.imageID, R.id.imageStatus };

    System.out.println(list.toString());

    SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.row,
        from, to);

    final ListView listView = (ListView) findViewById(R.id.listView_inactive);

    listView.setAdapter(adapter);
    listView.setTextFilterEnabled(true);
  }

  @SuppressWarnings({ "rawtypes", "unchecked" })
  public ArrayList<Map<String, String>> build(int act) {
    ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
    HashMap requests = TestOBA.oba.getRequestIDs();
    Object[] req_id = (Object[]) requests.get("requests");

    for (Object object : req_id) {

      Map obaImagesHash = (Map) object;
      HashMap req_status = TestOBA.oba.getRequestStatus(Integer
          .parseInt((String) obaImagesHash.get("requestid")));
      obaImagesHash.putAll(req_status);
      System.out.println("Adding to array: "
          + obaImagesHash.get("requestid").toString());
      if (act == 0){
        if (obaImagesHash.get("status").toString().compareToIgnoreCase("timedout") == 0)
          list.add(obaImagesHash);
      }
      else{
        if (obaImagesHash.get("status").toString().compareToIgnoreCase("ready") == 0 || obaImagesHash.get("status").toString().compareToIgnoreCase("loading") == 0)
          list.add(obaImagesHash);
      }
    }

    return list;
  }

  static int i;

  public void conn_do_ssh(String[] conn_data_secure, String imagename) {

    Toast.makeText(getBaseContext(), "Connecting", Toast.LENGTH_LONG);
    i++;
    try {
      String Conn_URI = "ssh://" + conn_data_secure[1] + "@"
          + conn_data_secure[0] + ":22/#" + imagename;

      Log.d("conn_string", Conn_URI);

      // Show password in notification bar
      Context context = this.getApplicationContext();
      NotificationManager notificationManager = (NotificationManager) context
          .getSystemService(NOTIFICATION_SERVICE);

      int icon = R.drawable.ic_launcher;
      CharSequence tickerText = conn_data_secure[2];
      long when = System.currentTimeMillis();

      Notification notification = new Notification(icon, tickerText, when);

      CharSequence contentTitle = "Password for this reservation is";
      CharSequence contentText = conn_data_secure[2];
      Intent notificationIntent = new Intent(this, oneButtons.class);
      PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
          notificationIntent, 0);

      notification.setLatestEventInfo(context, contentTitle, contentText,
          contentIntent);

      // Start Connect BOT
      // TODO enclose with try catch and handle catch prompting user to
      // install connectBOT
      try {
        Intent intent = new Intent("android.intent.action.VIEW",
            Uri.parse(Conn_URI));
        startActivity(intent);
      } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(getBaseContext(), "Please install connectBot",
            Toast.LENGTH_LONG).show();
      }

      notificationManager.notify(1, notification);
      // notificationManager.cancelAll();
      ConnectWithPass.conn_do(conn_data_secure);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  // CODE TO CONNECT RDP:
  public static final String REMOTE_SERVER = "server";
  public static final String REMOTE_PORT = "port";
  public static final String REMOTE_DOMAIN = "domain";
  public static final String REMOTE_USER = "user";
  public static final String REMOTE_PASSWORD = "password";
  public static final String REMOTE_WIDTH = "width";
  public static final String REMOTE_HEIGHT = "height";
  public static final String REMOTE_OPTIONS = "options";
  public static final String REMOTE_PROGRAM = "program";
  public static final String REMOTE_COLOR = "color";
  public static final String REMOTE_AS_HOST = "as_host"; // the client
                              // computer name

  // option values for REMOTE_OPTIONS
  public static final int OPTION_CONSOLE = 0x00000001;// connet to console
                            // session
  public static final int OPTION_CLIPBOARD = 0x00000002;// clipbaord
                              // copy/paste
  public static final int OPTION_SDCARD = 0x00000004; // mount sdcard
  public static final int OPTION_SOUND = 0x00000008; // audio playback
  public static final int OPTION_LEAVE_SOUND = 0x00000010; // leave sound in
                                // remote
                                // computer
  public static final int OPTION_BEST_EFFECT = 0x00000020;// best display
                              // effect
  public static final int OPTION_RECORD_AUDIO = 0x00000040;// audio recording

  public static String LOG = "RDP_TEST";

  public static String walter_rdp_uri = "com.toremote.serversmanager";

  public static String HOST = "152.7.99.198";

  public static String USER = "asudhak";

  public static String PORT = "3389";

  public static String PWD = "nkAGCW";

  public static String DOMAIN = "";

  public void StartRdpIntent(String[] conn_data) {
    Log.v(LOG, "sending an intent to walter App");
    Intent intent = new Intent(Intent.ACTION_VIEW);
    // Uri m_uri = Uri.parse(walter_rdp_uri);
    // for enterprise version
    // intent.setComponent(new ComponentName("com.toremote.serversmanager",
    // "com.toremote.RemoteActivity"));
    // for standard version
    // intent.setComponent(new ComponentName("org.toremote.serversmanager",
    // "com.toremote.RemoteActivity"));
    // for lite version
    try {
      intent.setComponent(new ComponentName("org.toremote.rdpdemo",
          "com.toremote.RemoteActivity"));
    } catch (ActivityNotFoundException e) {
      Toast.makeText(
          getBaseContext(),
          "Please install REMOTE RDP from the Android Market to be able to remotely connect to this Reservation",
          Toast.LENGTH_LONG).show();
    }
    intent.putExtra(REMOTE_SERVER, conn_data[0]);
    intent.putExtra(REMOTE_PORT, PORT);
    // following are optional:
    intent.putExtra(REMOTE_USER, conn_data[1]);
    intent.putExtra(REMOTE_PASSWORD, conn_data[2]);
    intent.putExtra(REMOTE_DOMAIN, DOMAIN);
    intent.putExtra(REMOTE_WIDTH, "0");// "0" means "fit Device screen"
    intent.putExtra(REMOTE_HEIGHT, "0");// "0" means "fit Device screen"
    intent.putExtra(REMOTE_COLOR, 16);// 16 bit color
    intent.putExtra(REMOTE_OPTIONS, OPTION_CLIPBOARD | OPTION_SOUND
        | OPTION_SDCARD | OPTION_RECORD_AUDIO | OPTION_CONSOLE
        | OPTION_BEST_EFFECT);
    startActivity(intent);
  }

  // END CODE TO CONNECT RDP:

}




Java Source Code List

edu.cc.oba.Android_OBAActivity.java
edu.cc.oba.Android_OBAActivity.java
edu.cc.oba.ConnectWithPass.java
edu.cc.oba.ConnectWithPass.java
edu.cc.oba.CopyOfcreateConnection.java
edu.cc.oba.CopyOfcreateConnection.java
edu.cc.oba.ImageDB.java
edu.cc.oba.TestOBA.java
edu.cc.oba.TestOBA.java
edu.cc.oba.chooseImage.java
edu.cc.oba.chooseImage.java
edu.cc.oba.createConnection.java
edu.cc.oba.createConnection.java
edu.cc.oba.mainUITabs.java
edu.cc.oba.mainUITabs.java
edu.cc.oba.oneButtons.java
edu.cc.oba.oneButtons.java
org.apache.http.examples.client.ClientAbortMethod.java
org.apache.http.examples.client.ClientAuthentication.java
org.apache.http.examples.client.ClientChunkEncodedPost.java
org.apache.http.examples.client.ClientConnectionRelease.java
org.apache.http.examples.client.ClientCustomContext.java
org.apache.http.examples.client.ClientCustomSSL.java
org.apache.http.examples.client.ClientEvictExpiredConnections.java
org.apache.http.examples.client.ClientExecuteDirect.java
org.apache.http.examples.client.ClientExecuteProxy.java
org.apache.http.examples.client.ClientExecuteSOCKS.java
org.apache.http.examples.client.ClientFormLogin.java
org.apache.http.examples.client.ClientGZipContentCompression.java
org.apache.http.examples.client.ClientInteractiveAuthentication.java
org.apache.http.examples.client.ClientKerberosAuthentication.java
org.apache.http.examples.client.ClientMultiThreadedExecution.java
org.apache.http.examples.client.ClientPreemptiveBasicAuthentication.java
org.apache.http.examples.client.ClientPreemptiveDigestAuthentication.java
org.apache.http.examples.client.ClientProxyAuthentication.java
org.apache.http.examples.client.ClientWithResponseHandler.java
org.apache.http.examples.conn.ManagerConnectDirect.java
org.apache.http.examples.conn.ManagerConnectProxy.java
org.apache.http.examples.conn.OperatorConnectDirect.java
org.apache.http.examples.conn.OperatorConnectProxy.java
org.apache.http.examples.entity.mime.ClientMultipartFormPost.java
org.kxml2.wap.WbxmlParser.java
org.kxml2.wap.WbxmlSerializer.java
org.kxml2.wap.wml.Wml.java
org.xmlrpc.android.Base64Coder.java
org.xmlrpc.android.IXMLRPCSerializer.java
org.xmlrpc.android.MethodCall.java
org.xmlrpc.android.Tag.java
org.xmlrpc.android.XMLRPCClient.java
org.xmlrpc.android.XMLRPCCommon.java
org.xmlrpc.android.XMLRPCException.java
org.xmlrpc.android.XMLRPCFault.java
org.xmlrpc.android.XMLRPCSerializable.java
org.xmlrpc.android.XMLRPCSerializer.java
org.xmlrpc.android.XMLRPCServer.java