package ca.uwaterloo.uwfoodservices;
import ca.uwaterloo.mainscreencontrols.*;
import ca.uwaterloo.mainscreencontrols.SpinningMenuAdapter.OnItemClickListener;
import ca.uwaterloo.mainscreencontrols.SpinningMenuAdapter.OnItemSelectedListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.DisplayMetrics;
import android.view.Menu;
import android.view.View;
public class MainScreen extends Activity {
private int requestCode = -1;
private String selectedTab = "Menu";
private SpinningMenuAdapter<?> parentTracker;
private int positionTracker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_screen);
final Intent intent_restaurant = new Intent(this, RestaurantMenuList.class);
final Intent intent_location = new Intent(this, LocationHours.class);
final Intent intent_settings = new Intent(this, SettingsActivity.class);
final Intent intent_about = new Intent(this, AboutPage.class);
final Intent intent_watcard = new Intent(this, LoginWatcard.class);
final SpinningMenu spinningMenu = (SpinningMenu)findViewById(R.id.SpinningMenu);
spinningMenu.post(new Runnable(){
@Override
public void run() {
spinningMenu.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(SpinningMenuAdapter<?> parent, View view,
int position, long id) {
spinningMenu.scrollToChild(position);
parentTracker = parent;
positionTracker = position;
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int yCentre = metrics.heightPixels/2;
int xCentre = metrics.widthPixels/2;
if ((Math.abs(spinningMenu.clickedX - xCentre)<200)&&
(Math.abs(spinningMenu.clickedY - yCentre)<200))
{
String temp = ((SpinningMenuItem) parent.getChildAt(position)).getName();
if ((selectedTab.equals(temp))||(temp.equals("Locations and\n Hours")&&
selectedTab.equals("Locations and Hours"))) {
((SpinningMenuItem)parent.getChildAt(position)).mImage.setAlpha(100);
}
if (temp.equals("Menu")&&selectedTab.equals("Menu"))
{
startActivityForResult(intent_restaurant, requestCode);
}
else if (((temp.equals("Locations and\n Hours"))||(temp.equals("Locations and Hours")))
&&selectedTab.equals("Locations and Hours"))
{
startActivityForResult(intent_location, requestCode);
}
else if (temp.equals("Settings")&&selectedTab.equals("Settings"))
{
startActivityForResult(intent_settings, requestCode);
}
else if (temp.equals("About Us")&&selectedTab.equals("About Us"))
{
startActivityForResult(intent_about, requestCode);
}
else if(temp.equals("WatCard Balance")&&selectedTab.equals("WatCard Balance")){
startActivityForResult(intent_watcard, requestCode);
}
}
}
});
spinningMenu.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(SpinningMenuAdapter<?> parent, View view,
int position, long id) {
switch(position)
{
case 0:
selectedTab = "Menu";
break;
case 1:
selectedTab = "Locations and Hours";
break;
case 2:
selectedTab = "Settings";
break;
case 3:
selectedTab = "About Us";
break;
case 4:
selectedTab = "WatCard Balance";
break;
}
}
@Override
public void onNothingSelected(SpinningMenuAdapter<?> parent) {
}
});
}
});
}
@Override
protected void onResume()
{
super.onResume();
if (parentTracker != null) {
((SpinningMenuItem)parentTracker.getChildAt(positionTracker)).mImage.setAlpha(255);
} else {
return;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main_screen, menu);
return true;
}
}