{"action":"created","comment":{"url":"https://api.github.com/repos/color-tv/colortv-docs/pulls/comments/113454228","pull_request_review_id":34843660,"id":113454228,"diff_hunk":"@@ -792,19 +801,196 @@ Check our example [item layouts](https://github.com/color-tv/android-SampleApp/t\n \n This method is used to set the number of rows in RecyclerView with id `ctv_rvGrid` for a specified device type.\n \n-#### setFont(Device device, Typeface typeface)\n-\n-This method is used to set a custom font for a specified device type. It only works if you don't use a custom item layout.\n-\n #### setSnapEnabled(boolean enabled)\n \n This method is used to set snapping `RecyclerView` elements to the center of the screen. Available only on Mobile. We recommend to disable this option if the width of the elements is too small and the first or the last item is impossible to be snapped.\n \n - true - items snap to the center of the `RecyclerView`, video preview is enabled and will be shown if available.\n - false - list scrolls freely, video preview is disabled and will not be shown whether it is available or not.\n \n+### UpNext customization\n+\n+It is possible to customize UpNext in 2 ways:\n+\n+- setting custom layout for UpNext\n+- changing colors of default layout through public interface\n+\n+#### Using custom layout\n+\n+In order to set custom layout for UpNext you should do it appropriately to Recommendation Center using following method of `ColorTvContentRecommendationCongfig` instance:\n+\n+```java\n+recommendationConfig.setUpNextLayout(Device device, @LayoutResource int layoutResId);\n+```\n+\n+This method is used to set a custom UpNext layout for specified device type. You can use in that layout some specified views with proper ids which will be handled by sdk, and some recommendations data will be injected into them, but you can also add as many additional views as you want.\n+\n+Most of the available handled views are outlined on the following image:\n+\n+![UpNext default layout](images/up_next_showcase.png)\n+\n+<details><summary>Available IDs</summary>\n+\n+#### **ID:** ctv_upNext \n+* **REQUIRED**\n+* **View type:** Any view extending the ViewGroup class (eg. `LinearLayout`, `FrameLayout`)\n+* **Description:** Used as a container of UpNext layout. All content views need to be inserted into that view. If there is no `ctv_vClickable` view then `ctv_upNext` is used to gain focus and capture clicks. \n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_ctlAutoPlayTimer\n+* **View type:** View extending `ColorTvTimerLayout` or `FrameLayout` which can be either empty or include elements as described in [Custom Timer Layout](#custom-timer-layout)\n+* **Description:** Used to display countdown timer which visualizes time left until recommendation is automatically clicked. If it extends `ColorTvTimerLayout` then its impelementation is used for handling timer progress events. If it is `FrameLayout` with `ProgressBar` view with id `ctv_pbTimer` and `TextView` view with id `ctv_tvTimer` they are updeted in default way. All views inluded into such `FrameLayout` are also hidden when auto play timer is not used. In case the view is a `FrameLayout` with no children, default countdown timer layout is injected into it. \n+* **Animation:** Hides when auto play timer is not used and when timer reaches 0, or toggles visibility when video is paused and resumed in case of using auto start functionality.\n+* **Device:** ALL\n+<br /><br />\n+\n+#### **ID:** ctv_videoPreviewContainer\n+* **View type:** Any view extending the ViewGroup class (eg. `LinearLayout`, `FrameLayout`)\n+* **Description:** Used to inject our `VideoPlayer` for previews playback.\n+* **Animation:** Plays the preview and hides the thumbnail when video preview is enabled in UpNext interface (only if the preview is available).\n+* **Device:** ALL\n+<br /><br />\n+\n+#### **ID:** ctv_ivVideoThumbnail\n+* **View type:** `ImageView`\n+* **Description:** Used to display the video thumbnail.\n+* **Animation:** If there is preview available and `ctv_videoPreviewContainer` is present in the layout it is hidden when the preview is enabled in UpNext interface.\n+* **Device:** ALL\n+<br /><br />\n+\n+#### **ID:** ctv_tvTitle\n+* **View type:** `TextView`\n+* **Description:** Displays the video title.\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_tvDescription\n+* **View type:** `TextView`\n+* **Description:** Displays the video description.\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_tvDuration\n+* **View type:** `TextView`\n+* **Description:** Displays the video duration.\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_tvSeries\n+* **View type:** `TextView`\n+* **Description:** Displays series name when recommending series.\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_tvSeason\n+* **View type:** `TextView`\n+* **Description:** Appends series season number to contained by the view text, while recommending series. I.e. when TextView has set in XML file a text \"Season: \" it will append season nb. creating \"Season: 1\".\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_tvEpisode\n+* **View type:** `TextView`\n+* **Description:** Appends series episode number to contained by the view text, while recommending series. I.e. when TextView has set in XML file a text \"Episode: \" it will append episode nb. creating \"Episode: 1\".\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_clickable\n+* **View type:** Any view extending the View class (eg. `LinearLayout`, `Button`)\n+* **Description:** Element used to capture click on recommendation, which invokes `onContentChosen` callback. If this element is absent `ctv_upNext` is such element. It should be used only when having other views in UpNext which can be focusable and clickable. For TVs it should use some selector in order to point out an user that focus has been changed.\n+* **Device:** ALL\n+<br /><br />\n+\n+\n+#### **ID:** ctv_btnClose\n+* **View type:** Any view extending the View class (eg. `LinearLayout`, `ImageView`)\n+* **Description:** Element used to close UpNext on click. For TVs it should use some selector in order to point out an user that focus has been changed.\n+* **Device:** ALL\n+<br /><br />\n+\n+#### **ID:** ctv_openRecCenter\n+* **View type:** Any view extending the View class (eg. `LinearLayout`, `ImageView`)\n+* **Description:** Element used to close UpNext and open Recommendation Center on click. For TVs it should use some selector in order to point out an user that focus has been changed.\n+* **Device:** ALL\n+<br /><br />\n+\n+#### **ID:** ctv_upNextContainer\n+* **View type:** Any view extending the ViewGroup class (eg. `LinearLayout`, `FrameLayout`)\n+* **Description:** Used to automatically locate UpNext fragment at a bottom of a screen when it's parent is `RelativeLayout` or `FrameLayout`. If the view is an instance of `LinearLayout` and contains a views with ids: `ctv_space` and `ctv_upNext`, then it sets weight of that elements to take half of a screen on TVs and tablets, and full screen on mobiles. ","path":"colortv/docs/androidTVSDK.md","position":206,"original_position":206,"commit_id":"6e422e0867c9140a5394eba1bed939fb3da21591","original_commit_id":"6e422e0867c9140a5394eba1bed939fb3da21591","user":{"login":"mikikrk","id":6003707,"avatar_url":"https://avatars2.githubusercontent.com/u/6003707?v=3","gravatar_id":"","url":"https://api.github.com/users/mikikrk","html_url":"https://github.com/mikikrk","followers_url":"https://api.github.com/users/mikikrk/followers","following_url":"https://api.github.com/users/mikikrk/following{/other_user}","gists_url":"https://api.github.com/users/mikikrk/gists{/gist_id}","starred_url":"https://api.github.com/users/mikikrk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikikrk/subscriptions","organizations_url":"https://api.github.com/users/mikikrk/orgs","repos_url":"https://api.github.com/users/mikikrk/repos","events_url":"https://api.github.com/users/mikikrk/events{/privacy}","received_events_url":"https://api.github.com/users/mikikrk/received_events","type":"User","site_admin":false},"body":"I it would be for default layout only it wouldn't be here. Its for enablig default locating at a bottom and making its width to half of a screen for TVs and tablets (as written in doc)","created_at":"2017-04-26T13:42:48Z","updated_at":"2017-04-26T13:42:48Z","html_url":"https://github.com/color-tv/colortv-docs/pull/38#discussion_r113454228","pull_request_url":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38","_links":{"self":{"href":"https://api.github.com/repos/color-tv/colortv-docs/pulls/comments/113454228"},"html":{"href":"https://github.com/color-tv/colortv-docs/pull/38#discussion_r113454228"},"pull_request":{"href":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38"}}},"pull_request":{"url":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38","id":117697656,"html_url":"https://github.com/color-tv/colortv-docs/pull/38","diff_url":"https://github.com/color-tv/colortv-docs/pull/38.diff","patch_url":"https://github.com/color-tv/colortv-docs/pull/38.patch","issue_url":"https://api.github.com/repos/color-tv/colortv-docs/issues/38","number":38,"state":"open","locked":false,"title":"As 507 up next customization","user":{"login":"mikikrk","id":6003707,"avatar_url":"https://avatars2.githubusercontent.com/u/6003707?v=3","gravatar_id":"","url":"https://api.github.com/users/mikikrk","html_url":"https://github.com/mikikrk","followers_url":"https://api.github.com/users/mikikrk/followers","following_url":"https://api.github.com/users/mikikrk/following{/other_user}","gists_url":"https://api.github.com/users/mikikrk/gists{/gist_id}","starred_url":"https://api.github.com/users/mikikrk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikikrk/subscriptions","organizations_url":"https://api.github.com/users/mikikrk/orgs","repos_url":"https://api.github.com/users/mikikrk/repos","events_url":"https://api.github.com/users/mikikrk/events{/privacy}","received_events_url":"https://api.github.com/users/mikikrk/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-04-26T12:04:50Z","updated_at":"2017-04-26T13:42:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"08d0e8fee727beae9b93e3fdbff1d14401a407e5","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38/commits","review_comments_url":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38/comments","review_comment_url":"https://api.github.com/repos/color-tv/colortv-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/color-tv/colortv-docs/issues/38/comments","statuses_url":"https://api.github.com/repos/color-tv/colortv-docs/statuses/6e422e0867c9140a5394eba1bed939fb3da21591","head":{"label":"color-tv:AS-507_UpNext_customization","ref":"AS-507_UpNext_customization","sha":"6e422e0867c9140a5394eba1bed939fb3da21591","user":{"login":"color-tv","id":16297051,"avatar_url":"https://avatars3.githubusercontent.com/u/16297051?v=3","gravatar_id":"","url":"https://api.github.com/users/color-tv","html_url":"https://github.com/color-tv","followers_url":"https://api.github.com/users/color-tv/followers","following_url":"https://api.github.com/users/color-tv/following{/other_user}","gists_url":"https://api.github.com/users/color-tv/gists{/gist_id}","starred_url":"https://api.github.com/users/color-tv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/color-tv/subscriptions","organizations_url":"https://api.github.com/users/color-tv/orgs","repos_url":"https://api.github.com/users/color-tv/repos","events_url":"https://api.github.com/users/color-tv/events{/privacy}","received_events_url":"https://api.github.com/users/color-tv/received_events","type":"Organization","site_admin":false},"repo":{"id":52452785,"name":"colortv-docs","full_name":"color-tv/colortv-docs","owner":{"login":"color-tv","id":16297051,"avatar_url":"https://avatars3.githubusercontent.com/u/16297051?v=3","gravatar_id":"","url":"https://api.github.com/users/color-tv","html_url":"https://github.com/color-tv","followers_url":"https://api.github.com/users/color-tv/followers","following_url":"https://api.github.com/users/color-tv/following{/other_user}","gists_url":"https://api.github.com/users/color-tv/gists{/gist_id}","starred_url":"https://api.github.com/users/color-tv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/color-tv/subscriptions","organizations_url":"https://api.github.com/users/color-tv/orgs","repos_url":"https://api.github.com/users/color-tv/repos","events_url":"https://api.github.com/users/color-tv/events{/privacy}","received_events_url":"https://api.github.com/users/color-tv/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/color-tv/colortv-docs","description":null,"fork":false,"url":"https://api.github.com/repos/color-tv/colortv-docs","forks_url":"https://api.github.com/repos/color-tv/colortv-docs/forks","keys_url":"https://api.github.com/repos/color-tv/colortv-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/color-tv/colortv-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/color-tv/colortv-docs/teams","hooks_url":"https://api.github.com/repos/color-tv/colortv-docs/hooks","issue_events_url":"https://api.github.com/repos/color-tv/colortv-docs/issues/events{/number}","events_url":"https://api.github.com/repos/color-tv/colortv-docs/events","assignees_url":"https://api.github.com/repos/color-tv/colortv-docs/assignees{/user}","branches_url":"https://api.github.com/repos/color-tv/colortv-docs/branches{/branch}","tags_url":"https://api.github.com/repos/color-tv/colortv-docs/tags","blobs_url":"https://api.github.com/repos/color-tv/colortv-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/color-tv/colortv-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/color-tv/colortv-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/color-tv/colortv-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/color-tv/colortv-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/color-tv/colortv-docs/languages","stargazers_url":"https://api.github.com/repos/color-tv/colortv-docs/stargazers","contributors_url":"https://api.github.com/repos/color-tv/colortv-docs/contributors","subscribers_url":"https://api.github.com/repos/color-tv/colortv-docs/subscribers","subscription_url":"https://api.github.com/repos/color-tv/colortv-docs/subscription","commits_url":"https://api.github.com/repos/color-tv/colortv-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/color-tv/colortv-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/color-tv/colortv-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/color-tv/colortv-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/color-tv/colortv-docs/contents/{+path}","compare_url":"https://api.github.com/repos/color-tv/colortv-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/color-tv/colortv-docs/merges","archive_url":"https://api.github.com/repos/color-tv/colortv-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/color-tv/colortv-docs/downloads","issues_url":"https://api.github.com/repos/color-tv/colortv-docs/issues{/number}","pulls_url":"https://api.github.com/repos/color-tv/colortv-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/color-tv/colortv-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/color-tv/colortv-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/color-tv/colortv-docs/labels{/name}","releases_url":"https://api.github.com/repos/color-tv/colortv-docs/releases{/id}","deployments_url":"https://api.github.com/repos/color-tv/colortv-docs/deployments","created_at":"2016-02-24T15:31:15Z","updated_at":"2016-11-17T14:43:53Z","pushed_at":"2017-04-26T12:04:50Z","git_url":"git://github.com/color-tv/colortv-docs.git","ssh_url":"git@github.com:color-tv/colortv-docs.git","clone_url":"https://github.com/color-tv/colortv-docs.git","svn_url":"https://github.com/color-tv/colortv-docs","homepage":null,"size":9321,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"base":{"label":"color-tv:v4.2.0","ref":"v4.2.0","sha":"53159277ec816b90efa7a9d8e4a19afaa1f23315","user":{"login":"color-tv","id":16297051,"avatar_url":"https://avatars3.githubusercontent.com/u/16297051?v=3","gravatar_id":"","url":"https://api.github.com/users/color-tv","html_url":"https://github.com/color-tv","followers_url":"https://api.github.com/users/color-tv/followers","following_url":"https://api.github.com/users/color-tv/following{/other_user}","gists_url":"https://api.github.com/users/color-tv/gists{/gist_id}","starred_url":"https://api.github.com/users/color-tv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/color-tv/subscriptions","organizations_url":"https://api.github.com/users/color-tv/orgs","repos_url":"https://api.github.com/users/color-tv/repos","events_url":"https://api.github.com/users/color-tv/events{/privacy}","received_events_url":"https://api.github.com/users/color-tv/received_events","type":"Organization","site_admin":false},"repo":{"id":52452785,"name":"colortv-docs","full_name":"color-tv/colortv-docs","owner":{"login":"color-tv","id":16297051,"avatar_url":"https://avatars3.githubusercontent.com/u/16297051?v=3","gravatar_id":"","url":"https://api.github.com/users/color-tv","html_url":"https://github.com/color-tv","followers_url":"https://api.github.com/users/color-tv/followers","following_url":"https://api.github.com/users/color-tv/following{/other_user}","gists_url":"https://api.github.com/users/color-tv/gists{/gist_id}","starred_url":"https://api.github.com/users/color-tv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/color-tv/subscriptions","organizations_url":"https://api.github.com/users/color-tv/orgs","repos_url":"https://api.github.com/users/color-tv/repos","events_url":"https://api.github.com/users/color-tv/events{/privacy}","received_events_url":"https://api.github.com/users/color-tv/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/color-tv/colortv-docs","description":null,"fork":false,"url":"https://api.github.com/repos/color-tv/colortv-docs","forks_url":"https://api.github.com/repos/color-tv/colortv-docs/forks","keys_url":"https://api.github.com/repos/color-tv/colortv-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/color-tv/colortv-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/color-tv/colortv-docs/teams","hooks_url":"https://api.github.com/repos/color-tv/colortv-docs/hooks","issue_events_url":"https://api.github.com/repos/color-tv/colortv-docs/issues/events{/number}","events_url":"https://api.github.com/repos/color-tv/colortv-docs/events","assignees_url":"https://api.github.com/repos/color-tv/colortv-docs/assignees{/user}","branches_url":"https://api.github.com/repos/color-tv/colortv-docs/branches{/branch}","tags_url":"https://api.github.com/repos/color-tv/colortv-docs/tags","blobs_url":"https://api.github.com/repos/color-tv/colortv-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/color-tv/colortv-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/color-tv/colortv-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/color-tv/colortv-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/color-tv/colortv-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/color-tv/colortv-docs/languages","stargazers_url":"https://api.github.com/repos/color-tv/colortv-docs/stargazers","contributors_url":"https://api.github.com/repos/color-tv/colortv-docs/contributors","subscribers_url":"https://api.github.com/repos/color-tv/colortv-docs/subscribers","subscription_url":"https://api.github.com/repos/color-tv/colortv-docs/subscription","commits_url":"https://api.github.com/repos/color-tv/colortv-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/color-tv/colortv-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/color-tv/colortv-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/color-tv/colortv-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/color-tv/colortv-docs/contents/{+path}","compare_url":"https://api.github.com/repos/color-tv/colortv-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/color-tv/colortv-docs/merges","archive_url":"https://api.github.com/repos/color-tv/colortv-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/color-tv/colortv-docs/downloads","issues_url":"https://api.github.com/repos/color-tv/colortv-docs/issues{/number}","pulls_url":"https://api.github.com/repos/color-tv/colortv-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/color-tv/colortv-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/color-tv/colortv-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/color-tv/colortv-docs/labels{/name}","releases_url":"https://api.github.com/repos/color-tv/colortv-docs/releases{/id}","deployments_url":"https://api.github.com/repos/color-tv/colortv-docs/deployments","created_at":"2016-02-24T15:31:15Z","updated_at":"2016-11-17T14:43:53Z","pushed_at":"2017-04-26T12:04:50Z","git_url":"git://github.com/color-tv/colortv-docs.git","ssh_url":"git@github.com:color-tv/colortv-docs.git","clone_url":"https://github.com/color-tv/colortv-docs.git","svn_url":"https://github.com/color-tv/colortv-docs","homepage":null,"size":9321,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38"},"html":{"href":"https://github.com/color-tv/colortv-docs/pull/38"},"issue":{"href":"https://api.github.com/repos/color-tv/colortv-docs/issues/38"},"comments":{"href":"https://api.github.com/repos/color-tv/colortv-docs/issues/38/comments"},"review_comments":{"href":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38/comments"},"review_comment":{"href":"https://api.github.com/repos/color-tv/colortv-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/color-tv/colortv-docs/pulls/38/commits"},"statuses":{"href":"https://api.github.com/repos/color-tv/colortv-docs/statuses/6e422e0867c9140a5394eba1bed939fb3da21591"}}}}
{"actor":{"display_login":"mikikrk"}}