1
00:00:00,360 --> 00:00:09,350
So here it's time to initialize or file Vaadia that we created here inside our Meffert save say it in

2
00:00:09,360 --> 00:00:10,470
line number 24.

3
00:00:10,470 --> 00:00:15,010
So here we are inside the safe and Meffert inside this savefile class actually.

4
00:00:15,480 --> 00:00:23,220
So after this line of code here in line number 32 that actually specifies the unique image name I'm

5
00:00:23,220 --> 00:00:31,620
going to initialize my valuable my file actually the modified assignment operator on here I can see

6
00:00:31,620 --> 00:00:33,560
a new file.

7
00:00:34,670 --> 00:00:35,280
Right.

8
00:00:35,360 --> 00:00:37,570
So we need to pass the pathname.

9
00:00:37,570 --> 00:00:38,890
Look at this argument here.

10
00:00:38,890 --> 00:00:44,410
It says to pathname So the pathname is going to be the directory.

11
00:00:44,510 --> 00:00:46,010
We created the directory here right.

12
00:00:46,010 --> 00:00:47,510
Peteris directory.

13
00:00:47,690 --> 00:00:48,320
Right.

14
00:00:48,420 --> 00:00:56,060
Avi folder color pictures plus the filename the unique image and so I can say pictures directory plus

15
00:00:56,540 --> 00:00:57,970
unique image name.

16
00:00:58,520 --> 00:01:00,000
So this is going to be our file.

17
00:01:00,140 --> 00:01:03,750
So we need to write this file to an external storage.

18
00:01:03,830 --> 00:01:12,470
So now it's time to specify that whether or external storage has free space or not.

19
00:01:12,470 --> 00:01:20,300
So let's actually create a variable of type long and the name of this valuable is going to be remaining

20
00:01:20,390 --> 00:01:31,090
space remaining space assignment operator and I'm going to refer to are actually to our directory which

21
00:01:31,090 --> 00:01:35,290
is going to be pictures directory right up this piece history be valuable.

22
00:01:35,380 --> 00:01:39,460
So I can say pictures directory dot just type in here.

23
00:01:39,460 --> 00:01:41,170
Free get free space.

24
00:01:41,320 --> 00:01:42,430
Semicolon.

25
00:01:42,430 --> 00:01:47,410
So it's going to return to free space that is remained inside or extend out of storage and it's going

26
00:01:47,410 --> 00:01:51,540
to assign it to this valuable remaining space which is after lunch.

27
00:01:51,640 --> 00:01:52,710
Right.

28
00:01:52,720 --> 00:01:56,770
And notice that the return value is going to be off type bytes.

29
00:01:57,010 --> 00:01:57,780
OK.

30
00:01:57,790 --> 00:02:01,420
It's going to return the free space in bytes.

31
00:02:01,420 --> 00:02:08,710
Now it's time to specify that how many actually it's space in bytes are actually needed in order to

32
00:02:08,770 --> 00:02:11,870
save our bitmapped to external storage.

33
00:02:11,980 --> 00:02:12,370
Right.

34
00:02:12,370 --> 00:02:19,850
So I'm going to again create another variable of type at lunch and I can see the required required space

35
00:02:20,720 --> 00:02:26,060
assignment operator and this method has an argument of type bitmap right.

36
00:02:26,060 --> 00:02:32,610
So when I refer to this bitmap here bitmap that gets byte count semicolon.

37
00:02:32,870 --> 00:02:39,540
So it's going our return to count of the bytes of this bitmap object of this image actually.

38
00:02:39,770 --> 00:02:41,070
And it's going to assign it to this value.

39
00:02:41,070 --> 00:02:44,580
But now it's time to create an if statement.

40
00:02:44,580 --> 00:02:56,090
So if I'm here I'm going to actually refer to the required space if remaining if required space multiplied

41
00:02:56,450 --> 00:03:03,890
by one point eight is less than remaining space.

42
00:03:04,460 --> 00:03:07,250
Let's open and close this statement by using this curly braces.

43
00:03:07,460 --> 00:03:08,340
So what does this mean.

44
00:03:08,360 --> 00:03:10,040
Let me explain to you what's going on here.

45
00:03:10,040 --> 00:03:12,290
Exactly what does this mean here.

46
00:03:12,320 --> 00:03:19,370
This means that if the required space which is going to be the count of the parts of this bitmap object

47
00:03:19,370 --> 00:03:24,100
right the image multiplied by this value of one point eight.

48
00:03:24,320 --> 00:03:28,990
If the result of this operation is less than the value of the remaining space.

49
00:03:28,990 --> 00:03:37,320
This means that we have enough space inside our external storage in order to save our image there.

50
00:03:37,550 --> 00:03:38,640
Right.

51
00:03:38,660 --> 00:03:42,260
So this is a formula you can use it later here.

52
00:03:42,350 --> 00:03:48,640
This operation here is very important in order to specify that whether we have a remaining space here

53
00:03:48,650 --> 00:03:52,610
in order to save our image to a central storage.

54
00:03:52,610 --> 00:03:57,540
So the quiet space multiplied by 1.8 is less than remaining space.

55
00:03:57,540 --> 00:04:00,330
Otherwise what happens if this condition evaluates to false.

56
00:04:00,410 --> 00:04:06,620
What happens if the device is external storage doesn't have enough space in order to save the image.

57
00:04:06,620 --> 00:04:12,200
In that case we need to create an L statement so let's create an alpha statement here and open and close

58
00:04:12,440 --> 00:04:19,280
this whole statement by using this curly braces inside the curly braces of this Else statement I say

59
00:04:19,460 --> 00:04:25,270
fro new exception for an exception.

60
00:04:25,280 --> 00:04:27,230
And here we need to specify the message right.

61
00:04:27,230 --> 00:04:39,530
Just put two coats and here I can say there is no there is no enough space in order to save the image

62
00:04:39,530 --> 00:04:42,890
in order to save the image

63
00:04:46,130 --> 00:04:57,930
to external storage right semicolon let me create a new line here so that you can see these values better.

64
00:04:58,210 --> 00:05:03,230
So I actually of a front a new exception if this happens.

65
00:05:03,260 --> 00:05:06,230
So now let's go inside the statement here.

66
00:05:06,230 --> 00:05:15,710
So we are going to assume that the use of the user's device external storage has enough memory has enough

67
00:05:15,800 --> 00:05:17,950
storage in order to save that bitmap.

68
00:05:18,020 --> 00:05:25,770
I'm going to say because the operation of saving the image to external storage is going to be error

69
00:05:25,770 --> 00:05:26,580
prone.

70
00:05:26,820 --> 00:05:27,950
OK.

71
00:05:28,020 --> 00:05:34,510
In that case we must actually put our code inside a try catch block so let's create a try catch block.

72
00:05:34,540 --> 00:05:40,420
So try and after the ending curly brace of the stripe like I need to say catch inside Apprentice's just

73
00:05:40,420 --> 00:05:41,290
they've been here.

74
00:05:41,440 --> 00:05:47,670
Acception and the name of this prime it is going to be just open and closed this test played by using

75
00:05:47,670 --> 00:05:50,980
these curly braces inside this tetch black church.

76
00:05:51,000 --> 00:05:52,530
I can actually for a new exception.

77
00:05:52,530 --> 00:05:58,150
So here I can see fro new ARE YOU exception for are exception.

78
00:05:58,410 --> 00:06:03,810
I just put two coats here and Hitler can say that the operation went wrong.

79
00:06:03,840 --> 00:06:21,660
I can say that the operation the operation of saving the image to external storage when it's rank semicolon.

80
00:06:21,660 --> 00:06:23,630
So let me create a new line here.

81
00:06:23,700 --> 00:06:24,420
External.

82
00:06:24,420 --> 00:06:29,380
Actually let me create a line in order so that you can actually see these values better.

83
00:06:29,610 --> 00:06:32,690
So now let's go inside this try block here.

84
00:06:34,430 --> 00:06:40,850
In order to save our image in order to write our image to external storage we need to have an object

85
00:06:40,850 --> 00:06:42,730
of type file output stream.

86
00:06:42,740 --> 00:06:43,850
So let's create that here.

87
00:06:43,880 --> 00:06:49,760
Let's create a value of type file of output stream inside a double that are your package and the name

88
00:06:49,760 --> 00:06:55,970
of this rally but it's going to be five out with stream assignment operator new file output stream.

89
00:06:56,270 --> 00:07:00,680
And here as you can see if you need to pass the file name right.

90
00:07:00,800 --> 00:07:07,130
So I'm going to pass my fight here to this constructed of this final thoughts because I want to write

91
00:07:07,130 --> 00:07:13,850
my file to extend our storage so that's why I'm passing them my file here to this constructor.

92
00:07:13,850 --> 00:07:16,310
Now I can say boolean.

93
00:07:16,460 --> 00:07:18,470
Let's create a variable of a boolean.

94
00:07:18,560 --> 00:07:23,640
And here I can say is image saved successfully

95
00:07:26,150 --> 00:07:33,720
assignment operator now I'm going to refer to my peace map arguments that I receive from this safe while

96
00:07:33,750 --> 00:07:34,710
I'm here right.

97
00:07:35,590 --> 00:07:42,380
So I'm going to say bitmap does compress bitmapped that compress.

98
00:07:42,690 --> 00:07:46,450
And we need to pass some arguments to this.

99
00:07:46,500 --> 00:07:53,000
The first one is going to be actually the compressed format so I can say bitmapped that bitmap with

100
00:07:53,000 --> 00:07:58,820
chapter b right that compressed format that I told you that the format of our images that are going

101
00:07:58,820 --> 00:08:05,390
to be saved to external storage is going to be of the P.A. which was PND here bitmapped that compressed

102
00:08:05,390 --> 00:08:10,220
format that PNB the second argument is going to be the quality of the image.

103
00:08:10,400 --> 00:08:12,250
So the best quality is 100.

104
00:08:12,260 --> 00:08:15,310
But because we are here we are using the P.A. format.

105
00:08:15,320 --> 00:08:17,750
It doesnt really matter which value you use.

106
00:08:17,770 --> 00:08:18,330
OK.

107
00:08:18,590 --> 00:08:23,700
The P.A. format doesn't really care about the quality that we specify here.

108
00:08:23,780 --> 00:08:31,880
So we just passed a value 100 here because 100 is the best quality comma and the first argument here

109
00:08:32,480 --> 00:08:35,660
is going to be file output stream.

110
00:08:35,660 --> 00:08:43,970
So this object is going to actually write our image to external storage with these actually values.

111
00:08:43,970 --> 00:08:50,900
For example the Pinti and the quality 100 and this object is going to just right this image to extend

112
00:08:50,900 --> 00:08:54,260
our storage and the result of the Smurfette.

113
00:08:54,270 --> 00:09:02,300
If this operation is successful and if the image is returned to extend out of storage successfully The

114
00:09:02,300 --> 00:09:05,310
result is going to be true and its going to be assigned to this value.

115
00:09:05,310 --> 00:09:07,370
But is image safe to successfully.

116
00:09:07,370 --> 00:09:09,550
So let me create an if statement here.

117
00:09:09,560 --> 00:09:14,720
Let me first let me create a new line here so that you can see the entire code here.

118
00:09:14,780 --> 00:09:21,680
Now I'm going to actually create an if statement so if is image saved successfully I can often enclose

119
00:09:21,680 --> 00:09:24,190
this statement by using these curly braces.

120
00:09:24,320 --> 00:09:27,960
I can say return my flight.

121
00:09:27,980 --> 00:09:33,560
So this means that I can return to my file object from this method.

122
00:09:33,560 --> 00:09:36,910
Otherwise let's create an else statement else.

123
00:09:38,100 --> 00:09:40,570
I can create an else statement here right.

124
00:09:40,620 --> 00:09:42,370
I can throw an exception.

125
00:09:42,390 --> 00:09:53,160
I can see fro new exception for nucula exception and instead the apprentice I can specify the message.

126
00:09:53,170 --> 00:10:01,630
So here I can say the image the image is not saved is not safe.

127
00:10:02,380 --> 00:10:03,440
Successfully

128
00:10:07,100 --> 00:10:13,310
external storage external storage right semicolon.

129
00:10:13,710 --> 00:10:20,820
So let me create a new line here so that it is RMF it and it can see that we have no errors here.

130
00:10:20,910 --> 00:10:23,380
This is our fate that we're going to use later.

131
00:10:23,380 --> 00:10:29,250
So our main activity class in order to save the image that is taken by the user by using the camera

132
00:10:29,960 --> 00:10:32,060
to extend our storage.

133
00:10:32,490 --> 00:10:35,860
So let's see how we can use this class and this method.

134
00:10:36,250 --> 00:10:43,050
First we need to go to the Antrix manifest that exemplified here and we need to add another permission

135
00:10:43,050 --> 00:10:43,590
to this file.

136
00:10:43,580 --> 00:10:50,100
So below it is a permission that we added here I can actually open another tab and I can see the user's

137
00:10:50,310 --> 00:10:58,230
permission and I'm going to say you write external storage and it's self close this time.

138
00:10:58,250 --> 00:11:02,420
By using this by putting this dash and this closing tag here.

139
00:11:02,760 --> 00:11:06,840
So we are going to ask the user to allow us to access the external storage.

140
00:11:06,840 --> 00:11:11,380
And so when I say right this means that I can write and read.

141
00:11:11,790 --> 00:11:14,510
But we have the permission that that is actually read.

142
00:11:14,650 --> 00:11:16,140
Then Allosaurus really excellent.

143
00:11:16,140 --> 00:11:22,500
So this means that we can only read the external storage but right then all the storage permission means

144
00:11:22,500 --> 00:11:24,860
that we can read and write.

145
00:11:24,870 --> 00:11:30,980
So let's go to our main activity class and let's find the unclick Smurfette.

146
00:11:30,980 --> 00:11:32,800
So let me search for the anklets of.

147
00:11:32,830 --> 00:11:37,190
If you are using a match you just need to hold down the command channel and then press and then that

148
00:11:37,220 --> 00:11:38,300
if you keep both.

149
00:11:38,480 --> 00:11:43,400
And if you are using a Windows machine you just need to hold down the control on your keyboard and then

150
00:11:43,400 --> 00:11:48,250
press underlay that if key on your keyboard in order to search for a specific key word inside your file.

151
00:11:48,350 --> 00:11:50,290
So I'm going to search for and click.

152
00:11:50,390 --> 00:11:53,770
So he's going to find all the keywords with this value here.

153
00:11:53,770 --> 00:11:56,370
Unclear here that it's actually match this value.

154
00:11:56,390 --> 00:11:58,610
So the first one is viewed that Uncle listener.

155
00:11:58,790 --> 00:12:02,690
So in order to find the next result here you can see these arrows here.

156
00:12:02,690 --> 00:12:03,280
Right.

157
00:12:03,320 --> 00:12:08,710
So let's click on this than our next occurrence and here we have this one this one.

158
00:12:08,840 --> 00:12:11,810
And finally this one this is our uncle Meffert right.

159
00:12:11,960 --> 00:12:16,520
If you want to you can just write the entire and Mefford of the parameters also.

160
00:12:16,580 --> 00:12:18,320
So we have this uncle Mefford.

161
00:12:18,500 --> 00:12:24,230
And here we are saying that if they view that good ID is equal to or ID that here and take a picture

162
00:12:24,530 --> 00:12:26,130
then it's going to execute these codes here.

163
00:12:26,150 --> 00:12:27,080
Right.

164
00:12:27,080 --> 00:12:31,910
So what happens if the user clicks on these safe pictures so we created this LCS.

165
00:12:31,940 --> 00:12:38,060
They've been elusive view that good idea is equal to our idea that B.T. and see feature.

166
00:12:38,060 --> 00:12:42,710
So now let's go inside this LCF statement inside the curly braces of this elusive state and actually

167
00:12:43,250 --> 00:12:51,650
and here I can't say double meaning to ask the users to give us our runtime permission in order to access

168
00:12:51,650 --> 00:12:54,910
the external storage and to write the X then storage.

169
00:12:55,130 --> 00:13:00,410
So let's create about the level of that integer here and there the name of this rally is going to be

170
00:13:00,410 --> 00:13:03,180
permission check permission check.

171
00:13:03,220 --> 00:13:03,740
Right.

172
00:13:03,800 --> 00:13:12,350
Assignment operator and here I can say context compact that check self permission.

173
00:13:12,820 --> 00:13:15,870
So we need to first we need to pass the context right.

174
00:13:15,970 --> 00:13:24,860
So the contest is going to be main activity that this Kamo and the second value is going to be the actual

175
00:13:24,860 --> 00:13:25,830
permission right.

176
00:13:25,850 --> 00:13:29,490
So I can't say manifest that permission.

177
00:13:29,510 --> 00:13:30,530
That's right.

178
00:13:30,560 --> 00:13:32,290
External storage.

179
00:13:32,290 --> 00:13:33,260
Semicolon.

180
00:13:33,710 --> 00:13:34,280
Right.

181
00:13:34,310 --> 00:13:36,270
So this is our permission here.

182
00:13:36,410 --> 00:13:46,080
Now I can create an if statement so if permission check is equal to package manager that permission

183
00:13:46,110 --> 00:13:52,680
granted this means that the user has allowed this application to access the extent of the storage then

184
00:13:52,740 --> 00:14:00,160
only in that case we can actually write our code in order to save the image to external storage.

185
00:14:00,360 --> 00:14:06,110
But what happens if the user doesn't allow us to access the extent of the storage or the user hasn't

186
00:14:06,210 --> 00:14:08,680
allowed us to access the this and also this yet.

187
00:14:09,030 --> 00:14:16,000
In that case we want to ask the user to give us the access to permission to access the sin of storage.

188
00:14:16,050 --> 00:14:21,720
So as let's open this else they by using the curly braces on opening curly brace followed by a closing

189
00:14:21,720 --> 00:14:22,620
curly brace.

190
00:14:22,620 --> 00:14:31,870
And here I can ask to use there so I can just say activity Compaq's that request permission that request

191
00:14:32,270 --> 00:14:33,350
permissions.

192
00:14:33,650 --> 00:14:37,890
So first we need to pass the context so I can see main activity that is right.

193
00:14:37,920 --> 00:14:38,840
Comma.

194
00:14:39,170 --> 00:14:43,000
And I told you that we need to pass an army of permissions.

195
00:14:43,010 --> 00:14:45,740
Here you can see that here right an army of permission.

196
00:14:45,740 --> 00:14:49,450
So I can see new screen arii.

197
00:14:49,610 --> 00:14:56,280
So I just put the two curly braces here and instead the curly braces I can pass the permission so we

198
00:14:56,280 --> 00:14:58,210
only have one permission here.

199
00:14:58,290 --> 00:14:59,740
It is going to be manifest.

200
00:15:00,590 --> 00:15:04,490
Got permission that external storage.

201
00:15:04,480 --> 00:15:04,770
Right.

202
00:15:04,790 --> 00:15:05,260
Excellent.

203
00:15:05,260 --> 00:15:06,170
So that's right.

204
00:15:06,200 --> 00:15:06,750
Comma.

205
00:15:06,800 --> 00:15:08,550
Finally we need to pass the request code.

206
00:15:08,720 --> 00:15:12,950
The request must be a unique value so we can actually say 2000.

207
00:15:13,190 --> 00:15:13,660
Right.

208
00:15:13,670 --> 00:15:14,830
That's it.

209
00:15:14,870 --> 00:15:17,390
Now that we specified that request.

210
00:15:17,390 --> 00:15:21,060
Here let me create a new line here so that you can see this value better.

211
00:15:22,230 --> 00:15:25,880
Let's go inside this statement here that says that permission is granted.

212
00:15:25,890 --> 00:15:26,620
Right.

213
00:15:26,700 --> 00:15:33,660
I need to because I want to call this save the file Meffert of the Save for class and that if it is

214
00:15:33,660 --> 00:15:40,050
going to throw an exception we need to put our coats inside a try catch block right.

215
00:15:40,080 --> 00:15:42,650
Otherwise the compiler is going to complain.

216
00:15:42,870 --> 00:15:48,410
So just typing here try and after the adding curly brace of this try block.

217
00:15:48,420 --> 00:15:49,200
Just step in here.

218
00:15:49,210 --> 00:15:56,450
Cheche exception we just open and close to a catch block by using these curly braces and just like in

219
00:15:56,450 --> 00:15:56,620
here.

220
00:15:56,640 --> 00:16:01,760
Either print stack trace inside a try block here.

221
00:16:02,040 --> 00:16:03,630
So this print stack trace.

222
00:16:03,670 --> 00:16:09,020
If it is going to output some values to the LUGG if anything goes wrong inside this tribal I can say

223
00:16:09,280 --> 00:16:10,590
safe file.

224
00:16:10,610 --> 00:16:17,170
Class and because that Meffert they say fine if it inside the safety class is actually a static method

225
00:16:17,530 --> 00:16:20,460
I can directly call that Meffert on this class.

226
00:16:20,470 --> 00:16:27,380
I can say say that safelight need to pass some arguments to the Smurfette the first one is the activity

227
00:16:27,400 --> 00:16:27,890
right.

228
00:16:27,910 --> 00:16:30,960
So I can just say this right.

229
00:16:30,970 --> 00:16:36,130
All I can say main activity that is main activity that's this karma.

230
00:16:36,700 --> 00:16:40,990
The second argument is going to be bitmapped so I have an instance variable of that bitmap that holds

231
00:16:41,470 --> 00:16:46,180
the image that it's early days that is going to be taken by the use it by using the Chamitoff the device

232
00:16:46,250 --> 00:16:47,280
bitmap.

233
00:16:47,320 --> 00:16:55,450
So if this line here executes successfully This means that the image is saved to external storage successfully

234
00:16:55,450 --> 00:17:02,020
so if you are going to show a message a toast to the user that the image is now successfully say to

235
00:17:02,020 --> 00:17:08,470
extend our storage so I can say toast that make takes the first minute to pass the context main activity

236
00:17:08,470 --> 00:17:10,210
that this come on.

237
00:17:10,300 --> 00:17:18,280
The second argument is going to be the message to code so I can say the image is now successfully success

238
00:17:18,550 --> 00:17:21,170
fully saved.

239
00:17:22,790 --> 00:17:28,780
To extend our storage and here finally we need to specify the duration.

240
00:17:28,780 --> 00:17:32,930
So Len short thought show.

241
00:17:33,590 --> 00:17:35,430
Let me create a new line here.

242
00:17:36,750 --> 00:17:39,420
So you can see these post-mission message here.

243
00:17:39,810 --> 00:17:42,990
So that's it.

244
00:17:43,010 --> 00:17:45,720
Now it's time to run the application.

245
00:17:45,770 --> 00:17:49,060
And let's see what happens.

246
00:17:49,080 --> 00:17:52,320
So just choose one of these devices and then click on OK.

247
00:17:52,560 --> 00:17:55,490
So now you can see that our application is running on the simulator.

248
00:17:55,500 --> 00:17:58,220
Let's click on take a picture here.

249
00:17:58,230 --> 00:18:04,620
Let's take a picture let's accepted let's now let's change these settings here.

250
00:18:04,620 --> 00:18:08,890
For example this color or blue color.

251
00:18:09,120 --> 00:18:11,970
And let's click on Save the picture.

252
00:18:13,120 --> 00:18:17,860
Now it says allow app to access photos media and files on your device.

253
00:18:17,890 --> 00:18:18,900
Yes.

254
00:18:19,540 --> 00:18:22,100
We need to click on this button again save that picture.

255
00:18:22,120 --> 00:18:26,200
Now it says the image is now successfully saved to external storage.

256
00:18:26,680 --> 00:18:31,680
But it you don't have to find the image in extend all the storage here.

257
00:18:32,110 --> 00:18:36,080
It's important to know that the image is saved to external storage.

258
00:18:36,190 --> 00:18:42,910
But if you want to find that image it's better to test this up on your actual device.

259
00:18:43,220 --> 00:18:47,800
So in fact I'm going to test it on my dogs and I'm going to show you how we can find the image on your

260
00:18:47,800 --> 00:18:48,520
actual device.

261
00:18:48,520 --> 00:18:52,340
So let me just stop the program.

262
00:18:52,420 --> 00:18:54,110
Let me run the app again.

263
00:18:54,340 --> 00:18:56,840
Now this thing I'm going to actually choose my device.

264
00:18:57,010 --> 00:18:58,200
Let's click on OK.

265
00:18:59,240 --> 00:19:03,280
So he's going to now run the app on my actual device.

266
00:19:03,350 --> 00:19:08,610
But now the app is running on my actual device and I'm going to take a picture first.

267
00:19:08,640 --> 00:19:15,080
I'm going to allow the permission and take your picture and then I'm going to just save the picture.

268
00:19:15,150 --> 00:19:19,100
So it says we are going to access the directories.

269
00:19:19,140 --> 00:19:20,190
Yes save the picture.

270
00:19:20,190 --> 00:19:24,270
Now it says the image is saved to X and I'll sort of success with it.

271
00:19:24,480 --> 00:19:31,590
So in order to find this image if you're using your actual device you need to have a file explorer or

272
00:19:31,770 --> 00:19:38,040
for example some software that allow you to explore your files in Android such as file explorer or any

273
00:19:38,040 --> 00:19:39,220
other apps.

274
00:19:39,310 --> 00:19:42,660
I just need to open my file file manager right.

275
00:19:42,900 --> 00:19:49,650
And then I need to go to the actually the Android we have a folder here called Android open it and we

276
00:19:49,650 --> 00:19:51,190
have a folder called data.

277
00:19:51,240 --> 00:19:57,100
Just open it and then you can actually find the package of your application.

278
00:19:57,110 --> 00:20:03,110
So the package of our application is this one right for me is that example that monitors I saw that

279
00:20:03,100 --> 00:20:04,710
the color app.

280
00:20:04,710 --> 00:20:08,180
So I need to find this package here inside this data folder.

281
00:20:08,400 --> 00:20:10,140
So let me find it here.

282
00:20:10,500 --> 00:20:15,260
So I found it and insert is a folder we have a folder called files.

283
00:20:15,420 --> 00:20:21,360
If I open it I can see some actually some folders here.

284
00:20:21,870 --> 00:20:27,240
So I can open them and then I can see my images here.

285
00:20:27,240 --> 00:20:34,140
So again it's not necessary to find your images in your external storage or in the previous tutorials

286
00:20:34,140 --> 00:20:40,320
of this course I talked about accessing our images and how to save all the magistrates out of storage

287
00:20:40,350 --> 00:20:42,840
and how to get images from an accident on the search.

288
00:20:42,990 --> 00:20:45,620
But in this application it is not very important.

289
00:20:45,630 --> 00:20:49,260
We just need to be sure that this image is safe to extend.

290
00:20:49,310 --> 00:20:50,530
So that's it.

291
00:20:51,000 --> 00:20:54,090
So we added this functionality to this application.

292
00:20:54,090 --> 00:20:54,430
Right.

293
00:20:54,630 --> 00:20:56,090
But it's not complete enough.

294
00:20:56,100 --> 00:21:00,330
We want to share this image to other users.

295
00:21:00,360 --> 00:21:01,850
Let's see how we can do that.

296
00:21:01,850 --> 00:21:07,920
We've got to share this image actually with other apps such as e-mail or any other actually app applications

297
00:21:08,520 --> 00:21:14,970
that can interact with other people such as messaging app such as whatsapp telegram or any other applications

298
00:21:15,150 --> 00:21:16,850
or e-mail G-mail.

299
00:21:17,220 --> 00:21:21,700
And then the next tutorial we're going to add that functionality to us to go out to our application.

300
00:21:22,020 --> 00:21:23,250
Thank you very much for watching.

301
00:21:23,280 --> 00:21:28,140
If you have any questions about the concepts that I taught you in this lesson please post the discussion

302
00:21:28,140 --> 00:21:31,230
in the course and then I'll do my best to answer all of your questions.

