package com.cafejeunesse.android.structure; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView; import com.cafejeunesse.android.fragment.BasicFragment; import com.cafejeunesse.android.navigationdrawer.R; /** * Created by David Levayer on 18/03/15. */ public class CustomTextView extends TextView { private int mFragmentId; private static int[] HOME_FRAGMENT = {R.attr.homeFragment}; private static int[] SERVICE_FRAGMENT = {R.attr.serviceFragment}; private static int[] CAFE_FRAGMENT = {R.attr.cafeFragment}; private static int[] GOOGLEMAP_FRAGMENT = {R.attr.googlemapFragment}; private static int[] REGROUPEMENT_FRAGMENT = {R.attr.regroupementFragment}; private static int[] ABOUT_FRAGMENT = {R.attr.aboutFragment}; private static int[] PARAMETERS_FRAGMENT = {R.attr.parametersFragment}; public CustomTextView(Context context) { super(context); } public CustomTextView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected int[] onCreateDrawableState(int extraSpace) { final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); switch(mFragmentId){ case BasicFragment.HOMEFRAGMENT_ID: mergeDrawableStates(drawableState, HOME_FRAGMENT); break; case BasicFragment.SERVICEFRAGMENT_ID: mergeDrawableStates(drawableState, SERVICE_FRAGMENT); break; case BasicFragment.CAFEFRAGMENT_ID: mergeDrawableStates(drawableState, CAFE_FRAGMENT); break; case BasicFragment.GOOGLEMAPFRAGMENT_ID: mergeDrawableStates(drawableState, GOOGLEMAP_FRAGMENT); break; case BasicFragment.ABOUTFRAGMENT_ID: mergeDrawableStates(drawableState, ABOUT_FRAGMENT); break; case BasicFragment.REGROUPEMENTS_ID: mergeDrawableStates(drawableState, REGROUPEMENT_FRAGMENT); break; case BasicFragment.PARAMETERSFRAGMENT_ID: mergeDrawableStates(drawableState, PARAMETERS_FRAGMENT); break; default: return super.onCreateDrawableState(extraSpace); } return drawableState; } public int getFragmentId() { return mFragmentId; } public void setFragmentId(int mFragmentName) { this.mFragmentId = mFragmentName; //refreshDrawableState(); } }