package com.jug6ernaut.debugdrawer;

import android.animation.LayoutTransition;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.jug6ernaut.debugdrawer.views.ExpandableView;
import timber.log.Timber;

import static com.jug6ernaut.debugdrawer.utils.ViewUtils.findById;

public final class DebugView extends FrameLayout {

	public final View         contextualTitleView;
	public final LinearLayout contextualListView;

	public DebugView(Context context) {
		this(context, null);
	}

	public DebugView(Context context, AttributeSet attrs) {
		super(context, attrs);

		// Inflate all of the controls and inject them.
		LayoutInflater.from(context).inflate(R.layout.debug_view_content, this);
		contextualTitleView = findById(this, R.id.debug_contextual_title);
		contextualListView = findById(this, R.id.debug_contextual_list);

		enableLayoutTransitions(contextualListView);

		((ImageView) findById(this, R.id.debug_icon)).setImageResource(context.getApplicationInfo().icon);
	}

	public void addView(final ExpandableView expandableView) {
		contextualListView.addView(expandableView);
//		contextualListView.addDragView(expandableView, expandableView); TODO: explore reordering
	}

	@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
	private static void enableLayoutTransitions(ViewGroup viewGroup) {
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
			// Remove the status bar color. The DrawerLayout is responsible for drawing it from now on.
			LayoutTransition lt = new LayoutTransition();
			lt.enableTransitionType(LayoutTransition.CHANGING);
			viewGroup.setLayoutTransition(lt);
		} else {
			Timber.w("Error enabling LayoutTransitions, only supported for API14+.");
		}
	}
}