package com.sunlightlabs.android.congress.utils;
import android.app.Activity;
import android.content.Intent;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.sunlightlabs.android.congress.MenuMain;
import com.sunlightlabs.android.congress.R;
public class ActionBarUtils {
private static boolean popupMenu = false;
static {
try {
PopupMenuWrapper.checkAvailable();
popupMenu = true;
} catch (Throwable t) {
popupMenu = false;
}
}
public interface HasActionMenu {
public void menuSelected(MenuItem item);
}
public static void setTitle(Activity activity, String title) {
setTitle(activity, title, new Intent(activity, MenuMain.class)); // default intent is home
}
public static void setTitle(Activity activity, int title) {
setTitle(activity, activity.getResources().getString(title));
}
public static void setTitle(Activity activity, int title, Intent up) {
setTitle(activity, activity.getResources().getString(title), up);
}
public static void setTitle(Activity activity, String title, Intent up) {
((TextView) activity.findViewById(R.id.title_text)).setText(title);
if (up != null) // send a null up intent to disable up button
setTitleButton(activity, up);
}
public static void setTitleButton(final Activity activity, final Intent up) {
View button = activity.findViewById(R.id.title_button);
button.findViewById(R.id.title_up_icon).setVisibility(View.VISIBLE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
activity.startActivity(up.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
}
});
button.setFocusable(true);
}
public static void setTitleSize(Activity activity, float size) {
((TextView) activity.findViewById(R.id.title_text)).setTextSize(size);
}
public static void setActionButton(Activity activity, int id, int icon, View.OnClickListener listener) {
ViewGroup button = (ViewGroup) activity.findViewById(id);
button.setOnClickListener(listener);
((ImageView) button.findViewById(R.id.icon)).setImageResource(icon);
button.setVisibility(View.VISIBLE);
}
public static void setActionIcon(Activity activity, int id, int icon) {
ViewGroup button = (ViewGroup) activity.findViewById(id);
((ImageView) button.findViewById(R.id.icon)).setImageResource(icon);
}
public static void setActionMenu(final Activity activity, int menuId) {
if (popupMenu) {
View menuView = activity.findViewById(R.id.action_menu);
final PopupMenuWrapper menu = new PopupMenuWrapper(activity, menuView);
menu.inflate(menuId);
menu.setOnMenuItemClickListener(new PopupMenuWrapper.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
((HasActionMenu) activity).menuSelected(item);
return false;
}
});
menuView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
menu.show();
}
});
menuView.setVisibility(View.VISIBLE);
} else {
// ignore
}
}
}