package edu.mit.mitmobile2.libraries;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.Toast;
import edu.mit.mitmobile2.CommonActions;
import edu.mit.mitmobile2.DividerView;
import edu.mit.mitmobile2.FullScreenLoader;
import edu.mit.mitmobile2.MITMenuItem;
import edu.mit.mitmobile2.MobileWebApi;
import edu.mit.mitmobile2.NewModule;
import edu.mit.mitmobile2.NewModuleActivity;
import edu.mit.mitmobile2.R;
import edu.mit.mitmobile2.TwoLineActionRow;
//import edu.mit.mitmobile2.libraries.LibraryModel.UserIdentity;
public class LibraryActivity extends NewModuleActivity {
private TwoLineActionRow accountRow;
private TwoLineActionRow locationRow;
private TwoLineActionRow askUsRow;
private TwoLineActionRow tellUsRow;
private FullScreenLoader mLoadingView;
private LinearLayout mLinearLayout;
private Activity mActivity;
private static String TAG = "LibraryActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG,"onCreate()");
super.onCreate(savedInstanceState);
mActivity = this;
createViews();
doSearch();
}
private void createViews() {
setContentView(R.layout.library_main);
mLinearLayout = (LinearLayout) findViewById(R.id.libraryMainLinearLayout);
accountRow = (TwoLineActionRow) findViewById(R.id.libraryAccount);
locationRow = (TwoLineActionRow) findViewById(R.id.libraryLocationHours);
askUsRow = (TwoLineActionRow) findViewById(R.id.libraryAskUs);
tellUsRow = (TwoLineActionRow) findViewById(R.id.libraryTellUs); // librarySearch
accountRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LibraryModel.getUserIdentity(mActivity, getTouchStoneHandler(mActivity, "edu.mit.mitmobile2.libraries.LibraryYourAccount"));
}
});
locationRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LibraryActivity.this, LibraryLocationAndHour.class));
}
});
askUsRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(LibraryActivity.this, AskUsTopActivity.class));
}
});
tellUsRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
LibraryModel.getUserIdentity(mActivity, getTouchStoneHandler(mActivity, "edu.mit.mitmobile2.libraries.TellUsActivity"));
}
});
mLoadingView = (FullScreenLoader) findViewById(R.id.linkLoading);
}
@Override
protected NewModule getNewModule() {
return new LibrariesModule();
}
@Override
public boolean isModuleHomeActivity() {
return true;
}
private void doSearch() {
mLinearLayout.setVisibility(View.GONE);
mLoadingView.setVisibility(View.VISIBLE);
mLoadingView.showLoading();
LibraryModel.fetchLinks(this, uiHandler);
}
private Handler uiHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
mLoadingView.setVisibility(View.GONE);
mLinearLayout.removeAllViews();
if (msg.arg1 == MobileWebApi.SUCCESS) {
@SuppressWarnings("unchecked")
final ArrayList<LinkItem> results = (ArrayList<LinkItem>) msg.obj;
if (results.size() == 0) {
Toast.makeText(LibraryActivity.this, "No links found", Toast.LENGTH_SHORT).show();
}
if (results.size() > 0) {
for (final LinkItem item : results) {
TwoLineActionRow row = new TwoLineActionRow(LibraryActivity.this);
row.setTitle(item.title);
row.setActionIconResource(R.drawable.action_external);
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommonActions.viewURL(LibraryActivity.this, item.url);
}
});
mLinearLayout.addView(row);
mLinearLayout.addView(new DividerView(LibraryActivity.this, null));
}
mLinearLayout.setVisibility(View.VISIBLE);
}
} else {
mLoadingView.showError();
}
}
};
static class LinkItem {
public String title;
public String url;
}
@Override
protected boolean isScrollable() {
return true;
}
@Override
public List<MITMenuItem> getPrimaryMenuItems() {
ArrayList<MITMenuItem> items = new ArrayList<MITMenuItem>();
items.add(new MITMenuItem("search", "Search", R.drawable.menu_search));
return items;
}
@Override
protected void onOptionSelected(String optionId) { }
}