package treehou.se.habit.ui.widgets;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import io.realm.Realm;
import se.treehou.ng.ohcommunicator.connector.models.OHWidget;
import treehou.se.habit.R;
import treehou.se.habit.core.db.settings.WidgetSettingsDB;
import treehou.se.habit.util.Util;
public class DummyWidgetFactory {
private static final String TAG = "DummyWidgetFactory";
private Context context;
public DummyWidgetFactory(Context context){
this.context = context;
}
public View createWidget(final OHWidget widget){
LayoutInflater inflater = LayoutInflater.from(context);
Realm realm = Realm.getDefaultInstance();
WidgetSettingsDB settings = WidgetSettingsDB.loadGlobal(realm);
int backgroundType = settings.getImageBackground();
float percentage = Util.toPercentage(settings.getTextSize());
float imageSizePercentage = Util.toPercentage(settings.getIconSize());
realm.close();
View itemView = inflater.inflate(R.layout.item_widget_base, null);
View baseDataHolder = itemView.findViewById(R.id.lou_base_data_holder);
TextView lblName = (TextView) itemView.findViewById(R.id.lbl_widget_name);
String label = widget.getLabel();
lblName.setTextSize(TypedValue.COMPLEX_UNIT_PX,lblName.getTextSize()*percentage);
lblName.setText(widget.getLabel());
if(label == null || label.equals("")) {
baseDataHolder.setVisibility(View.GONE);
}
View iconHolder = itemView.findViewById(R.id.img_widget_icon_holder);
ImageView imgIcon = (ImageView) itemView.findViewById(R.id.img_widget_icon);
ViewGroup.LayoutParams layoutParams = imgIcon.getLayoutParams();
layoutParams.width = (int) (((float)layoutParams.width) * imageSizePercentage);
imgIcon.setLayoutParams(layoutParams);
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_item_settings_widget);
setBackgroundColor(imgIcon, bitmap, backgroundType);
iconHolder.setVisibility(View.VISIBLE);
View holderView = inflater.inflate(R.layout.widget_container, null);
LinearLayout holder = (LinearLayout) holderView.findViewById(R.id.lou_widget_frame_holder);
holder.addView(itemView);
return holderView;
}
public void setBackgroundColor(ImageView imgIcon, Bitmap bitmap, int type){
imgIcon.setVisibility(View.VISIBLE);
imgIcon.setImageBitmap(bitmap);
int imageBackground = Util.getBackground(context, bitmap,type);
imgIcon.setBackgroundColor(imageBackground);
}
}