1
00:00:05,250 --> 00:00:11,530
Alright so moving on, once you know what an intent is, the code's going to be fairly, really easy to understand.

2
00:00:11,530 --> 00:00:18,510
So let's go, swing over to the Google documentation and find out more about intents.

3
00:00:18,510 --> 00:00:24,030
Alright, so it says here that "An intent is an abstract description of an operation to be performed".

4
00:00:24,030 --> 00:00:30,060
So the use of the word abstract here can be a bit confusing, because intent isn't an abstract class.

5
00:00:30,060 --> 00:00:34,140
What they really mean here is that it's not tied to any particular operation.

6
00:00:34,140 --> 00:00:39,690
So reading on it can be used with a start activity method to launch an activity, which is what we're using

7
00:00:39,690 --> 00:00:46,860
it for in our app, and intent can also be used to send data to components that are registered to receive broadcasts,

8
00:00:46,860 --> 00:00:53,160
such as a notification that a text message has been received for example, and also to start a service. But

9
00:00:53,160 --> 00:00:55,890
it's launching activities that we're interested in here.

10
00:00:55,890 --> 00:01:00,840
Now the next paragraph is a bit jargony, but basically means that you can use an intent to launch an

11
00:01:00,840 --> 00:01:06,420
activity, without linking your code directly to the activity that you want to launch.

12
00:01:06,420 --> 00:01:12,090
So if you wanted to start the devices email app, you just specify email in the intent, without having to

13
00:01:12,090 --> 00:01:16,350
know which app the user's installed to handle emails on that device.

14
00:01:16,350 --> 00:01:22,800
So the most significant use of intents is in launching activities, and the documentation refers to them

15
00:01:22,800 --> 00:01:24,870
as the glue between activities.

16
00:01:24,870 --> 00:01:30,930
So in other words intents bind activities together. Now as well as the reference documentation,

17
00:01:30,930 --> 00:01:34,770
Google also provide guides on many aspects of Android.

18
00:01:34,770 --> 00:01:40,770
Now the reference documentation can be quite formal, but the guides are often written in a friendlier style,

19
00:01:40,770 --> 00:01:48,090
and there's actually a guides, a guide rather on intents. I'm just going to paste that link in, so you can check that out.

20
00:01:48,090 --> 00:01:51,180
Now here it's saying that "An intent is a messaging object

21
00:01:51,180 --> 00:01:54,480
you can use to request an action from another app component",

22
00:01:54,480 --> 00:01:59,490
and that's probably a more helpful description than an abstract description of an operation to be performed,

23
00:01:59,490 --> 00:02:01,380
as the previous page had.

24
00:02:01,380 --> 00:02:08,009
Now this page also mentions using intents to start activities, and mentions that the intent describes

25
00:02:08,009 --> 00:02:11,340
the activity to start and carries any necessary data.

26
00:02:11,340 --> 00:02:13,530
So I think this page is more readable.

27
00:02:13,530 --> 00:02:19,590
So watch out for URL's starting with developer.android.com/guide, as well as the slash

28
00:02:19,590 --> 00:02:22,270
reference pages, because the guides can be more help.

29
00:02:22,270 --> 00:02:28,500
We can see here where we've got slash guide in the URL, compared to slash reference there.

30
00:02:28,500 --> 00:02:32,720
I think the slash guides are a bit more readable in many cases.

31
00:02:32,720 --> 00:02:36,890
So once you finish this section, and you've seen how the code starts the various activities from our

32
00:02:36,890 --> 00:02:43,370
buttons, it is worth reading the rest of this page to get an explanation of how Android handles intents.

33
00:02:43,370 --> 00:02:47,120
Now don't worry about the bits about services and broadcasts just yet.

34
00:02:47,120 --> 00:02:49,590
It's activities we're interested in at the moment.

35
00:02:49,590 --> 00:02:51,800
Now we're going to create our own intent shortly,

36
00:02:51,800 --> 00:02:58,840
but here we don't need to, or have to, because the YouTubeStandalonePlayer class will actually create them for us.

37
00:02:58,840 --> 00:03:03,460
Now if we want an intent to play a video, we just call the create video intent function, if

38
00:03:03,460 --> 00:03:09,270
we go back to our code, and we're using that as you can see on line 40, and to play a list of videos

39
00:03:09,270 --> 00:03:13,060
as a playlist we're calling the create playlist intent.

40
00:03:13,060 --> 00:03:18,490
Now both of these functions will turn an intent that we can use, to start an activity but to perform

41
00:03:18,490 --> 00:03:23,110
the operation we want. Both methods need to know which activity's starting the intent,

42
00:03:23,110 --> 00:03:25,840
and that's why we're providing this here as the activity.

43
00:03:25,840 --> 00:03:28,210
Now we also have to provide the Google API key 

44
00:03:28,210 --> 00:03:33,670
and the ID of what we want to play, either a single video or a playlist, depending on which intent's

45
00:03:33,670 --> 00:03:40,390
being used. And by the by the functions of the YouTubeStandalonePlayer class are documented, and we

46
00:03:40,390 --> 00:03:45,160
go back to a browser, paste that link in,

47
00:03:45,160 --> 00:03:52,320
and they're actually documented on the YouTubeStandalonePlayer down here. You can find out more

48
00:03:52,320 --> 00:03:54,110
about it there from the link on the left, so

49
00:03:54,110 --> 00:03:56,520
check them out if you want to know more about its functions.

50
00:03:56,520 --> 00:04:02,860
So that's actually it. The documentation for intents may look a bit scary, but using them is actually pretty simple.

51
00:04:02,860 --> 00:04:08,340
Now it's just as easy to create our own intents to start different activities in our own app. I'm going to switch

52
00:04:08,340 --> 00:04:12,810
over back to the code now, and we're going to go back to our MainActivity.

53
00:04:12,810 --> 00:04:15,910
We're going to add the code for the buttons on the main screen.

54
00:04:15,910 --> 00:04:20,640
So the first thing we want to do is make the class implement the onClick list of interface, just as we

55
00:04:20,640 --> 00:04:24,270
did in the previous video for the StandaloneActivity class.

56
00:04:24,270 --> 00:04:26,920
So to do that we're just going to add a comma here,

57
00:04:26,920 --> 00:04:30,020
and View.OnClickListener, and

58
00:04:30,020 --> 00:04:32,040
you can see the imports are added automatically.

59
00:04:32,040 --> 00:04:37,370
We then add the code to assign the listener to the buttons,

60
00:04:37,370 --> 00:04:39,900
and I'm going to do that that after the setContinueView.

61
00:04:39,900 --> 00:04:49,230
So it's going to be btnPlaySingle.setOnClickListener, parentheses this, and btnPlayStandalone,

62
00:04:49,230 --> 00:04:58,290
or sorry, btnStandalone I should say, dot setOnClickListener, this, and accept the synthetic import

63
00:04:58,290 --> 00:05:03,210
if Android Studio doesn't add it automatically, but you can see here on line 6 it was added automatically for me.

64
00:05:03,210 --> 00:05:07,570
Now we've got an error at the moment but that will disappear once we implement the interfaces

65
00:05:07,570 --> 00:05:09,900
onClick method, so I'm going to go ahead and do that now.

66
00:05:09,900 --> 00:05:14,190
So we get Android Studio to generate the interface method by using control I.

67
00:05:14,190 --> 00:05:17,910
Again, before you do that remember to make sure that the cursor is inside the class

68
00:05:17,910 --> 00:05:24,260
when you do that, otherwise you'll get a weird error and it won't actually work. So I'm going to press enter there, and then we

69
00:05:24,260 --> 00:05:27,210
need to add the code for that so let's actually change this.

70
00:05:27,210 --> 00:05:32,000
And what we'll do is we'll try refactoring it this time, so Refactor, Rename. We'll

71
00:05:32,000 --> 00:05:41,880
call it view again, enter. Get rid of the question mark, we'll get rid of the TODO. The code's going to be val intent equals

72
00:05:41,880 --> 00:05:54,420
when, parentheses view.id, so R.id.btnPlaySingle, error token, capital I for intent,

73
00:05:54,420 --> 00:05:58,110
making sure that Android content is the one that was selected there.

74
00:05:58,110 --> 00:06:02,840
This is the first argument, comma Youtube,

75
00:06:02,840 --> 00:06:11,040
this time it's Youtube with a lower case t, Activity colon colon class.java

76
00:06:11,040 --> 00:06:20,360
right parentheses. We'll do the same for the Standalone, so R.id.btnStandalone error token, intent

77
00:06:20,360 --> 00:06:27,380
again, parentheses, this again comma, this time it's going to be StandaloneActivity

78
00:06:27,380 --> 00:06:37,560
colon colon class.java closing parentheses, then an else error token throw IllegalArgument

79
00:06:37,560 --> 00:06:53,020
Exception, parentheses double quotes "Undefined button clicked". Then outside of the code block for our when, startActivity intent.

80
00:06:53,020 --> 00:06:57,380
So this code's very similar to the code we just created in the StandaloneActivity class.

81
00:06:57,380 --> 00:07:00,340
The difference here is that we're creating our own intents.

82
00:07:00,340 --> 00:07:05,390
Now the intent class has got several constructors, but whenever you want to use an intent to launch a new

83
00:07:05,390 --> 00:07:09,300
activity in your own app, then this is the one you'll often use.

84
00:07:09,300 --> 00:07:14,170
Now we have to provide it with a context, so you can see we use this to pass the current context.

85
00:07:14,170 --> 00:07:20,720
Now the btnPlaySingle button will launch the YouTubeActivity, and  btnStandalone starts our Standalone

86
00:07:20,720 --> 00:07:26,030
Activity, and these are passed as the second parameter to the intent class constructor.

87
00:07:26,030 --> 00:07:30,920
Now YouTubeActivity colon colon class as you can see being used here on line 21,

88
00:07:30,920 --> 00:07:36,230
that's called a class literal, and it's a way to pass a reference to a class as a parameter.

89
00:07:36,230 --> 00:07:38,810
Now you wouldn't pass string or integer as a parameter.

90
00:07:38,810 --> 00:07:43,760
You'd use an actual string such as, you know, tim in double quotes, or an actual number like 100,

91
00:07:43,760 --> 00:07:45,170
and this is the same thing.

92
00:07:45,170 --> 00:07:52,430
We need to pass an object of type class, whose value is the YouTubeActivity class, and that's how you do it in Kotlin.

93
00:07:52,430 --> 00:07:58,220
Now don't worry too much about it, just remember that when you want to pass a class to a function, you

94
00:07:58,220 --> 00:08:03,290
have to create a class literal by adding the colon colon class at the end,

95
00:08:03,290 --> 00:08:07,450
and because these are Java classes we're also adding dot Java.

96
00:08:07,450 --> 00:08:12,530
Now the other thing I've done is check that this method wasn't called by some other button. Now it shouldn't

97
00:08:12,530 --> 00:08:15,360
be, because we've only got two buttons in the screen, and

98
00:08:15,360 --> 00:08:18,110
we're actually handling both of them in the when statement.

99
00:08:18,110 --> 00:08:22,790
So we've got a case for each button in other words, but it's good practice to make sure in case we add

100
00:08:22,790 --> 00:08:26,180
a new button, and forget to update this function.

101
00:08:26,180 --> 00:08:30,110
So that's why I've added the else branch on line 23.

102
00:08:30,110 --> 00:08:32,549
Alright so that's it, that's our code finished.

103
00:08:32,549 --> 00:08:36,380
Now there's one more thing that the new activity wizard does,

104
00:08:36,380 --> 00:08:40,039
and we've got to do that manually for the StandaloneActivity class.

105
00:08:40,039 --> 00:08:45,230
Now I mentioned it briefly when we used the wizard to create the YouTubeActivity class, and it's to do

106
00:08:45,230 --> 00:08:46,940
with the manifest file.

107
00:08:46,940 --> 00:08:49,650
So let's have a look at that, and see what that's all about.

108
00:08:49,650 --> 00:08:57,030
We're going to open our manifest file up here. Now inside the application tag as you can see here on line 7, there's

109
00:08:57,030 --> 00:09:02,720
tags for each of our activities, and in this case you can see we've got dot MainActivity and dot YoutubeActivity.

110
00:09:02,720 --> 00:09:06,440
Now we're actually missing a tag for the new StandaloneActivity, and

111
00:09:06,440 --> 00:09:07,860
I'm going to add that in a minute.

112
00:09:07,860 --> 00:09:13,590
Now when we created the YoutubeActivity using the wizard, and checked the launcher activity box, the

113
00:09:13,590 --> 00:09:18,930
wizard added an intent-filter tag with an action filter and a category filter.

114
00:09:18,930 --> 00:09:24,370
So we've got this intent-filter that's got an action, and also a category tag as you can see. Now without

115
00:09:24,370 --> 00:09:27,390
these, we couldn't launch the activity as we've been doing,

116
00:09:27,390 --> 00:09:32,460
so we would've been unable to see YoutubeActivity working. So checking that launcher activity

117
00:09:32,460 --> 00:09:37,860
box resulted in these extra tags being added to the manifest for YoutubeActivity.

118
00:09:37,860 --> 00:09:41,910
And once again these wizards don't do anything that we couldn't do ourselves, they just save us a bit of

119
00:09:41,910 --> 00:09:43,230
time and typing.

120
00:09:43,230 --> 00:09:48,150
So now that we've got a way to launch the YoutubeActivity using a button, we actually don't need these

121
00:09:48,150 --> 00:09:52,830
intent-filters anymore, but we do need an activity tag for each activity,

122
00:09:52,830 --> 00:09:56,700
otherwise they can't be seen by the Android system and can't be launched at all.

123
00:09:56,700 --> 00:10:04,000
Now the tag must include a name attribute but everything else is optional, and I'm going to also specify a label

124
00:10:04,000 --> 00:10:06,080
and that will appear in the activity's title.

125
00:10:06,080 --> 00:10:11,940
So I'm going to modify the YoutubeActivity element first, and add another one then for the new StandaloneActivity.

126
00:10:11,940 --> 00:10:14,360
So basically again all we need here is activity,

127
00:10:14,360 --> 00:10:18,710
and we've got android name YoutubeActivity, and I'm going to also add the label.

128
00:10:18,710 --> 00:10:21,290
And what I'll do for clarity is put that on the next line,

129
00:10:21,290 --> 00:10:33,030
so Android colon label, and we'll call that Youtube Player. So, and we'll come back to there, then I'm going to delete this

130
00:10:33,030 --> 00:10:38,590
intent-filter as I mentioned, and we've got the closing activity tag now, and we're going to copy that,

131
00:10:38,590 --> 00:10:41,420
and we're going to create another one now for our StandaloneActivity.

132
00:10:41,420 --> 00:10:46,050
It has to be inside the application before the application closing tag, so

133
00:10:46,050 --> 00:10:52,320
this time instead of YouTubeActivity, we're going to call this one StandaloneActivity, and you can

134
00:10:52,320 --> 00:10:58,270
see that Android Studio is correctly referring to our StandaloneActivity class, and press enter there.

135
00:10:58,270 --> 00:11:02,840
OK, get rid of that trailing activity there, and

136
00:11:02,840 --> 00:11:04,930
this time it's going to be called StandaloneActivity.

137
00:11:04,930 --> 00:11:11,230
That's going to be what's on our label.

138
00:11:11,230 --> 00:11:16,390
Alright, so at this point now the apps finished, and we can actually run it on a device to make sure it all works.

139
00:11:16,390 --> 00:11:21,180
So I've got my emulator going, and I've got it set to portrait mode as you can see there. Now,

140
00:11:21,180 --> 00:11:23,970
we've been running the YoutubeActivity until now,

141
00:11:23,970 --> 00:11:28,700
and Android Studio reconfigures the play button on the toolbar, so that it runs the last activity that

142
00:11:28,700 --> 00:11:31,660
you selected, you can see up here it's YoutubeActivity. Now

143
00:11:31,660 --> 00:11:35,920
if I just click the run button, I actually get this error pop up on the bottom of the screen. 

144
00:11:35,920 --> 00:11:39,040
So I'll do that and show you, see down the bottom there, the error,

145
00:11:39,040 --> 00:11:40,240
"Error running YoutubeActivity:

146
00:11:40,240 --> 00:11:45,480
The activity must be exported or contain an intent-filter". Essentially it's now complaining about

147
00:11:45,480 --> 00:11:50,320
the fact that the YoutubeActivity entry in the manifest file must have that intent-filter,

148
00:11:50,320 --> 00:11:54,300
and of course we've just taken that out of there. But that's fine though because we don't want to run Youtube

149
00:11:54,300 --> 00:11:56,400
Activity directly anymore.

150
00:11:56,400 --> 00:11:59,150
We're going to be using the buttons that we've added now.

151
00:11:59,150 --> 00:12:02,870
Now what we're going to do is make sure that we're in an MainActivity. Now

152
00:12:02,870 --> 00:12:08,100
sometimes when you right click in there, it doesn't give you the option to run MainActivity from the menu.

153
00:12:08,100 --> 00:12:13,340
You can see in this case I have got it to work but sometimes it doesn't work. If that doesn't work and you can't

154
00:12:13,340 --> 00:12:20,100
see it, come over here to MainActivity and right click it on the actual class name and select run MainActivity.

155
00:12:20,100 --> 00:12:23,940
And if that doesn't work you may need to come up to build, and actually rebuild the project.

156
00:12:23,940 --> 00:12:29,040
One of those methods, well you may have to rebuild and then either of those other two methods should actually work.

157
00:12:29,040 --> 00:12:36,040
So I'm just going to right click now and select run MainActivity, and I'm going to run it on my emulator.

158
00:12:36,040 --> 00:12:40,000
Alright, so you can see now that's our main screen with the two buttons, so that's working.

159
00:12:40,000 --> 00:12:46,100
I'm going to tap the PLAY A SINGLE VIDEO button now, and we get our YoutubeActivity launched,

160
00:12:46,100 --> 00:12:48,350
that's the one that we've been testing before.

161
00:12:48,350 --> 00:12:52,670
So when you want to start a new activity in your apps, this is one way to do it.

162
00:12:52,670 --> 00:12:57,740
So that's playing fine. We're getting our Toast messages as you can see, so 

163
00:12:57,740 --> 00:13:03,360
that's all working good. I'm going to go back to the menu with the back button,

164
00:13:03,360 --> 00:13:09,060
and this time we're going to go and tap the standalone sub-menu button. That launches our Standalone Activity,

165
00:13:09,060 --> 00:13:14,640
and here's our sub-menu as you can see. Now the title says Standalone Activity, because that's the text we

166
00:13:14,640 --> 00:13:17,220
put in the label in the manifest.

167
00:13:17,220 --> 00:13:23,500
So let's check the single video first. I'm going to tap that button. You can see that our video

168
00:13:23,500 --> 00:13:26,450
got launched again. Now it doesn't start playing automatically,

169
00:13:26,450 --> 00:13:28,210
so you do have to tap the Play icon.

170
00:13:28,210 --> 00:13:33,470
You can you can see that it's running in landscape at the moment, on it's side,

171
00:13:33,470 --> 00:13:36,880
and that's because the Standalone Player's running at full screen.

172
00:13:36,880 --> 00:13:46,170
So I'm going to rotate the device, play it again.

173
00:13:46,170 --> 00:13:51,040
So the Google Standalone Player doesn't allow itself to be destroyed when the orientation changes,

174
00:13:51,040 --> 00:13:53,740
but it also doesn't handle the change itself.

175
00:13:53,740 --> 00:13:58,270
It makes sense in this case because a full screen video really has to run in landscape,

176
00:13:58,270 --> 00:13:59,950
otherwise it wouldn't be full screen.

177
00:13:59,950 --> 00:14:02,850
Now notice that when I'm pressing pause here,

178
00:14:02,850 --> 00:14:09,000
we're not actually getting any Toast notifications. With the Standalone Player there's no capability

179
00:14:09,000 --> 00:14:11,280
in the code for us to get those callbacks.

180
00:14:11,280 --> 00:14:16,500
It's only when we use the YouTubePlayer widget in the YoutubeActivity that enables you to do that.

181
00:14:16,500 --> 00:14:20,920
So that's also working now. So I'm going to go back to the menu.

182
00:14:20,920 --> 00:14:26,160
Let's have a look at the Playlist.

183
00:14:26,160 --> 00:14:30,880
Now notice these arrows, you can't quite see, you'll have to play it a little bit so we can actually see it,

184
00:14:30,880 --> 00:14:36,210
and we've actually got an ad appearing. So let's just wait for that to finish,

185
00:14:36,210 --> 00:14:38,220
and I'll just pause this when I can.

186
00:14:38,220 --> 00:14:44,440
OK, so notice this arrow here. This moves through the Playlist, onto the next video.

187
00:14:44,440 --> 00:14:48,670
Now once again the video doesn't start playing, or didn't start playing automatically, so you can tap on Play as

188
00:14:48,670 --> 00:14:54,380
you saw me do to get it to play. And if I click on next now, this arrow here, it

189
00:14:54,380 --> 00:15:02,730
actually goes to the next video in the Playlist sequence. We'll wait for the ad to finish,

190
00:15:02,730 --> 00:15:08,880
and that's a completely different video to what we saw previously, so I'm just going to pause that, and I

191
00:15:08,880 --> 00:15:13,180
can then go back to the previous video if I wanted to. Now what I wanted to show you,

192
00:15:13,180 --> 00:15:17,190
just wait til we go a little bit further here. Now you can see there it's fairly dull,

193
00:15:17,190 --> 00:15:21,720
but when we get to the start, to the first video of the Playlist, I can't click that anymore. So I'm actually

194
00:15:21,720 --> 00:15:23,520
clicking that but nothing's happening,

195
00:15:23,520 --> 00:15:31,810
as you'd expect because we're on the first video. And I can go forward multiple times, forward again,

196
00:15:31,810 --> 00:15:36,030
and notice it's helpfully telling us at the top there, once this ad finishes,

197
00:15:36,030 --> 00:15:44,000
which is becoming quite annoying, which video we're on, we're on three of seven. Now

198
00:15:44,000 --> 00:15:46,610
eventually by doing that I could get to the last video,

199
00:15:46,610 --> 00:15:50,960
then we wouldn't be able to go forward any further, then I could go back to the previous videos.

200
00:15:50,960 --> 00:15:55,790
So that functionality, in terms of playing the videos in the Playlists and skipping back and forward,

201
00:15:55,790 --> 00:16:01,250
that's actually part and parcel of the YouTube Standalone Player. So that's all working fine.

202
00:16:01,250 --> 00:16:06,630
And our YouTube app's finished. Now in this section we've actually covered quite a lot.

203
00:16:06,630 --> 00:16:12,520
So we saw how to include a third party library in our own apps, when we added the YouTube API jar file

204
00:16:12,520 --> 00:16:16,790
to the libs folder, and we created a reference to it in the build.gradle file.

205
00:16:16,790 --> 00:16:22,250
Now we also checked out the documentation for the API, and the Internet is an excellent resource,

206
00:16:22,250 --> 00:16:28,490
whenever you need any information on how something works or how to use various classes and functions.

207
00:16:28,490 --> 00:16:31,070
And it's not just for third party libraries either.

208
00:16:31,070 --> 00:16:36,740
The Google documentation on Android itself is also a very useful source of information, and they often

209
00:16:36,740 --> 00:16:39,860
supply guides as well as the reference documentation,

210
00:16:39,860 --> 00:16:43,760
so get in the habit of searching for documentation on the classes you use.

211
00:16:43,760 --> 00:16:49,790
We then implemented a couple of interfaces to allow the YouTubePlayer, the YouTubePlayer to call functions

212
00:16:49,790 --> 00:16:53,580
in our code, when something interesting happened during playback.

213
00:16:53,580 --> 00:16:58,010
We did that again as an alternative way of setting a listener on the buttons in our app.

214
00:16:58,010 --> 00:17:02,270
Now the app also used intents to start other activities,

215
00:17:02,270 --> 00:17:04,460
so now we can create more complex apps.

216
00:17:04,460 --> 00:17:06,500
that've got more than one screen.

217
00:17:06,500 --> 00:17:10,329
Now there are other ways to do that, and we're going to be looking at something called a fragment a bit

218
00:17:10,329 --> 00:17:15,680
later, but starting activities using intents is a crucial part of Android programming.

219
00:17:15,680 --> 00:17:17,690
So that's just about the end of this section,

220
00:17:17,690 --> 00:17:21,220
but I'm going to finish it off now with a challenge.

221
00:17:21,220 --> 00:17:27,339
So the challenge is to use the documentation on the YouTube Standalone Player to change the app, so that

222
00:17:27,339 --> 00:17:34,550
the video starts, or the videos start playing automatically after you've tapped the buttons on the Standalone menu.

223
00:17:34,550 --> 00:17:39,820
Now at the moment the videos are queued, and the player has to tap the Play icon to get them to play,

224
00:17:39,820 --> 00:17:45,040
as you saw me do in this video, so you want them to start playing automatically when the button's tapped.

225
00:17:45,040 --> 00:17:47,830
So do that for both the Video and the Playlist,

226
00:17:47,830 --> 00:17:50,620
and in the next video, I'll actually go through my solution.

227
00:17:50,620 --> 00:17:51,970
So I'll see you in the next video.

