SetupMultiPaneFragment.java revision 1abddd9f6225298066094e20a6c29061b6af4590
17d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko/* 27d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * Copyright (C) 2015 The Android Open Source Project 37d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * 47d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 57d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * you may not use this file except in compliance with the License. 67d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * You may obtain a copy of the License at 77d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * 87d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 97d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * 107d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * Unless required by applicable law or agreed to in writing, software 117d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 127d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * See the License for the specific language governing permissions and 147d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * limitations under the License. 157d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko */ 167d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 177d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkopackage com.android.tv.common.ui.setup; 187d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 197d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkoimport android.os.Bundle; 207d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkoimport android.view.LayoutInflater; 217d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkoimport android.view.View; 227d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkoimport android.view.ViewGroup; 231abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport android.view.ViewGroup.MarginLayoutParams; 247d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 257d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkoimport com.android.tv.common.R; 267d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 277d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko/** 287d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko * A fragment for channel source info/setup. 297d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko */ 307d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalkopublic abstract class SetupMultiPaneFragment extends SetupFragment { 317d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko public static final int ACTION_DONE = 1; 327d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 331abddd9f6225298066094e20a6c29061b6af4590Nick Chalko public SetupMultiPaneFragment() { 341abddd9f6225298066094e20a6c29061b6af4590Nick Chalko enableFragmentTransition(FRAGMENT_ENTER_TRANSITION | FRAGMENT_EXIT_TRANSITION 351abddd9f6225298066094e20a6c29061b6af4590Nick Chalko | FRAGMENT_REENTER_TRANSITION | FRAGMENT_RETURN_TRANSITION); 361abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } 371abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 387d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko @Override 397d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko public View onCreateView(LayoutInflater inflater, ViewGroup container, 407d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko Bundle savedInstanceState) { 417d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko View view = super.onCreateView(inflater, container, savedInstanceState); 421abddd9f6225298066094e20a6c29061b6af4590Nick Chalko SetupGuidedStepFragment contentFragment = onCreateContentFragment(); 431abddd9f6225298066094e20a6c29061b6af4590Nick Chalko getChildFragmentManager().beginTransaction() 441abddd9f6225298066094e20a6c29061b6af4590Nick Chalko .replace(R.id.guided_step_fragment_container, contentFragment).commit(); 457d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko if (needsDoneButton()) { 461abddd9f6225298066094e20a6c29061b6af4590Nick Chalko setOnClickAction(view.findViewById(R.id.button_done), ACTION_DONE); 477d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko } else { 481abddd9f6225298066094e20a6c29061b6af4590Nick Chalko View doneButtonContainer = view.findViewById(R.id.done_button_container); 491abddd9f6225298066094e20a6c29061b6af4590Nick Chalko if (view.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) { 501abddd9f6225298066094e20a6c29061b6af4590Nick Chalko ((MarginLayoutParams) doneButtonContainer.getLayoutParams()).rightMargin = 511abddd9f6225298066094e20a6c29061b6af4590Nick Chalko -getResources().getDimensionPixelOffset( 521abddd9f6225298066094e20a6c29061b6af4590Nick Chalko R.dimen.setup_done_button_container_width); 531abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } else { 541abddd9f6225298066094e20a6c29061b6af4590Nick Chalko ((MarginLayoutParams) doneButtonContainer.getLayoutParams()).leftMargin = 551abddd9f6225298066094e20a6c29061b6af4590Nick Chalko -getResources().getDimensionPixelOffset( 561abddd9f6225298066094e20a6c29061b6af4590Nick Chalko R.dimen.setup_done_button_container_width); 571abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } 581abddd9f6225298066094e20a6c29061b6af4590Nick Chalko view.findViewById(R.id.button_done).setFocusable(false); 597d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko } 607d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko return view; 617d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko } 627d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 637d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko @Override 647d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko protected int getLayoutResourceId() { 657d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko return R.layout.fragment_setup_multi_pane; 667d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko } 677d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 681abddd9f6225298066094e20a6c29061b6af4590Nick Chalko abstract protected SetupGuidedStepFragment onCreateContentFragment(); 697d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko 707d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko protected boolean needsDoneButton() { 717d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko return true; 727d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko } 731abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 741abddd9f6225298066094e20a6c29061b6af4590Nick Chalko @Override 751abddd9f6225298066094e20a6c29061b6af4590Nick Chalko protected int[] getParentIdsForDelay() { 761abddd9f6225298066094e20a6c29061b6af4590Nick Chalko return new int[] {R.id.content_fragment, R.id.guidedactions_list}; 771abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } 781abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 791abddd9f6225298066094e20a6c29061b6af4590Nick Chalko @Override 801abddd9f6225298066094e20a6c29061b6af4590Nick Chalko public int[] getSharedElementIds() { 811abddd9f6225298066094e20a6c29061b6af4590Nick Chalko return new int[] {R.id.guidedactions_background, R.id.done_button_container}; 821abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } 837d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko} 84