Package fire.eagle.android

Source Code of fire.eagle.android.MainActivity

package fire.eagle.android;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View.OnClickListener;
import android.widget.*;
import jfireeagle.*;

public class MainActivity extends AbstractActivity
{
  static final int ID_SETTINGS = Menu.FIRST;
  static final int ID_ABOUT = Menu.FIRST + 1;
 
  private FireEagleClient client;
  private ClientSettings settings;
  private Button btnUpdate;
  private EditText location;
  private CheckBox useGps;
    private LocationManager locManager;
   
 
    public MainActivity()
    {
      super();
    }

  @Override
  public boolean onCreateOptionsMenu(Menu menu)
  {
   
      super.onCreateOptionsMenu(menu);
     
      MenuItem settings = menu.add(Menu.NONE, ID_SETTINGS, Menu.NONE, "Settings");
      settings.setIcon(android.R.drawable.ic_menu_preferences);
      settings.setOnMenuItemClickListener(new OnMenuItemClickListener()
      {

      public boolean onMenuItemClick(MenuItem item)
      {
        Intent i = new Intent();
        i.setClass(getApplicationContext(), EditPreferencesActivity.class);
        MainActivity.this.startActivity(i);
        return true;
      }
       
      });
     
      MenuItem about = menu.add(Menu.NONE, Menu.NONE, Menu.NONE, "About");
      about.setIcon(android.R.drawable.ic_menu_info_details);
      about.setOnMenuItemClickListener(new OnMenuItemClickListener()
      {

      public boolean onMenuItemClick(MenuItem item)
      {
        MainActivity.this.startActivity(AboutActivity.INTENT);
        return true;
      }
       
      });
     
      return true;
  }

   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        client = AndroidApplication.createFireEagleClient();
       
        settings = client.getClientSettings();

    locManager = (LocationManager) getSystemService(LOCATION_SERVICE);
       
        useGps = new CheckBox(this);
        useGps.setText("use GPS");
        useGps.setVisibility(View.GONE);
        useGps.setChecked(false);
        useGps.setOnClickListener(new OnClickListener()
        {

      public void onClick(View v)
      {
        location.setEnabled( ! useGps.isChecked() );
      }
         
        });
       
        location = new EditText(this);
        location.setText("");
        location.setVisibility(View.GONE);
       
        
        btnUpdate = new Button(this);
        btnUpdate.setText("Update");
        btnUpdate.setVisibility(View.GONE);
        btnUpdate.setOnClickListener(new OnClickListener()
        {

      public void onClick(View v)
      {
        Runnable runner = new Runnable()
        {
          public void run()
          {
            try
            {
              if (useGps.isChecked())
              {
                android.location.Location loc = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
                if (loc != null)
                {
                  client.updateLocation(loc.getLatitude(), loc.getLongitude());
                }
                else
                {
                  // emulator only:
                  // client.updateLocation(45.518872, -122.6793);
                }
              }
              else
              {
                if (location.getText().length() > 0)
                {
                  client.updateLocation(location.getText().toString());
                }
              }
            }
            catch (Throwable t)
            {
              t.printStackTrace(); // todo : improve this
            }
          }
        };
        startThread("update loction thread", runner);
      }
         
        });
       

        if (Util.isCallback(this.getIntent()))
        {
         
            client.setRequestToken(Preferences.getRequestToken());
           
          fetchAccessToken();
         
          BackgroundService.restart(this);
         
        }
        else if ( !settings.getUserSpecificToken().isValid() )
        {
        final AlertDialog alert = new AlertDialog.Builder(this).create();
        alert.setMessage("To get started, you will need to login to Yahoo Fire Eagle");
        alert.setButton("Login", new DialogInterface.OnClickListener()
        {

          public void onClick(DialogInterface dialog, int whichButton)
          {
            alert.dismiss();
           
            final String url = client.getUserAuthorizationUrl();

            Log.i(this.getClass().getName(), url);
             
                Preferences.updateRequestToken(client.getRequestToken());
                Preferences.commit();
               
            openWebBrowser(url);
           
            MainActivity.this.finish();
           
          }
        });
        alert.show();
       
    }
       
             
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);

      
        if (settings.getUserSpecificToken().isValid())
        {
            layout.addView(location);
            layout.addView(useGps);
            layout.addView(btnUpdate);
           
          btnUpdate.setVisibility(View.VISIBLE);
          location.setVisibility(View.VISIBLE);
          useGps.setVisibility(View.VISIBLE);
        }
       
       
        setContentView(layout);
    }

    protected void fetchAccessToken()
    {
     
        client.fetchAccessToken();
   
        Preferences.updateUserSpecificAccessToken(client.getClientSettings().getUserSpecificToken());
        Preferences.commit();
       
    }
   
   

    protected void onDestroy()
    {
      super.onDestroy();

      if (this.client != null)
      {
        this.client.shutdown();
      }
    }
   
}
TOP

Related Classes of fire.eagle.android.MainActivity

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.