getLauncherLoadMore method
Future<void>
getLauncherLoadMore(
- String launcherId,
- int launcherPageNumber,
- GetLauncherLoadMore getLauncherLoadMore
Implementation
Future<void> getLauncherLoadMore(String launcherId, int launcherPageNumber,
GetLauncherLoadMore getLauncherLoadMore) async {
getLauncherLoadMore.onLoading();
final url = Uri.parse(
'https://api.plentrasphere.com/v2/client/?class=default&action=getLauncher&appKey=$appKey&page=$launcherPageNumber&launcherId=$launcherId');
try {
final response = await http.get(url);
if (response.statusCode == 200) {
final jsonData = json.decode(response.body);
final code = jsonData['response']['code'];
final status = jsonData['response']['status'];
if (code == 401) {
getLauncherLoadMore.onError(status);
getLauncherLoadMore.onLoadfinished();
return;
} else if (code == 404) {
getLauncherLoadMore.onNotFound();
getLauncherLoadMore.onLoadfinished();
return;
} else if (code == 400) {
if (status == "app-expired") {
getLauncherLoadMore.onAppNotActive(jsonData['info']['appName']);
getLauncherLoadMore.onLoadfinished();
return;
}
getLauncherLoadMore.onError(status);
getLauncherLoadMore.onLoadfinished();
return;
} else if (code == 406) {
getLauncherLoadMore.onError(status);
return;
}
if (status == "under-construction") {
getLauncherLoadMore.onUnderConstruction();
getLauncherLoadMore.onLoadfinished();
return;
}
final info = jsonData['info'];
final itemsInThisPage = (info['itemsInThisPage']);
final totalItemCount = (info['totalItemCount']);
if (info['nextPage']['status']) {
getLauncherLoadMore.onNextPage(info['nextPage']['page']);
} else {
getLauncherLoadMore.onNoNextPage();
}
if (itemsInThisPage != 0) {
final List<dynamic> items = [];
final _items = jsonData['items'];
_items.forEach((element) {
items.add({
'itemName': element['itemName'],
'actionType': element['actionType'],
'action': element['action'],
'itemImage': element['thumbnail'],
});
});
getLauncherLoadMore.onResult(
totalItemCount,
itemsInThisPage,
(info['itemsPerPage']),
items,
);
} else {
getLauncherLoadMore.onEmpty();
}
getLauncherLoadMore.onLoadfinished();
} else {
getLauncherLoadMore.onError('HTTP ${response.statusCode}');
getLauncherLoadMore.onLoadfinished();
}
} catch (e) {
getLauncherLoadMore.onError(e.toString());
getLauncherLoadMore.onLoadfinished();
}
}