package com.simplecity.amp_library.ui.fragments; import android.app.Activity; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import com.simplecity.amp_library.R; import com.simplecity.amp_library.ui.activities.WidgetConfigureExtraLarge; import com.simplecity.amp_library.ui.activities.WidgetConfigureLarge; import com.simplecity.amp_library.ui.activities.WidgetConfigureMedium; import com.simplecity.amp_library.ui.activities.WidgetConfigureSmall; public class WidgetFragment extends BaseFragment { private static final String TAG = "WidgetFragment"; private static final String ARG_WIDGET_LAYOUT_ID = "widget_layout_id"; int mWidgetLayoutResId; /** * Empty constructor as per the fragment docs */ public WidgetFragment() { } /** * Creates a new instance of the {@link com.simplecity.amp_library.ui.fragments.WidgetFragment} * * @param widgetLayoutResId the id of the layout to use for the widget * @return a new instance of {@link com.simplecity.amp_library.ui.fragments.WidgetFragment} */ public WidgetFragment newInstance(int widgetLayoutResId) { WidgetFragment fragment = new WidgetFragment(); Bundle args = new Bundle(); args.putInt(ARG_WIDGET_LAYOUT_ID, widgetLayoutResId); fragment.setArguments(args); return fragment; } @Override public void onAttach(Activity activity) { super.onAttach(activity); mWidgetLayoutResId = getArguments().getInt(ARG_WIDGET_LAYOUT_ID); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_widget, container, false); FrameLayout frameLayout = (FrameLayout) inflater.inflate(mWidgetLayoutResId, null); if (mWidgetLayoutResId == R.layout.widget_layout_extra_large) { frameLayout.setScaleX(.75f); frameLayout.setScaleY(.75f); } float height; float width; FrameLayout.LayoutParams layoutParams = null; if (mWidgetLayoutResId == R.layout.widget_layout_medium || mWidgetLayoutResId == R.layout.widget_layout_medium_alt) { height = getActivity().getResources().getDimension(R.dimen.widget_medium_height); layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, (int) height); } if (mWidgetLayoutResId == R.layout.widget_layout_large || mWidgetLayoutResId == R.layout.widget_layout_large_alt) { height = getActivity().getResources().getDimension(R.dimen.widget_large_height); layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, (int) height); } if (mWidgetLayoutResId == R.layout.widget_layout_small) { height = getActivity().getResources().getDimension(R.dimen.widget_small_height); width = getActivity().getResources().getDimension(R.dimen.widget_small_width); layoutParams = new FrameLayout.LayoutParams((int) width, (int) height); } FrameLayout frameLayout1 = (FrameLayout) rootView.findViewById(R.id.frame); if (layoutParams != null) { frameLayout1.addView(frameLayout, layoutParams); } else { frameLayout1.addView(frameLayout); } return rootView; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (getActivity() instanceof WidgetConfigureSmall) { ((WidgetConfigureSmall) getActivity()).updateWidgetUI(); } else if (getActivity() instanceof WidgetConfigureMedium) { ((WidgetConfigureMedium) getActivity()).updateWidgetUI(); } else if (getActivity() instanceof WidgetConfigureLarge) { ((WidgetConfigureLarge) getActivity()).updateWidgetUI(); } else if (getActivity() instanceof WidgetConfigureExtraLarge) { ((WidgetConfigureExtraLarge) getActivity()).updateWidgetUI(); } } @Override protected String screenName() { return TAG; } }