├── .gitignore ├── LICENSE ├── README.md ├── android ├── .gitignore ├── README.md ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── firebase │ │ │ └── officemover │ │ │ ├── LoginActivity.java │ │ │ ├── OfficeCanvasView.java │ │ │ ├── OfficeMoverActivity.java │ │ │ ├── OfficeMoverApplication.java │ │ │ ├── OfficeThingRenderUtil.java │ │ │ └── model │ │ │ ├── OfficeLayout.java │ │ │ └── OfficeThing.java │ │ └── res │ │ ├── drawable-xhdpi │ │ ├── add.png │ │ ├── android.png │ │ ├── backgrounds.png │ │ ├── ballpit.png │ │ ├── carpet150.png │ │ ├── desk.png │ │ ├── dog_corgi.png │ │ ├── dog_retriever.png │ │ ├── grid100.png │ │ ├── icon_android.png │ │ ├── icon_ballpit.png │ │ ├── icon_computer.png │ │ ├── icon_desk.png │ │ ├── icon_dog.png │ │ ├── icon_game.png │ │ ├── icon_nerf.png │ │ ├── icon_pingpong.png │ │ ├── icon_plant.png │ │ ├── icon_stapler.png │ │ ├── laptop.png │ │ ├── mover_logo.png │ │ ├── nerfgun.png │ │ ├── office.png │ │ ├── pacman.png │ │ ├── pingpong.png │ │ ├── plant1.png │ │ ├── plant2.png │ │ ├── redstapler.png │ │ ├── tile200.png │ │ └── wood3200.png │ │ ├── drawable │ │ ├── floor_carpet.xml │ │ ├── floor_grid.xml │ │ ├── floor_tile.xml │ │ └── floor_wood.xml │ │ ├── layout │ │ ├── activity_login.xml │ │ └── activity_office_mover.xml │ │ ├── menu │ │ ├── add_office_thing.xml │ │ ├── change_floor.xml │ │ └── office_mover.xml │ │ ├── values-v21 │ │ └── styles.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── firebase.json ├── ios ├── .gitignore ├── OfficeMover5000 │ ├── Firebase.framework │ │ ├── Firebase │ │ ├── Headers │ │ └── Versions │ │ │ ├── A │ │ │ ├── Firebase │ │ │ └── Headers │ │ │ │ ├── FAuthData.h │ │ │ │ ├── FAuthType.h │ │ │ │ ├── FDataSnapshot.h │ │ │ │ ├── FEventType.h │ │ │ │ ├── FMutableData.h │ │ │ │ ├── FQuery.h │ │ │ │ ├── FTransactionResult.h │ │ │ │ ├── Firebase.h │ │ │ │ └── FirebaseServerValue.h │ │ │ └── Current │ ├── GoogleOpenSource.framework │ │ ├── GoogleOpenSource │ │ ├── Headers │ │ └── Versions │ │ │ ├── A │ │ │ ├── GoogleOpenSource │ │ │ └── Headers │ │ │ │ ├── GTLBase64.h │ │ │ │ ├── GTLBatchQuery.h │ │ │ │ ├── GTLBatchResult.h │ │ │ │ ├── GTLDateTime.h │ │ │ │ ├── GTLDefines.h │ │ │ │ ├── GTLErrorObject.h │ │ │ │ ├── GTLFramework.h │ │ │ │ ├── GTLJSONParser.h │ │ │ │ ├── GTLObject.h │ │ │ │ ├── GTLPlus.h │ │ │ │ ├── GTLPlusAcl.h │ │ │ │ ├── GTLPlusAclentryResource.h │ │ │ │ ├── GTLPlusActivity.h │ │ │ │ ├── GTLPlusActivityFeed.h │ │ │ │ ├── GTLPlusComment.h │ │ │ │ ├── GTLPlusCommentFeed.h │ │ │ │ ├── GTLPlusConstants.h │ │ │ │ ├── GTLPlusItemScope.h │ │ │ │ ├── GTLPlusMoment.h │ │ │ │ ├── GTLPlusMomentsFeed.h │ │ │ │ ├── GTLPlusPeopleFeed.h │ │ │ │ ├── GTLPlusPerson.h │ │ │ │ ├── GTLPlusPlace.h │ │ │ │ ├── GTLQuery.h │ │ │ │ ├── GTLQueryPlus.h │ │ │ │ ├── GTLRuntimeCommon.h │ │ │ │ ├── GTLService.h │ │ │ │ ├── GTLServicePlus.h │ │ │ │ ├── GTLTargetNamespace.h │ │ │ │ ├── GTLUploadParameters.h │ │ │ │ ├── GTLUtilities.h │ │ │ │ ├── GTMDefines.h │ │ │ │ ├── GTMGarbageCollection.h │ │ │ │ ├── GTMHTTPFetchHistory.h │ │ │ │ ├── GTMHTTPFetcher.h │ │ │ │ ├── GTMHTTPFetcherLogging.h │ │ │ │ ├── GTMHTTPFetcherService.h │ │ │ │ ├── GTMHTTPUploadFetcher.h │ │ │ │ ├── GTMLogger.h │ │ │ │ ├── GTMMethodCheck.h │ │ │ │ ├── GTMNSDictionary+URLArguments.h │ │ │ │ ├── GTMNSString+URLArguments.h │ │ │ │ ├── GTMOAuth2Authentication.h │ │ │ │ ├── GTMOAuth2SignIn.h │ │ │ │ ├── GTMOAuth2ViewControllerTouch.h │ │ │ │ ├── GTMObjC2Runtime.h │ │ │ │ ├── GoogleOpenSource.h │ │ │ │ └── OpenInChromeController.h │ │ │ └── Current │ ├── GooglePlus.framework │ │ ├── GooglePlus │ │ ├── Headers │ │ └── Versions │ │ │ ├── A │ │ │ ├── GooglePlus │ │ │ └── Headers │ │ │ │ ├── GPPDeepLink.h │ │ │ │ ├── GPPShare.h │ │ │ │ ├── GPPSignIn.h │ │ │ │ ├── GPPSignInButton.h │ │ │ │ ├── GPPURLHandler.h │ │ │ │ └── GooglePlus.h │ │ │ └── Current │ ├── OfficeMover5000.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── OfficeMover500.xccheckout │ │ └── xcuserdata │ │ │ └── katfang.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── OfficeMover500.xcscheme │ │ │ └── xcschememanagement.plist │ ├── OfficeMover5000 │ │ ├── AddItemController.swift │ │ ├── AppDelegate.swift │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── ChangeBackgroundController.swift │ │ ├── Constants.swift │ │ ├── Furniture.swift │ │ ├── FurnitureView.swift │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── AppIcon29x29.png │ │ │ │ ├── AppIcon29x29@2x.png │ │ │ │ ├── AppIcon40x40.png │ │ │ │ ├── AppIcon40x40@2x.png │ │ │ │ ├── AppIcon76x76.png │ │ │ │ ├── AppIcon76x76@2x.png │ │ │ │ └── Contents.json │ │ │ ├── floor_icons_selected │ │ │ │ ├── carpet_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── carpet.png │ │ │ │ │ └── carpet_selected.png │ │ │ │ ├── grid_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── grid.png │ │ │ │ │ └── grid_selected.png │ │ │ │ ├── tile_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── tile.png │ │ │ │ │ └── tile_selected.png │ │ │ │ └── wood_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── wood.png │ │ │ │ │ └── wood_selected.png │ │ │ ├── floor_icons_unselected │ │ │ │ ├── carpet_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── carpet.png │ │ │ │ │ └── carpet_unselected.png │ │ │ │ ├── grid_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── grid.png │ │ │ │ │ └── grid_unselected.png │ │ │ │ ├── tile_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── tile.png │ │ │ │ │ └── tile_unselected.png │ │ │ │ └── wood_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── wood.png │ │ │ │ │ └── wood_unselected.png │ │ │ ├── floors │ │ │ │ ├── carpet.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── firebaseCarpet150.png │ │ │ │ │ └── firebaseCarpet75.png │ │ │ │ ├── grid.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── grid100.png │ │ │ │ │ └── grid50.png │ │ │ │ ├── tile.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── tile100.png │ │ │ │ │ └── tile200.png │ │ │ │ └── wood.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── wood1600.png │ │ │ │ │ └── wood3200.png │ │ │ ├── item_icons_selected │ │ │ │ ├── android_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── android__selected.png │ │ │ │ │ └── android_selected.png │ │ │ │ ├── ballpit_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ballpit_selected-1.png │ │ │ │ │ └── ballpit_selected.png │ │ │ │ ├── computer_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── computer_selected-1.png │ │ │ │ │ └── computer_selected.png │ │ │ │ ├── desk_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── desk_selected-1.png │ │ │ │ │ └── desk_selected.png │ │ │ │ ├── dog_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── dog_selected-1.png │ │ │ │ │ └── dog_selected.png │ │ │ │ ├── game_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── game_selected-1.png │ │ │ │ │ └── game_selected.png │ │ │ │ ├── nerf_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── nerf_selected-1.png │ │ │ │ │ └── nerf_selected.png │ │ │ │ ├── pingpong_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── pingpong_selected-1.png │ │ │ │ │ └── pingpong_selected.png │ │ │ │ ├── plant_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── plant_selected-1.png │ │ │ │ │ └── plant_selected.png │ │ │ │ └── stapler_selected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── stapler_selected-1.png │ │ │ │ │ └── stapler_selected.png │ │ │ ├── item_icons_unselected │ │ │ │ ├── android_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── android_unselected-1.png │ │ │ │ │ └── android_unselected.png │ │ │ │ ├── ballpit_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ballpit_unselected-1.png │ │ │ │ │ └── ballpit_unselected.png │ │ │ │ ├── computer_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── computer_unselected-1.png │ │ │ │ │ └── computer_unselected.png │ │ │ │ ├── desk_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── desk_unselected-1.png │ │ │ │ │ └── desk_unselected.png │ │ │ │ ├── dog_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── dog_unselected-1.png │ │ │ │ │ └── dog_unselected.png │ │ │ │ ├── game_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── game_unselected-1.png │ │ │ │ │ └── game_unselected.png │ │ │ │ ├── nerf_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── nerf_unselected-1.png │ │ │ │ │ └── nerf_unselected.png │ │ │ │ ├── pingpong_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── pingpong_unselected-1.png │ │ │ │ │ └── pingpong_unselected.png │ │ │ │ ├── plant_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── plant_unselected-1.png │ │ │ │ │ └── plant_unselected.png │ │ │ │ └── stapler_unselected.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── stapler_unselected-1.png │ │ │ │ │ └── stapler_unselected.png │ │ │ ├── items │ │ │ │ ├── android.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── android.png │ │ │ │ ├── ballpit.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── ballpit.png │ │ │ │ ├── desk.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── desk.png │ │ │ │ ├── dog_corgi.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── dog_corgi.png │ │ │ │ ├── dog_retriever.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── dog_retriever.png │ │ │ │ ├── laptop.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── laptop.png │ │ │ │ ├── nerfgun.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── nerfgun.png │ │ │ │ ├── pacman.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── pacman.png │ │ │ │ ├── pingpong.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── pingpong.png │ │ │ │ ├── plant1.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── plant1.png │ │ │ │ ├── plant2.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── plant2.png │ │ │ │ └── redstapler.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── redstapler.png │ │ │ ├── logoAndName.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── logoAndName.png │ │ │ ├── logoutbtn.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── logoutbtn.png │ │ │ ├── menu_icons │ │ │ │ ├── add.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── add_iOS.png │ │ │ │ └── backgrounds.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── backgrounds_iOS.png │ │ │ │ │ └── backgrounds_iOS_1x.png │ │ │ └── office.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── office.png │ │ │ │ └── office_1x.png │ │ ├── Info.plist │ │ ├── LoginViewController.swift │ │ ├── OfficeMover5000-Bridging-Header.h │ │ ├── PopoverMenuController.swift │ │ ├── PopoverMenuItemCell.swift │ │ ├── ProximaNova-Light.ttf │ │ ├── ProximaNova-Reg.ttf │ │ ├── ProximaNova-Sbold.ttf │ │ ├── RoomSync.swift │ │ ├── RoomViewController.swift │ │ └── ViewController.swift │ └── OfficeMover5000Tests │ │ ├── Info.plist │ │ └── OfficeMover5000Tests.swift └── README.md ├── security-rules.json ├── web-screencap.png └── web ├── .gitignore ├── README.md ├── bower.json ├── gulpfile.js ├── index.html ├── package.json ├── resources ├── images │ ├── backgrounds │ │ ├── full │ │ │ ├── blueprint.png │ │ │ ├── carpert@2x.png │ │ │ ├── carpet.png │ │ │ ├── grid.png │ │ │ ├── grid@2x.png │ │ │ ├── tile.png │ │ │ ├── tile@2x.png │ │ │ ├── wood.png │ │ │ └── wood@2x.png │ │ └── preview │ │ │ ├── carpet.png │ │ │ ├── grid.png │ │ │ ├── tile.png │ │ │ └── wood.png │ ├── furniture │ │ ├── android.png │ │ ├── ballpit.png │ │ ├── desk.png │ │ ├── dog_corgi.png │ │ ├── dog_retriever.png │ │ ├── laptop.png │ │ ├── nerfgun.png │ │ ├── pacman.png │ │ ├── pingpong.png │ │ ├── plant1.png │ │ ├── plant2.png │ │ └── redstapler.png │ ├── icons │ │ ├── add.png │ │ ├── add_iOS.png │ │ ├── android.png │ │ ├── backgrounds.png │ │ ├── backgrounds_iOS.png │ │ ├── backgrounds_iOS_1x.png │ │ ├── backgrounds_small.png │ │ ├── ballpit.png │ │ ├── desk.png │ │ ├── dog.png │ │ ├── game.png │ │ ├── laptop.png │ │ ├── nerfgun.png │ │ ├── pingpong.png │ │ ├── plant.png │ │ └── stapler.png │ └── logos │ │ ├── AppIcon57x57.png │ │ ├── logo-google-consent-screen.png │ │ └── logo.png ├── js │ ├── app.js │ ├── components │ │ ├── dropdown.js │ │ ├── furniture.js │ │ ├── user-profile.js │ │ └── welcome.js │ └── helpers │ │ ├── data.js │ │ └── utils.js └── scss │ ├── _base.scss │ ├── _layout.scss │ ├── _options.scss │ ├── _state.scss │ ├── _theme.scss │ ├── app.scss │ └── modules │ ├── _alert.scss │ ├── _buzzwords.scss │ ├── _dropdown.scss │ ├── _furniture.scss │ ├── _icons.scss │ ├── _toolbar.scss │ ├── _tooltip.scss │ ├── _user-profile.scss │ └── _welcome-hero.scss └── rules.json /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | *.DS_Store 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Firebase 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Status: Archived 2 | This repository has been archived and is no longer maintained. 3 | 4 | ![status: inactive](https://img.shields.io/badge/status-inactive-red.svg) 5 | 6 | # This is a legacy Firebase example (for SDK 2.x.x). You probably want to use one of the up-to-date examples at https://firebase.google.com/docs/samples 7 | 8 | --- 9 | 10 | # Inetech Office Mover 5000 11 | 12 | Inetech Office Mover 5000 is a cross-platform example of a collaborative app written on 13 | [Firebase](https://firebase.com). It helps you and your coworkers plan the layout of your 14 | office furniture with a realtime drag-and-drop interface. 15 | 16 | It illustrates using Firebase on web, iOS, and Android. It also illustrates Firebase login 17 | with Google. 18 | 19 | Check out the [web demo](https://office-mover-demo.firebaseapp.com/). 20 | 21 | ![screenshot of office mover](web-screencap.png) 22 | 23 | ## What's here 24 | 25 | This repository contains a client for each platform, and data common across all three. 26 | 27 | - [HTML & JavaScript web client](/web) 28 | - [Java Android client](/android) 29 | - [Swift iOS client](/ios) 30 | - [Firebase security rules](security-rules.json) 31 | 32 | ## Setup 33 | 34 | 0. This is a pretty advanced example project, so if you're not already familiar with Firebase, 35 | run through one of our [quickstarts](https://www.firebase.com/docs/web/quickstart.html) and 36 | [platform guides](https://www.firebase.com/docs/web/guide/). 37 | 0. Copy the [security rules](security-rules.json) into your Firebase, either by pasting into 38 | Firebase Dashboard or add your Firebase to `firebase.json` and deploy the web version with 39 | [Firebase command line tools](https://www.firebase.com/docs/hosting/command-line-tool.html). 40 | 0. Proceed to the setup instructions for your preferred platform. 41 | - [Android](/android) 42 | - [iOS](/ios) 43 | - [Web](/web) 44 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | .idea 8 | *.iml 9 | -------------------------------------------------------------------------------- /android/README.md: -------------------------------------------------------------------------------- 1 | # Inetech Office Mover 5000 for Android 2 | 3 | ## Setup 4 | 0. Edit `app/src/main/java/com/firebase/officemover/OfficeMoverActivity.java` and change 5 | `` to the subdomain for your Firebase. 6 | 0. [Create and configure a Google application](https://www.firebase.com/docs/android/guide/login/google.html) to use for authentication. 7 | 0. Import `settings.gradle` into [Android Studio](https://developer.android.com/sdk/installing/studio.html) 8 | 0. Run it on a an Android tablet. It has been verified with the Nexus 7 and Nexus 10. 9 | -------------------------------------------------------------------------------- /android/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | packagingOptions { 5 | exclude 'META-INF/LICENSE' 6 | exclude 'META-INF/LICENSE-FIREBASE.txt' 7 | exclude 'META-INF/NOTICE' 8 | } 9 | 10 | compileSdkVersion 21 11 | buildToolsVersion "21.1" 12 | 13 | defaultConfig { 14 | applicationId "com.firebase.officemover" 15 | minSdkVersion 19 16 | targetSdkVersion 21 17 | versionCode 1 18 | versionName "1.0" 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | compile 'com.firebase:firebase-client-android:2.0.3+' 25 | compile 'com.google.android.gms:play-services:5.0.89' 26 | } 27 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 18 | 22 | 23 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/firebase/officemover/OfficeMoverApplication.java: -------------------------------------------------------------------------------- 1 | package com.firebase.officemover; 2 | 3 | import com.firebase.client.Firebase; 4 | 5 | /** 6 | * @author Jenny Tong (mimming) 7 | * @since 12/8/14 8 | * 9 | * Initialize Firebase with the application context. This must happen before the client is used. 10 | */ 11 | public class OfficeMoverApplication extends android.app.Application { 12 | @Override 13 | public void onCreate() { 14 | super.onCreate(); 15 | Firebase.setAndroidContext(this); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/firebase/officemover/model/OfficeLayout.java: -------------------------------------------------------------------------------- 1 | package com.firebase.officemover.model; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Collections; 5 | import java.util.Comparator; 6 | import java.util.HashMap; 7 | import java.util.List; 8 | 9 | /** 10 | * @author Jenny Tong (mimming) 11 | */ 12 | public class OfficeLayout extends HashMap { 13 | 14 | public int getHighestzIndex() { 15 | if (this.size() == 0) { 16 | return 0; 17 | } else { 18 | int runningHighest = 0; 19 | for (OfficeThing thing : this.values()) { 20 | if (thing.getzIndex() > runningHighest) { 21 | runningHighest = thing.getzIndex(); 22 | } 23 | } 24 | return runningHighest; 25 | } 26 | } 27 | public List getThingsTopDown() { 28 | List things = new ArrayList(this.values()); 29 | Collections.sort(things, new Comparator() { 30 | @Override 31 | public int compare(OfficeThing lhs, OfficeThing rhs) { 32 | return rhs.getzIndex() - lhs.getzIndex(); 33 | } 34 | }); 35 | return things; 36 | } 37 | public List getThingsBottomUp() { 38 | List things = new ArrayList(this.values()); 39 | Collections.sort(things, new Comparator() { 40 | @Override 41 | public int compare(OfficeThing lhs, OfficeThing rhs) { 42 | return lhs.getzIndex() - rhs.getzIndex(); 43 | } 44 | }); 45 | return things; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /android/app/src/main/java/com/firebase/officemover/model/OfficeThing.java: -------------------------------------------------------------------------------- 1 | package com.firebase.officemover.model; 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnore; 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.firebase.officemover.OfficeThingRenderUtil; 7 | 8 | /** 9 | * @author Jenny Tong (mimming) 10 | */ 11 | @JsonIgnoreProperties(ignoreUnknown = true) 12 | public class OfficeThing { 13 | 14 | private static final String TAG = OfficeThing.class.getSimpleName(); 15 | private int top; 16 | private int left; 17 | @JsonProperty("z-index") 18 | private int zIndex = 1; 19 | private String type; 20 | private String name; 21 | private int rotation; 22 | 23 | //Cache variables 24 | @JsonIgnore 25 | private String key; 26 | 27 | public OfficeThing() { 28 | } 29 | 30 | @Override 31 | public String toString() { 32 | return "OfficeThing:" + type + "{name:" + name + ",X:" + left + ",Y:" + top + ",zIndex:" + zIndex + "}"; 33 | } 34 | 35 | public String getKey() { 36 | return key; 37 | } 38 | 39 | public void setKey(String key) { 40 | this.key = key; 41 | } 42 | 43 | public int getTop() { 44 | return top; 45 | } 46 | 47 | public void setTop(int top) { 48 | this.top = top; 49 | } 50 | 51 | public int getLeft() { 52 | return left; 53 | } 54 | 55 | public void setLeft(int left) { 56 | this.left = left; 57 | } 58 | 59 | public int getzIndex() { 60 | return zIndex; 61 | } 62 | 63 | public void setzIndex(int zIndex) { 64 | this.zIndex = zIndex; 65 | } 66 | 67 | public String getType() { 68 | return type; 69 | } 70 | 71 | public void setType(String type) { 72 | this.type = type; 73 | } 74 | 75 | public String getName() { 76 | return name; 77 | } 78 | 79 | public void setName(String name) { 80 | this.name = name; 81 | } 82 | 83 | public int getRotation() { 84 | return rotation; 85 | } 86 | 87 | public void setRotation(int rotation) { 88 | if(rotation % 90 != 0) { 89 | throw new IllegalArgumentException("Rotation must be multiple of 90 or 0, not " + 90 | rotation); 91 | } 92 | 93 | if (rotation > 360) { 94 | rotation = rotation - 360; 95 | } 96 | this.rotation = rotation; 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/add.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/android.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/backgrounds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/backgrounds.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/ballpit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/ballpit.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/carpet150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/carpet150.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/desk.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/dog_corgi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/dog_corgi.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/dog_retriever.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/dog_retriever.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/grid100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/grid100.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_android.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_ballpit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_ballpit.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_computer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_computer.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_desk.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_dog.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_game.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_game.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_nerf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_nerf.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_pingpong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_pingpong.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_plant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_plant.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/icon_stapler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/icon_stapler.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/laptop.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/mover_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/mover_logo.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/nerfgun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/nerfgun.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/office.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/office.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/pacman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/pacman.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/pingpong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/pingpong.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/plant1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/plant1.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/plant2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/plant2.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/redstapler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/redstapler.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/tile200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/tile200.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-xhdpi/wood3200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/app/src/main/res/drawable-xhdpi/wood3200.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/floor_carpet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/floor_grid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/floor_tile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/floor_wood.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/activity_login.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 14 | 15 | 22 | 29 | 30 | 37 | 38 | -------------------------------------------------------------------------------- /android/app/src/main/res/layout/activity_office_mover.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 14 | 15 | 21 | 22 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /android/app/src/main/res/menu/add_office_thing.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | 15 | 16 | 19 | 20 | 23 | 24 | 27 | 28 | 31 | 32 | 35 | 36 | 39 | 40 | 43 | 44 | 47 | 48 | 51 | -------------------------------------------------------------------------------- /android/app/src/main/res/menu/change_floor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | 15 | 16 | 19 | 20 | 23 | -------------------------------------------------------------------------------- /android/app/src/main/res/menu/office_mover.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 11 | 16 | 21 | 22 | -------------------------------------------------------------------------------- /android/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #2896DD 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Inetech Office Mover 5000 5 | Settings 6 | Add Thing 7 | Change Carpet 8 | Sign Out 9 | Inetech 10 | Office Mover 5000 11 | 12 | 13 | Red Stapler 14 | Plant (Succulent) 15 | Plant (Shrub) 16 | Ping Pong Table 17 | Pacman Arcade 18 | Nerfgun Pistol 19 | Laptop 20 | Dog Retriever 21 | Dog Corgi 22 | Desk 23 | Ballpit 24 | Android 25 | 26 | 27 | Edit the name for this desk. 28 | Edit name 29 | Save 30 | 31 | 32 | 33 | Edit 34 | Delete 35 | Rotate 36 | 37 | 38 | Tile Flooring 39 | Casino Carpet 40 | Hardwood Floor 41 | Grid Pattern 42 | 43 | 44 | Login with Google 45 | None 46 | 47 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 14 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:1.0.0-rc2' 9 | 10 | // NOTE: Do not place your application dependencies here; they belong 11 | // in the individual module build.gradle files 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | jcenter() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Dec 08 16:38:23 PST 2014 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "firebase": "", 3 | "public": "./web", 4 | "ignore": [ 5 | "firebase.json", 6 | "**/.*", 7 | "**/node_modules/**" 8 | ], 9 | "rules": "security-rules.json" 10 | } 11 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | *.xcworkspace 13 | !default.xcworkspace 14 | xcuserdata 15 | profile 16 | *.moved-aside 17 | DerivedData 18 | .idea/ -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Firebase: -------------------------------------------------------------------------------- 1 | Versions/Current/Firebase -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/A/Firebase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/Firebase.framework/Versions/A/Firebase -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/A/Headers/FAuthData.h: -------------------------------------------------------------------------------- 1 | // 2 | // FAuthData.h 3 | // Firebase 4 | // 5 | // Created by Katherine Fang on 7/30/14. 6 | // 7 | 8 | #import 9 | #import "FAuthType.h" 10 | 11 | 12 | /** 13 | * The FAuthData class is a wrapper around the user metadata returned from the Firebase auth server. 14 | * It includes the provider authenticated against, a uid (with the possible exception of authenticating against a custom 15 | * backend), and a token used to authenticate with Firebase. 16 | * 17 | * It may include other metadata about the user, depending on the provider used to do the authentication. 18 | */ 19 | @interface FAuthData : NSObject 20 | 21 | /** 22 | * @return Raw authentication token payload returned by the server 23 | */ 24 | @property (nonatomic, strong, readonly) NSDictionary *auth; 25 | 26 | /** 27 | * @return Authentication token expiration timestamp (seconds since epoch) returned by the server 28 | */ 29 | @property (nonatomic, strong, readonly) NSNumber *expires; 30 | 31 | /** 32 | * @return A uid for this user. It is unique across all auth providers. 33 | */ 34 | @property (nonatomic, strong, readonly) NSString *uid; 35 | 36 | 37 | /** 38 | * @return The provider that authenticated this user 39 | */ 40 | @property (nonatomic, readonly) NSString *provider; 41 | 42 | 43 | /** 44 | * @return The token that was used to authenticate this user with Firebase 45 | */ 46 | @property (nonatomic, strong, readonly) NSString *token; 47 | 48 | 49 | /** 50 | * @return Provider data keyed by provider. Includes cached data from third-party providers 51 | */ 52 | @property (nonatomic, strong, readonly) NSDictionary *providerData; 53 | 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/A/Headers/FAuthType.h: -------------------------------------------------------------------------------- 1 | // 2 | // FAuthType.h 3 | // Firebase 4 | // 5 | // Created by Katherine Fang on 7/30/14. 6 | // 7 | // All public-facing auth enums. 8 | // 9 | 10 | #ifndef Firebase_FAuthenticationTypes_h 11 | #define Firebase_FAuthenticationTypes_h 12 | 13 | typedef NS_ENUM(NSInteger, FAuthenticationError) { 14 | // Developer / Config Errors 15 | FAuthenticationErrorProviderDisabled = -1, 16 | FAuthenticationErrorInvalidConfiguration = -2, 17 | FAuthenticationErrorInvalidOrigin = -3, 18 | FAuthenticationErrorInvalidProvider = -4, 19 | 20 | // User Errors (Email / Password) 21 | FAuthenticationErrorInvalidEmail = -5, 22 | FAuthenticationErrorInvalidPassword = -6, 23 | FAuthenticationErrorInvalidToken = -7, 24 | FAuthenticationErrorUserDoesNotExist = -8, 25 | FAuthenticationErrorEmailTaken = -9, 26 | 27 | // User Errors (Facebook / Twitter / Github / Google) 28 | FAuthenticationErrorDeniedByUser = -10, 29 | FAuthenticationErrorInvalidCredentials = -11, 30 | FAuthenticationErrorInvalidArguments = -12, 31 | FAuthenticationErrorProviderError = -13, 32 | FAuthenticationErrorLimitsExceeded = -14, 33 | 34 | // Client side errors 35 | FAuthenticationErrorNetworkError = -15, 36 | FAuthenticationErrorPreempted = -16, 37 | 38 | FAuthenticationErrorUnknown = -9999 39 | }; 40 | 41 | #endif -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/A/Headers/FEventType.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #ifndef Firebase_FEventType_h 30 | #define Firebase_FEventType_h 31 | 32 | /** 33 | * This enum is the set of events that you can observe at a Firebase location. 34 | */ 35 | typedef NS_ENUM(NSInteger, FEventType) { 36 | FEventTypeChildAdded, // 0, fired when a new child node is added to a location 37 | FEventTypeChildRemoved, // 1, fired when a child node is removed from a location 38 | FEventTypeChildChanged, // 2, fired when a child node at a location changes 39 | FEventTypeChildMoved, // 3, fired when a child node moves relative to the other child nodes at a location 40 | FEventTypeValue // 4, fired when any data changes at a location and, recursively, any children 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/A/Headers/FTransactionResult.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | #import "FMutableData.h" 31 | 32 | /** 33 | * Used for runTransactionBlock:. An FTransactionResult instance is a container for the results of the transaction. 34 | */ 35 | @interface FTransactionResult : NSObject 36 | 37 | /** 38 | * Used for runTransactionBlock:. Indicates that the new value should be saved at this location 39 | * 40 | * @param value An FMutableData instance containing the new value to be set 41 | * @return An FTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: 42 | */ 43 | + (FTransactionResult *) successWithValue:(FMutableData *)value; 44 | 45 | 46 | /** 47 | * Used for runTransactionBlock:. Indicates that the current transaction should no longer proceed. 48 | * 49 | * @return An FTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: 50 | */ 51 | + (FTransactionResult *) abort; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/A/Headers/FirebaseServerValue.h: -------------------------------------------------------------------------------- 1 | @interface FirebaseServerValue : NSObject 2 | 3 | + (NSDictionary *) timestamp; 4 | 5 | @end -------------------------------------------------------------------------------- /ios/OfficeMover5000/Firebase.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/GoogleOpenSource: -------------------------------------------------------------------------------- 1 | Versions/Current/GoogleOpenSource -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/GoogleOpenSource: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/GoogleOpenSource -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLBase64.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2012 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | #import 17 | 18 | NSData *GTLDecodeBase64(NSString *base64Str); 19 | NSString *GTLEncodeBase64(NSData *data); 20 | 21 | // "Web-safe" encoding substitutes - and _ for + and / in the encoding table, 22 | // per http://www.ietf.org/rfc/rfc4648.txt section 5. 23 | 24 | NSData *GTLDecodeWebSafeBase64(NSString *base64Str); 25 | NSString *GTLEncodeWebSafeBase64(NSData *data); 26 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLBatchQuery.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLBatchQuery.h 18 | // 19 | 20 | // Batch query documentation: 21 | // https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Batch_Operations 22 | 23 | #import "GTLQuery.h" 24 | 25 | @interface GTLBatchQuery : NSObject { 26 | @private 27 | NSMutableArray *queries_; 28 | NSMutableDictionary *requestIDMap_; 29 | BOOL skipAuthorization_; 30 | NSDictionary *additionalHTTPHeaders_; 31 | NSDictionary *urlQueryParameters_; 32 | } 33 | 34 | // Queries included in this batch. Each query should have a unique requestID. 35 | @property (retain) NSArray *queries; 36 | 37 | // Clients may set this to YES to disallow authorization. Defaults to NO. 38 | @property (assign) BOOL shouldSkipAuthorization; 39 | 40 | // Any additional HTTP headers for this batch. 41 | // 42 | // These headers override the same keys from the service object's 43 | // additionalHTTPHeaders. 44 | @property (copy) NSDictionary *additionalHTTPHeaders; 45 | 46 | // Any URL query parameters to add to the query (useful for debugging with some 47 | // services). 48 | @property (copy) NSDictionary *urlQueryParameters; 49 | 50 | + (id)batchQuery; 51 | + (id)batchQueryWithQueries:(NSArray *)array; 52 | 53 | - (void)addQuery:(GTLQuery *)query GTL_NONNULL((1)); 54 | 55 | - (GTLQuery *)queryForRequestID:(NSString *)requestID GTL_NONNULL((1)); 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLBatchResult.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLBatchResult.h 18 | // 19 | 20 | #import "GTLObject.h" 21 | 22 | @interface GTLBatchResult : GTLObject { 23 | @private 24 | NSMutableDictionary *successes_; 25 | NSMutableDictionary *failures_; 26 | } 27 | 28 | // Dictionaries of results for all queries in the batch 29 | // 30 | // Dictionary keys are requestID strings; objects are results or 31 | // GTLErrorObjects. 32 | // 33 | // For successes with no returned object (such as from delete operations), 34 | // the object for the dictionary entry is NSNull. 35 | // 36 | // 37 | // The original query for each result is available from the service ticket, 38 | // for example 39 | // 40 | // NSDictionary *successes = batchResults.successes; 41 | // for (NSString *requestID in successes) { 42 | // GTLObject *obj = [successes objectForKey:requestID]; 43 | // GTLQuery *query = [ticket queryForRequestID:requestID]; 44 | // NSLog(@"Query %@ returned object %@", query, obj); 45 | // } 46 | // 47 | // NSDictionary *failures = batchResults.failures; 48 | // for (NSString *requestID in failures) { 49 | // GTLErrorObject *errorObj = [failures objectForKey:requestID]; 50 | // GTLQuery *query = [ticket queryForRequestID:requestID]; 51 | // NSLog(@"Query %@ failed with error %@", query, errorObj); 52 | // } 53 | // 54 | 55 | @property (retain) NSMutableDictionary *successes; 56 | @property (retain) NSMutableDictionary *failures; 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLDateTime.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLDateTime.h 18 | // 19 | // This is an immutable class representing a date and optionally a 20 | // time with time zone. 21 | // 22 | 23 | #import 24 | #import "GTLDefines.h" 25 | 26 | @interface GTLDateTime : NSObject { 27 | NSDateComponents *dateComponents_; 28 | NSInteger milliseconds_; // This is only for the fraction of a second 0-999 29 | NSInteger offsetSeconds_; // may be NSUndefinedDateComponent 30 | BOOL isUniversalTime_; // preserves "Z" 31 | NSTimeZone *timeZone_; // specific time zone by name, if known 32 | } 33 | 34 | + (GTLDateTime *)dateTimeWithRFC3339String:(NSString *)str; 35 | 36 | // timeZone may be nil if the time zone is not known. 37 | + (GTLDateTime *)dateTimeWithDate:(NSDate *)date timeZone:(NSTimeZone *)tz; 38 | 39 | // Use this method to make a dateTime for an all-day event (date only, so 40 | // hasTime is NO.) 41 | + (GTLDateTime *)dateTimeForAllDayWithDate:(NSDate *)date; 42 | 43 | + (GTLDateTime *)dateTimeWithDateComponents:(NSDateComponents *)date; 44 | 45 | @property (nonatomic, readonly) NSDate *date; 46 | @property (nonatomic, readonly) NSCalendar *calendar; 47 | 48 | @property (nonatomic, readonly) NSString *RFC3339String; 49 | @property (nonatomic, readonly) NSString *stringValue; // same as RFC3339String 50 | 51 | @property (nonatomic, readonly, retain) NSTimeZone *timeZone; 52 | @property (nonatomic, readonly, copy) NSDateComponents *dateComponents; 53 | @property (nonatomic, readonly) NSInteger milliseconds; // This is only for the fraction of a second 0-999 54 | 55 | @property (nonatomic, readonly) BOOL hasTime; 56 | @property (nonatomic, readonly) NSInteger offsetSeconds; 57 | @property (nonatomic, readonly, getter=isUniversalTime) BOOL universalTime; 58 | 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLErrorObject.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLErrorObject.h 18 | // 19 | 20 | #import "GTLObject.h" 21 | 22 | @class GTLErrorObjectData; 23 | 24 | @interface GTLErrorObject : GTLObject 25 | @property (retain) NSNumber *code; 26 | @property (retain) NSString *message; 27 | @property (retain) NSArray *data; // of GTLErrorObjectData 28 | 29 | // Convenience accessor for creating an NSError from a GTLErrorObject. 30 | @property (readonly) NSError *foundationError; 31 | 32 | // Convenience accessor for extracting the GTLErrorObject that was used to 33 | // create an NSError. 34 | // 35 | // Returns nil if the error was not originally from a GTLErrorObject. 36 | + (GTLErrorObject *)underlyingObjectForError:(NSError *)foundationError; 37 | 38 | @end 39 | 40 | @interface GTLErrorObjectData : GTLObject 41 | @property (retain) NSString *domain; 42 | @property (retain) NSString *reason; 43 | @property (retain) NSString *message; 44 | @property (retain) NSString *location; 45 | @end 46 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLFramework.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | 17 | #ifndef _GTLFRAMEWORK_H_ 18 | #define _GTLFRAMEWORK_H_ 19 | 20 | #import 21 | 22 | #import "GTLDefines.h" 23 | 24 | 25 | // Returns the version of the framework. Major and minor should 26 | // match the bundle version in the Info.plist file. 27 | // 28 | // Pass NULL to ignore any of the parameters. 29 | 30 | void GTLFrameworkVersion(NSUInteger* major, NSUInteger* minor, NSUInteger* release); 31 | 32 | // Returns the version in @"a.b" or @"a.b.c" format 33 | NSString *GTLFrameworkVersionString(void); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLJSONParser.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLJSONParser.h 18 | // 19 | 20 | // This class is a thin wrapper around the JSON parser. It uses 21 | // NSJSONSerialization when available, and SBJSON otherwise. 22 | 23 | #import 24 | 25 | #import "GTLDefines.h" 26 | 27 | @interface GTLJSONParser : NSObject 28 | + (NSString*)stringWithObject:(id)value 29 | humanReadable:(BOOL)humanReadable 30 | error:(NSError**)error; 31 | 32 | + (NSData *)dataWithObject:(id)obj 33 | humanReadable:(BOOL)humanReadable 34 | error:(NSError**)error; 35 | 36 | + (id)objectWithString:(NSString *)jsonStr 37 | error:(NSError **)error; 38 | 39 | + (id)objectWithData:(NSData *)jsonData 40 | error:(NSError **)error; 41 | @end 42 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLPlus.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLPlus.h 18 | // 19 | 20 | // ---------------------------------------------------------------------------- 21 | // NOTE: This file is generated from Google APIs Discovery Service. 22 | // Service: 23 | // Google+ API (plus/v1) 24 | // Description: 25 | // The Google+ API enables developers to build on top of the Google+ platform. 26 | // Documentation: 27 | // https://developers.google.com/+/api/ 28 | 29 | #import "GTLPlusConstants.h" 30 | 31 | #import "GTLPlusAcl.h" 32 | #import "GTLPlusAclentryResource.h" 33 | #import "GTLPlusActivity.h" 34 | #import "GTLPlusActivityFeed.h" 35 | #import "GTLPlusComment.h" 36 | #import "GTLPlusCommentFeed.h" 37 | #import "GTLPlusItemScope.h" 38 | #import "GTLPlusMoment.h" 39 | #import "GTLPlusMomentsFeed.h" 40 | #import "GTLPlusPeopleFeed.h" 41 | #import "GTLPlusPerson.h" 42 | #import "GTLPlusPlace.h" 43 | 44 | #import "GTLQueryPlus.h" 45 | #import "GTLServicePlus.h" 46 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusAcl.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2014 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLPlusAcl.h 18 | // 19 | 20 | // ---------------------------------------------------------------------------- 21 | // NOTE: This file is generated from Google APIs Discovery Service. 22 | // Service: 23 | // Google+ API (plus/v1) 24 | // Description: 25 | // The Google+ API enables developers to build on top of the Google+ platform. 26 | // Documentation: 27 | // https://developers.google.com/+/api/ 28 | // Classes: 29 | // GTLPlusAcl (0 custom class methods, 3 custom properties) 30 | 31 | #if GTL_BUILT_AS_FRAMEWORK 32 | #import "GTL/GTLObject.h" 33 | #else 34 | #import "GTLObject.h" 35 | #endif 36 | 37 | @class GTLPlusAclentryResource; 38 | 39 | // ---------------------------------------------------------------------------- 40 | // 41 | // GTLPlusAcl 42 | // 43 | 44 | // This class supports NSFastEnumeration over its "items" property. It also 45 | // supports -itemAtIndex: to retrieve individual objects from "items". 46 | 47 | @interface GTLPlusAcl : GTLCollectionObject 48 | 49 | // Description of the access granted, suitable for display. 50 | // Remapped to 'descriptionProperty' to avoid NSObject's 'description'. 51 | @property (copy) NSString *descriptionProperty; 52 | 53 | // The list of access entries. 54 | @property (retain) NSArray *items; // of GTLPlusAclentryResource 55 | 56 | // Identifies this resource as a collection of access controls. Value: 57 | // "plus#acl". 58 | @property (copy) NSString *kind; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusAclentryResource.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLPlusAclentryResource.h 18 | // 19 | 20 | // ---------------------------------------------------------------------------- 21 | // NOTE: This file is generated from Google APIs Discovery Service. 22 | // Service: 23 | // Google+ API (plus/v1) 24 | // Description: 25 | // The Google+ API enables developers to build on top of the Google+ platform. 26 | // Documentation: 27 | // https://developers.google.com/+/api/ 28 | // Classes: 29 | // GTLPlusAclentryResource (0 custom class methods, 3 custom properties) 30 | 31 | #if GTL_BUILT_AS_FRAMEWORK 32 | #import "GTL/GTLObject.h" 33 | #else 34 | #import "GTLObject.h" 35 | #endif 36 | 37 | // ---------------------------------------------------------------------------- 38 | // 39 | // GTLPlusAclentryResource 40 | // 41 | 42 | @interface GTLPlusAclentryResource : GTLObject 43 | 44 | // A descriptive name for this entry. Suitable for display. 45 | @property (copy) NSString *displayName; 46 | 47 | // The ID of the entry. For entries of type "person" or "circle", this is the ID 48 | // of the resource. For other types, this property is not set. 49 | // identifier property maps to 'id' in JSON (to avoid Objective C's 'id'). 50 | @property (copy) NSString *identifier; 51 | 52 | // The type of entry describing to whom access is granted. Possible values are: 53 | // - "person" - Access to an individual. 54 | // - "circle" - Access to members of a circle. 55 | // - "myCircles" - Access to members of all the person's circles. 56 | // - "extendedCircles" - Access to members of all the person's circles, plus all 57 | // of the people in their circles. 58 | // - "domain" - Access to members of the person's Google Apps domain. 59 | // - "public" - Access to anyone on the web. 60 | @property (copy) NSString *type; 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLPlusMoment.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLPlusMoment.h 18 | // 19 | 20 | // ---------------------------------------------------------------------------- 21 | // NOTE: This file is generated from Google APIs Discovery Service. 22 | // Service: 23 | // Google+ API (plus/v1) 24 | // Description: 25 | // The Google+ API enables developers to build on top of the Google+ platform. 26 | // Documentation: 27 | // https://developers.google.com/+/api/ 28 | // Classes: 29 | // GTLPlusMoment (0 custom class methods, 6 custom properties) 30 | 31 | #if GTL_BUILT_AS_FRAMEWORK 32 | #import "GTL/GTLObject.h" 33 | #else 34 | #import "GTLObject.h" 35 | #endif 36 | 37 | @class GTLPlusItemScope; 38 | 39 | // ---------------------------------------------------------------------------- 40 | // 41 | // GTLPlusMoment 42 | // 43 | 44 | @interface GTLPlusMoment : GTLObject 45 | 46 | // The moment ID. 47 | // identifier property maps to 'id' in JSON (to avoid Objective C's 'id'). 48 | @property (copy) NSString *identifier; 49 | 50 | // Identifies this resource as a moment. 51 | @property (copy) NSString *kind; 52 | 53 | // The object generated by performing the action on the target. For example, a 54 | // user writes a review of a restaurant, the target is the restaurant and the 55 | // result is the review. 56 | @property (retain) GTLPlusItemScope *result; 57 | 58 | // Time stamp of when the action occurred in RFC3339 format. 59 | @property (retain) GTLDateTime *startDate; 60 | 61 | // The object on which the action was performed. 62 | @property (retain) GTLPlusItemScope *target; 63 | 64 | // The Google schema for the type of moment to write. For example, 65 | // http://schemas.google.com/AddActivity. 66 | @property (copy) NSString *type; 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLRuntimeCommon.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLRuntimeCommon.h 18 | // 19 | 20 | 21 | #import 22 | 23 | #import "GTLDefines.h" 24 | 25 | // This protocol and support class are an internal implementation detail so 26 | // GTLObject and GTLQuery can share some code. 27 | 28 | @protocol GTLRuntimeCommon 29 | @required 30 | // Get/Set properties 31 | - (void)setJSONValue:(id)obj forKey:(NSString *)key; 32 | - (id)JSONValueForKey:(NSString *)key; 33 | // Child cache 34 | - (void)setCacheChild:(id)obj forKey:(NSString *)key; 35 | - (id)cacheChildForKey:(NSString *)key; 36 | // Surrogate class mappings. 37 | - (NSDictionary *)surrogates; 38 | // Key map 39 | + (NSDictionary *)propertyToJSONKeyMapForClass:(Class)aClass; 40 | // Array item types 41 | + (NSDictionary *)arrayPropertyToClassMapForClass:(Class)aClass; 42 | // The parent class for dynamic support 43 | + (Class)ancestorClass; 44 | @end 45 | 46 | @interface GTLRuntimeCommon : NSObject 47 | // Wire things up. 48 | + (BOOL)resolveInstanceMethod:(SEL)sel onClass:(Class)onClass; 49 | // Helpers 50 | + (id)objectFromJSON:(id)json 51 | defaultClass:(Class)defaultClass 52 | surrogates:(NSDictionary *)surrogates 53 | isCacheable:(BOOL*)isCacheable; 54 | + (id)jsonFromAPIObject:(id)obj 55 | expectedClass:(Class)expectedClass 56 | isCacheable:(BOOL*)isCacheable; 57 | @end 58 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLServicePlus.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2013 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLServicePlus.h 18 | // 19 | 20 | // ---------------------------------------------------------------------------- 21 | // NOTE: This file is generated from Google APIs Discovery Service. 22 | // Service: 23 | // Google+ API (plus/v1) 24 | // Description: 25 | // The Google+ API enables developers to build on top of the Google+ platform. 26 | // Documentation: 27 | // https://developers.google.com/+/api/ 28 | // Classes: 29 | // GTLServicePlus (0 custom class methods, 0 custom properties) 30 | 31 | #if GTL_BUILT_AS_FRAMEWORK 32 | #import "GTL/GTLService.h" 33 | #else 34 | #import "GTLService.h" 35 | #endif 36 | 37 | @interface GTLServicePlus : GTLService 38 | 39 | // No new methods 40 | 41 | // Clients should create a standard query with any of the class methods in 42 | // GTLQueryPlus.h. The query can the be sent with GTLService's execute methods, 43 | // 44 | // - (GTLServiceTicket *)executeQuery:(GTLQuery *)query 45 | // completionHandler:(void (^)(GTLServiceTicket *ticket, 46 | // id object, NSError *error))handler; 47 | // or 48 | // - (GTLServiceTicket *)executeQuery:(GTLQuery *)query 49 | // delegate:(id)delegate 50 | // didFinishSelector:(SEL)finishedSelector; 51 | // 52 | // where finishedSelector has a signature of: 53 | // 54 | // - (void)serviceTicket:(GTLServiceTicket *)ticket 55 | // finishedWithObject:(id)object 56 | // error:(NSError *)error; 57 | // 58 | // The object passed to the completion handler or delegate method 59 | // is a subclass of GTLObject, determined by the query method executed. 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTLUploadParameters.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2011 Google Inc. 2 | * 3 | * Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | // 17 | // GTLUploadParameters.h 18 | // 19 | 20 | // Uploading documentation: 21 | // https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Uploading_Files 22 | 23 | #import 24 | 25 | #import "GTLDefines.h" 26 | 27 | @interface GTLUploadParameters : NSObject { 28 | @private 29 | NSString *MIMEType_; 30 | NSData *data_; 31 | NSFileHandle *fileHandle_; 32 | NSURL *fileURL_; 33 | NSURL *uploadLocationURL_; 34 | NSString *slug_; 35 | BOOL shouldSendUploadOnly_; 36 | } 37 | 38 | // Uploading requires MIME type and one of 39 | // - data to be uploaded 40 | // - URL of file to be uploaded (preferred for large files) 41 | // - file handle for uploading 42 | @property (copy) NSString *MIMEType; 43 | @property (retain) NSData *data; 44 | @property (retain) NSFileHandle *fileHandle; 45 | @property (retain) NSURL *fileURL; 46 | 47 | // Resuming an in-progress upload is done with the upload location URL, 48 | // and requires a file handle for uploading 49 | @property (retain) NSURL *uploadLocationURL; 50 | 51 | // Some services need a slug (filename) header 52 | @property (copy) NSString *slug; 53 | 54 | // Uploads may be done without a JSON body in the initial request 55 | @property (assign) BOOL shouldSendUploadOnly; 56 | 57 | + (instancetype)uploadParametersWithData:(NSData *)data 58 | MIMEType:(NSString *)mimeType GTL_NONNULL((1,2)); 59 | 60 | + (instancetype)uploadParametersWithFileHandle:(NSFileHandle *)fileHandle 61 | MIMEType:(NSString *)mimeType GTL_NONNULL((1,2)); 62 | 63 | + (instancetype)uploadParametersWithFileURL:(NSURL *)fileHandle 64 | MIMEType:(NSString *)mimeType GTL_NONNULL((1,2)); 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTMGarbageCollection.h: -------------------------------------------------------------------------------- 1 | // 2 | // This file previously included utility functions for working 3 | // with Garbage Collection on Mac OS X. 4 | // 5 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTMNSDictionary+URLArguments.h: -------------------------------------------------------------------------------- 1 | // 2 | // GTMNSDictionary+URLArguments.h 3 | // 4 | // Copyright 2006-2008 Google Inc. 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not 7 | // use this file except in compliance with the License. You may obtain a copy 8 | // of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | // License for the specific language governing permissions and limitations under 16 | // the License. 17 | // 18 | 19 | #import 20 | 21 | /// Utility for building a URL or POST argument string. 22 | @interface NSDictionary (GTMNSDictionaryURLArgumentsAdditions) 23 | 24 | /// Returns a dictionary of the decoded key-value pairs in a http arguments 25 | /// string of the form key1=value1&key2=value2&...&keyN=valueN. 26 | /// Keys and values will be unescaped automatically. 27 | /// Only the first value for a repeated key is returned. 28 | + (NSDictionary *)gtm_dictionaryWithHttpArgumentsString:(NSString *)argString; 29 | 30 | /// Gets a string representation of the dictionary in the form 31 | /// key1=value1&key2=value2&...&keyN=valueN, suitable for use as either 32 | /// URL arguments (after a '?') or POST body. Keys and values will be escaped 33 | /// automatically, so should be unescaped in the dictionary. 34 | - (NSString *)gtm_httpArgumentsString; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GTMNSString+URLArguments.h: -------------------------------------------------------------------------------- 1 | // 2 | // GTMNSString+URLArguments.h 3 | // 4 | // Copyright 2006-2008 Google Inc. 5 | // 6 | // Licensed under the Apache License, Version 2.0 (the "License"); you may not 7 | // use this file except in compliance with the License. You may obtain a copy 8 | // of the License at 9 | // 10 | // http://www.apache.org/licenses/LICENSE-2.0 11 | // 12 | // Unless required by applicable law or agreed to in writing, software 13 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | // License for the specific language governing permissions and limitations under 16 | // the License. 17 | // 18 | 19 | #import 20 | 21 | /// Utilities for encoding and decoding URL arguments. 22 | @interface NSString (GTMNSStringURLArgumentsAdditions) 23 | 24 | /// Returns a string that is escaped properly to be a URL argument. 25 | // 26 | /// This differs from stringByAddingPercentEscapesUsingEncoding: in that it 27 | /// will escape all the reserved characters (per RFC 3986 28 | /// ) which 29 | /// stringByAddingPercentEscapesUsingEncoding would leave. 30 | /// 31 | /// This will also escape '%', so this should not be used on a string that has 32 | /// already been escaped unless double-escaping is the desired result. 33 | - (NSString*)gtm_stringByEscapingForURLArgument; 34 | 35 | /// Returns the unescaped version of a URL argument 36 | // 37 | /// This has the same behavior as stringByReplacingPercentEscapesUsingEncoding:, 38 | /// except that it will also convert '+' to space. 39 | - (NSString*)gtm_stringByUnescapingFromURLArgument; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/A/Headers/GoogleOpenSource.h: -------------------------------------------------------------------------------- 1 | // 2 | // GoogleOpenSource.h 3 | // Google+ iOS SDK 4 | // 5 | // Copyright 2013 Google Inc. 6 | // 7 | // Use of this SDK is subject to the Google+ Platform Terms of Service: 8 | // https://developers.google.com/+/terms 9 | // 10 | 11 | 12 | // GTM. 13 | #import "GTMDefines.h" 14 | #import "GTMGarbageCollection.h" 15 | #import "GTMHTTPFetcher.h" 16 | #import "GTMHTTPFetcherLogging.h" 17 | #import "GTMHTTPFetcherService.h" 18 | #import "GTMHTTPFetchHistory.h" 19 | #import "GTMHTTPUploadFetcher.h" 20 | #import "GTMLogger.h" 21 | #import "GTMMethodCheck.h" 22 | #import "GTMNSDictionary+URLArguments.h" 23 | #import "GTMNSString+URLArguments.h" 24 | #import "GTMOAuth2Authentication.h" 25 | #import "GTMOAuth2SignIn.h" 26 | #import "GTMOAuth2ViewControllerTouch.h" 27 | #import "GTMObjC2Runtime.h" 28 | 29 | // Chrome. 30 | #import "OpenInChromeController.h" 31 | 32 | // GTL. 33 | #import "GTLBase64.h" 34 | #import "GTLBatchQuery.h" 35 | #import "GTLBatchResult.h" 36 | #import "GTLDateTime.h" 37 | #import "GTLDefines.h" 38 | #import "GTLErrorObject.h" 39 | #import "GTLFramework.h" 40 | #import "GTLJSONParser.h" 41 | #import "GTLObject.h" 42 | #import "GTLQuery.h" 43 | #import "GTLRuntimeCommon.h" 44 | #import "GTLService.h" 45 | #import "GTLUploadParameters.h" 46 | #import "GTLUtilities.h" 47 | 48 | // GTLPlus. 49 | #import "GTLPlus.h" 50 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GoogleOpenSource.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/GooglePlus: -------------------------------------------------------------------------------- 1 | Versions/Current/GooglePlus -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Versions/A/GooglePlus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/GooglePlus.framework/Versions/A/GooglePlus -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Versions/A/Headers/GPPDeepLink.h: -------------------------------------------------------------------------------- 1 | // 2 | // GPPDeepLink.h 3 | // Google+ iOS SDK 4 | // 5 | // Copyright 2012 Google Inc. 6 | // 7 | // Use of this SDK is subject to the Google+ Platform Terms of Service: 8 | // https://developers.google.com/+/terms 9 | // 10 | 11 | #import 12 | 13 | @class GPPDeepLink; 14 | 15 | // A protocol optionally implemented by the client of |GPPDeepLink|. 16 | @protocol GPPDeepLinkDelegate 17 | 18 | // Notifies the client that a deep link has been received either from 19 | // |readDeepLinkAfterInstall| or |handleURL:sourceApplication:annotation:|. 20 | - (void)didReceiveDeepLink:(GPPDeepLink *)deepLink; 21 | 22 | @end 23 | 24 | // This class handles a deep link within a share posted on Google+. 25 | // For more information on deep links, see 26 | // http://developers.google.com/+/mobile/ios/share . 27 | @interface GPPDeepLink : NSObject 28 | 29 | // Sets the delegate to handle the deep link. 30 | + (void)setDelegate:(id)delegate; 31 | 32 | // Returns a |GPPDeepLink| for your app to handle, or |nil| if not found. The 33 | // deep-link ID can be obtained from |GPPDeepLink|. It is stored when a user 34 | // clicks a link to your app from a Google+ post, but hasn't yet installed your 35 | // app. The user will be redirected to the App Store to install your app. This 36 | // method should be called on or near your app launch to take the user to 37 | // deep-link ID within your app. The delegate will be called if set and if a 38 | // deep link is found. 39 | + (GPPDeepLink *)readDeepLinkAfterInstall; 40 | 41 | // This method should be called from your |UIApplicationDelegate|'s 42 | // |application:openURL:sourceApplication:annotation|. Returns 43 | // |GooglePlusDeepLink| if |GooglePlusDeepLink| handled this URL, |nil| 44 | // otherwise. The delegate will be called if set and if a deep link is found. 45 | // Also see |handleURL:sourceApplication:annotation:| in |GPPURLHandler|. 46 | + (GPPDeepLink *)handleURL:(NSURL *)url 47 | sourceApplication:(NSString *)sourceApplication 48 | annotation:(id)annotation; 49 | 50 | // The deep-link ID in |GPPDeepLink| that was passed to the app. 51 | - (NSString *)deepLinkID; 52 | 53 | // This instance method indicates where the user came from before arriving in 54 | // your app. This method is provided for you to collect engagement metrics. 55 | // For the possible values, see 56 | // http://developers.google.com/+/mobile/ios/source-values . 57 | - (NSString *)source; 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Versions/A/Headers/GPPSignInButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // GPPSignInButton.h 3 | // Google+ iOS SDK 4 | // 5 | // Copyright 2012 Google Inc. 6 | // 7 | // Use of this SDK is subject to the Google+ Platform Terms of Service: 8 | // https://developers.google.com/+/terms 9 | // 10 | 11 | #import 12 | 13 | // The various layout styles supported by the GPPSignInButton. 14 | // The minmum size of the button depends on the language used for text. 15 | // The following dimensions (in points) fit for all languages: 16 | // kGPPSignInButtonStyleStandard: 226 x 48 17 | // kGPPSignInButtonStyleWide: 308 x 48 18 | // kGPPSignInButtonStyleIconOnly: 46 x 48 (no text, fixed size) 19 | typedef enum { 20 | kGPPSignInButtonStyleStandard = 0, 21 | kGPPSignInButtonStyleWide = 1, 22 | kGPPSignInButtonStyleIconOnly = 2 23 | } GPPSignInButtonStyle; 24 | 25 | // The various color schemes supported by the GPPSignInButton. 26 | typedef enum { 27 | kGPPSignInButtonColorSchemeDark = 0, 28 | kGPPSignInButtonColorSchemeLight = 1 29 | } GPPSignInButtonColorScheme; 30 | 31 | // This class provides the Google+ sign-in button. You can instantiate this 32 | // class programmatically or from a NIB file. You should set up the 33 | // |GPPSignIn| shared instance with your client ID and any additional scopes, 34 | // implement the delegate methods for |GPPSignIn|, and add this button to your 35 | // view hierarchy. 36 | @interface GPPSignInButton : UIButton 37 | 38 | // The layout style for the sign-in button. The default style is standard. 39 | @property(nonatomic, assign) GPPSignInButtonStyle style; 40 | 41 | // The color scheme for the sign-in. The default scheme is dark. 42 | @property(nonatomic, assign) GPPSignInButtonColorScheme colorScheme; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Versions/A/Headers/GPPURLHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // GPPURLHandler.h 3 | // Google+ iOS SDK 4 | // 5 | // Copyright 2013 Google Inc. 6 | // 7 | // Use of this SDK is subject to the Google+ Platform Terms of Service: 8 | // https://developers.google.com/+/terms 9 | // 10 | 11 | #import 12 | 13 | @interface GPPURLHandler : NSObject 14 | 15 | // Calls |handleURL:sourceApplication:annotation:| for 16 | // |[GPPSignIn sharedInstance]|, |[GPPShare sharedInstance]|, and 17 | // |GPPDeepLink|, and returns |YES| if any of them handles the URL. 18 | // This method can be called from your |UIApplicationDelegate|'s 19 | // |application:openURL:sourceApplication:annotation| instead of calling 20 | // those methods individually. 21 | + (BOOL)handleURL:(NSURL *)url 22 | sourceApplication:(NSString *)sourceApplication 23 | annotation:(id)annotation; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Versions/A/Headers/GooglePlus.h: -------------------------------------------------------------------------------- 1 | // 2 | // GooglePlus.h 3 | // Google+ iOS SDK 4 | // 5 | // Copyright 2013 Google Inc. 6 | // 7 | // Use of this SDK is subject to the Google+ Platform Terms of Service: 8 | // https://developers.google.com/+/terms 9 | // 10 | 11 | // G+ SDK. 12 | #import "GPPDeepLink.h" 13 | #import "GPPShare.h" 14 | #import "GPPSignIn.h" 15 | #import "GPPSignInButton.h" 16 | #import "GPPURLHandler.h" 17 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/GooglePlus.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000.xcodeproj/project.xcworkspace/xcshareddata/OfficeMover500.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 5F06C0EA-9B06-4DAF-991D-084E5E8BB614 9 | IDESourceControlProjectName 10 | OfficeMover500 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | 1ADA34196AA7399DBC6B873C8AFA2324550DC994 14 | github.com:firebase/office-mover-5000.git 15 | 16 | IDESourceControlProjectPath 17 | ios/OfficeMover500/OfficeMover500.xcodeproj 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | 1ADA34196AA7399DBC6B873C8AFA2324550DC994 21 | ../../../.. 22 | 23 | IDESourceControlProjectURL 24 | github.com:firebase/office-mover-5000.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | 1ADA34196AA7399DBC6B873C8AFA2324550DC994 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | 1ADA34196AA7399DBC6B873C8AFA2324550DC994 36 | IDESourceControlWCCName 37 | office-mover-5000 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000.xcodeproj/xcuserdata/katfang.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | OfficeMover500.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | OfficeMover5000.xcscheme 13 | 14 | orderHint 15 | 1 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 5F05DA021A0018C50076D47C 21 | 22 | primary 23 | 24 | 25 | 5F05DA171A0018C50076D47C 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/AddItemController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddItemController.swift 3 | // OfficeMover500 4 | // 5 | // Created by Katherine Fang on 10/30/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | import UIKit 9 | 10 | class AddItemController: PopoverMenuController { 11 | 12 | override var numItems: Int { return Items.count } 13 | 14 | // Set the cell with an image and the text 15 | override func populateCell(cell: PopoverMenuItemCell, row: Int) { 16 | cell.textLabel?.text = Items[row].0 17 | cell.name = Items[row].1 18 | let imageName = Items[row].1 19 | cell.imageView?.image = UIImage(named: "\(imageName)_unselected.png") 20 | } 21 | 22 | // When selected, add an item using the delegate, and dismiss the popover 23 | override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 24 | var type = Items[indexPath.row].2 25 | delegate?.addNewItem?(type) 26 | dismissPopover(true) 27 | } 28 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/ChangeBackgroundController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChangeBackgroundController.swift 3 | // OfficeMover500 4 | // 5 | // Created by Katherine Fang on 10/30/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | import UIKit 9 | 10 | class ChangeBackgroundController : PopoverMenuController { 11 | 12 | override var numItems: Int { return Floors.count } 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | // Adding a gutter to the menu 18 | tableView.contentInset = UIEdgeInsetsMake(15, 0, 15, 15); 19 | preferredContentSize.height += 30 20 | 21 | } 22 | 23 | // Set the cell with an image and the text 24 | override func populateCell(cell: PopoverMenuItemCell, row: Int) { 25 | cell.textLabel?.text = Floors[row].0 26 | cell.name = Floors[row].1 27 | let imageName = Floors[row].1 28 | if let image = UIImage(named: "\(imageName)_unselected.png") { 29 | cell.imageView?.image = image 30 | } else { 31 | // Create blank image ths size of wood 32 | if let woodImage = UIImage(named: "wood_unselected.png") { 33 | UIGraphicsBeginImageContextWithOptions(woodImage.size, false, 0.0) 34 | let blankImage = UIGraphicsGetImageFromCurrentImageContext() 35 | UIGraphicsEndImageContext() 36 | cell.imageView?.image = blankImage 37 | } 38 | } 39 | } 40 | 41 | // When selected, add an item using the delegate, and dismiss the popover 42 | override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 43 | var type = Floors[indexPath.row].1 44 | 45 | // Set background on Firebase 46 | delegate?.setBackground?(type) 47 | 48 | // Actually change background locally 49 | delegate?.setBackgroundLocally(type) 50 | dismissPopover(true) 51 | } 52 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Constants.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Constants.swift 3 | // OfficeMover500 4 | // 5 | // Created by Katherine Fang on 10/30/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | let RoomWidth = 600 12 | let RoomHeight = 800 13 | 14 | let ThresholdMoved = CGFloat(10) 15 | 16 | let BorderBlue = UIColor(red: CGFloat(214.0/255.0), green: CGFloat(235.0/255.0), blue: CGFloat(249.0/255.0), alpha: 1.0) 17 | let TopbarBlue = UIColor(red: CGFloat(22.0/255.0), green: CGFloat(148.0/255.0), blue: CGFloat(223.0/255.0), alpha: 1.0) 18 | let LoginBlue = UIColor(red: CGFloat(13.0/255.0), green: CGFloat(124.0/255.0), blue: CGFloat(189.0/255.0), alpha: 1.0) 19 | let FontBlue = UIColor(red: CGFloat(9.0/255.0), green: CGFloat(144.0/255.0), blue: CGFloat(201.0/255.0), alpha: 1.0) 20 | let ErrorBodyRed = UIColor(red: CGFloat(254.0/255.0), green: CGFloat(243.0/255.0), blue: CGFloat(242.0/255.0), alpha: 1.0) 21 | let ErrorBorderRed = UIColor(red: CGFloat(249.0/255.0), green: CGFloat(208.0/255.0), blue: CGFloat(201.0/255.0), alpha: 1.0) 22 | let GooglePlusRed = UIColor(red: CGFloat(227.0/255.0), green: CGFloat(78.0/255.0), blue: CGFloat(51.0/255.0), alpha: 1.0) 23 | let UnselectedGrey = UIColor(red: CGFloat(148.0/255.0), green: CGFloat(165.0/255.0), blue: CGFloat(166.0/255.0), alpha: 1.0) 24 | let SelectedGrey = UIColor(red: CGFloat(51.0/255.0), green: CGFloat(72.0/255.0), blue: CGFloat(95.0/255.0), alpha: 1.0) 25 | let SynergyBlue = UIColor(red: CGFloat(40.0/255.0), green: CGFloat(165.0/255.0), blue: CGFloat(166.0/255.0), alpha: 1.0) 26 | 27 | 28 | let ProximaNovaLight20 = UIFont(name: "ProximaNova-Light", size: 20)! 29 | 30 | // Each icon on the add menu should have one of these. The second value is the name of the asset 31 | let Items = [ 32 | ("Android Toy", "android", "android"), 33 | ("Ball Pit Pool", "ballpit", "ballpit"), 34 | ("Office Desk", "desk", "desk"), 35 | ("Dog (Corgi)", "dog", "dog_corgi"), 36 | ("Dog (Retriever)", "dog", "dog_retriever"), 37 | ("Laptop", "computer", "laptop"), 38 | ("Nerfgun Pistol", "nerf", "nerfgun"), 39 | ("Pacman Arcade", "game", "pacman"), 40 | ("Ping Pong Table", "pingpong", "pingpong"), 41 | ("Plant (Shrub)", "plant", "plant1"), 42 | ("Plant (Succulent)", "plant", "plant2"), 43 | ("Red Stapler", "stapler", "redstapler") 44 | ] 45 | 46 | let Floors = [ 47 | ("Casino Carpet", "carpet"), 48 | ("Grid Pattern", "grid"), 49 | ("Tile Flooring", "tile"), 50 | ("Hardwood Floor", "wood"), 51 | ("No Background", "") 52 | ] -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Furniture.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FurnitureModel.swift 3 | // OfficeMover500 4 | // 5 | // Created by David on 10/28/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | var maxZIndex = 0 12 | 13 | class Furniture { 14 | 15 | var key : String 16 | var name: String 17 | var top : Int 18 | var left : Int 19 | var zIndex: Int 20 | var rotation: Int 21 | var type : String 22 | 23 | init(key: String, json: Dictionary) { 24 | self.key = key 25 | self.name = json["name"] as? String ?? "" 26 | self.type = json["type"] as? String ?? "desk" 27 | self.zIndex = json["z-index"] as? Int ?? ++maxZIndex 28 | self.rotation = json["rotation"] as? Int ?? 0 29 | 30 | let defaultLoc = Furniture.defaultLocation(self.type) 31 | self.top = json["top"] as? Int ?? defaultLoc.top 32 | self.left = json["left"] as? Int ?? defaultLoc.left 33 | 34 | if self.zIndex > maxZIndex { 35 | maxZIndex = self.zIndex 36 | } 37 | } 38 | 39 | // Use this when adding one locally 40 | // You'll need to set top / left appropriately. 41 | init(key: String, type: String) { 42 | self.key = key 43 | self.name = "" 44 | self.rotation = 0 45 | self.type = type 46 | self.zIndex = ++maxZIndex 47 | 48 | let defaultLoc = Furniture.defaultLocation(self.type) 49 | self.top = defaultLoc.top 50 | self.left = defaultLoc.left 51 | } 52 | 53 | convenience init(snap: FDataSnapshot) { 54 | if let json = snap.value as? Dictionary { 55 | self.init(key: snap.key, json: json) 56 | } 57 | else { 58 | fatalError("blah") 59 | } 60 | } 61 | 62 | func toJson() -> Dictionary { 63 | return [ 64 | "top" : self.top, 65 | "left" : self.left, 66 | "z-index" : self.zIndex, 67 | "name" : self.name, 68 | "rotation" : self.rotation, 69 | "type" : self.type, 70 | ]; 71 | } 72 | 73 | class private func defaultLocation(type: String) -> (top: Int, left: Int) { 74 | if let image = UIImage(named:"\(type).png") { 75 | return (top: RoomHeight/2 - Int(image.size.height)/2, left: RoomWidth/2 - Int(image.size.width)/2) 76 | } else { 77 | return (top: RoomHeight/2, left: RoomWidth/2) 78 | } 79 | } 80 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon29x29.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon40x40.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon76x76.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/AppIcon76x76@2x.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "ipad", 6 | "filename" : "AppIcon29x29.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "ipad", 12 | "filename" : "AppIcon29x29@2x.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "40x40", 17 | "idiom" : "ipad", 18 | "filename" : "AppIcon40x40.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "ipad", 24 | "filename" : "AppIcon40x40@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "76x76", 29 | "idiom" : "ipad", 30 | "filename" : "AppIcon76x76.png", 31 | "scale" : "1x" 32 | }, 33 | { 34 | "size" : "76x76", 35 | "idiom" : "ipad", 36 | "filename" : "AppIcon76x76@2x.png", 37 | "scale" : "2x" 38 | } 39 | ], 40 | "info" : { 41 | "version" : 1, 42 | "author" : "xcode" 43 | } 44 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/carpet_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "carpet_selected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "carpet.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/carpet_selected.imageset/carpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/carpet_selected.imageset/carpet.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/carpet_selected.imageset/carpet_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/carpet_selected.imageset/carpet_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/grid_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "grid_selected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "grid.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/grid_selected.imageset/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/grid_selected.imageset/grid.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/grid_selected.imageset/grid_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/grid_selected.imageset/grid_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/tile_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "tile_selected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "tile.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/tile_selected.imageset/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/tile_selected.imageset/tile.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/tile_selected.imageset/tile_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/tile_selected.imageset/tile_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/wood_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "wood_selected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "wood.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/wood_selected.imageset/wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/wood_selected.imageset/wood.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/wood_selected.imageset/wood_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_selected/wood_selected.imageset/wood_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/carpet_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "carpet_unselected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "carpet.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/carpet_unselected.imageset/carpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/carpet_unselected.imageset/carpet.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/carpet_unselected.imageset/carpet_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/carpet_unselected.imageset/carpet_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/grid_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "grid_unselected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "grid.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/grid_unselected.imageset/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/grid_unselected.imageset/grid.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/grid_unselected.imageset/grid_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/grid_unselected.imageset/grid_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/tile_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "tile_unselected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "tile.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/tile_unselected.imageset/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/tile_unselected.imageset/tile.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/tile_unselected.imageset/tile_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/tile_unselected.imageset/tile_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/wood_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "wood_unselected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "wood.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/wood_unselected.imageset/wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/wood_unselected.imageset/wood.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/wood_unselected.imageset/wood_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floor_icons_unselected/wood_unselected.imageset/wood_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/carpet.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "firebaseCarpet75.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "firebaseCarpet150.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/carpet.imageset/firebaseCarpet150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/carpet.imageset/firebaseCarpet150.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/carpet.imageset/firebaseCarpet75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/carpet.imageset/firebaseCarpet75.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/grid.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "grid50.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "grid100.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/grid.imageset/grid100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/grid.imageset/grid100.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/grid.imageset/grid50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/grid.imageset/grid50.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/tile.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "tile100.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "tile200.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/tile.imageset/tile100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/tile.imageset/tile100.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/tile.imageset/tile200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/tile.imageset/tile200.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/wood.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "wood1600.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "wood3200.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/wood.imageset/wood1600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/wood.imageset/wood1600.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/wood.imageset/wood3200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/floors/wood.imageset/wood3200.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/android_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "android_selected.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "android__selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/android_selected.imageset/android__selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/android_selected.imageset/android__selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/android_selected.imageset/android_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/android_selected.imageset/android_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/ballpit_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "ballpit_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "ballpit_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/ballpit_selected.imageset/ballpit_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/ballpit_selected.imageset/ballpit_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/ballpit_selected.imageset/ballpit_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/ballpit_selected.imageset/ballpit_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/computer_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "computer_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "computer_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/computer_selected.imageset/computer_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/computer_selected.imageset/computer_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/computer_selected.imageset/computer_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/computer_selected.imageset/computer_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/desk_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "desk_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "desk_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/desk_selected.imageset/desk_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/desk_selected.imageset/desk_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/desk_selected.imageset/desk_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/desk_selected.imageset/desk_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/dog_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "dog_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "dog_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/dog_selected.imageset/dog_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/dog_selected.imageset/dog_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/dog_selected.imageset/dog_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/dog_selected.imageset/dog_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/game_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "game_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "game_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/game_selected.imageset/game_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/game_selected.imageset/game_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/game_selected.imageset/game_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/game_selected.imageset/game_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/nerf_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "nerf_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "nerf_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/nerf_selected.imageset/nerf_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/nerf_selected.imageset/nerf_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/nerf_selected.imageset/nerf_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/nerf_selected.imageset/nerf_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/pingpong_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "pingpong_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "pingpong_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/pingpong_selected.imageset/pingpong_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/pingpong_selected.imageset/pingpong_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/pingpong_selected.imageset/pingpong_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/pingpong_selected.imageset/pingpong_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/plant_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "plant_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "plant_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/plant_selected.imageset/plant_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/plant_selected.imageset/plant_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/plant_selected.imageset/plant_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/plant_selected.imageset/plant_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/stapler_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "stapler_selected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "stapler_selected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/stapler_selected.imageset/stapler_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/stapler_selected.imageset/stapler_selected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/stapler_selected.imageset/stapler_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_selected/stapler_selected.imageset/stapler_selected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/android_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "android_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "android_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/android_unselected.imageset/android_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/android_unselected.imageset/android_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/android_unselected.imageset/android_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/android_unselected.imageset/android_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/ballpit_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "ballpit_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "ballpit_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/ballpit_unselected.imageset/ballpit_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/ballpit_unselected.imageset/ballpit_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/ballpit_unselected.imageset/ballpit_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/ballpit_unselected.imageset/ballpit_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/computer_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "computer_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "computer_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/computer_unselected.imageset/computer_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/computer_unselected.imageset/computer_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/computer_unselected.imageset/computer_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/computer_unselected.imageset/computer_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/desk_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "desk_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "desk_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/desk_unselected.imageset/desk_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/desk_unselected.imageset/desk_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/desk_unselected.imageset/desk_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/desk_unselected.imageset/desk_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/dog_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "dog_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "dog_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/dog_unselected.imageset/dog_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/dog_unselected.imageset/dog_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/dog_unselected.imageset/dog_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/dog_unselected.imageset/dog_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/game_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "game_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "game_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/game_unselected.imageset/game_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/game_unselected.imageset/game_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/game_unselected.imageset/game_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/game_unselected.imageset/game_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/nerf_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "nerf_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "nerf_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/nerf_unselected.imageset/nerf_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/nerf_unselected.imageset/nerf_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/nerf_unselected.imageset/nerf_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/nerf_unselected.imageset/nerf_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/pingpong_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "pingpong_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "pingpong_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/pingpong_unselected.imageset/pingpong_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/pingpong_unselected.imageset/pingpong_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/pingpong_unselected.imageset/pingpong_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/pingpong_unselected.imageset/pingpong_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/plant_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "plant_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "plant_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/plant_unselected.imageset/plant_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/plant_unselected.imageset/plant_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/plant_unselected.imageset/plant_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/plant_unselected.imageset/plant_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/stapler_unselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "stapler_unselected-1.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "stapler_unselected.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/stapler_unselected.imageset/stapler_unselected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/stapler_unselected.imageset/stapler_unselected-1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/stapler_unselected.imageset/stapler_unselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/item_icons_unselected/stapler_unselected.imageset/stapler_unselected.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/android.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "android.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/android.imageset/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/android.imageset/android.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/ballpit.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "ballpit.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/ballpit.imageset/ballpit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/ballpit.imageset/ballpit.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/desk.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "desk.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/desk.imageset/desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/desk.imageset/desk.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/dog_corgi.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "dog_corgi.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/dog_corgi.imageset/dog_corgi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/dog_corgi.imageset/dog_corgi.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/dog_retriever.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "dog_retriever.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/dog_retriever.imageset/dog_retriever.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/dog_retriever.imageset/dog_retriever.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/laptop.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "laptop.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/laptop.imageset/laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/laptop.imageset/laptop.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/nerfgun.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "nerfgun.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/nerfgun.imageset/nerfgun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/nerfgun.imageset/nerfgun.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/pacman.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pacman.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/pacman.imageset/pacman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/pacman.imageset/pacman.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/pingpong.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "pingpong.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/pingpong.imageset/pingpong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/pingpong.imageset/pingpong.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/plant1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "plant1.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/plant1.imageset/plant1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/plant1.imageset/plant1.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/plant2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "plant2.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/plant2.imageset/plant2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/plant2.imageset/plant2.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/redstapler.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "redstapler.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/redstapler.imageset/redstapler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/items/redstapler.imageset/redstapler.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/logoAndName.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "logoAndName.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/logoAndName.imageset/logoAndName.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/logoAndName.imageset/logoAndName.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/logoutbtn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "logoutbtn.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/logoutbtn.imageset/logoutbtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/logoutbtn.imageset/logoutbtn.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/add.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "add_iOS.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/add.imageset/add_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/add.imageset/add_iOS.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/backgrounds.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "backgrounds_iOS_1x.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "backgrounds_iOS.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/backgrounds.imageset/backgrounds_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/backgrounds.imageset/backgrounds_iOS.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/backgrounds.imageset/backgrounds_iOS_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/menu_icons/backgrounds.imageset/backgrounds_iOS_1x.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/office.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "office_1x.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "office.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/office.imageset/office.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/office.imageset/office.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Images.xcassets/office.imageset/office_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/Images.xcassets/office.imageset/office_1x.png -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Office Mover 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | com.firebase.$(PRODUCT_NAME:rfc1034identifier) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleURLTypes 24 | 25 | 26 | CFBundleTypeRole 27 | Editor 28 | CFBundleURLIconFile 29 | 30 | CFBundleURLName 31 | com.firebase.OfficeMover5000 32 | CFBundleURLSchemes 33 | 34 | com.firebase.OfficeMover5000 35 | 36 | 37 | 38 | CFBundleVersion 39 | 1 40 | LSRequiresIPhoneOS 41 | 42 | UIAppFonts 43 | 44 | ProximaNova-Sbold.ttf 45 | ProximaNova-Reg.ttf 46 | ProximaNova-Light.ttf 47 | ProximaNova-Bold.ttf 48 | ProximaNova-Black.ttf 49 | ProximaNova-Xblod.ttf 50 | 51 | UILaunchStoryboardName 52 | Main 53 | UIMainStoryboardFile 54 | Main 55 | UIRequiredDeviceCapabilities 56 | 57 | armv7 58 | 59 | UISupportedInterfaceOrientations 60 | 61 | UIInterfaceOrientationPortrait 62 | UIInterfaceOrientationPortraitUpsideDown 63 | 64 | UISupportedInterfaceOrientations~ipad 65 | 66 | UIInterfaceOrientationPortrait 67 | UIInterfaceOrientationPortraitUpsideDown 68 | 69 | UIViewControllerBasedStatusBarAppearance 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/OfficeMover5000-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import 6 | #import 7 | #import -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/PopoverMenuController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PopoverMenuController.swift 3 | // OfficeMover500 4 | // 5 | // Created by Katherine Fang on 10/30/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | import UIKit 9 | 10 | @objc protocol PopoverMenuDelegate { 11 | func dismissPopover(animated: Bool) 12 | 13 | optional func addNewItem(type: String) 14 | 15 | func setBackgroundLocally(type: String) 16 | optional func setBackground(type: String) 17 | } 18 | 19 | class PopoverMenuController : UITableViewController { 20 | 21 | var delegate: PopoverMenuDelegate? 22 | 23 | override func viewWillAppear(animated: Bool) { 24 | super.viewWillAppear(animated) 25 | view.backgroundColor = UIColor.clearColor() // iOS 8 26 | } 27 | 28 | override func viewDidLoad() { 29 | super.viewDidLoad() 30 | preferredContentSize.height = 70 * CGFloat(numItems) 31 | } 32 | 33 | override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 34 | return numItems 35 | } 36 | 37 | override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 38 | return 1 39 | } 40 | 41 | override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 42 | var cell: PopoverMenuItemCell! = tableView.dequeueReusableCellWithIdentifier("menuItemCell") as? PopoverMenuItemCell 43 | if cell == nil { 44 | cell = PopoverMenuItemCell(style: .Default, reuseIdentifier: "menuItemCell") 45 | } 46 | 47 | // Definitely exists now 48 | populateCell(cell, row: indexPath.row) 49 | return cell 50 | } 51 | 52 | override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 53 | return 70 54 | } 55 | 56 | // Dismiss the popover 57 | func dismissPopover(animated: Bool) { 58 | delegate?.dismissPopover(animated) // iOS 7 59 | dismissViewControllerAnimated(animated, nil) // iOS 8 60 | } 61 | 62 | // Override this in subclass 63 | var numItems: Int { return 0 } 64 | 65 | // Override this in subclass 66 | func populateCell(cell: PopoverMenuItemCell, row: Int) {} 67 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/PopoverMenuItemCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddItemCell.swift 3 | // OfficeMover500 4 | // 5 | // Created by Katherine Fang on 10/30/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | import UIKit 9 | 10 | class PopoverMenuItemCell : UITableViewCell { 11 | 12 | var name: String? 13 | 14 | // Override init to provide font 15 | override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 16 | super.init(style: style, reuseIdentifier: reuseIdentifier) 17 | textLabel?.font = UIFont(name: "ProximaNova-Light", size: 20) 18 | textLabel?.textColor = UnselectedGrey 19 | } 20 | 21 | required init(coder aDecoder: NSCoder) { 22 | super.init(coder: aDecoder) 23 | } 24 | 25 | // On highlight, change image and colors 26 | override func setHighlighted(highlighted: Bool, animated: Bool) { 27 | if highlighted { 28 | backgroundColor = BorderBlue.colorWithAlphaComponent(0.5) 29 | textLabel?.textColor = SelectedGrey 30 | } else { 31 | backgroundColor = UIColor.clearColor() 32 | textLabel?.textColor = SelectedGrey 33 | } 34 | 35 | if let imageName = name { 36 | let selected = highlighted ? "_selected.png" : "_unselected.png" 37 | if let image = UIImage(named: "\(imageName)\(selected)") { 38 | imageView?.image = image 39 | } 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/ProximaNova-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/ProximaNova-Light.ttf -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/ProximaNova-Reg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/ProximaNova-Reg.ttf -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/ProximaNova-Sbold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/ios/OfficeMover5000/OfficeMover5000/ProximaNova-Sbold.ttf -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000/RoomSync.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FurnitureAdapter.swift 3 | // OfficeMover500 4 | // 5 | // Created by David on 10/28/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class RoomSync { 12 | 13 | var room : Room 14 | let ref : Firebase 15 | let furnitureRef: Firebase 16 | 17 | init (ref: Firebase) { 18 | 19 | room = Room(json: nil) 20 | self.ref = ref 21 | self.furnitureRef = ref.childByAppendingPath("furniture") 22 | 23 | } 24 | 25 | func onFurnitureAdded (onAdded : (item: Furniture) -> ()) { 26 | 27 | furnitureRef.observeEventType(.ChildAdded, withBlock: { snapshot in 28 | var furniture = Furniture(snap: snapshot) 29 | self.room.addFurniture(furniture) 30 | onAdded(item: furniture) 31 | }) 32 | 33 | } 34 | 35 | func moveFurniture(key: String, top: Int, left: Int) { 36 | self.furnitureRef.childByAppendingPath(key).updateChildValues([ 37 | "top": top, 38 | "left": left 39 | ]) 40 | } 41 | 42 | func deleteFurniture(item: Furniture) { 43 | self.furnitureRef.childByAppendingPath(item.key).removeValue() 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | com.firebase.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /ios/OfficeMover5000/OfficeMover5000Tests/OfficeMover5000Tests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OfficeMover5000Tests.swift 3 | // OfficeMover5000Tests 4 | // 5 | // Created by Katherine Fang on 10/28/14. 6 | // Copyright (c) 2014 Firebase. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import XCTest 11 | 12 | class OfficeMover5000Tests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | XCTAssert(true, "Pass") 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock() { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /ios/README.md: -------------------------------------------------------------------------------- 1 | # Inetech Office Mover 5000 for iOS 2 | 3 | ## Setup 4 | 5 | 0. Edit `OfficeMover5000/OfficeMover5000/ViewController.swift` and change `` to 6 | the subdomain for your Firebase. 7 | 0. [Create and configure a Google application](https://www.firebase.com/docs/ios/guide/login/google.html) to use for authentication. 8 | 0. Open the project in Xcode and run it on an iPad or iPad emulator. 9 | -------------------------------------------------------------------------------- /security-rules.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "background": { 4 | ".read": true, 5 | ".write": "auth != null", 6 | ".validate": "newData.isString()" 7 | }, 8 | "furniture": { 9 | ".read": true, 10 | "$fid": { 11 | ".validate": "newData.hasChildren(['left', 'name', 'rotation', 'top', 'type', 'z-index']) && auth != null", 12 | ".write": "newData.val() != null || (auth != null)", 13 | "left": { ".validate": "newData.isNumber()" }, 14 | "rotation": { ".validate": "newData.isNumber() && (newData.val() == 0 || newData.val() == 90 || newData.val() == 180 || newData.val() == 270)" }, 15 | "top": {".validate": "newData.isNumber()" }, 16 | "type": {".validate": "newData.isString()"}, 17 | "name": {".validate": "newData.isString()"}, 18 | "z-index": {".validate": "newData.isNumber()"} 19 | } 20 | } 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /web-screencap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web-screencap.png -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /bower_components 3 | /resources/js/production.js 4 | /resources/css/app.css -------------------------------------------------------------------------------- /web/README.md: -------------------------------------------------------------------------------- 1 | # Inetech Office Mover 5000 for Web 2 | 3 | ## Setup 4 | 0. Edit `resources/js/helpers/utils.js` and change `` to the subdomain 5 | for your Firebase. 6 | 0. Make sure you have [node.js](http://nodejs.org/) and [bower](http://bower.io/) installed. 7 | 0. [Create and configure a Google application](https://www.firebase.com/docs/web/guide/login/google.html) to use for authentication. 8 | 0. Navigate to the `/web` directory and run these commands: 9 | 10 | $ bower install 11 | $ npm install ## or sudo npm install 12 | $ gulp 13 | 14 | Gulp automatically opens Office Mover in a web browser, and reloads when it detects changes to css, js, and html. 15 | -------------------------------------------------------------------------------- /web/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "0.0.0", 4 | "homepage": "https://github.com/firebase/office-mover-5000", 5 | "authors": [ 6 | "alexwolfe ", 7 | "joeyyang ", 8 | "berlinjohnson " 9 | ], 10 | "private": true, 11 | "dependencies": { 12 | "firebase": "1.1.0", 13 | "font-awesome": "4.0.3", 14 | "jquery": "1.9.1", 15 | "jquery.validation": "1.11.1", 16 | "lodash": "2.4.1", 17 | "modernizr": "2.6.2", 18 | "jquery-ui": "~1.11.2", 19 | "normalize.css": "~3.0.2", 20 | "animate.css": "~3.2.0" 21 | }, 22 | "license": "MIT", 23 | "ignore": [ 24 | "**/.*", 25 | "node_modules", 26 | "bower_components", 27 | "test", 28 | "tests" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /web/gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var sass = require('gulp-sass'); 3 | var autoprefixer = require('gulp-autoprefixer'); 4 | var minifyCSS = require('gulp-minify-css'); 5 | var connect = require('gulp-connect'); 6 | var openPage = require("gulp-open"); 7 | var webpack = require('gulp-webpack'); 8 | 9 | 10 | 11 | /** 12 | * HTML 13 | * 14 | * reload html 15 | */ 16 | 17 | gulp.task("html", function() { 18 | var stream = gulp.src('*.html') 19 | .pipe(connect.reload()); 20 | 21 | return stream; 22 | }); 23 | 24 | 25 | 26 | /** 27 | * CSS PREPROCESSING 28 | * 29 | * Sass, vender prefix, minify, move 30 | */ 31 | 32 | gulp.task('css', function() { 33 | var stream = gulp.src('resources/scss/**/*.scss') 34 | .pipe(sass()) 35 | .pipe(autoprefixer()) 36 | .pipe(minifyCSS({ noAdvanced: true })) 37 | .pipe(gulp.dest('resources/css')) 38 | .pipe(connect.reload()); 39 | 40 | return stream; 41 | }); 42 | 43 | 44 | /** 45 | * WEBPACK 46 | * 47 | * Process javascript modules into common.js format 48 | */ 49 | 50 | gulp.task("webpack", function() { 51 | var stream = gulp.src('resources/js/app.js') 52 | .pipe(webpack({ 53 | output: { 54 | filename: 'production.js' 55 | } 56 | })) 57 | .pipe(gulp.dest('resources/js/')) 58 | .pipe(connect.reload()); 59 | 60 | return stream; 61 | }); 62 | 63 | 64 | /** 65 | * WATCH 66 | * 67 | * Rerun process after any of these files are edited 68 | */ 69 | 70 | gulp.task('watch', function() { 71 | gulp.watch('resources/scss/**/*.scss', ['css']); 72 | gulp.watch('resources/js/**/*.js', ['webpack']); 73 | gulp.watch('resources/images/**/*.{jpg,png,gif}'); 74 | gulp.watch('index.html', ['html']); 75 | }); 76 | 77 | 78 | /** 79 | * CONNECT SERVER 80 | * 81 | * Loads the server locally and reloads when 82 | * connect.reload() is called. 83 | */ 84 | gulp.task('connect', function() { 85 | connect.server({ 86 | root: '.', 87 | port: 8000, 88 | livereload: true 89 | }); 90 | }); 91 | 92 | 93 | /** 94 | * BUILD TASKS 95 | * 96 | * Local and production build tasks 97 | */ 98 | gulp.task('default', ['css', 'webpack', 'watch', 'connect'], function() { 99 | //Now open in browser 100 | var stream = gulp.src("index.html") 101 | .pipe(openPage("", { 102 | app: "Google Chrome", 103 | url: "http://localhost:8000" 104 | })); 105 | 106 | return stream; 107 | }); -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloud-chat", 3 | "version": "0.0.1", 4 | "description": "Office Mover Demo with Firebase", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/firebase/office-mover-5000.git" 8 | }, 9 | "keywords": [ 10 | "Firebase", 11 | "Office Mover", 12 | "Demo" 13 | ], 14 | "author": "Firebase Inc.", 15 | "license": "MIT", 16 | "bugs": { 17 | "url": "https://github.com/firebase/office-mover-5000/issues" 18 | }, 19 | "homepage": "https://github.com/firebase/office-mover-5000", 20 | "devDependencies": { 21 | "gulp": "^3.8.9", 22 | "gulp-autoprefixer": "^1.0.1", 23 | "gulp-connect": "^2.1.0", 24 | "gulp-minify-css": "^0.3.11", 25 | "gulp-open": "^0.3.0", 26 | "gulp-sass": "^2.1.1", 27 | "gulp-webpack": "^1.0.0", 28 | "webpack": "^1.4.10" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/blueprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/blueprint.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/carpert@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/carpert@2x.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/carpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/carpet.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/grid.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/grid@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/grid@2x.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/tile.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/tile@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/tile@2x.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/wood.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/full/wood@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/full/wood@2x.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/preview/carpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/preview/carpet.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/preview/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/preview/grid.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/preview/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/preview/tile.png -------------------------------------------------------------------------------- /web/resources/images/backgrounds/preview/wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/backgrounds/preview/wood.png -------------------------------------------------------------------------------- /web/resources/images/furniture/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/android.png -------------------------------------------------------------------------------- /web/resources/images/furniture/ballpit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/ballpit.png -------------------------------------------------------------------------------- /web/resources/images/furniture/desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/desk.png -------------------------------------------------------------------------------- /web/resources/images/furniture/dog_corgi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/dog_corgi.png -------------------------------------------------------------------------------- /web/resources/images/furniture/dog_retriever.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/dog_retriever.png -------------------------------------------------------------------------------- /web/resources/images/furniture/laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/laptop.png -------------------------------------------------------------------------------- /web/resources/images/furniture/nerfgun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/nerfgun.png -------------------------------------------------------------------------------- /web/resources/images/furniture/pacman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/pacman.png -------------------------------------------------------------------------------- /web/resources/images/furniture/pingpong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/pingpong.png -------------------------------------------------------------------------------- /web/resources/images/furniture/plant1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/plant1.png -------------------------------------------------------------------------------- /web/resources/images/furniture/plant2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/plant2.png -------------------------------------------------------------------------------- /web/resources/images/furniture/redstapler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/furniture/redstapler.png -------------------------------------------------------------------------------- /web/resources/images/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/add.png -------------------------------------------------------------------------------- /web/resources/images/icons/add_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/add_iOS.png -------------------------------------------------------------------------------- /web/resources/images/icons/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/android.png -------------------------------------------------------------------------------- /web/resources/images/icons/backgrounds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/backgrounds.png -------------------------------------------------------------------------------- /web/resources/images/icons/backgrounds_iOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/backgrounds_iOS.png -------------------------------------------------------------------------------- /web/resources/images/icons/backgrounds_iOS_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/backgrounds_iOS_1x.png -------------------------------------------------------------------------------- /web/resources/images/icons/backgrounds_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/backgrounds_small.png -------------------------------------------------------------------------------- /web/resources/images/icons/ballpit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/ballpit.png -------------------------------------------------------------------------------- /web/resources/images/icons/desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/desk.png -------------------------------------------------------------------------------- /web/resources/images/icons/dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/dog.png -------------------------------------------------------------------------------- /web/resources/images/icons/game.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/game.png -------------------------------------------------------------------------------- /web/resources/images/icons/laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/laptop.png -------------------------------------------------------------------------------- /web/resources/images/icons/nerfgun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/nerfgun.png -------------------------------------------------------------------------------- /web/resources/images/icons/pingpong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/pingpong.png -------------------------------------------------------------------------------- /web/resources/images/icons/plant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/plant.png -------------------------------------------------------------------------------- /web/resources/images/icons/stapler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/icons/stapler.png -------------------------------------------------------------------------------- /web/resources/images/logos/AppIcon57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/logos/AppIcon57x57.png -------------------------------------------------------------------------------- /web/resources/images/logos/logo-google-consent-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/logos/logo-google-consent-screen.png -------------------------------------------------------------------------------- /web/resources/images/logos/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlearchive/office-mover-5000/027b45f9c16cc41d673921a8584d2332c30c1058/web/resources/images/logos/logo.png -------------------------------------------------------------------------------- /web/resources/js/components/dropdown.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Dropdown Menu Module 3 | * 4 | */ 5 | 6 | var Dropdown = function($parent, data, type) { 7 | var ListTemplate = _.template($('#template-dropdown').html()); 8 | var liTemplate = _.template($('#template-dropdown-item').html()); 9 | var buttonList = ''; 10 | 11 | // LOOP THROUGH DATA & CREATE BUTTONS 12 | for(var i = 0, l = data.length; i < l; i++) { 13 | buttonList = buttonList + liTemplate({ 14 | name: data[i].name, 15 | description: data[i].description, 16 | background: data[i].background, 17 | icon: data[i].icon, 18 | type: type 19 | }); 20 | } 21 | 22 | // ADD DROPDOWN TO DOM 23 | $parent.append(ListTemplate({items: buttonList})); 24 | 25 | //TOGGLE MENU OPEN/CLOSE 26 | $parent.on('click', function(e) { 27 | e.preventDefault(); 28 | $parent.find('.dropdown, .dropdown-overlay').toggleClass('is-visible'); 29 | }); 30 | 31 | // CLOSE MENU WHEN CLICKING OVERLAY 32 | $parent.on('click', '.dropdown-overlay', function(e) { 33 | e.stopPropagation(); 34 | $parent.find('.dropdown, .dropdown-overlay').removeClass('is-visible'); 35 | }); 36 | }; 37 | 38 | 39 | // EXPORT MODULE 40 | module.exports = Dropdown; -------------------------------------------------------------------------------- /web/resources/js/components/user-profile.js: -------------------------------------------------------------------------------- 1 | /* 2 | * User Profile Module 3 | * 4 | */ 5 | 6 | var userProfile = { 7 | template: _.template($('#template-profile').html()), 8 | container: $('#profile'), 9 | 10 | /* 11 | * Initalize Profile Module 12 | * 13 | */ 14 | 15 | init: function(data) { 16 | var hasData = (data && data.google && data.google.cachedUserProfile); 17 | 18 | if(hasData) { 19 | this.data = data.google.cachedUserProfile; 20 | this.render(); 21 | } 22 | }, 23 | 24 | 25 | /* 26 | * Render Profile to DOM 27 | * 28 | */ 29 | 30 | render: function() { 31 | var $profile = this.template(this.data); 32 | 33 | this.container.html('').addClass('is-visible').append($profile); 34 | } 35 | }; 36 | 37 | 38 | // EXPORT MODULE 39 | module.exports = userProfile; -------------------------------------------------------------------------------- /web/resources/js/components/welcome.js: -------------------------------------------------------------------------------- 1 | var utils = require('../helpers/utils'); 2 | var rootRef = new Firebase(utils.urls.root); 3 | 4 | /* 5 | * Welcome module 6 | * 7 | * This is the module that sets up the welcome page and Google login 8 | */ 9 | 10 | var welcome = { 11 | $alert: null, 12 | $signInButtons: null, 13 | 14 | init: function(){ 15 | var self = this; 16 | 17 | // REGISTER ELEMENTS 18 | this.$alert = $(".alert"); 19 | this.$signInButtons = $(".welcome-hero-signin"); 20 | 21 | // SETUP LOGIN BUTTON 22 | this.$signInButtons.on("click", function(e){ 23 | var provider = $(this).data("provider"); 24 | 25 | rootRef.authWithOAuthPopup(provider, function(error, authData){ 26 | if (error){ 27 | console.log(error); 28 | self.$alert.removeClass("is-hidden"); 29 | } 30 | else { 31 | self.$alert.addClass("is-hidden"); 32 | } 33 | }); 34 | }); 35 | } 36 | }; 37 | 38 | 39 | // EXPORT MODULE 40 | module.exports = welcome; -------------------------------------------------------------------------------- /web/resources/js/helpers/data.js: -------------------------------------------------------------------------------- 1 | var data = { 2 | backgrounds: [ 3 | { 4 | name: 'carpet', 5 | description: 'Casino Carpet', 6 | background: 'background-preview-carpet' 7 | }, 8 | { 9 | name: 'grid', 10 | description: 'Grid Pattern', 11 | background: 'background-preview-grid' 12 | }, 13 | { 14 | name: 'wood', 15 | description: 'Hardwood Floor', 16 | background: 'background-preview-wood' 17 | }, 18 | { 19 | name: 'tile', 20 | description: 'Tile Flooring', 21 | background: 'background-preview-tile' 22 | }, 23 | { 24 | name: '', 25 | description: 'No Background', 26 | background: '' 27 | } 28 | ], 29 | 30 | furniture: [ 31 | { 32 | name: 'android', 33 | description: 'Android Toy', 34 | icon: 'icon-android' 35 | }, 36 | { 37 | name: 'ballpit', 38 | description: 'Ball Pit Pool', 39 | icon: 'icon-ballpit' 40 | }, 41 | { 42 | name: 'desk', 43 | description: 'Office Desk', 44 | icon: 'icon-desk' 45 | }, 46 | { 47 | name: 'dog_corgi', 48 | description: 'Dog (Corgi)', 49 | icon: 'icon-dog' 50 | }, 51 | { 52 | name: 'dog_retriever', 53 | description: 'Dog (Retriever)', 54 | icon: 'icon-dog' 55 | }, 56 | { 57 | name: 'laptop', 58 | description: 'Laptop', 59 | icon: 'icon-laptop' 60 | }, 61 | { 62 | name: 'nerfgun', 63 | description: 'Nerfgun Pistol', 64 | icon: 'icon-nerfgun' 65 | }, 66 | { 67 | name: 'pacman', 68 | description: 'Pacman Arcade', 69 | icon: 'icon-game' 70 | }, 71 | { 72 | name: 'pingpong', 73 | description: 'Ping Pong Table', 74 | icon: 'icon-pingpong' 75 | }, 76 | { 77 | name: 'plant1', 78 | description: 'Plant (Shrub)', 79 | icon: 'icon-plant' 80 | }, 81 | { 82 | name: 'plant2', 83 | description: 'Plant (Succulent)', 84 | icon: 'icon-plant' 85 | }, 86 | { 87 | name: 'redstapler', 88 | description: 'Red Stapler', 89 | icon: 'icon-stapler' 90 | } 91 | ] 92 | }; 93 | 94 | module.exports = data; -------------------------------------------------------------------------------- /web/resources/js/helpers/utils.js: -------------------------------------------------------------------------------- 1 | // APP FIREBASE URL 2 | var root = 'https://.firebaseio.com/'; 3 | 4 | 5 | /* 6 | * Helper Utilities 7 | * 8 | */ 9 | 10 | var utils = { 11 | urls: { 12 | root: root, 13 | furniture: root + 'furniture/', 14 | background: root + 'background/' 15 | } 16 | }; 17 | 18 | 19 | // EXPORT MODULE 20 | module.exports = utils; -------------------------------------------------------------------------------- /web/resources/scss/_base.scss: -------------------------------------------------------------------------------- 1 | body { 2 | background: $white; 3 | font-family: "Proxima Nova", "Helvetica Neue Light", "Helvetica Neue", "Helvetica", "Arial", "Lucida Grande", sans-serif; 4 | margin: 0; 5 | } 6 | 7 | .clearfix { 8 | *zoom: 1; 9 | } 10 | 11 | .clearfix:before, 12 | .clearfix:after { 13 | display: table; 14 | line-height: 0; 15 | content: ""; 16 | } 17 | 18 | .clearfix:after { 19 | clear: both; 20 | } 21 | -------------------------------------------------------------------------------- /web/resources/scss/_layout.scss: -------------------------------------------------------------------------------- 1 | .l-canvas { 2 | position: relative; 3 | width: 600px; 4 | height: 800px; 5 | padding: 0px; 6 | } 7 | .l-canvas-buffer { 8 | position: relative; 9 | width: 600px; 10 | height: 800px; 11 | padding: 10px; 12 | } 13 | .l-canvas-wrapper { 14 | position: relative; 15 | width: 620px; 16 | height: 820px; 17 | } 18 | .l-center-canvas { 19 | margin: 50px auto; 20 | } -------------------------------------------------------------------------------- /web/resources/scss/_options.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Colors 3 | * 4 | */ 5 | 6 | // WHITES 7 | $white: #FFFFFF; 8 | 9 | // BLUES 10 | $deep-ocean: #1E7EBB; 11 | $blue-sky: #D3EAF9; 12 | $azure: #2896DD; 13 | $bluish-gray: #F4FAFD; 14 | $dark-blue-green: #33485F; 15 | $blue-green-gray: #94A5A6; 16 | 17 | // GRAYS 18 | $concrete: #ECF0F1; 19 | $metal: #D9DDDF; 20 | $sterling: #656565; 21 | $black: #000000; 22 | 23 | // REDS 24 | $salmon: #F7BDB4; 25 | $pink: #FEF3F2; 26 | $google-red: #E34E33; 27 | 28 | 29 | /* 30 | * Typopgraphy 31 | * 32 | */ 33 | 34 | $font: "Proxima Nova", "Helvetica Neue Light", "Helvetica Neue", "Helvetica", "Arial", "Lucida Grande", sans-serif; 35 | $basefont: 14px; 36 | $baseline: 24px; 37 | -------------------------------------------------------------------------------- /web/resources/scss/_state.scss: -------------------------------------------------------------------------------- 1 | .is-hidden { 2 | display: none !important; 3 | } 4 | .is-visible { 5 | display: block !important; 6 | } 7 | .is-top { 8 | z-index: 2147483647 !important; 9 | } -------------------------------------------------------------------------------- /web/resources/scss/_theme.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Background Previews 3 | * 4 | */ 5 | 6 | .background-preview-carpet { 7 | background: url('../images/backgrounds/preview/carpet.png') top left repeat; 8 | } 9 | .background-preview-grid { 10 | background: url('../images/backgrounds/preview/grid.png') top left repeat; 11 | } 12 | .background-preview-wood { 13 | background: url('../images/backgrounds/preview/wood.png') top left repeat; 14 | } 15 | .background-preview-tile { 16 | background: url('../images/backgrounds/preview/tile.png') top left repeat; 17 | } 18 | 19 | 20 | /* 21 | * Backgrounds 22 | * 23 | */ 24 | .background-carpet { 25 | background: url('../images/backgrounds/full/carpet.png') top left repeat; 26 | } 27 | .background-grid { 28 | background: url('../images/backgrounds/full/grid.png') top left repeat; 29 | } 30 | .background-wood { 31 | background: url('../images/backgrounds/full/wood.png') top left repeat; 32 | } 33 | .background-tile { 34 | background: url('../images/backgrounds/full/tile.png') top left repeat; 35 | } 36 | .background-blueprint { 37 | background: url('../images/backgrounds/full/blueprint.png') top left no-repeat; 38 | background-size: 620px 820px; 39 | } 40 | -------------------------------------------------------------------------------- /web/resources/scss/app.scss: -------------------------------------------------------------------------------- 1 | // BASE STYLES AND VARS 2 | @import 'options'; 3 | @import 'base'; 4 | 5 | // LAYOUT 6 | @import 'layout'; 7 | @import 'theme'; 8 | 9 | // MODULES 10 | @import 'modules/toolbar'; 11 | @import 'modules/buzzwords'; 12 | @import 'modules/alert'; 13 | @import 'modules/welcome-hero'; 14 | @import 'modules/furniture'; 15 | @import 'modules/tooltip'; 16 | @import 'modules/dropdown'; 17 | @import 'modules/icons'; 18 | @import 'modules/user-profile'; 19 | 20 | // STATE 21 | @import 'state'; 22 | -------------------------------------------------------------------------------- /web/resources/scss/modules/_alert.scss: -------------------------------------------------------------------------------- 1 | .alert { 2 | width: 300px; 3 | padding: 10px 20px; 4 | margin: 40px auto 0px auto; 5 | line-height: 20px; 6 | text-align: center; 7 | color: $google-red; 8 | background-color: $pink; 9 | border: 2px solid $google-red; 10 | border-radius: 5px; 11 | } -------------------------------------------------------------------------------- /web/resources/scss/modules/_buzzwords.scss: -------------------------------------------------------------------------------- 1 | .buzzwords { 2 | position: relative; 3 | display: block; 4 | height: auto; 5 | padding: 10px; 6 | margin: 0px; 7 | line-height: 20px; 8 | text-align: center; 9 | background-color: $deep-ocean; 10 | color: $azure; 11 | font-size: $basefont + 2; 12 | font-weight: 100; 13 | 14 | span { 15 | display: inline-block; 16 | margin: 0px 5px; 17 | letter-spacing: 2px; 18 | text-transform: uppercase; 19 | } 20 | } -------------------------------------------------------------------------------- /web/resources/scss/modules/_icons.scss: -------------------------------------------------------------------------------- 1 | .icon-add { 2 | background: url('../images/icons/add.png') center center no-repeat; 3 | } 4 | .icon-background { 5 | background: url('../images/icons/backgrounds.png') center center no-repeat; 6 | } 7 | .icon-android { 8 | background: url('../images/icons/android.png') center center no-repeat; 9 | } 10 | .icon-ballpit { 11 | background: url('../images/icons/ballpit.png') center center no-repeat; 12 | } 13 | .icon-desk { 14 | background: url('../images/icons/desk.png') center center no-repeat; 15 | } 16 | .icon-dog { 17 | background: url('../images/icons/dog.png') center center no-repeat; 18 | } 19 | .icon-game { 20 | background: url('../images/icons/game.png') center center no-repeat; 21 | } 22 | .icon-laptop { 23 | background: url('../images/icons/laptop.png') center center no-repeat; 24 | } 25 | .icon-nerfgun { 26 | background: url('../images/icons/nerfgun.png') center center no-repeat; 27 | } 28 | .icon-pingpong { 29 | background: url('../images/icons/pingpong.png') center center no-repeat; 30 | } 31 | .icon-plant { 32 | background: url('../images/icons/plant.png') center center no-repeat; 33 | } 34 | .icon-stapler { 35 | background: url('../images/icons/stapler.png') center center no-repeat; 36 | } -------------------------------------------------------------------------------- /web/resources/scss/modules/_toolbar.scss: -------------------------------------------------------------------------------- 1 | .toolbar { 2 | padding: 10px; 3 | height: 40px; 4 | background-color: $azure; 5 | position: relative; 6 | 7 | .toolbar-title { 8 | color: $white; 9 | font-weight: 100; 10 | text-align: center; 11 | line-height: 40px; 12 | margin: 0px; 13 | padding: 0px; 14 | font-size: 26px; 15 | } 16 | 17 | .toolbar-menu { 18 | list-style: none; 19 | padding: 0px; 20 | margin: 0px; 21 | position: absolute; 22 | left: 10px; 23 | top: 10px; 24 | z-index: 1000; 25 | 26 | > li { 27 | padding: 0px; 28 | margin: 0px 10px 0px 0px; 29 | display: inline-block; 30 | } 31 | 32 | .toolbar-icon-button { 33 | border: none; 34 | height: 40px; 35 | width: 40px; 36 | color: $white; 37 | text-indent: -3000px; 38 | overflow: hidden; 39 | outline: none; 40 | 41 | &.icon-add { 42 | background-size: 26px 26px; 43 | } 44 | 45 | &.icon-background { 46 | background-size: 32px 26px; 47 | } 48 | 49 | &:hover, &:focus { 50 | 51 | } 52 | 53 | &:active, &.is-active { 54 | background-color: $deep-ocean; 55 | } 56 | } 57 | } 58 | 59 | .toolbar-sign-out { 60 | font-weight: 100; 61 | position: absolute; 62 | top: 10px; 63 | right: 10px; 64 | border: none; 65 | border-radius: 3px; 66 | height: 40px; 67 | padding: 0px 20px; 68 | font-size: $basefont - 1; 69 | background-color: $deep-ocean; 70 | color: $white; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /web/resources/scss/modules/_tooltip.scss: -------------------------------------------------------------------------------- 1 | .tooltip { 2 | border-radius: 3px; 3 | background: rgba($black, .8); 4 | position: absolute; 5 | top: -50px; 6 | left: 50%; 7 | z-index: 1; 8 | margin-left: -60px; 9 | width: 120px; 10 | height: 30px; 11 | 12 | .tooltip-button-edit { 13 | display: none; 14 | } 15 | 16 | .desk & { 17 | width: 180px; 18 | margin-left: -90px; 19 | 20 | .tooltip-button-edit { 21 | display: block; 22 | } 23 | } 24 | 25 | .tooltip-arrow { 26 | width: 0; 27 | height: 0; 28 | border-left: 8px solid transparent; 29 | border-right: 8px solid transparent; 30 | border-top: 8px solid rgba($black, .8); 31 | position: absolute; 32 | top: 30px; 33 | left: 50%; 34 | z-index: 1; 35 | margin-left: -8px; 36 | } 37 | 38 | .tooltip-button { 39 | float: left; 40 | line-height: 30px; 41 | width: 60px; 42 | text-align: center; 43 | font-weight: 100; 44 | font-size: 14px; 45 | color: $white; 46 | cursor: pointer; 47 | } 48 | } -------------------------------------------------------------------------------- /web/resources/scss/modules/_user-profile.scss: -------------------------------------------------------------------------------- 1 | .user-profile { 2 | display: none; 3 | border-radius: 5px; 4 | position: fixed; 5 | bottom: 20px; 6 | right: 20px; 7 | z-index: 10; 8 | padding: 10px 10px 10px 50px; 9 | background: rgba($bluish-gray, .8); 10 | box-shadow: 0px 1px 3px rgba(0, 0, 0, .3); 11 | border: 1px solid $azure; 12 | 13 | > img { 14 | border-radius: 300px; 15 | width: 30px; 16 | height: 30px; 17 | display: block; 18 | position: absolute; 19 | top: 10px; 20 | left: 10px; 21 | z-index: 1; 22 | } 23 | 24 | > h2 { 25 | color: $azure; 26 | font-size: 16px; 27 | font-weight: 100; 28 | line-height: 30px; 29 | margin: 0px; 30 | text-align: left; 31 | } 32 | } -------------------------------------------------------------------------------- /web/resources/scss/modules/_welcome-hero.scss: -------------------------------------------------------------------------------- 1 | .welcome-hero { 2 | position: relative; 3 | width: 100%; 4 | 5 | .welcome-hero-logo { 6 | display: block; 7 | margin: 0 auto; 8 | height: 400px; 9 | } 10 | 11 | .welcome-hero-signin { 12 | display: block; 13 | height: 40px; 14 | color: $white; 15 | text-transform: uppercase; 16 | letter-spacing: 0.5px; 17 | font-weight: 100; 18 | padding: 10px 15px; 19 | margin: 0 auto; 20 | border-radius: 3px; 21 | background-color: $google-red; 22 | border: 1px solid $google-red; 23 | } 24 | } -------------------------------------------------------------------------------- /web/rules.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | ".read": true, 4 | ".write": true, 5 | "furniture": { 6 | "$fid": { 7 | ".trigger": { 8 | "method": "'POST'", 9 | "target": "'http://fb-office-mover-5000.appspot.com/sync'", 10 | //"target": "'http://localhost:8080/sync'", 11 | "criteria": "true", 12 | "headers": { 13 | "Content-Type": "'application/json'" 14 | }, 15 | "body": { 16 | "left": "data.child('left').val()", 17 | "top": "data.child('left').val()", 18 | "rotation": "data.child('left').val()", 19 | "time": "now + ''", 20 | "name": "data.child('name').val()", 21 | "type": "data.child('type').val()", 22 | "uid": "$fid" 23 | }, 24 | "errorResponse": "'/log/' + now" 25 | } 26 | } 27 | } 28 | } 29 | } --------------------------------------------------------------------------------