Commit 2f1bd981 authored by valdi's avatar valdi

pisah api

parent 4dbe4b83
import 'dart:convert';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:movie_app/config.dart';
import 'package:movie_app/main.dart';
class ApiPopular {
final String id;
final String title;
final String poster_path;
final String vote_average;
ApiPopular(this.id, this.title, this.poster_path, this.vote_average);
factory ApiPopular.createPopular(Map<String, dynamic> json) {
return ApiPopular(json['id'].toString(), json['title'], json['poster_path'],
json['vote_average'].toString());
}
static Future<List<ApiPopular>> GetPopular() async {
String apiUrl = "https://api.themoviedb.org/3/movie/popular?api_key=" +
apiKey +
"&language=en-US&page=1";
var apiResult = await http.get(Uri.parse(apiUrl));
var jsonObject = jsonDecode(apiResult.body);
List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results'];
List<ApiPopular> populars = [];
for (int i = 0; i < listPopular.length; i++)
populars.add(ApiPopular.createPopular(listPopular[i]));
return populars;
}
}
class ApiNowPlaing {
final String id;
final String title;
final String poster_path;
final String vote_average;
ApiNowPlaing(this.id, this.title, this.poster_path, this.vote_average);
factory ApiNowPlaing.createNowPlaying(Map<String, dynamic> json) {
return ApiNowPlaing(json['id'].toString(), json['title'],
json['poster_path'], json['vote_average'].toString());
}
static Future<List<ApiNowPlaing>> GetNowPlaying() async {
String apiUrl = "https://api.themoviedb.org/3/movie/now_playing?api_key=" +
apiKey +
"&language=en-US&page=1";
var apiResult = await http.get(Uri.parse(apiUrl));
var jsonObject = jsonDecode(apiResult.body);
List<dynamic> listNowPlaying =
(jsonObject as Map<String, dynamic>)['results'];
List<ApiNowPlaing> nowplayings = [];
for (int i = 0; i < listNowPlaying.length; i++)
nowplayings.add(ApiNowPlaing.createNowPlaying(listNowPlaying[i]));
return nowplayings;
}
}
...@@ -4,6 +4,7 @@ import 'dart:async'; ...@@ -4,6 +4,7 @@ import 'dart:async';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:movie_app/config.dart'; import 'package:movie_app/config.dart';
import 'package:movie_app/api.dart';
import 'package:movie_app/main.dart'; import 'package:movie_app/main.dart';
...@@ -18,28 +19,42 @@ class _MainPageState extends State<MainPage> { ...@@ -18,28 +19,42 @@ class _MainPageState extends State<MainPage> {
var _Popular = []; var _Popular = [];
var _nowPlaying = []; var _nowPlaying = [];
void GetPopular() async { // void GetPopular() async {
var response = await http.get(Uri.parse( // var response = await http.get(Uri.parse(
"https://api.themoviedb.org/3/movie/popular?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1")); // "https://api.themoviedb.org/3/movie/popular?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// var jsonObject = jsonDecode(response.body);
// List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results'];
var jsonObject = jsonDecode(response.body); // setState(() {
List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results']; // _Popular = listPopular;
// });
// }
void GetPopular() async {
var apiPopular = await ApiPopular.GetPopular();
setState(() { setState(() {
_Popular = listPopular; _Popular = apiPopular;
}); });
} }
void GetNowPlaying() async { // void GetNowPlaying() async {
var response = await http.get(Uri.parse( // var response = await http.get(Uri.parse(
"https://api.themoviedb.org/3/movie/now_playing?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1")); // "https://api.themoviedb.org/3/movie/now_playing?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// var jsonObject = jsonDecode(response.body);
// List<dynamic> listNowPlaying =
// (jsonObject as Map<String, dynamic>)['results'];
var jsonObject = jsonDecode(response.body); // setState(() {
List<dynamic> listNowPlaying = // _nowPlaying = listNowPlaying;
(jsonObject as Map<String, dynamic>)['results']; // });
// }
void GetNowPlaying() async {
var apiNowPlaying = await ApiNowPlaing.GetNowPlaying();
setState(() { setState(() {
_nowPlaying = listNowPlaying; _nowPlaying = apiNowPlaying;
}); });
} }
...@@ -91,7 +106,6 @@ class _MainPageState extends State<MainPage> { ...@@ -91,7 +106,6 @@ class _MainPageState extends State<MainPage> {
borderRadius: BorderRadius.circular(20)), borderRadius: BorderRadius.circular(20)),
margin: EdgeInsets.fromLTRB(10, 30, 10, 30), margin: EdgeInsets.fromLTRB(10, 30, 10, 30),
padding: EdgeInsets.fromLTRB(10, 5, 5, 5), padding: EdgeInsets.fromLTRB(10, 5, 5, 5),
// ignore: prefer_const_constructors
child: TextField( child: TextField(
style: TextStyle(color: Color(0xFFD2D3D8)), style: TextStyle(color: Color(0xFFD2D3D8)),
decoration: InputDecoration( decoration: InputDecoration(
...@@ -135,10 +149,10 @@ class _MainPageState extends State<MainPage> { ...@@ -135,10 +149,10 @@ class _MainPageState extends State<MainPage> {
for (int i = 0; i < _Popular.length; i++) for (int i = 0; i < _Popular.length; i++)
CardPopular( CardPopular(
"https://image.tmdb.org/t/p/w500" + "https://image.tmdb.org/t/p/w500" +
_Popular[i]['poster_path'], _Popular[i].poster_path,
_Popular[i]['title'], _Popular[i].title,
_Popular[i]['vote_average'].toString(), _Popular[i].vote_average.toString(),
_Popular[i]['id'].toString()), _Popular[i].id.toString()),
], ],
), ),
), ),
...@@ -172,10 +186,10 @@ class _MainPageState extends State<MainPage> { ...@@ -172,10 +186,10 @@ class _MainPageState extends State<MainPage> {
for (int i = 0; i < _nowPlaying.length; i++) for (int i = 0; i < _nowPlaying.length; i++)
CardPopular( CardPopular(
"https://image.tmdb.org/t/p/w500" + "https://image.tmdb.org/t/p/w500" +
_nowPlaying[i]['poster_path'], _nowPlaying[i].poster_path,
_nowPlaying[i]['title'], _nowPlaying[i].title,
_nowPlaying[i]['vote_average'].toString(), _nowPlaying[i].vote_average.toString(),
_nowPlaying[i]['id'].toString()), _nowPlaying[i].id.toString()),
], ],
), ),
), ),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment