package com.socialize.ui.view;
import android.content.Context;
import android.graphics.Color;
import android.util.TypedValue;
import android.view.Gravity;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.socialize.i18n.I18NConstants;
import com.socialize.i18n.LocalizationService;
import com.socialize.ui.util.Colors;
import com.socialize.util.DisplayUtils;
import com.socialize.view.BaseView;
/**
* Renders a simple loading spinner.
* @author jasonpolites
*
*/
public class ListItemLoadingView extends BaseView {
private LocalizationService localizationService;
private DisplayUtils displayUtils;
private Colors colors;
public ListItemLoadingView(Context context) {
super(context);
}
public void init() {
int padding = displayUtils.getDIP(4);
ListView.LayoutParams masterParams = new ListView.LayoutParams(ListView.LayoutParams.FILL_PARENT, displayUtils.getDIP(48));
setBackgroundColor(colors.getColor(Colors.LOADING_ITEM_BG));
setLayoutParams(masterParams);
setOrientation(HORIZONTAL);
ProgressBar progress = new ProgressBar(getContext(), null, android.R.attr.progressBarStyleSmall);
progress.setPadding(padding, padding, padding, padding);
TextView text = new TextView(getContext());
text.setTextColor(Color.GRAY);
text.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
text.setText(localizationService.getString(I18NConstants.LOADING));
text.setPadding(0, padding, padding, padding);
LayoutParams progressLayoutParams = new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
progressLayoutParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
progressLayoutParams.weight = 0.0f;
LayoutParams textParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
textParams.gravity = Gravity.LEFT | Gravity.CENTER_VERTICAL;
textParams.weight = 1.0f;
textParams.setMargins(0, 0, 0, 0);
setLayoutParams(masterParams);
progress.setLayoutParams(progressLayoutParams);
text.setLayoutParams(textParams);
text.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
addView(progress);
addView(text);
}
public DisplayUtils getDisplayUtils() {
return displayUtils;
}
public void setDisplayUtils(DisplayUtils deviceUtils) {
this.displayUtils = deviceUtils;
}
public Colors getColors() {
return colors;
}
public void setColors(Colors colors) {
this.colors = colors;
}
public void setLocalizationService(LocalizationService localizationService) {
this.localizationService = localizationService;
}
}