Move methods to helper

pull/30/head
Alinson S. Xavier 10 years ago
parent 8a60dda74e
commit ced5b751be

@ -1,7 +1,6 @@
package org.isoron.uhabits.fragments;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -22,7 +21,6 @@ class HabitListAdapter extends BaseAdapter
private final int buttonCount;
private final int tvNameWidth;
private LayoutInflater inflater;
private Typeface fontawesome;
private HabitListLoader loader;
private ListHabitsHelper helper;
private List selectedPositions;
@ -34,7 +32,6 @@ class HabitListAdapter extends BaseAdapter
this.loader = loader;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
fontawesome = Typeface.createFromAsset(context.getAssets(), "fontawesome-webfont.ttf");
helper = new ListHabitsHelper(context, loader);
buttonCount = helper.getButtonCount();
@ -67,13 +64,14 @@ class HabitListAdapter extends BaseAdapter
if (view == null || (Long) view.getTag(R.id.timestamp_key) != DateHelper.getStartOfToday())
{
view = inflater.inflate(R.layout.list_habits_item, null);
((TextView) view.findViewById(R.id.tvStar)).setTypeface(fontawesome);
((TextView) view.findViewById(R.id.tvStar)).setTypeface(helper.getFontawesome());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(tvNameWidth,
LinearLayout.LayoutParams.WRAP_CONTENT, 1);
view.findViewById(R.id.label).setLayoutParams(params);
inflateCheckmarkButtons(view);
helper.inflateCheckmarkButtons(view, onCheckmarkLongClickListener,
onCheckmarkClickListener, inflater);
view.setTag(R.id.timestamp_key, DateHelper.getStartOfToday());
}
@ -89,30 +87,11 @@ class HabitListAdapter extends BaseAdapter
helper.updateCheckmarkButtons(habit, llButtons);
boolean selected = selectedPositions.contains(position);
if (selected) llInner.setBackgroundResource(R.drawable.selected_box);
else
{
if (android.os.Build.VERSION.SDK_INT >= 21)
llInner.setBackgroundResource(R.drawable.ripple_white);
else llInner.setBackgroundResource(R.drawable.card_background);
}
helper.updateHabitBackground(llInner, selected);
return view;
}
private void inflateCheckmarkButtons(View view)
{
for (int i = 0; i < buttonCount; i++)
{
View check = inflater.inflate(R.layout.list_habits_item_check, null);
TextView btCheck = (TextView) check.findViewById(R.id.tvCheck);
btCheck.setTypeface(fontawesome);
btCheck.setOnLongClickListener(onCheckmarkLongClickListener);
btCheck.setOnClickListener(onCheckmarkClickListener);
((LinearLayout) view.findViewById(R.id.llButtons)).addView(check);
}
}
public void setSelectedPositions(List selectedPositions)
{
this.selectedPositions = selectedPositions;

@ -2,7 +2,10 @@ package org.isoron.uhabits.helpers;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
@ -18,11 +21,19 @@ public class ListHabitsHelper
private final Context context;
private final HabitListLoader loader;
private Typeface fontawesome;
public ListHabitsHelper(Context context, HabitListLoader loader)
{
this.context = context;
this.loader = loader;
fontawesome = Typeface.createFromAsset(context.getAssets(), "fontawesome-webfont.ttf");
}
public Typeface getFontawesome()
{
return fontawesome;
}
public int getButtonCount()
@ -124,4 +135,30 @@ public class ListHabitsHelper
break;
}
}
public void updateHabitBackground(View view, boolean isSelected)
{
if (isSelected)
view.setBackgroundResource(R.drawable.selected_box);
else
{
if (android.os.Build.VERSION.SDK_INT >= 21)
view.setBackgroundResource(R.drawable.ripple_white);
else view.setBackgroundResource(R.drawable.card_background);
}
}
public void inflateCheckmarkButtons(View view, View.OnLongClickListener onLongClickListener,
View.OnClickListener onClickListener, LayoutInflater inflater)
{
for (int i = 0; i < getButtonCount(); i++)
{
View check = inflater.inflate(R.layout.list_habits_item_check, null);
TextView btCheck = (TextView) check.findViewById(R.id.tvCheck);
btCheck.setTypeface(fontawesome);
btCheck.setOnLongClickListener(onLongClickListener);
btCheck.setOnClickListener(onClickListener);
((LinearLayout) view.findViewById(R.id.llButtons)).addView(check);
}
}
}

Loading…
Cancel
Save