package edu.mit.mitmobile2;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class TitleBar extends LinearLayout {
protected TextView mTextView;
protected View mLeftArrow;
protected View mRightArrow;
protected View mBackButton;
protected View mSubtitleLeftArrow;
protected View mSubtitleRightArrow;
protected TextView mSubtitleTextView;
protected View mSubtitleTitleBar;
protected boolean mHasSubtitle = false;
public TitleBar(final Context context, AttributeSet attributeSet) {
super(context, attributeSet);
LayoutInflater inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflator.inflate(R.layout.title_bar, this);
mTextView = (TextView) findViewById(R.id.titleBarTV);
mLeftArrow = findViewById(R.id.titleBarLeftArrow);
mRightArrow = findViewById(R.id.titleBarRightArrow);
mBackButton = findViewById(R.id.titleBarBackButton);
mSubtitleLeftArrow = findViewById(R.id.titleBarSubtitleLeftArrow);
mSubtitleRightArrow = findViewById(R.id.titleBarSubtitleRightArrow);
mSubtitleTextView = (TextView) findViewById(R.id.titleBarSubtitleTV);
mSubtitleTitleBar = findViewById(R.id.titleBarSubtitleBar);
ImageView backgroundView = (ImageView) findViewById(R.id.titleBarBackgrooundIV);
int height = backgroundView.getDrawable().getIntrinsicHeight();
LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, height);
RelativeLayout titleWrapper = (RelativeLayout) findViewById(R.id.titleWrapper);
titleWrapper.setLayoutParams(params);
String initialText = attributeSet.getAttributeValue("http://schemas.android.com/apk/res/android", "text");
if(initialText != null) {
setTitle(initialText);
}
findViewById(R.id.titleBarHomeButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
HomeScreenActivity.goHome(context);
}
});
}
public void enableBackButtonListener(View.OnClickListener listener) {
mBackButton.setVisibility(VISIBLE);
mBackButton.setOnClickListener(listener);
}
public void setTitle(String text) {
mTextView.setText(text);
}
public void useSubtitleBar() {
mHasSubtitle = true;
mSubtitleTitleBar.setVisibility(VISIBLE);
}
public boolean getHasSubtitle() {
return mHasSubtitle;
}
public void setSubtitle(String subtitle) {
mSubtitleTextView.setText(subtitle);
}
public void showArrows() {
if(!mHasSubtitle) {
mLeftArrow.setVisibility(VISIBLE);
mRightArrow.setVisibility(VISIBLE);
} else {
mSubtitleLeftArrow.setVisibility(VISIBLE);
mSubtitleRightArrow.setVisibility(VISIBLE);
}
}
public void setLeftArrowEnabled(boolean enabled) {
if(!mHasSubtitle) {
mLeftArrow.setEnabled(enabled);
} else {
mSubtitleLeftArrow.setEnabled(enabled);
}
}
public void setRightArrowEnable(boolean enabled) {
if(!mHasSubtitle) {
mRightArrow.setEnabled(enabled);
} else {
mSubtitleRightArrow.setEnabled(enabled);
}
}
public void setOnArrowListener(final OnArrowListener arrowListener) {
mLeftArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
arrowListener.onLeftArrow();
}
});
mSubtitleLeftArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
arrowListener.onLeftArrow();
}
});
mRightArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
arrowListener.onRightArrow();
}
});
mSubtitleRightArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
arrowListener.onRightArrow();
}
});
}
public static interface OnArrowListener {
public void onRightArrow();
public void onLeftArrow();
}
}