package com.arpith.dmucs;
import java.util.ArrayList;
import java.util.List;
import net.sebastianopoggi.ui.GlowPadBackport.GlowPadView;
import net.simonvt.menudrawer.MenuDrawer;
import net.simonvt.menudrawer.Position;
import android.content.Intent;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.parse.Parse;
import com.parse.ParseInstallation;
import com.parse.PushService;
import com.swarmconnect.Swarm;
import com.swarmconnect.SwarmActivity;
public class MainActivity extends SwarmActivity {
private MenuDrawer mMenuDrawer;
TextView tv;
private MenuAdapter mAdapter;
private ListView mList;
private int mActivePosition = -1;
// EndDrawer-------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Swarm.preload(MainActivity.this, SwarmConsts.App.APP_ID,
SwarmConsts.App.APP_AUTH);
Parse.initialize(this, "6LFiTT4PXBrL6xdDtWQZetifXsDPH2tO1i4GG5Xa",
"sGACSZocjP0YQNGuEvDEUYktRSMA5W10S9zwzW1B");
PushService.setDefaultPushCallback(this, DMUCSNotification.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
PushService.subscribe(getBaseContext(), "disaster",
DMUCSNotification.class);
mMenuDrawer = MenuDrawer.attach(this, MenuDrawer.MENU_DRAG_CONTENT,
Position.LEFT);
mMenuDrawer.setContentView(R.layout.activity_main);
List<Object> items = new ArrayList<Object>();
items.add(new Item("Home", R.drawable.ic_launcher));
items.add(new Category("Incident Module"));
items.add(new Item("Report an incident", R.drawable.icon_report));
items.add(new Item("Report List", R.drawable.icon_list));
items.add(new Category("Missing Person Module"));
items.add(new Item("Report missing person", R.drawable.icon_missing));
items.add(new Item("Missing People list", R.drawable.icon_miss_list));
items.add(new Category("Donation"));
items.add(new Item("Donate", R.drawable.icon_donate));
items.add(new Category("Settings"));
items.add(new Item("General", R.drawable.icon_setting));
items.add(new Item("Advanced", R.drawable.icon_advance));
items.add(new Item("Account Information", R.drawable.icon_account));
items.add(new Category("Gamification"));
items.add(new Item("Dashboard", R.drawable.icon_dash));
items.add(new Item("Leaderboards", R.drawable.icon_leaderboard));
items.add(new Item("Logout", R.drawable.icon_logout));
items.add(new Category("Other"));
items.add(new Item("Scatternet", R.drawable.icon_scatter));
items.add(new Item("Maps", R.drawable.icon_map));
items.add(new Item("Notifications", R.drawable.icon_notification));
items.add(new Item("About us", R.drawable.icon_about));
// A custom ListView is needed so the drawer can be notified when it's
// scrolled. This is to update the position
// of the arrow indicator.
mList = new ListView(this);
mAdapter = new MenuAdapter(items);
mList.setAdapter(mAdapter);
mList.setOnItemClickListener(mItemClickListener);
mMenuDrawer.setMenuView(mList);
// EndDrawer------------------------------------------------------
tv = (TextView) findViewById(R.id.textView1);
final GlowPadView glowPad = (GlowPadView) findViewById(R.id.incomingCallWidget);
glowPad.setPointsMultiplier(8);
glowPad.ping();
glowPad.setOnTriggerListener(new GlowPadView.OnTriggerListener() {
@Override
public void onGrabbed(View v, int handle) {
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
tv.setText("Swipe right to report an incident\nSwipe left to report a missing person");
}
@Override
public void onReleased(View v, int handle) {
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
tv.setText("Perform Quick action");
}
@Override
public void onTrigger(View v, int target) {
Intent i;
switch (target) {
case 0:
Toast.makeText(MainActivity.this, "Report Disaster",
Toast.LENGTH_SHORT).show();
i = new Intent(MainActivity.this, ReportIncident.class);
startActivity(i);
break;
case 2:
Toast.makeText(getBaseContext(), "Please wait..",
Toast.LENGTH_LONG).show();
i = new Intent(MainActivity.this, MissingPersonReport.class);
startActivity(i);
break;
}
glowPad.reset(true);
}
@Override
public void onGrabbedStateChange(View v, int handle) {
// Do nothing
}
@Override
public void onFinishFinalAnimation() {
// Do nothing
}
});
}
// Drawer---------------------------------------------------------------
private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
mActivePosition = position;
mMenuDrawer.setActiveView(view, position);
Intent i;
switch (position) {
case 0:
i = new Intent(MainActivity.this, MainActivity.class);
startActivity(i);
finish();
break;
case 2:
i = new Intent(MainActivity.this, QuickReport.class);
startActivity(i);
break;
case 5:
i = new Intent(MainActivity.this, MissingPersonReport.class);
startActivity(i);
break;
case 6:
i = new Intent(MainActivity.this, MissingPersonList.class);
i.putExtra("within", "10");
startActivity(i);
break;
case 8:
i = new Intent(MainActivity.this, Donate.class);
i.putExtra("within", "20");
startActivity(i);
break;
case 12:
i = new Intent(MainActivity.this, Account.class);
startActivity(i);
break;
case 10:
i = new Intent(MainActivity.this, Preference.class);
startActivity(i);
break;
case 11:
i = new Intent(MainActivity.this, APreference.class);
startActivity(i);
break;
case 19:
i = new Intent(MainActivity.this, Maps.class);
startActivity(i);
break;
case 21:
i = new Intent(MainActivity.this, About.class);
startActivity(i);
break;
case 3:
i = new Intent(MainActivity.this, ReportList.class);
i.putExtra("within", "20");
startActivity(i);
break;
case 14:
Intent activity_dash = new Intent(MainActivity.this,
Gamification.class);
activity_dash.putExtra("task", "DASHBOARD");
startActivity(activity_dash);
break;
case 15:
Intent activity_leader = new Intent(MainActivity.this,
Gamification.class);
activity_leader.putExtra("task", "LEADERBOARD");
startActivity(activity_leader);
break;
case 20:
i = new Intent(MainActivity.this, DMUCSNotification.class);
startActivity(i);
break;
case 18:
startActivity(new Intent("me.arpith.dmucscom.SCATTERACTIVITY"));
break;
case 16:
Intent activity_logout = new Intent(MainActivity.this,
Gamification.class);
activity_logout.putExtra("task", "LOGOUT");
startActivity(activity_logout);
break;
}
mMenuDrawer.closeMenu();
}
};
private static class Item {
String mTitle;
int mIconRes;
Item(String title, int iconRes) {
mTitle = title;
mIconRes = iconRes;
}
}
private static class Category {
String mTitle;
Category(String title) {
mTitle = title;
}
}
private class MenuAdapter extends BaseAdapter {
private List<Object> mItems;
MenuAdapter(List<Object> items) {
mItems = items;
}
@Override
public int getCount() {
return mItems.size();
}
@Override
public Object getItem(int position) {
return mItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getItemViewType(int position) {
return getItem(position) instanceof Item ? 0 : 1;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public boolean isEnabled(int position) {
return getItem(position) instanceof Item;
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
Object item = getItem(position);
if (item instanceof Category) {
if (v == null) {
v = getLayoutInflater().inflate(R.layout.menu_row_category,
parent, false);
}
((TextView) v).setText(((Category) item).mTitle);
} else {
if (v == null) {
v = getLayoutInflater().inflate(R.layout.menu_row_item,
parent, false);
}
TextView tv = (TextView) v;
tv.setText(((Item) item).mTitle);
tv.setCompoundDrawablesWithIntrinsicBounds(
((Item) item).mIconRes, 0, 0, 0);
}
v.setTag(R.id.mdActiveViewPosition, position);
if (position == mActivePosition) {
mMenuDrawer.setActiveView(v, position);
}
return v;
}
}
// EndDrawer-------------------------------------------------------------
}