/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.fragments;
import java.util.ArrayList;
import java.util.List;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.ActionProvider;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import com.galaxy.meetup.client.android.Intents;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.android.analytics.OzViews;
import com.galaxy.meetup.client.android.content.EsAccount;
import com.galaxy.meetup.client.android.service.EsService;
import com.galaxy.meetup.client.android.ui.activity.BaseActivity;
import com.galaxy.meetup.client.util.EsLog;
/**
*
* @author sihai
*
*/
public abstract class EsFragmentActivity extends BaseActivity {
private boolean mHideTitleBar;
private final MenuItem mMenuItems[] = new MenuItem[3];
private final View.OnClickListener mTitleClickListener = new TitleClickListener();
public EsFragmentActivity() {
}
private static MenuItem getVisibleItem(Menu menu, int i) {
// TODO
return null;
}
private void setupTitleButton1(MenuItem menuitem)
{
ImageButton imagebutton = (ImageButton)findViewById(R.id.title_button_1);
if(menuitem != null)
{
imagebutton.setImageDrawable(menuitem.getIcon());
imagebutton.setVisibility(0);
imagebutton.setEnabled(menuitem.isEnabled());
imagebutton.setOnClickListener(mTitleClickListener);
imagebutton.setContentDescription(menuitem.getTitle());
} else
{
imagebutton.setVisibility(8);
}
mMenuItems[0] = menuitem;
}
private void setupTitleButton2(MenuItem menuitem)
{
ImageButton imagebutton = (ImageButton)findViewById(R.id.title_button_2);
if(menuitem != null)
{
imagebutton.setImageDrawable(menuitem.getIcon());
imagebutton.setVisibility(0);
imagebutton.setEnabled(menuitem.isEnabled());
imagebutton.setOnClickListener(mTitleClickListener);
imagebutton.setContentDescription(menuitem.getTitle());
} else
{
imagebutton.setVisibility(8);
}
mMenuItems[1] = menuitem;
}
private void setupTitleButton3(MenuItem menuitem)
{
Button button = (Button)findViewById(R.id.title_button_3);
if(menuitem != null)
{
button.setCompoundDrawablesWithIntrinsicBounds(menuitem.getIcon(), null, null, null);
button.setVisibility(0);
button.setEnabled(menuitem.isEnabled());
button.setOnClickListener(mTitleClickListener);
button.setContentDescription(menuitem.getTitle());
CharSequence charsequence = getTitleButton3Text();
if(!TextUtils.isEmpty(charsequence))
{
android.view.ViewGroup.LayoutParams layoutparams = button.getLayoutParams();
layoutparams.width = -2;
button.setLayoutParams(layoutparams);
button.setText(charsequence);
button.setPadding(10, 0, 10, 0);
}
} else
{
button.setVisibility(8);
}
mMenuItems[2] = menuitem;
}
public final void createTitlebarButtons(int i) {
TitleMenu titlemenu;
setupTitleButton1(null);
setupTitleButton2(null);
setupTitleButton3(null);
titlemenu = new TitleMenu(this);
getMenuInflater().inflate(i, titlemenu);
onPrepareTitlebarButtons(titlemenu);
int j = 0;
for(int k = 0; k < titlemenu.size(); k++)
if(titlemenu.getItem(k).isVisible())
j++;
switch(j) {
case 0:
break;
case 1:
setupTitleButton3(getVisibleItem(titlemenu, 0));
break;
case 2:
setupTitleButton2(getVisibleItem(titlemenu, 0));
setupTitleButton3(getVisibleItem(titlemenu, 1));
break;
case 3:
setupTitleButton1(getVisibleItem(titlemenu, 0));
setupTitleButton2(getVisibleItem(titlemenu, 1));
setupTitleButton3(getVisibleItem(titlemenu, 2));
break;
default:
Log.e("EsFragmentActivity", (new StringBuilder("Maximum title buttons is 3. You have ")).append(j).append(" visible menu items").toString());
break;
}
}
protected CharSequence getTitleButton3Text()
{
return null;
}
protected final void goHome(EsAccount esaccount)
{
Intent intent = getIntent();
if(null == intent) {
onBackPressed();
return;
}
Bundle bundle = intent.getExtras();
if(bundle == null || !bundle.containsKey("notif_id") || bundle.getString("notif_id") == null)
onBackPressed();
else {
Intent intent1 = Intents.getHostNavigationActivityIntent(this, esaccount);
intent1.addFlags(0x4000000);
startActivity(intent1);
finish();
return;
}
}
protected final boolean isIntentAccountActive()
{
EsAccount esaccount = (EsAccount)getIntent().getParcelableExtra("account");
boolean flag = false;
if(esaccount != null)
if(!esaccount.equals(EsService.getActiveAccount(this)))
{
boolean flag1 = EsLog.isLoggable("EsFragmentActivity", 6);
flag = false;
if(flag1)
Log.e("EsFragmentActivity", (new StringBuilder("Activity finished because it is associated with a signed-out account: ")).append(getClass().getName()).toString());
} else
{
flag = true;
}
return flag;
}
protected void onPrepareTitlebarButtons(Menu menu)
{
}
protected void onTitlebarLabelClick()
{
}
protected final void setTitlebarSubtitle(String s)
{
TextView textview = (TextView)findViewById(R.id.titlebar_label_2);
if(s == null)
{
textview.setVisibility(8);
} else
{
textview.setVisibility(0);
textview.setText(s);
textview.setClickable(true);
textview.setOnClickListener(mTitleClickListener);
}
}
protected final void setTitlebarTitle(String s)
{
TextView textview = (TextView)findViewById(R.id.titlebar_label);
textview.setText(s);
textview.setClickable(true);
textview.setOnClickListener(mTitleClickListener);
}
protected final void showTitlebar(boolean flag)
{
showTitlebar(false, flag);
}
protected void showTitlebar(boolean flag, boolean flag1)
{
View view = findViewById(R.id.title_layout);
if(view.getVisibility() != 0)
{
mHideTitleBar = false;
Animation animation = view.getAnimation();
if(animation != null)
animation.cancel();
if(flag)
view.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in));
View view1 = view.findViewById(R.id.titlebar_up);
int i;
View view2;
if(flag1)
i = 0;
else
i = 8;
view1.setVisibility(i);
view2 = view.findViewById(R.id.titlebar_icon_layout);
if(flag1)
{
view2.setOnClickListener(mTitleClickListener);
view2.setContentDescription(getString(R.string.nav_up_content_description));
} else
{
view2.setBackgroundColor(0);
}
view.setVisibility(0);
}
}
@Override
public OzViews getViewForLogging() {
// TODO Auto-generated method stub
return null;
}
//===========================================================================
// Inner class
//===========================================================================
private final class TitleClickListener implements View.OnClickListener {
public final void onClick(View view) {
int i = view.getId();
if(i != R.id.titlebar_icon_layout && i != R.id.titlebar_label && i != R.id.titlebar_label_2) {
if(i == R.id.title_button_1) {
if(mMenuItems[0] != null)
onOptionsItemSelected(mMenuItems[0]);
} else if(i == R.id.title_button_2) {
if(mMenuItems[1] != null)
onOptionsItemSelected(mMenuItems[1]);
} else {
if(i == R.id.title_button_3 && mMenuItems[2] != null)
onOptionsItemSelected(mMenuItems[2]);
}
} else {
onTitlebarLabelClick();
}
}
}
private static final class TitleMenu implements Menu {
private final Context mContext;
private final List<TitleMenuItem> mItems = new ArrayList<TitleMenuItem>();
public TitleMenu(Context context)
{
mContext = context;
}
public final MenuItem add(int i) {
TitleMenuItem titlemenuitem = new TitleMenuItem(mContext, 0, i);
mItems.add(titlemenuitem);
return titlemenuitem;
}
public final MenuItem add(int i, int j, int k, int l)
{
TitleMenuItem titlemenuitem = new TitleMenuItem(mContext, j, l);
mItems.add(titlemenuitem);
return titlemenuitem;
}
public final MenuItem add(int i, int j, int k, CharSequence charsequence)
{
TitleMenuItem titlemenuitem = new TitleMenuItem(mContext, j, charsequence);
mItems.add(titlemenuitem);
return titlemenuitem;
}
public final MenuItem add(CharSequence charsequence)
{
TitleMenuItem titlemenuitem = new TitleMenuItem(mContext, 0, charsequence);
mItems.add(titlemenuitem);
return titlemenuitem;
}
public final int addIntentOptions(int i, int j, int k, ComponentName componentname, Intent aintent[], Intent intent, int l,
MenuItem amenuitem[])
{
return 0;
}
public final SubMenu addSubMenu(int i)
{
return null;
}
public final SubMenu addSubMenu(int i, int j, int k, int l)
{
return null;
}
public final SubMenu addSubMenu(int i, int j, int k, CharSequence charsequence)
{
return null;
}
public final SubMenu addSubMenu(CharSequence charsequence)
{
return null;
}
public final void clear()
{
mItems.clear();
}
public final void close()
{
}
public final MenuItem findItem(int i) {
for(TitleMenuItem titlemenuitem : mItems) {
if(titlemenuitem.getItemId() == i) {
return titlemenuitem;
}
}
return null;
}
public final MenuItem getItem(int i)
{
return (MenuItem)mItems.get(i);
}
public final boolean hasVisibleItems()
{
return false;
}
public final boolean isShortcutKey(int i, KeyEvent keyevent)
{
return false;
}
public final boolean performIdentifierAction(int i, int j)
{
return false;
}
public final boolean performShortcut(int i, KeyEvent keyevent, int j)
{
return false;
}
public final void removeGroup(int i)
{
}
public final void removeItem(int i)
{
}
public final void setGroupCheckable(int i, boolean flag, boolean flag1)
{
}
public final void setGroupEnabled(int i, boolean flag)
{
}
public final void setGroupVisible(int i, boolean flag)
{
}
public final void setQwertyMode(boolean flag)
{
}
public final int size()
{
return mItems.size();
}
}
private static final class TitleMenuItem implements MenuItem {
private int mActionEnum;
private boolean mEnabled;
private Drawable mIcon;
private final int mItemId;
private final Resources mResources;
private CharSequence mTitle;
private boolean mVisible;
public TitleMenuItem(Context context, int i, int j)
{
mResources = context.getResources();
mTitle = mResources.getString(j);
mItemId = i;
}
public TitleMenuItem(Context context, int i, CharSequence charsequence)
{
mResources = context.getResources();
mTitle = charsequence;
mItemId = i;
}
public final boolean collapseActionView()
{
return false;
}
public final boolean expandActionView()
{
return false;
}
public final ActionProvider getActionProvider()
{
return null;
}
public final View getActionView()
{
return null;
}
public final char getAlphabeticShortcut()
{
return '\0';
}
public final int getGroupId()
{
return 0;
}
public final Drawable getIcon()
{
return mIcon;
}
public final Intent getIntent()
{
return null;
}
public final int getItemId()
{
return mItemId;
}
public final android.view.ContextMenu.ContextMenuInfo getMenuInfo()
{
return null;
}
public final char getNumericShortcut()
{
return '\0';
}
public final int getOrder()
{
return 0;
}
public final SubMenu getSubMenu()
{
return null;
}
public final CharSequence getTitle()
{
return mTitle;
}
public final CharSequence getTitleCondensed()
{
return null;
}
public final boolean hasSubMenu()
{
return false;
}
public final boolean isActionViewExpanded()
{
return false;
}
public final boolean isCheckable()
{
return false;
}
public final boolean isChecked()
{
return false;
}
public final boolean isEnabled()
{
return mEnabled;
}
public final boolean isVisible()
{
return mVisible;
}
public final MenuItem setActionProvider(ActionProvider actionprovider)
{
return null;
}
public final MenuItem setActionView(int i)
{
return this;
}
public final MenuItem setActionView(View view)
{
return this;
}
public final MenuItem setAlphabeticShortcut(char c)
{
return this;
}
public final MenuItem setCheckable(boolean flag)
{
return this;
}
public final MenuItem setChecked(boolean flag)
{
return this;
}
public final MenuItem setEnabled(boolean flag)
{
mEnabled = flag;
return this;
}
public final MenuItem setIcon(int i)
{
if(i != 0)
mIcon = mResources.getDrawable(i);
return this;
}
public final MenuItem setIcon(Drawable drawable)
{
mIcon = drawable;
return this;
}
public final MenuItem setIntent(Intent intent)
{
return this;
}
public final MenuItem setNumericShortcut(char c)
{
return this;
}
public final MenuItem setOnActionExpandListener(android.view.MenuItem.OnActionExpandListener onactionexpandlistener)
{
return null;
}
public final MenuItem setOnMenuItemClickListener(android.view.MenuItem.OnMenuItemClickListener onmenuitemclicklistener)
{
return this;
}
public final MenuItem setShortcut(char c, char c1)
{
return this;
}
public final void setShowAsAction(int i)
{
mActionEnum = i;
}
public final MenuItem setShowAsActionFlags(int i)
{
return null;
}
public final MenuItem setTitle(int i)
{
mTitle = mResources.getString(i);
return this;
}
public final MenuItem setTitle(CharSequence charsequence)
{
mTitle = charsequence;
return this;
}
public final MenuItem setTitleCondensed(CharSequence charsequence)
{
return this;
}
public final MenuItem setVisible(boolean flag)
{
mVisible = flag;
return this;
}
}
}