├── .gitignore ├── .travis ├── install-fusepm.sh ├── test_uno.sh ├── test_android.sh ├── files │ └── uno ├── install-fuseandroid.sh ├── test_ios.sh ├── install-ndk.sh └── install-fuse.sh ├── gallery_include.unoproj ├── gallery_example.unoproj ├── TakePictureTask.h ├── .travis.yml ├── MainView.ux ├── README.md ├── TakePictureTask.mm └── Gallery.uno /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | .uno 3 | -------------------------------------------------------------------------------- /.travis/install-fusepm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [[ $TRAVIS_OS_NAME == 'osx' ]]; then 4 | brew update 5 | brew outdated node || brew upgrade node 6 | npm install -g fusepm 7 | fi 8 | -------------------------------------------------------------------------------- /gallery_include.unoproj: -------------------------------------------------------------------------------- 1 | { 2 | "RootNamespace":"", 3 | "Packages": [ 4 | "Fuse", 5 | "FuseJS", 6 | "Fuse.Camera" 7 | ], 8 | "Includes": [ 9 | "Gallery.uno", 10 | "TakePictureTask.h:ObjCHeader:iOS", 11 | "TakePictureTask.mm:ObjCSource:iOS" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /.travis/test_uno.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | name=${NAME:-$UNOPROJ} 4 | echo travis_fold:start:uno 5 | uno build ${UNOPROJ}.unoproj -v 6 | exitcode=$? 7 | echo travis_fold:end:uno 8 | if [ $exitcode -ne 0 ]; then 9 | echo "uno $name - FAIL" 10 | status=$exitcode 11 | else 12 | echo "uno $name - PASS" 13 | fi 14 | exit $exitcode 15 | -------------------------------------------------------------------------------- /gallery_example.unoproj: -------------------------------------------------------------------------------- 1 | { 2 | "Name":"GalleryExample", 3 | "RootNamespace":"", 4 | "Packages": [ 5 | "Fuse", 6 | "FuseJS", 7 | "Fuse.Camera" 8 | ], 9 | "Includes": [ 10 | "*.uno", 11 | "*.ux", 12 | "TakePictureTask.h:ObjCHeader:iOS", 13 | "TakePictureTask.mm:ObjCSource:iOS" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.travis/test_android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | name=${NAME:-$UNOPROJ} 4 | echo travis_fold:start:android 5 | uno build -tAndroid ${UNOPROJ}.unoproj -v 6 | exitcode=$? 7 | echo travis_fold:end:android 8 | if [ $exitcode -ne 0 ]; then 9 | echo "uno android $name - FAIL" 10 | else 11 | echo "uno android $name - PASS" 12 | fi 13 | exit $exitcode 14 | -------------------------------------------------------------------------------- /.travis/files/uno: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export DYLD_FALLBACK_LIBRARY_PATH=/usr/share/uno:/Applications/Fuse.app/Contents/Mono/lib:/Library/Frameworks/Mono.framework/Versions/Current/lib:/usr/lib 3 | export FONTCONFIG_FILE=/Applications/Fuse.app/Contents/Mono/etc/fonts.conf 4 | exec /Applications/Fuse.app/Contents/Mono/bin/mono --gc=sgen /Applications/Fuse.app/Contents/Uno/uno.exe "$@" 5 | -------------------------------------------------------------------------------- /TakePictureTask.h: -------------------------------------------------------------------------------- 1 | // 2 | // TakePictureTask.h 3 | // GalleryLibrary 4 | // 5 | // Created by Bjørn-Olav Solum Strand on 22/03/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface TakePictureTask : NSObject 12 | 13 | @property (nonatomic, retain) UIViewController *uivc; 14 | @property (nonatomic, copy) NSString *path; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /.travis/install-fuseandroid.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # https://docs.travis-ci.com/user/multi-os/ 4 | # https://docs.travis-ci.com/user/osx-ci-environment/ 5 | 6 | # http://apple.stackexchange.com/questions/72226/installing-pkg-with-terminal 7 | 8 | if [[ $TRAVIS_OS_NAME == 'osx' ]]; then 9 | # In /Users/travis/build/bolav/fuse-travis 10 | echo "Installing Fuse Android" 11 | (echo; while true; do echo y; done) | fuse install android 12 | fi 13 | -------------------------------------------------------------------------------- /.travis/test_ios.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | name=${NAME:-$UNOPROJ} 4 | status=0 5 | echo travis_fold:start:ios 6 | uno build -tiOS ${UNOPROJ}.unoproj -v -N 7 | exitcode=$? 8 | cd build/iOS/Debug 9 | xcodebuild -project $name.xcodeproj CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO 10 | exitcode2=$? 11 | cd ../../.. 12 | echo travis_fold:end:ios 13 | if [ $exitcode -ne 0 ]; then 14 | echo "uno ios $name - FAIL" 15 | status=$exitcode 16 | else 17 | echo "uno ios $name - PASS" 18 | fi 19 | if [ $exitcode2 -ne 0 ]; then 20 | echo "uno ios xcodebuild $name - FAIL" 21 | status=$exitcode2 22 | else 23 | echo "uno ios xcodebuild $name - PASS" 24 | fi 25 | exit $status 26 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | env: 2 | global: 3 | - NDK_VERSION=r10e 4 | - FUSE_VERSION=0.20.3.6549 5 | - UNOPROJ=gallery_example 6 | - NAME=GalleryExample 7 | language: 8 | - fuse 9 | - objective-c 10 | - android 11 | - node_js 12 | os: 13 | - osx 14 | sudo: required 15 | 16 | cache: 17 | directories: 18 | # - /Applications/Fuse.app 19 | # - /usr/local/share/uno 20 | # - $HOME/.fuse 21 | - $HOME/Library/Android 22 | # - $HOME/fuse 23 | 24 | 25 | before_install: 26 | - ./.travis/install-ndk.sh 27 | - ./.travis/install-fuse.sh 28 | - ./.travis/install-fuseandroid.sh 29 | 30 | script: 31 | - ./.travis/test_uno.sh 32 | - ./.travis/test_ios.sh 33 | - ./.travis/test_android.sh 34 | -------------------------------------------------------------------------------- /MainView.ux: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | var gallery = require('Gallery'); 5 | var Observable = require('FuseJS/Observable'); 6 | var image = Observable(); 7 | 8 | function load () { 9 | gallery.getPicture().then(function (pic) { 10 | image.value = pic; 11 | }); 12 | } 13 | module.exports = { 14 | load: load, 15 | image: image 16 | } 17 | 18 | 19 | 20 | Gallery example 21 |