package com.macaroon.piztor;
import android.annotation.SuppressLint;
import android.location.Location;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.widget.ImageButton;
public class Main extends PiztorAct {
final static int SearchButtonPress = 1;
final static int FetchButtonPress = 2;
final static int FocuseButtonPress = 3;
final static int SuccessFetch = 4;
final static int FailedFetch = 5;
final static int TimerFlush = 6;
ActMgr actMgr;
ImageButton btnSearch, btnFetch, btnFocus, btnSettings;
@SuppressLint("HandlerLeak")
Handler fromGPS = new Handler() {
@Override
public void handleMessage(Message m) {
if (m.what != 0) {
Location l = (Location) m.obj;
ReqUpdate r = new ReqUpdate(UserInfo.token, l.getLatitude(),
l.getLongitude(), System.currentTimeMillis(), 1000);
AppMgr.transam.send(r);
}
}
};
Handler fromTransam = new Handler() {
@Override
public void handleMessage(Message m) {
switch (m.what) {
case value:
break;
default:
break;
}
}
};
String cause(int t) {
switch (t) {
case SearchButtonPress:
return "Search Button Press";
case FetchButtonPress:
return "Fetch Button Press";
case FocuseButtonPress:
return "Focuse Button Press";
case SuccessFetch:
return "Success Fetch";
case FailedFetch:
return "Failed Fetch";
case TimerFlush:
return "TimerFlush";
default:
return "Fuck!!!";
}
}
class StartStatus extends ActStatus {
@Override
void enter(int e) {
System.out.println("enter start status!!!!");
if (e == SuccessFetch) {
}
}
@Override
void leave(int e) {
System.out.println("leave start status!!!! because" + cause(e));
}
}
class FetchStatus extends ActStatus {
@Override
void enter(int e) {
System.out.println("enter Fetch status!!!!");
if (e == FetchButtonPress) {
ReqLocation r = new ReqLocation(UserInfo.token, 1,
System.currentTimeMillis(), 1000);
AppMgr.transam.send(r);
}
}
@Override
void leave(int e) {
System.out.println("leave fetch status!!!! because" + cause(e));
}
}
class FocusStatus extends ActStatus {
@Override
void enter(int e) {
System.out.println("enter focus status!!!!");
}
@Override
void leave(int e) {
System.out.println("leave focus status!!!! because" + cause(e));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
id = "Main";
super.onCreate(savedInstanceState);
AppMgr.tracker.setHandler(fromGPS);
ActStatus[] r = new ActStatus[3];
r[0] = new StartStatus();
r[1] = new FetchStatus();
r[2] = new FocusStatus();
actMgr = new ActMgr(this, r[0], r);
actMgr.add(r[0], FocuseButtonPress, r[2]);
actMgr.add(r[0], FetchButtonPress, r[1]);
actMgr.add(r[1], FetchButtonPress, r[0]);
actMgr.add(r[1], FailedFetch, r[0]);
actMgr.add(r[2], FocuseButtonPress, r[0]);
actMgr.add(r[0], TimerFlush, r[0]);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
btnFetch = (ImageButton) findViewById(R.id.footbar_btn_fetch);
btnFocus = (ImageButton) findViewById(R.id.footbar_btn_focus);
btnSearch = (ImageButton) findViewById(R.id.footbar_btn_search);
btnSettings = (ImageButton) findViewById(R.id.footbar_btn_settings);
btnFetch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
actMgr.trigger(FetchButtonPress);
}
});
btnFocus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
actMgr.trigger(FocuseButtonPress);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}