12345678910111213141516171819202122232425262728293031323334353637 |
- package com.reactnativenavigation.layouts;
-
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
-
- import com.reactnativenavigation.params.ActivityParams;
-
- public class LayoutFactory {
- public static Layout create(AppCompatActivity activity, ActivityParams params) {
- switch (params.type) {
- case TabBased:
- return createBottomTabsScreenLayout(activity, params);
- case SingleScreen:
- default:
- return createSingleScreenLayout(activity, params);
- }
- }
-
- private static Layout createSingleScreenLayout(AppCompatActivity activity, ActivityParams params) {
- return new SingleScreenLayout(activity, params.leftSideMenuParams, params.rightSideMenuParams, params.screenParams);
- }
-
- private static Layout createBottomTabsScreenLayout(AppCompatActivity activity, ActivityParams params) {
- if (params.tabParams.size() > 5) {
- removeAllButTheFirst5Tabs(params);
- }
- return new BottomTabsLayout(activity, params);
- }
-
- private static void removeAllButTheFirst5Tabs(ActivityParams params) {
- Log.e("Navigation", "LayoutFactory:createBottomTabsScreenLayout() does not support more than 5 tabs, currently");
- while (params.tabParams.size() > 5) {
- params.tabParams.remove(params.tabParams.size() - 1);
- }
- }
- }
|