Skip to content

Ajapaik flutter app diagram

zache-fi edited this page Jul 24, 2022 · 10 revisions

@startuml
floating note: Source code: https://github.com/Ajapaik/ajapaik_flutter_app/wiki/Ajapaik-flutter-app-diagram

title Ajapaik Flutter App 24.7.2022
start

partition #lightGreen main.dart {
:Main;
:InitDeeplinks;
:OAUTH login handler;
:GetMaterialApp;
split
:localization;
partition #lightblue localization.dart {
:load i18n translations;
}
detach
split again
:Open default album;
end split

}

partition #lightGreen albumlist.dart {
label albumlist
repeat :AlbumList;

:buttons/gestures;
split
partition #lightblue projectlist.dart {

:Projectlist;
}
:return AlbumList;
detach
split again
partition #lightblue localfileselect.dart {

:pick own photo from gallery;
}
:go to Camera;
detach

split again
partition #lightblue login.dart {
:login;
}
detach
split again
:toggle texts on/off;
detach
split again
repeat
backward:pull-down-refresh;
:keyword filter;
:location filter;
:load geojson album;
:show imagelist;
repeat while (selected item) is (none)
end split
repeat while (selected item is) is (album) not (photo)
}

repeat
repeat
partition #lightGreen photoview.dart {
:PhotoView;
split
:historical photo;
:onclick;
partition #lightblue fullscreenimageview.dart {
:Fullscreen image viewer;
}
detach
split again;
if (number of rephotos) then (>0)
:number of rephotos;
:onclick;
partition #lightblue RephotoCompareView.dart {
:RephotoViewer;
}
detach
else (0)
end
endif

split again;
: Take photo button;

split again;
if (coordinates) then (yes)
if (show inline map?) then (yes)
partition #lightblue map.dart {
:inline map;
:onclick;
:fullscreen map;
detach
}
else (no)
:infotext;
detach
endif

else (no)
:infotext;
detach
endif
end split
}

repeat
partition #lightGreen camera.dart {
:Camera;
split
:historical photo overlay;
detach
split again
:camera stream;
detach
split again
:buttons/gestures;
split
:flip;
detach
split again
: scale;
detach
split again
:transparency;
detach
split again
:take photo;
end split;
end split;
}

partition #lightGreen preview.dart {
:Preview;
:Buttons/gestures;
split
:retake photo button;
split again
:save photo button;
split again
:return to photoview button;
end split
}

repeat while (retake photo button) is (return to camera)

repeat while (save photo button) is (return to photoview) not (save photo)

partition #lightGreen upload.dart {
:Save photos;

split
:Gallery;
split again
:Share;
split again
:upload handlers;
split
:Wikimedia Commons;
split again
:Ajapaik;
end split
if (logged in) then (no)
partition #lightblue login.dart {
:login;
}
endif
:do background upload;
end split

}
repeat while (return to Photoview)

detach

@enduml