165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko/* 265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Copyright (C) 2016 The Android Open Source Project 365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * 465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * you may not use this file except in compliance with the License. 665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * You may obtain a copy of the License at 765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * 865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * 1065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Unless required by applicable law or agreed to in writing, software 1165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 1265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * See the License for the specific language governing permissions and 1465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * limitations under the License. 1565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko */ 1665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 1765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkopackage com.android.tv.ui; 1865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 1965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport android.content.Context; 2065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport android.support.v17.leanback.app.GuidedStepFragment; 2165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport android.support.v17.leanback.widget.GuidedAction; 2265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport android.support.v17.leanback.widget.GuidedActionsStylist; 2365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 2465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkoimport com.android.tv.R; 2565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 2665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko/** 2765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Extended stylist class used for {@link GuidedStepFragment} with divider support. 2865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko */ 2965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkopublic class GuidedActionsStylistWithDivider extends GuidedActionsStylist { 3065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko /** 3165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * ID used mark a divider. 3265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko */ 3365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko public static final int ACTION_DIVIDER = -100; 3465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko private static final int VIEW_TYPE_DIVIDER = 1; 3565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 3665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko @Override 3765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko public int getItemViewType(GuidedAction action) { 3865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko if (action.getId() == ACTION_DIVIDER) { 3965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko return VIEW_TYPE_DIVIDER; 4065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 4165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko return super.getItemViewType(action); 4265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 4365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 4465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko @Override 4565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko public int onProvideItemLayoutId(int viewType) { 4665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko if (viewType == VIEW_TYPE_DIVIDER) { 4765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko return R.layout.guided_action_divider; 4865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 4965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko return super.onProvideItemLayoutId(viewType); 5065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 5165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko 5265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko /** 5365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Creates a divider for {@link GuidedStepFragment}, targeted fragments must use 5465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * {@link GuidedActionsStylistWithDivider} as its actions' stylist for divider to work. 5565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko */ 5665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko public static GuidedAction createDividerAction(Context context) { 5765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko return new GuidedAction.Builder(context) 5865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko .id(ACTION_DIVIDER) 5965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko .title(null) 6065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko .description(null) 6165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko .focusable(false) 6265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko .infoOnly(true) 6365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko .build(); 6465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko } 6565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko} 66