// Path: actionbarsherlock-library/src/main/java/com/actionbarsherlock/internal/utils/UtilityWrapper.java
// public abstract class UtilityWrapper {
// 
//     private static UtilityWrapper instance;
// 
//     public static UtilityWrapper getInstance() {
//         if (instance == null) {
//             if (Build.VERSION.SDK_INT >= 16) {
//                 instance = new Utility16();
//             } else if (Build.VERSION.SDK_INT >= 14) {
//                 instance = new Utility14();
//             } else if (Build.VERSION.SDK_INT >= 11) {
//                 instance = new Utility11();
//             } else if (Build.VERSION.SDK_INT >= 8) {
//                 instance = new Utility8();
//             } else if (Build.VERSION.SDK_INT >= 7) {
//                 instance = new Utility7();
//             } else {
//                 instance = new Utility4();
//             }
//         }
// 
//         return instance;
//     }
//     
//     public abstract void viewSetActivated(View view, boolean activated);
//     
//     public abstract boolean hasPermanentMenuKey(ViewConfiguration vcfg);
//     
//     public abstract void jumpDrawablesToCurrentState(View v);
//     
//     public abstract Drawable getActivityLogo(Context context);
//     
//     public abstract CharSequence stringToUpper(CharSequence text);
//     
//     public abstract PopupWindow buildPopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes);
// 
//     public abstract void jumpToCurrentState(Drawable indeterminateDrawable);
//     
//     public abstract int resolveSizeAndState(int size, int measureSpec, int state);
//     
//     public abstract int getMeasuredState(View child);
//     
//     public abstract int combineMeasuredStates(int curState, int newState);
//     
//     public abstract boolean isLongPressEvent(KeyEvent evt);
//     
//     public abstract void setBackgroundDrawable(View v, Drawable d);
//     
//     public abstract void setLinearLayoutDividerPadding(LinearLayout l, int padding);
//     
//     public abstract void setLinearLayoutDividerDrawable(LinearLayout l, Drawable drawable);
//     
//     public static Method safelyGetSuperclassMethod(Class<?> cls, String methodName, Class<?>... parametersType) {
//         Class<?> sCls = cls.getSuperclass();
//         while(sCls != Object.class) {
//             try {
//                 return sCls.getDeclaredMethod(methodName, parametersType);
//             } catch (NoSuchMethodException e) {
//                 // Just super it again
//             }
//             sCls = sCls.getSuperclass();
//         }
//         throw new RuntimeException("Method not found " + methodName);
//     }
//     
//     public static Object safelyInvokeMethod(Method method, Object receiver, Object... args) {
//         try {
//             return method.invoke(receiver, args);
//         } catch (IllegalArgumentException e) {
//             Log.e("Safe invoke fail", "Invalid args", e);
//         } catch (IllegalAccessException e) {
//             Log.e("Safe invoke fail", "Invalid access", e);
//         } catch (InvocationTargetException e) {
//             Log.e("Safe invoke fail", "Invalid target", e);
//         }
//         
//         return null;
//     }
//     
// }


import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Vibrator;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.TextView;
import com.actionbarsherlock.internal.utils.UtilityWrapper;
import com.csipsimple.R;
import com.csipsimple.ui.incall.locker.IOnLeftRightChoice;
import com.csipsimple.ui.incall.locker.IOnLeftRightChoice.IOnLeftRightProvider;
import com.csipsimple.ui.incall.locker.IOnLeftRightChoice.TypeOfLock;
import com.csipsimple.ui.incall.locker.LeftRightChooserUtils;
import com.csipsimple.ui.incall.locker.multiwaveview.GlowPadView.OnTriggerListener;
import com.csipsimple.utils.Log;
import java.util.ArrayList;
			if(!parent.isInEditMode()) {
			    text.setTextAppearance(parent.getContext(), R.style.TextAppearance_SlidingTabNormal);
			}
			
			// Create target
			target = new ImageView(parent.getContext());
			target.setImageResource(targetId);
			target.setScaleType(ScaleType.CENTER);
			target.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
			target.setVisibility(View.INVISIBLE);
			
			
			// this needs to be first - relies on painter's algorithm
			parent.addView(target); 
			parent.addView(tab);
			parent.addView(text);
		}
		
		private void setResources(int iconId, int targetId, int barId, int tabId) {
			tab.setImageResource(iconId);
			tab.setBackgroundResource(tabId);
			text.setBackgroundResource(barId);
			target.setImageResource(targetId);
		}
		
		private void setDrawables(Drawable iconD, Drawable targetD, Drawable barD, Drawable tabD) {
			if(iconD != null) {
				tab.setImageDrawable(iconD);
			}
			if(tabD != null) {
// Path: actionbarsherlock-library/src/main/java/com/actionbarsherlock/internal/utils/UtilityWrapper.java
// public abstract class UtilityWrapper {
// 
//     private static UtilityWrapper instance;
// 
//     public static UtilityWrapper getInstance() {
//         if (instance == null) {
//             if (Build.VERSION.SDK_INT >= 16) {
//                 instance = new Utility16();
//             } else if (Build.VERSION.SDK_INT >= 14) {
//                 instance = new Utility14();
//             } else if (Build.VERSION.SDK_INT >= 11) {
//                 instance = new Utility11();
//             } else if (Build.VERSION.SDK_INT >= 8) {
//                 instance = new Utility8();
//             } else if (Build.VERSION.SDK_INT >= 7) {
//                 instance = new Utility7();
//             } else {
//                 instance = new Utility4();
//             }
//         }
// 
//         return instance;
//     }
//     
//     public abstract void viewSetActivated(View view, boolean activated);
//     
//     public abstract boolean hasPermanentMenuKey(ViewConfiguration vcfg);
//     
//     public abstract void jumpDrawablesToCurrentState(View v);
//     
//     public abstract Drawable getActivityLogo(Context context);
//     
//     public abstract CharSequence stringToUpper(CharSequence text);
//     
//     public abstract PopupWindow buildPopupWindow(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes);
// 
//     public abstract void jumpToCurrentState(Drawable indeterminateDrawable);
//     
//     public abstract int resolveSizeAndState(int size, int measureSpec, int state);
//     
//     public abstract int getMeasuredState(View child);
//     
//     public abstract int combineMeasuredStates(int curState, int newState);
//     
//     public abstract boolean isLongPressEvent(KeyEvent evt);
//     
//     public abstract void setBackgroundDrawable(View v, Drawable d);
//     
//     public abstract void setLinearLayoutDividerPadding(LinearLayout l, int padding);
//     
//     public abstract void setLinearLayoutDividerDrawable(LinearLayout l, Drawable drawable);
//     
//     public static Method safelyGetSuperclassMethod(Class<?> cls, String methodName, Class<?>... parametersType) {
//         Class<?> sCls = cls.getSuperclass();
//         while(sCls != Object.class) {
//             try {
//                 return sCls.getDeclaredMethod(methodName, parametersType);
//             } catch (NoSuchMethodException e) {
//                 // Just super it again
//             }
//             sCls = sCls.getSuperclass();
//         }
//         throw new RuntimeException("Method not found " + methodName);
//     }
//     
//     public static Object safelyInvokeMethod(Method method, Object receiver, Object... args) {
//         try {
//             return method.invoke(receiver, args);
//         } catch (IllegalArgumentException e) {
//             Log.e("Safe invoke fail", "Invalid args", e);
//         } catch (IllegalAccessException e) {
//             Log.e("Safe invoke fail", "Invalid access", e);
//         } catch (InvocationTargetException e) {
//             Log.e("Safe invoke fail", "Invalid target", e);
//         }
//         
//         return null;
//     }
//     
// }


// Path: app/src/main/java/com/csipsimple/ui/incall/locker/slidingtab/SlidingTab.java
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Vibrator;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import android.widget.TextView;
import com.actionbarsherlock.internal.utils.UtilityWrapper;
import com.csipsimple.R;
import com.csipsimple.ui.incall.locker.IOnLeftRightChoice;
import com.csipsimple.ui.incall.locker.IOnLeftRightChoice.IOnLeftRightProvider;
import com.csipsimple.ui.incall.locker.IOnLeftRightChoice.TypeOfLock;
import com.csipsimple.ui.incall.locker.LeftRightChooserUtils;
import com.csipsimple.ui.incall.locker.multiwaveview.GlowPadView.OnTriggerListener;
import com.csipsimple.utils.Log;
import java.util.ArrayList;

			if(!parent.isInEditMode()) {
			    text.setTextAppearance(parent.getContext(), R.style.TextAppearance_SlidingTabNormal);
			}
			
			// Create target
			target = new ImageView(parent.getContext());
			target.setImageResource(targetId);
			target.setScaleType(ScaleType.CENTER);
			target.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
			target.setVisibility(View.INVISIBLE);
			
			
			// this needs to be first - relies on painter's algorithm
			parent.addView(target); 
			parent.addView(tab);
			parent.addView(text);
		}
		
		private void setResources(int iconId, int targetId, int barId, int tabId) {
			tab.setImageResource(iconId);
			tab.setBackgroundResource(tabId);
			text.setBackgroundResource(barId);
			target.setImageResource(targetId);
		}
		
		private void setDrawables(Drawable iconD, Drawable targetD, Drawable barD, Drawable tabD) {
			if(iconD != null) {
				tab.setImageDrawable(iconD);
			}
			if(tabD != null) {
			    UtilityWrapper.getInstance().setBackgroundDrawable(tab, tabD);