/* * Copyright 2014-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.devicefarm.android.referenceapp.Models; import android.os.Bundle; import android.support.v4.app.Fragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.FixturesFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.LocalWebView; import com.amazonaws.devicefarm.android.referenceapp.Fragments.LoginFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.NestedFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.NotificationsFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.SimpleFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_CheckBoxFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_DatePickerFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_GestureFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_RadioButtonFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_RefreshButtonFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_SpinnerFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_SubmitButtonFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_TimePickerFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Inputs.Input_Toggle_ButtonFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Native.Native_CameraFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Native.Native_ImageGalleryFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.Native.Native_MediaPlayer; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.SupplementalUploads.SupplementalUploads_AdditionalAppFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.Tabs.SupplementalUploads.SupplementalUploads_ExtraDataFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.WebViewFragment; import com.amazonaws.devicefarm.android.referenceapp.Fragments.crashFragment; import com.amazonaws.devicefarm.android.referenceapp.R; /** * An Enum representing all the fragments within the app */ public enum FragmentEnum { HOME(createSimpleFragment(R.layout.fragment_homepage)), HTTP(new WebViewFragment()), NATIVE(null), INPUTS(null), NESTED(new NestedFragment()), CRASH(new crashFragment()), ALERT(new NotificationsFragment()), LOGIN(new LoginFragment()), //tabs for input EDIT_TEXT(createSimpleFragment(R.layout.input_textfield)), CHECKBOX(new Input_CheckBoxFragment()), RADIO_BUTTON(new Input_RadioButtonFragment()), TOGGLE_BUTTON(new Input_Toggle_ButtonFragment()), TIME_PICKER(new Input_TimePickerFragment()), DATE_PICKER(new Input_DatePickerFragment()), SUBMIT_BUTTON(new Input_SubmitButtonFragment()), REFRESH(new Input_RefreshButtonFragment()), SPINNER(new Input_SpinnerFragment()), GESTURES(new Input_GestureFragment()), //tabs for native views IMAGE_GALLERY(new Native_ImageGalleryFragment()), CONTENT_SCROLLING(createSimpleFragment(R.layout.native_content_scrolling)), MEDIA_PLAYER(new Native_MediaPlayer()), CAMERA(new Native_CameraFragment()), OUT_OF_VIEW(createSimpleFragment(R.layout.native_out_of_view_scrolling)), FIXTURES(new FixturesFragment()), LOCAL_WEB_VIEW(new LocalWebView()), //tabs for supplemental uploads SUPPLEMENTAL_UPLOADS(null), EXTRA_DATA(new SupplementalUploads_ExtraDataFragment()), ADDITIONAL_APP(new SupplementalUploads_AdditionalAppFragment()); private final Fragment fragment; FragmentEnum(Fragment fragment) { this.fragment = fragment; } public Fragment getFragment(){ return this.fragment; } /** * Creates a static fragment with no logic from a layout * @param resourceLayoutId * @return */ private static Fragment createSimpleFragment(int resourceLayoutId){ Fragment fragment = new SimpleFragment(); Bundle bundle = new Bundle(); bundle.putInt("frag_bundle_key", resourceLayoutId); fragment.setArguments(bundle); return fragment; } }