processLink method
Processes the parameters gotten from deep links
Implementation
Future<void> processLink(String? link) async {
_pageIdResponse.clear();
// parse link and decide what to do:
if (link != null && link.isNotEmpty) {
final parsedUri = Uri.parse(link);
final fdf = Uri.decodeFull(link);
//log('returned Uri params: $fdf');
final splittedString = fdf.split('=');
if (splittedString.isNotEmpty) {
_pageIdResponse = List<PageIdResponse>.from(
jsonDecode(splittedString[2].replaceAll('&platform', ''))
.map((x) => PageIdResponse.fromJson(x)));
}
//log('pageIdResponse length: ${_pageIdResponse.length}');
if (_pageIdResponse.isNotEmpty) {
for (int i = 0; i < _pageIdResponse.length; i++) {
if (_pageIdResponse[i].name == previousPageName) {
//log('duplicate page name');
continue;
} else {
//log(_pageIdResponse[i].toString());
final FaceBookOrInstagramData facebookOrInstagramData =
FaceBookOrInstagramData(
page_id: _pageIdResponse[i].id,
access_token: parsedUri.queryParameters['access_token'],
page_name: _pageIdResponse[i].name,
platform: parsedUri.queryParameters['platform']);
//log('facebookOrInstagramData: $facebookOrInstagramData');
final AddFacebookOrInstagramRequest addFaceBookOrInstagramRequest =
AddFacebookOrInstagramRequest(
pageName: facebookOrInstagramData.page_name ?? '',
pageId: facebookOrInstagramData.page_id ?? '',
accessToken: facebookOrInstagramData.access_token ?? '');
facebookOrInstagramData.platform?.toLowerCase() == 'facebook'
? await addFacebookAccount(addFaceBookOrInstagramRequest,
isLast: _pageIdResponse.last == _pageIdResponse[i])
: facebookOrInstagramData.platform?.toLowerCase() == 'instagram'
? await addInstagramAccount(addFaceBookOrInstagramRequest,
isLast: _pageIdResponse.last == _pageIdResponse[i])
: _loadingService.showError('unknown platform');
previousPageName = _pageIdResponse[i].name;
}
}
disposeSubUniLinks();
} else {
_loadingService.showError(
'No page selected - Select at least one page to continue');
_pageIdResponse.clear();
}
disposeSubUniLinks();
_pageIdResponse.clear();
} else {
disposeSubUniLinks();
_pageIdResponse.clear();
}
disposeSubUniLinks();
}