Skip to content

Commit 56a5201

Browse files
Se completa el detalle de una serie
1 parent bc62979 commit 56a5201

File tree

9 files changed

+345
-10
lines changed

9 files changed

+345
-10
lines changed

21_TMDB_ViewModelRepository/app/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,8 @@ dependencies {
5252
implementation 'com.google.firebase:firebase-firestore:21.2.1'
5353
implementation 'com.google.firebase:firebase-auth:19.1.0'
5454
implementation 'com.google.android.gms:play-services-auth:15.0.1'
55+
56+
// ButterKnife
57+
implementation 'com.jakewharton:butterknife:10.2.1'
58+
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
5559
}

21_TMDB_ViewModelRepository/app/src/main/java/com/miguelcr/tmdb_viewmodelrepository/models/SerieDetail.java

Lines changed: 255 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,4 +91,259 @@ public class SerieDetail {
9191
@SerializedName("vote_count")
9292
@Expose
9393
public Integer voteCount;
94+
95+
public SerieDetail(String backdropPath, List<CreatedBySerieDetail> createdBy, List<Integer> episodeRunTime, String firstAirDate, List<GenreSerieDetail> genres, String homepage, Integer id, Boolean inProduction, List<String> languages, String lastAirDate, LastEpisodeToAirSerieDetail lastEpisodeToAir, String name, Object nextEpisodeToAir, List<Object> networks, Integer numberOfEpisodes, Integer numberOfSeasons, List<String> originCountry, String originalLanguage, String originalName, String overview, Double popularity, String posterPath, List<ProductionCompanySerieDetail> productionCompanies, List<SeasonSerieDetail> seasons, String status, String type, Double voteAverage, Integer voteCount) {
96+
this.backdropPath = backdropPath;
97+
this.createdBy = createdBy;
98+
this.episodeRunTime = episodeRunTime;
99+
this.firstAirDate = firstAirDate;
100+
this.genres = genres;
101+
this.homepage = homepage;
102+
this.id = id;
103+
this.inProduction = inProduction;
104+
this.languages = languages;
105+
this.lastAirDate = lastAirDate;
106+
this.lastEpisodeToAir = lastEpisodeToAir;
107+
this.name = name;
108+
this.nextEpisodeToAir = nextEpisodeToAir;
109+
this.networks = networks;
110+
this.numberOfEpisodes = numberOfEpisodes;
111+
this.numberOfSeasons = numberOfSeasons;
112+
this.originCountry = originCountry;
113+
this.originalLanguage = originalLanguage;
114+
this.originalName = originalName;
115+
this.overview = overview;
116+
this.popularity = popularity;
117+
this.posterPath = posterPath;
118+
this.productionCompanies = productionCompanies;
119+
this.seasons = seasons;
120+
this.status = status;
121+
this.type = type;
122+
this.voteAverage = voteAverage;
123+
this.voteCount = voteCount;
124+
}
125+
126+
public String getBackdropPath() {
127+
return backdropPath;
128+
}
129+
130+
public void setBackdropPath(String backdropPath) {
131+
this.backdropPath = backdropPath;
132+
}
133+
134+
public List<CreatedBySerieDetail> getCreatedBy() {
135+
return createdBy;
136+
}
137+
138+
public void setCreatedBy(List<CreatedBySerieDetail> createdBy) {
139+
this.createdBy = createdBy;
140+
}
141+
142+
public List<Integer> getEpisodeRunTime() {
143+
return episodeRunTime;
144+
}
145+
146+
public void setEpisodeRunTime(List<Integer> episodeRunTime) {
147+
this.episodeRunTime = episodeRunTime;
148+
}
149+
150+
public String getFirstAirDate() {
151+
return firstAirDate;
152+
}
153+
154+
public void setFirstAirDate(String firstAirDate) {
155+
this.firstAirDate = firstAirDate;
156+
}
157+
158+
public List<GenreSerieDetail> getGenres() {
159+
return genres;
160+
}
161+
162+
public void setGenres(List<GenreSerieDetail> genres) {
163+
this.genres = genres;
164+
}
165+
166+
public String getHomepage() {
167+
return homepage;
168+
}
169+
170+
public void setHomepage(String homepage) {
171+
this.homepage = homepage;
172+
}
173+
174+
public Integer getId() {
175+
return id;
176+
}
177+
178+
public void setId(Integer id) {
179+
this.id = id;
180+
}
181+
182+
public Boolean getInProduction() {
183+
return inProduction;
184+
}
185+
186+
public void setInProduction(Boolean inProduction) {
187+
this.inProduction = inProduction;
188+
}
189+
190+
public List<String> getLanguages() {
191+
return languages;
192+
}
193+
194+
public void setLanguages(List<String> languages) {
195+
this.languages = languages;
196+
}
197+
198+
public String getLastAirDate() {
199+
return lastAirDate;
200+
}
201+
202+
public void setLastAirDate(String lastAirDate) {
203+
this.lastAirDate = lastAirDate;
204+
}
205+
206+
public LastEpisodeToAirSerieDetail getLastEpisodeToAir() {
207+
return lastEpisodeToAir;
208+
}
209+
210+
public void setLastEpisodeToAir(LastEpisodeToAirSerieDetail lastEpisodeToAir) {
211+
this.lastEpisodeToAir = lastEpisodeToAir;
212+
}
213+
214+
public String getName() {
215+
return name;
216+
}
217+
218+
public void setName(String name) {
219+
this.name = name;
220+
}
221+
222+
public Object getNextEpisodeToAir() {
223+
return nextEpisodeToAir;
224+
}
225+
226+
public void setNextEpisodeToAir(Object nextEpisodeToAir) {
227+
this.nextEpisodeToAir = nextEpisodeToAir;
228+
}
229+
230+
public List<Object> getNetworks() {
231+
return networks;
232+
}
233+
234+
public void setNetworks(List<Object> networks) {
235+
this.networks = networks;
236+
}
237+
238+
public Integer getNumberOfEpisodes() {
239+
return numberOfEpisodes;
240+
}
241+
242+
public void setNumberOfEpisodes(Integer numberOfEpisodes) {
243+
this.numberOfEpisodes = numberOfEpisodes;
244+
}
245+
246+
public Integer getNumberOfSeasons() {
247+
return numberOfSeasons;
248+
}
249+
250+
public void setNumberOfSeasons(Integer numberOfSeasons) {
251+
this.numberOfSeasons = numberOfSeasons;
252+
}
253+
254+
public List<String> getOriginCountry() {
255+
return originCountry;
256+
}
257+
258+
public void setOriginCountry(List<String> originCountry) {
259+
this.originCountry = originCountry;
260+
}
261+
262+
public String getOriginalLanguage() {
263+
return originalLanguage;
264+
}
265+
266+
public void setOriginalLanguage(String originalLanguage) {
267+
this.originalLanguage = originalLanguage;
268+
}
269+
270+
public String getOriginalName() {
271+
return originalName;
272+
}
273+
274+
public void setOriginalName(String originalName) {
275+
this.originalName = originalName;
276+
}
277+
278+
public String getOverview() {
279+
return overview;
280+
}
281+
282+
public void setOverview(String overview) {
283+
this.overview = overview;
284+
}
285+
286+
public Double getPopularity() {
287+
return popularity;
288+
}
289+
290+
public void setPopularity(Double popularity) {
291+
this.popularity = popularity;
292+
}
293+
294+
public String getPosterPath() {
295+
return posterPath;
296+
}
297+
298+
public void setPosterPath(String posterPath) {
299+
this.posterPath = posterPath;
300+
}
301+
302+
public List<ProductionCompanySerieDetail> getProductionCompanies() {
303+
return productionCompanies;
304+
}
305+
306+
public void setProductionCompanies(List<ProductionCompanySerieDetail> productionCompanies) {
307+
this.productionCompanies = productionCompanies;
308+
}
309+
310+
public List<SeasonSerieDetail> getSeasons() {
311+
return seasons;
312+
}
313+
314+
public void setSeasons(List<SeasonSerieDetail> seasons) {
315+
this.seasons = seasons;
316+
}
317+
318+
public String getStatus() {
319+
return status;
320+
}
321+
322+
public void setStatus(String status) {
323+
this.status = status;
324+
}
325+
326+
public String getType() {
327+
return type;
328+
}
329+
330+
public void setType(String type) {
331+
this.type = type;
332+
}
333+
334+
public Double getVoteAverage() {
335+
return voteAverage;
336+
}
337+
338+
public void setVoteAverage(Double voteAverage) {
339+
this.voteAverage = voteAverage;
340+
}
341+
342+
public Integer getVoteCount() {
343+
return voteCount;
344+
}
345+
346+
public void setVoteCount(Integer voteCount) {
347+
this.voteCount = voteCount;
348+
}
94349
}

21_TMDB_ViewModelRepository/app/src/main/java/com/miguelcr/tmdb_viewmodelrepository/repository/SeriesTmdbApiRepository.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,22 @@ public void onFailure(Call<PopularSeries> call, Throwable t) {
5151
}
5252

5353
public MutableLiveData<SerieDetail> getSerie(int idSerie) {
54-
return null; //TODO terminar
54+
// https://api.themoviedb.org/3/tv/456?api_key=433d2c486572afb242c6fe7c1ddc6771&language=en-US
55+
final MutableLiveData<SerieDetail> data = new MutableLiveData<>();
56+
57+
Call<SerieDetail> call = service.getSerieDetail(String.valueOf(idSerie));
58+
call.enqueue(new Callback<SerieDetail>() {
59+
@Override
60+
public void onResponse(Call<SerieDetail> call, Response<SerieDetail> response) {
61+
data.setValue(response.body());
62+
}
63+
64+
@Override
65+
public void onFailure(Call<SerieDetail> call, Throwable t) {
66+
67+
}
68+
});
69+
70+
return data;
5571
}
5672
}

21_TMDB_ViewModelRepository/app/src/main/java/com/miguelcr/tmdb_viewmodelrepository/retrofit/ServiceGenerator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.miguelcr.tmdb_viewmodelrepository.retrofit;
22

3+
import com.miguelcr.tmdb_viewmodelrepository.R;
34
import com.miguelcr.tmdb_viewmodelrepository.common.Constantes;
5+
import com.miguelcr.tmdb_viewmodelrepository.common.MyApp;
46

57
import org.jetbrains.annotations.NotNull;
68

@@ -45,7 +47,7 @@ public Response intercept(@NotNull Chain chain) throws IOException {
4547
HttpUrl originalHttpUrl = original.url();
4648
HttpUrl url = originalHttpUrl.newBuilder()
4749
.addQueryParameter("api_key", Constantes.API_KEY_THE_MOVIEDB)
48-
.addQueryParameter("language", "en-US")
50+
.addQueryParameter("language", MyApp.getContext().getResources().getString(R.string.idioma))
4951
.build();
5052
Request.Builder requestBuilder = original.newBuilder()
5153
.url(url);

21_TMDB_ViewModelRepository/app/src/main/java/com/miguelcr/tmdb_viewmodelrepository/retrofit/TheMoviedbService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ public interface TheMoviedbService {
1313
Call<PopularSeries> getPopularsSeries(@Query("page") String page);
1414

1515
@GET("tv/{tv_id}")
16-
Call<SerieDetail> getSerieDetail(@Path("tv_id") String id, @Query("append_to_response") String append);
16+
Call<SerieDetail> getSerieDetail(@Path("tv_id") String id);
1717

1818
}

21_TMDB_ViewModelRepository/app/src/main/java/com/miguelcr/tmdb_viewmodelrepository/ui/DetalleSerieScrollingActivity.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,22 @@
1111
import androidx.lifecycle.ViewModelProvider;
1212

1313
import android.view.View;
14+
import android.widget.TextView;
1415
import android.widget.Toast;
1516

1617
import com.miguelcr.tmdb_viewmodelrepository.R;
1718
import com.miguelcr.tmdb_viewmodelrepository.common.Constantes;
1819
import com.miguelcr.tmdb_viewmodelrepository.models.SerieDetail;
1920
import com.miguelcr.tmdb_viewmodelrepository.viewmodel.DetalleSerieViewModel;
2021

22+
import butterknife.BindView;
23+
import butterknife.ButterKnife;
24+
2125
public class DetalleSerieScrollingActivity extends AppCompatActivity {
2226
int idSerie;
2327
DetalleSerieViewModel detalleSerieViewModel;
28+
@BindView(R.id.textViewCreatedBy) TextView tvCreatedBy;
29+
@BindView(R.id.textViewDescripcionSerie) TextView tvDescripcion;
2430

2531
@Override
2632
protected void onCreate(Bundle savedInstanceState) {
@@ -29,6 +35,9 @@ protected void onCreate(Bundle savedInstanceState) {
2935
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
3036
setSupportActionBar(toolbar);
3137

38+
// ButterKnife
39+
ButterKnife.bind(this);
40+
3241
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
3342
fab.setOnClickListener(new View.OnClickListener() {
3443
@Override
@@ -47,14 +56,16 @@ public void onClick(View view) {
4756

4857
detalleSerieViewModel = new ViewModelProvider(this).get(DetalleSerieViewModel.class);
4958

50-
/*detalleSerieViewModel.getSerie(idSerie).observe(this, new Observer<SerieDetail>() {
59+
60+
detalleSerieViewModel.getSerie(idSerie).observe(this, new Observer<SerieDetail>() {
5161
@Override
5262
public void onChanged(SerieDetail serieDetail) {
53-
//TODO aquí puedo setear la información de la serie
54-
// en la IU del layout.
63+
if(serieDetail != null) {
64+
tvCreatedBy.setText(serieDetail.getCreatedBy().get(0).getName());
65+
tvDescripcion.setText(serieDetail.getOverview());
66+
}
5567
}
56-
});*/
57-
68+
});
5869

5970
}
6071
}

0 commit comments

Comments
 (0)