1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.chrome.browser.video_tutorials.test; 6 7 import org.chromium.base.Callback; 8 import org.chromium.chrome.browser.video_tutorials.FeatureType; 9 import org.chromium.chrome.browser.video_tutorials.Language; 10 import org.chromium.chrome.browser.video_tutorials.Tutorial; 11 import org.chromium.chrome.browser.video_tutorials.VideoTutorialService; 12 13 import java.util.ArrayList; 14 import java.util.Arrays; 15 import java.util.List; 16 17 /** A video tutorial service implementation for tests. */ 18 public class TestVideoTutorialService implements VideoTutorialService { 19 public static final Language HINDI = new Language("hi", "hindi", "हिंदी"); 20 public static final Language TAMIL = new Language("ta", "Tamil", "தமிழ்"); 21 public static final Language ENGLISH = new Language("en", "English", "English"); 22 23 private final List<Tutorial> mTutorials = new ArrayList<>(); 24 private final List<String> mLanguages = new ArrayList<>(); 25 private String mPreferredLocale; 26 TestVideoTutorialService()27 public TestVideoTutorialService() { 28 initializeLanguages(); 29 mPreferredLocale = HINDI.locale; 30 initializeTutorialList(); 31 } 32 33 @Override getTutorials(Callback<List<Tutorial>> callback)34 public void getTutorials(Callback<List<Tutorial>> callback) { 35 callback.onResult(mTutorials); 36 } 37 38 @Override getTutorial(int featureType, Callback<Tutorial> callback)39 public void getTutorial(int featureType, Callback<Tutorial> callback) { 40 if (featureType == FeatureType.SUMMARY) { 41 Tutorial summary = new Tutorial(FeatureType.SUMMARY, "Videos on how to use chrome", 42 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.mp4", 43 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 44 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif", 45 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 46 "caption url", "share url", 25); 47 callback.onResult(summary); 48 return; 49 } 50 51 for (Tutorial tutorial : mTutorials) { 52 if (tutorial.featureType == featureType) callback.onResult(tutorial); 53 } 54 } 55 56 @Override getSupportedLanguages()57 public List<String> getSupportedLanguages() { 58 return mLanguages; 59 } 60 61 @Override getAvailableLanguagesForTutorial(int feature)62 public List<String> getAvailableLanguagesForTutorial(int feature) { 63 return mLanguages; 64 } 65 66 @Override getPreferredLocale()67 public String getPreferredLocale() { 68 return mPreferredLocale; 69 } 70 71 @Override setPreferredLocale(String locale)72 public void setPreferredLocale(String locale) { 73 mPreferredLocale = locale; 74 } 75 getTestLanguages()76 public List<String> getTestLanguages() { 77 return mLanguages; 78 } 79 getTestTutorials()80 public List<Tutorial> getTestTutorials() { 81 return mTutorials; 82 } 83 initializeTutorialList()84 private void initializeTutorialList() { 85 mTutorials.add(new Tutorial(FeatureType.CHROME_INTRO, "Introduction to chrome", 86 "https://www.gstatic.com/chrome/video-tutorials/webm/1_Search_english.mp4", 87 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 88 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif", 89 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 90 "caption url", "share url", 25)); 91 92 mTutorials.add(new Tutorial(FeatureType.DOWNLOAD, 93 "How to use Google Chrome's download functionality", 94 "https://www.gstatic.com/chrome/video-tutorials/webm/1_Search_english.mp4", 95 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 96 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif", 97 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 98 "caption url", "share url", 35)); 99 100 mTutorials.add(new Tutorial(FeatureType.SEARCH, 101 "How to efficiently search with Google Chrome", 102 "https://www.gstatic.com/chrome/video-tutorials/webm/1_Search_english.mp4", 103 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 104 "https://www.gstatic.com/chrome/video-tutorials/gif/sample_anim.gif", 105 "https://www.gstatic.com/chrome/video-tutorials/images/1_Search_english.png", 106 "caption url", "share url", 335)); 107 } 108 initializeLanguages()109 private void initializeLanguages() { 110 mLanguages.add("hi"); 111 mLanguages.add("ta"); 112 mLanguages.add("en"); 113 } 114 115 /** Initialized to a set of test languages. */ initializeTestLanguages(String[] languages)116 public void initializeTestLanguages(String[] languages) { 117 mLanguages.clear(); 118 mLanguages.addAll(Arrays.asList(languages)); 119 } 120 } 121