Skip to content

Commit

Permalink
Uniformed naming of vars, made them readonly as they are instantiated…
Browse files Browse the repository at this point in the history
… in ctor.
  • Loading branch information
Cheesebaron committed Jul 10, 2012
1 parent ffa5571 commit 8adf987
Showing 1 changed file with 65 additions and 62 deletions.
127 changes: 65 additions & 62 deletions MonoDroid.ActionBar/ActionBar/ActionBar.cs
Expand Up @@ -34,19 +34,19 @@ namespace MonoDroid.ActionBarSample
{
public class ActionBar : RelativeLayout, View.IOnClickListener, View.IOnLongClickListener
{
private LayoutInflater mInflater;
private RelativeLayout mBarView;
private ImageView mLogoView;
private View mBackIndicator;
private TextView mTitleView;
private LinearLayout mActionsView;
private ImageButton mHomeBtn;
private RelativeLayout mHomeLayout;
private ProgressBar mProgress;
private RelativeLayout mTitleLayout;
private Context m_Context;
private OverflowActionBarAction m_OverflowAction;
private bool m_HasMenuButton;
private readonly LayoutInflater m_Inflater;
private readonly RelativeLayout m_BarView;
private readonly ImageView m_LogoView;
private readonly View m_BackIndicator;
private readonly TextView m_TitleView;
private readonly LinearLayout m_ActionsView;
private readonly ImageButton m_HomeBtn;
private readonly RelativeLayout m_HomeLayout;
private readonly ProgressBar m_Progress;
private readonly RelativeLayout m_TitleLayout;
private readonly Context m_Context;
private readonly OverflowActionBarAction m_OverflowAction;
private readonly bool m_HasMenuButton;


//Used to track what we need to hide in the pop up menu.
Expand All @@ -59,32 +59,35 @@ public ActionBar(Context context, IAttributeSet attrs)
: base(context, attrs)
{
m_Context = context;
mInflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
m_Inflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);

mBarView = (RelativeLayout)mInflater.Inflate(Resource.Layout.ActionBar, null);
AddView(mBarView);
m_BarView = (RelativeLayout)m_Inflater.Inflate(Resource.Layout.ActionBar, null);
AddView(m_BarView);

mLogoView = mBarView.FindViewById<ImageView>(Resource.Id.actionbar_home_logo);
mHomeLayout = mBarView.FindViewById<RelativeLayout>(Resource.Id.actionbar_home_bg);
mHomeBtn = mBarView.FindViewById<ImageButton>(Resource.Id.actionbar_home_btn);
mBackIndicator = mBarView.FindViewById(Resource.Id.actionbar_home_is_back);
m_LogoView = m_BarView.FindViewById<ImageView>(Resource.Id.actionbar_home_logo);
m_HomeLayout = m_BarView.FindViewById<RelativeLayout>(Resource.Id.actionbar_home_bg);
m_HomeBtn = m_BarView.FindViewById<ImageButton>(Resource.Id.actionbar_home_btn);
m_BackIndicator = m_BarView.FindViewById(Resource.Id.actionbar_home_is_back);

mTitleView = mBarView.FindViewById<TextView>(Resource.Id.actionbar_title);
mActionsView = mBarView.FindViewById<LinearLayout>(Resource.Id.actionbar_actions);

mProgress = mBarView.FindViewById<ProgressBar>(Resource.Id.actionbar_progress);
mTitleLayout = mBarView.FindViewById<RelativeLayout>(Resource.Id.actionbar_title_layout);
TypedArray a = context.ObtainStyledAttributes(attrs,
Resource.Styleable.ActionBar);

m_OverflowAction = new OverflowActionBarAction(context);
string title = a.GetString(Resource.Styleable.ActionBar_title);
m_TitleView = m_BarView.FindViewById<TextView>(Resource.Id.actionbar_title);
m_ActionsView = m_BarView.FindViewById<LinearLayout>(Resource.Id.actionbar_actions);

m_Progress = m_BarView.FindViewById<ProgressBar>(Resource.Id.actionbar_progress);
m_TitleLayout = m_BarView.FindViewById<RelativeLayout>(Resource.Id.actionbar_title_layout);

//check if pre-honeycomb. Ideally here you would actually want to check if a menu button exists.
//however on all pre-honeycomb phones they basically did.
var currentapiVersion = (int)Build.VERSION.SdkInt;
m_HasMenuButton = currentapiVersion <= 10;

m_OverflowAction = new OverflowActionBarAction(context);

//Custom Attributes
var a = context.ObtainStyledAttributes(attrs,
Resource.Styleable.ActionBar);

var title = a.GetString(Resource.Styleable.ActionBar_title);

if (title != null)
{
SetTitle(title);
Expand All @@ -94,16 +97,16 @@ public ActionBar(Context context, IAttributeSet attrs)

public void SetHomeAction(ActionBarAction action)
{
mHomeBtn.SetOnClickListener(this);
mHomeBtn.Tag = action;
mHomeBtn.SetImageResource(action.GetDrawable());
mHomeLayout.Visibility = ViewStates.Visible;
((RelativeLayout.LayoutParams)mTitleLayout.LayoutParameters).AddRule(LayoutRules.RightOf, Resource.Id.actionbar_home_bg);
m_HomeBtn.SetOnClickListener(this);
m_HomeBtn.Tag = action;
m_HomeBtn.SetImageResource(action.GetDrawable());
m_HomeLayout.Visibility = ViewStates.Visible;
((RelativeLayout.LayoutParams)m_TitleLayout.LayoutParameters).AddRule(LayoutRules.RightOf, Resource.Id.actionbar_home_bg);
}

public void ClearHomeAction()
{
mHomeLayout.Visibility = ViewStates.Gone;
m_HomeLayout.Visibility = ViewStates.Gone;
}


Expand All @@ -118,10 +121,10 @@ public void ClearHomeAction()
public void SetHomeLogo(int resId)
{
// TODO: Add possibility to add an IntentAction as well.
mLogoView.SetImageResource(resId);
mLogoView.Visibility = ViewStates.Visible;
mHomeLayout.Visibility = ViewStates.Gone;
((RelativeLayout.LayoutParams)mTitleLayout.LayoutParameters).AddRule(LayoutRules.RightOf, Resource.Id.actionbar_home_logo);
m_LogoView.SetImageResource(resId);
m_LogoView.Visibility = ViewStates.Visible;
m_HomeLayout.Visibility = ViewStates.Gone;
((RelativeLayout.LayoutParams)m_TitleLayout.LayoutParameters).AddRule(LayoutRules.RightOf, Resource.Id.actionbar_home_logo);
}

/// <summary>
Expand All @@ -132,26 +135,26 @@ public void SetHomeLogo(int resId)
/// <param name="show"></param>
public void SetDisplayHomeAsUpEnabled(bool show)
{
mBackIndicator.Visibility = show ? ViewStates.Visible : ViewStates.Gone;
m_BackIndicator.Visibility = show ? ViewStates.Visible : ViewStates.Gone;
}

public void SetTitle(string title)
{
mTitleView.Text = title;
m_TitleView.Text = title;
}

public void SetTitle(int resid)
{
mTitleView.SetText(resid);
m_TitleView.SetText(resid);
}

/// <summary>
/// The visibility of the circular progress bar in the Action Bar
/// </summary>
public ViewStates ProgressBarVisibility
{
get { return mProgress.Visibility; }
set { mProgress.Visibility = value; }
get { return m_Progress.Visibility; }
set { m_Progress.Visibility = value; }
}

/// <summary>
Expand All @@ -160,7 +163,7 @@ public ViewStates ProgressBarVisibility
/// <param name="listener"></param>
public void SetOnTitleClickListener(IOnClickListener listener)
{
mTitleView.SetOnClickListener(listener);
m_TitleView.SetOnClickListener(listener);
}

public void OnClick(View v)
Expand Down Expand Up @@ -191,7 +194,7 @@ public void AddActions(ActionBarUtils.ActionList actionList)
/// <param name="action">Action to add.</param>
public void AddAction(ActionBarAction action)
{
AddAction(action, mActionsView.ChildCount);
AddAction(action, m_ActionsView.ChildCount);
}

/// <summary>
Expand All @@ -200,8 +203,8 @@ public void AddAction(ActionBarAction action)
/// <param name="action">Action to add.</param>
public void AddOverflowAction(ActionBarAction action)
{
var index = mActionsView.ChildCount;
mActionsView.AddView(InflateOverflowAction(action), index);
var index = m_ActionsView.ChildCount;
m_ActionsView.AddView(InflateOverflowAction(action), index);
m_OverflowAction.Index = index;
}

Expand Down Expand Up @@ -231,7 +234,7 @@ public void AddAction(ActionBarAction action, int index)

hideAction = true;

mActionsView.AddView(InflateAction(action), index);
m_ActionsView.AddView(InflateAction(action), index);
}

//simply put it in the menu items to hide if we are a menu item.
Expand All @@ -248,7 +251,7 @@ public void AddAction(ActionBarAction action, int index)
/// </summary>
public void RemoveAllActions()
{
mActionsView.RemoveAllViews();
m_ActionsView.RemoveAllViews();
MenuItemsToHide.Clear();
}

Expand All @@ -260,11 +263,11 @@ public void RemoveActionAt(int index)
{
if (index < 1) return;

var menuItemAction = mActionsView.GetChildAt(index).Tag as MenuItemActionBarAction;
var menuItemAction = m_ActionsView.GetChildAt(index).Tag as MenuItemActionBarAction;
if (menuItemAction != null)
MenuItemsToHide.Remove(menuItemAction.MenuItemId);

mActionsView.RemoveViewAt(index);
m_ActionsView.RemoveViewAt(index);
}

/// <summary>
Expand All @@ -273,9 +276,9 @@ public void RemoveActionAt(int index)
/// <param name="id">position of action to remove</param>
public void RemoveActionAtMenuId(int id)
{
for (var i = 0; i < mActionsView.ChildCount; i++)
for (var i = 0; i < m_ActionsView.ChildCount; i++)
{
var view = mActionsView.GetChildAt(i);
var view = m_ActionsView.GetChildAt(i);

if (view == null) continue;

Expand All @@ -286,15 +289,15 @@ public void RemoveActionAtMenuId(int id)

MenuItemsToHide.Remove(actionBarAction.MenuItemId);

mActionsView.RemoveView(view);
m_ActionsView.RemoveView(view);
}
}

public int ActionCount
{
get
{
return mActionsView.ChildCount;
return m_ActionsView.ChildCount;
}
}

Expand All @@ -304,9 +307,9 @@ public int ActionCount
/// <param name="action">The action to remove</param>
public void RemoveAction(ActionBarAction action)
{
for (var i = 0; i < mActionsView.ChildCount; i++)
for (var i = 0; i < m_ActionsView.ChildCount; i++)
{
var view = mActionsView.GetChildAt(i);
var view = m_ActionsView.GetChildAt(i);

if (view == null) continue;

Expand All @@ -319,7 +322,7 @@ public void RemoveAction(ActionBarAction action)
if (menuItemAction != null)
MenuItemsToHide.Remove(menuItemAction.MenuItemId);

mActionsView.RemoveView(view);
m_ActionsView.RemoveView(view);
}
}

Expand All @@ -331,7 +334,7 @@ public void RemoveAction(ActionBarAction action)
/// <returns>a view</returns>
private View InflateAction(ActionBarAction action)
{
var view = mInflater.Inflate(Resource.Layout.ActionBar_Item, mActionsView, false);
var view = m_Inflater.Inflate(Resource.Layout.ActionBar_Item, m_ActionsView, false);

var labelView =
view.FindViewById<ImageButton>(Resource.Id.actionbar_item);
Expand All @@ -345,7 +348,7 @@ private View InflateAction(ActionBarAction action)

private View InflateOverflowAction(ActionBarAction action)
{
var view = mInflater.Inflate(Resource.Layout.OverflowActionBar_Item, mActionsView, false);
var view = m_Inflater.Inflate(Resource.Layout.OverflowActionBar_Item, m_ActionsView, false);

var labelView =
view.FindViewById<ImageButton>(Resource.Id.actionbar_item);
Expand Down

0 comments on commit 8adf987

Please sign in to comment.