// Path: app/src/main/java/pt/passarola/utils/AnimatorManager.java
// public class AnimatorManager {
// 
//     private static final int SHORT_DURATION = 200; //ms
// 
//     public static void fadeInPartial(@NonNull final View view){
//         view.setAlpha(0.5f);
//         view.animate()
//                 .alpha(1)
//                 .setDuration(SHORT_DURATION);
//     }
// 
//     public static void fadeOutPartial(@NonNull final View view){
//         view.animate()
//                 .alpha(0.5f)
//                 .setDuration(SHORT_DURATION);
//     }
// 
//     public static void fadeInView(@NonNull final View view){
//         view.setAlpha(0f);
//         view.setVisibility(View.VISIBLE);
//         view.animate()
//                 .alpha(1)
//                 .setDuration(200)
//                 .setListener(null);
//     }
// 
//     public static void fadeOutView(@NonNull final View view){
//         view.animate()
//                 .alpha(0f)
//                 .setDuration(SHORT_DURATION)
//                 .setListener(new AnimatorListenerAdapter() {
//                     @Override
//                     public void onAnimationEnd(Animator animation) {
//                         view.setVisibility(View.GONE);
//                     }
//                 });
//     }
// 
//     public static void slideInView(@NonNull final View view, int distance){
//         view.setVisibility(View.VISIBLE);
//         view.animate()
//                 .translationY(distance)
//                 .setDuration(SHORT_DURATION)
//                 .setInterpolator(new AccelerateDecelerateInterpolator())
//                 .setListener(null);
//     }
// 
//     public static void slideOutView(@NonNull final View view, int distance){
//         view.animate()
//                 .translationY(distance)
//                 .setDuration(SHORT_DURATION)
//                 .setInterpolator(new AccelerateDecelerateInterpolator())
//                 .setListener(new AnimatorListenerAdapter() {
//                     @Override
//                     public void onAnimationEnd(Animator animation) {
//                         view.setVisibility(View.GONE);
//                     }
//                 });
//     }
// }
// 
// Path: app/src/main/java/pt/passarola/utils/ScreenInspector.java
// public class ScreenInspector {
// 
//     private static final int STATUS_BAR_HEIGHT_DP = 24;
//     private static final int APP_BAR_HEIGHT_DP = 56;
// 
//     public static double getDensity(Context context){
//         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
//         return displayMetrics.density;
//     }
// 
//     public static int getScreenWidthPx(Context context){
//         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//         Display display = windowManager.getDefaultDisplay();
//         Point size = new Point();
//         display.getSize(size);
//         return size.x;
//     }
// 
//     public static int getScreenHeightPx(Context context){
//         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//         Display display = windowManager.getDefaultDisplay();
//         Point size = new Point();
//         display.getSize(size);
//         return size.y;
//     }
// 
//     public static int getScreenWidthDp(Context context){
//         Configuration configuration = context.getResources().getConfiguration();
//         return configuration.screenWidthDp;
//     }
// 
//     public static int getScreenHeightDp(Context context){
//         Configuration configuration = context.getResources().getConfiguration();
//         return configuration.screenHeightDp;
//     }
// 
//     public static int getStatusBarHeightPx(Context context){
//         return (int) dpToPx(context, STATUS_BAR_HEIGHT_DP);
//     }
// 
//     public static int getAppBarHeightPx(Context context){
//         return (int) dpToPx(context, APP_BAR_HEIGHT_DP);
//     }
// 
//     /**
//      * Get Navigation Bar (bottom) height in px
//      */
//     public static int getNavigationBarHeightPx(Context context){
//         int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
//         return (resourceId > 0) ? context.getResources().getDimensionPixelSize(resourceId) : 0;
//     }
// 
//     public static float pxToDp(Context context, int px){
//         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
//         return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// 
//     public static float dpToPx(Context context, int dp){
//         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
//         return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// }


import android.support.design.widget.TabLayout;
import pt.passarola.R;
import pt.passarola.utils.AnimatorManager;
import pt.passarola.utils.ScreenInspector;
        tabLayout.addTab(allPlacesTab, TAB_PLACES_POSITION);
        tabLayout.addTab(beersTab, TAB_BEERS_POSITION);

        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                if(onTabSelectedListener != null){
                    onTabSelectedListener.onTabSelected(tab.getPosition());
                }
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
                onTabSelected(tab);
            }
        });
    }

    private void setupSize(){
        size = ScreenInspector.getAppBarHeightPx(tabLayout.getContext());
    }

    public void show(boolean show) {
        if (show) {
            // sliding up
// Path: app/src/main/java/pt/passarola/utils/AnimatorManager.java
// public class AnimatorManager {
// 
//     private static final int SHORT_DURATION = 200; //ms
// 
//     public static void fadeInPartial(@NonNull final View view){
//         view.setAlpha(0.5f);
//         view.animate()
//                 .alpha(1)
//                 .setDuration(SHORT_DURATION);
//     }
// 
//     public static void fadeOutPartial(@NonNull final View view){
//         view.animate()
//                 .alpha(0.5f)
//                 .setDuration(SHORT_DURATION);
//     }
// 
//     public static void fadeInView(@NonNull final View view){
//         view.setAlpha(0f);
//         view.setVisibility(View.VISIBLE);
//         view.animate()
//                 .alpha(1)
//                 .setDuration(200)
//                 .setListener(null);
//     }
// 
//     public static void fadeOutView(@NonNull final View view){
//         view.animate()
//                 .alpha(0f)
//                 .setDuration(SHORT_DURATION)
//                 .setListener(new AnimatorListenerAdapter() {
//                     @Override
//                     public void onAnimationEnd(Animator animation) {
//                         view.setVisibility(View.GONE);
//                     }
//                 });
//     }
// 
//     public static void slideInView(@NonNull final View view, int distance){
//         view.setVisibility(View.VISIBLE);
//         view.animate()
//                 .translationY(distance)
//                 .setDuration(SHORT_DURATION)
//                 .setInterpolator(new AccelerateDecelerateInterpolator())
//                 .setListener(null);
//     }
// 
//     public static void slideOutView(@NonNull final View view, int distance){
//         view.animate()
//                 .translationY(distance)
//                 .setDuration(SHORT_DURATION)
//                 .setInterpolator(new AccelerateDecelerateInterpolator())
//                 .setListener(new AnimatorListenerAdapter() {
//                     @Override
//                     public void onAnimationEnd(Animator animation) {
//                         view.setVisibility(View.GONE);
//                     }
//                 });
//     }
// }
// 
// Path: app/src/main/java/pt/passarola/utils/ScreenInspector.java
// public class ScreenInspector {
// 
//     private static final int STATUS_BAR_HEIGHT_DP = 24;
//     private static final int APP_BAR_HEIGHT_DP = 56;
// 
//     public static double getDensity(Context context){
//         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
//         return displayMetrics.density;
//     }
// 
//     public static int getScreenWidthPx(Context context){
//         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//         Display display = windowManager.getDefaultDisplay();
//         Point size = new Point();
//         display.getSize(size);
//         return size.x;
//     }
// 
//     public static int getScreenHeightPx(Context context){
//         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//         Display display = windowManager.getDefaultDisplay();
//         Point size = new Point();
//         display.getSize(size);
//         return size.y;
//     }
// 
//     public static int getScreenWidthDp(Context context){
//         Configuration configuration = context.getResources().getConfiguration();
//         return configuration.screenWidthDp;
//     }
// 
//     public static int getScreenHeightDp(Context context){
//         Configuration configuration = context.getResources().getConfiguration();
//         return configuration.screenHeightDp;
//     }
// 
//     public static int getStatusBarHeightPx(Context context){
//         return (int) dpToPx(context, STATUS_BAR_HEIGHT_DP);
//     }
// 
//     public static int getAppBarHeightPx(Context context){
//         return (int) dpToPx(context, APP_BAR_HEIGHT_DP);
//     }
// 
//     /**
//      * Get Navigation Bar (bottom) height in px
//      */
//     public static int getNavigationBarHeightPx(Context context){
//         int resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
//         return (resourceId > 0) ? context.getResources().getDimensionPixelSize(resourceId) : 0;
//     }
// 
//     public static float pxToDp(Context context, int px){
//         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
//         return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// 
//     public static float dpToPx(Context context, int dp){
//         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
//         return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// }


// Path: app/src/main/java/pt/passarola/ui/components/PassarolaTabLayoutManager.java
import android.support.design.widget.TabLayout;
import pt.passarola.R;
import pt.passarola.utils.AnimatorManager;
import pt.passarola.utils.ScreenInspector;

        tabLayout.addTab(allPlacesTab, TAB_PLACES_POSITION);
        tabLayout.addTab(beersTab, TAB_BEERS_POSITION);

        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                if(onTabSelectedListener != null){
                    onTabSelectedListener.onTabSelected(tab.getPosition());
                }
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
                onTabSelected(tab);
            }
        });
    }

    private void setupSize(){
        size = ScreenInspector.getAppBarHeightPx(tabLayout.getContext());
    }

    public void show(boolean show) {
        if (show) {
            // sliding up
            AnimatorManager.slideInView(tabLayout, 0);