├── .github ├── secrets │ ├── MAGE.mobileprovision.gpg │ └── development.p12.gpg └── workflows │ ├── build.yml │ └── release.yml ├── .gitignore ├── .slather.yml ├── .travis.yml ├── CHANGELOG.md ├── Gemfile ├── GondolaMage-Regular.otf ├── LICENSE ├── LaunchScreen.storyboard ├── MAGE.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved └── xcshareddata │ └── xcschemes │ └── MAGE.xcscheme ├── MAGE.xctestplan ├── MAGE.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── swiftpm │ └── Package.resolved ├── MAGEGeoPackageTests ├── MAGEGeoPackageTests-Bridging-Header.h ├── MAGEGeoPackageTests.swift ├── Map │ ├── GeoPackage │ │ ├── GeoPackageImporterTests.swift │ │ ├── GeoPackageImporterUITests.swift │ │ └── GeoPackageTests.swift │ └── Mixins │ │ ├── GeoPackageBaseMapTests.swift │ │ └── GeoPackageLayerMapTests.swift ├── TestingAppDelegate.h └── TestingAppDelegate.m ├── Mage ├── AdvancedWiFiTableViewController.h ├── AdvancedWiFiTableViewController.m ├── AppDelegate.h ├── AppDelegate.m ├── AreaAnnotation.h ├── AreaAnnotation.m ├── AskToDownloadViewController.swift ├── Attachment │ └── AttachmentView.xib ├── AttachmentCell.swift ├── AttachmentCollectionDataStore.h ├── AttachmentCollectionDataStore.m ├── AttachmentCreationCoordinator.swift ├── AttachmentFieldView.swift ├── AttachmentFieldViewSwiftUI.swift ├── AttachmentProgressViewController.swift ├── AttachmentSelectionDelegate.h ├── AttachmentSlideshow.swift ├── AttachmentUIImageView.swift ├── AttachmentViewCoordinator.swift ├── AttributionCell.xib ├── AttributionTableViewCell.h ├── AttributionTableViewCell.m ├── AttributionsViewController.h ├── AttributionsViewController.m ├── AudioRecorderViewController.h ├── AudioRecorderViewController.m ├── AudioRecorderViewController.xib ├── AudioRecordingDelegate.h ├── AuthenticationButton.h ├── AuthenticationButton.m ├── AuthenticationButton.xib ├── AuthenticationCoordinator+Offline.swift ├── AuthenticationCoordinator+Testing.h ├── AuthenticationCoordinator.h ├── AuthenticationCoordinator.m ├── AuthenticationCoordinator_Server5.h ├── AuthenticationCoordinator_Server5.m ├── Base.lproj │ └── Filter.storyboard ├── BaseFieldView.swift ├── BaseMapOverlay.swift ├── BottomSheets │ ├── BottomSheetView.swift │ ├── FeatureBottomSheetView.swift │ ├── FeedItemBottomSheetView.swift │ ├── GeoPackageFeatureBottomSheetView.swift │ ├── MageBottomSheet.swift │ ├── ObservationBottomSheetView.swift │ └── UserBottomSheetView.swift ├── CALayer+IB.h ├── CALayer+IB.m ├── CardHeader.swift ├── ChangePasswordView.xib ├── ChangePasswordViewController.h ├── ChangePasswordViewController.m ├── CheckboxFieldView.swift ├── ColorPickerCell.swift ├── ColorPickerCelliOS13.swift ├── ColorPickerViewController.swift ├── Colors.xcassets │ ├── Contents.json │ ├── background.colorset │ │ └── Contents.json │ ├── onPrimary.colorset │ │ └── Contents.json │ ├── onSecondary.colorset │ │ └── Contents.json │ ├── primary.colorset │ │ └── Contents.json │ ├── primaryVariant.colorset │ │ └── Contents.json │ ├── secondary.colorset │ │ └── Contents.json │ └── surface.colorset │ │ └── Contents.json ├── CommonFieldsView.swift ├── CommonSummaryView.swift ├── ContactInfo.h ├── ContactInfo.m ├── CoordinateButton.swift ├── CoordinateDisplayType.swift ├── CoordinateField.swift ├── CoreData │ ├── Attachment+CoreDataProperties.swift │ ├── Attachment.swift │ ├── Canary+CoreDataProperties.swift │ ├── Canary.swift │ ├── Event+CoreDataProperties.swift │ ├── Event.swift │ ├── Feed+CoreDataProperties.swift │ ├── Feed.swift │ ├── FeedItem+CoreDataProperties.swift │ ├── FeedItem.swift │ ├── Form+CoreDataProperties.swift │ ├── Form.swift │ ├── FormJson+CoreDataProperties.swift │ ├── FormJson.swift │ ├── GPSLocation+CoreDataProperties.swift │ ├── GPSLocation.swift │ ├── ImageryLayer+CoreDataProperties.swift │ ├── ImageryLayer.swift │ ├── Layer+CoreDataProperties.swift │ ├── Layer.swift │ ├── Location+CoreDataProperties.swift │ ├── Location.swift │ ├── Observation+CoreDataProperties.swift │ ├── Observation.swift │ ├── ObservationFavorite+CoreDataProperties.swift │ ├── ObservationFavorite.swift │ ├── ObservationImportant+CoreDataProperties.swift │ ├── ObservationImportant.swift │ ├── ObservationLocation.swift │ ├── Role+CoreDataProperties.swift │ ├── Role.swift │ ├── Server+CoreDataProperties.swift │ ├── Server.swift │ ├── Settings.swift │ ├── StaticLayer+CoreDataProperties.swift │ ├── StaticLayer.swift │ ├── Team+CoreDataProperties.swift │ ├── Team.swift │ ├── User+CoreDataProperties.swift │ └── User.swift ├── DataSourceMapViewModel.swift ├── DataSynchronizationSettingsTableViewController.h ├── DataSynchronizationSettingsTableViewController.m ├── DateView.swift ├── DependencyInjection │ └── DependencyInjection.swift ├── DeviceUUID.swift ├── DisclaimerViewController.swift ├── DisplaySettingsHeader.h ├── DisplaySettingsHeader.m ├── DisplaySettingsHeader.xib ├── DocumentPreview.swift ├── DropdownFieldView.swift ├── EditAttachmentCardView.swift ├── EmailBuilder.h ├── EmailBuilder.m ├── EmptyState.swift ├── EventChooserController.swift ├── EventChooserCoordinator.swift ├── EventContentView.swift ├── EventInformationController.h ├── EventInformationController.m ├── EventInformationCoordinator.h ├── EventInformationCoordinator.m ├── EventInformationView.h ├── EventInformationView.m ├── EventInformationView.xib ├── EventTableDataSource.swift ├── Extensions │ ├── ArrayExtensions.swift │ ├── CLCoordinate2DExtensions.swift │ ├── HexColor.swift │ ├── KeyboardHelper.swift │ ├── LocationUtilities.swift │ ├── MKShapeExtensions.swift │ ├── MageImage.swift │ ├── ObjC.h │ ├── ObjC.m │ ├── SplitLayout.swift │ ├── StringExtensions.swift │ ├── UIApplicationTopController.swift │ ├── UIButtonInsets.swift │ ├── UILabelPadding.swift │ ├── UITableViewExtensions.swift │ ├── UIViewExtensions.swift │ └── UIWindowExtensions.swift ├── ExternalDevice.h ├── ExternalDevice.m ├── FICAttachment.h ├── FICAttachment.m ├── FadeTransitionSegue.h ├── FadeTransitionSegue.m ├── FavoriteButton.swift ├── FeatureActionsDelegate.swift ├── FeatureActionsView.swift ├── FeatureSummaryView.swift ├── Feed │ ├── FeedItemActionsDelegate.swift │ ├── FeedItemActionsView.swift │ ├── FeedItemCard.swift │ ├── FeedItemPropertyCell.swift │ ├── FeedItemRetriever.swift │ ├── FeedItemSummary.swift │ ├── FeedItemTableViewCell.swift │ ├── FeedItemViewController.swift │ ├── FeedItemsViewController.swift │ └── FeedService.swift ├── FieldKey.swift ├── FieldSelectionDelegate.swift ├── FilterTableViewController.h ├── FilterTableViewController.m ├── FormDefaults.h ├── FormDefaults.m ├── FormDefaultsCoordinator.swift ├── FormDefaultsViewController.swift ├── FormPickerViewController.swift ├── FormsHeader.swift ├── GeoPackage │ ├── GeoPackage.h │ ├── GeoPackage.swift │ └── GeoPackageImporter.swift ├── GeoPackageFeatureSummaryView.swift ├── Geocoder.swift ├── GeometryEditCoordinator.h ├── GeometryEditCoordinator.m ├── GeometryEditMapDelegate.h ├── GeometryEditMapDelegate.m ├── GeometryEditViewController.h ├── GeometryEditViewController.m ├── GeometryView.swift ├── GridSystems.swift ├── GridType.swift ├── GridTypeCell.xib ├── GridTypeTableViewCell.h ├── GridTypeTableViewCell.m ├── HasMapSearchMixin.swift ├── IDPCoordinator.h ├── IDPCoordinator.m ├── IDPLoginView.h ├── IDPLoginView.m ├── ImageAttachmentViewController.swift ├── ImageUtilities │ ├── ImageCacheProvider.swift │ ├── KingFisherUIImageView.swift │ └── VideoImageProvider.swift ├── Images.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon 1.png │ │ ├── Icon 2.png │ │ ├── Icon.png │ │ ├── icon_20pt@2x 1.png │ │ ├── icon_20pt@2x 2.png │ │ ├── icon_20pt@2x.png │ │ ├── icon_20pt@3x 1.png │ │ ├── icon_20pt@3x 2.png │ │ ├── icon_20pt@3x.png │ │ ├── icon_29pt@2x 1.png │ │ ├── icon_29pt@2x 2.png │ │ ├── icon_29pt@2x.png │ │ ├── icon_29pt@3x 1.png │ │ ├── icon_29pt@3x 2.png │ │ ├── icon_29pt@3x.png │ │ ├── icon_38@3xpt 1.png │ │ ├── icon_38@3xpt 2.png │ │ ├── icon_38@3xpt.png │ │ ├── icon_40pt@2x 1.png │ │ ├── icon_40pt@2x 2.png │ │ ├── icon_40pt@2x.png │ │ ├── icon_40pt@3x 1.png │ │ ├── icon_40pt@3x 2.png │ │ ├── icon_40pt@3x.png │ │ ├── icon_60pt@2x 1.png │ │ ├── icon_60pt@2x 2.png │ │ ├── icon_60pt@2x.png │ │ ├── icon_60pt@3x 1.png │ │ ├── icon_60pt@3x 2.png │ │ ├── icon_60pt@3x.png │ │ ├── icon_64pt@2x 1.png │ │ ├── icon_64pt@2x 2.png │ │ ├── icon_64pt@2x.png │ │ ├── icon_64pt@3x 1.png │ │ ├── icon_64pt@3x 2.png │ │ ├── icon_64pt@3x.png │ │ ├── icon_68pt@2x 1.png │ │ ├── icon_68pt@2x 2.png │ │ ├── icon_68pt@2x.png │ │ ├── icon_76pt 1.png │ │ ├── icon_76pt 2.png │ │ ├── icon_76pt.png │ │ ├── icon_76pt@2x 1.png │ │ ├── icon_76pt@2x 2.png │ │ ├── icon_76pt@2x.png │ │ ├── icon_83.5@2x 1.png │ │ ├── icon_83.5@2x 2.png │ │ └── icon_83.5@2x.png │ ├── Contents.json │ ├── add_location.imageset │ │ ├── Contents.json │ │ ├── baseline_add_location_black_48pt_1x.png │ │ ├── baseline_add_location_black_48pt_2x.png │ │ └── baseline_add_location_black_48pt_3x.png │ ├── arrow_drop_down.imageset │ │ ├── Contents.json │ │ ├── baseline_arrow_drop_down_black_24pt_1x.png │ │ ├── baseline_arrow_drop_down_black_24pt_2x.png │ │ └── baseline_arrow_drop_down_black_24pt_3x.png │ ├── big_download.imageset │ │ ├── Contents.json │ │ ├── Layer (3).png │ │ ├── Layer (4).png │ │ └── Layer (5).png │ ├── brightness_medium.imageset │ │ ├── Contents.json │ │ ├── baseline-brightness_medium-24px.png │ │ ├── baseline-brightness_medium-24px@2x.png │ │ └── baseline-brightness_medium-24px@3x.png │ ├── contact_card.imageset │ │ ├── Contents.json │ │ ├── baseline_perm_contact_calendar_black_24pt_1x.png │ │ ├── baseline_perm_contact_calendar_black_24pt_2x.png │ │ └── baseline_perm_contact_calendar_black_24pt_3x.png │ ├── defaultMarker.imageset │ │ ├── Contents.json │ │ ├── default.png │ │ ├── default3x.png │ │ └── default_2x.png │ ├── download.imageset │ │ ├── Contents.json │ │ ├── download.png │ │ ├── download@2x.png │ │ └── download@3x.png │ ├── download_thumbnail.imageset │ │ ├── Contents.json │ │ ├── download_thumbnail.png │ │ ├── download_thumbnail@2x.png │ │ └── download_thumbnail@3x.png │ ├── event_available.imageset │ │ ├── Contents.json │ │ ├── baseline-event_available-24px (2).png │ │ ├── baseline-event_available-24px (2)@2x.png │ │ └── baseline-event_available-24px (2)@3x.png │ ├── event_note.imageset │ │ ├── Contents.json │ │ ├── baseline-event_note-24px (1).png │ │ ├── baseline-event_note-24px (1)@2x.png │ │ └── baseline-event_note-24px (1)@3x.png │ ├── filter.imageset │ │ ├── Contents.json │ │ ├── ic_filter_black_24dp.png │ │ ├── ic_filter_black_36dp.png │ │ └── ic_filter_black_48dp.png │ ├── geopackage.imageset │ │ ├── Contents.json │ │ ├── geopackage.png │ │ ├── geopackage@2x.png │ │ └── geopackage@3x.png │ ├── line_string.imageset │ │ ├── Contents.json │ │ ├── line_string_marker.png │ │ ├── line_string_marker@2x.png │ │ └── line_string_marker@3x.png │ ├── location_tracking_off.imageset │ │ ├── Contents.json │ │ ├── ic_gps_off_black_24dp-1.png │ │ ├── ic_gps_off_black_24dp-2.png │ │ └── ic_gps_off_black_24dp.png │ ├── location_tracking_on.imageset │ │ ├── Contents.json │ │ ├── baseline-my_location-24px.png │ │ ├── baseline-my_location-24px@2x.png │ │ └── baseline-my_location-24px@3x.png │ ├── marker.imageset │ │ ├── Contents.json │ │ ├── black.png │ │ ├── black@2x.png │ │ └── black@3x.png │ ├── marker_large.imageset │ │ ├── Contents.json │ │ ├── location_on_200dp_5F6368_FILL0_wght700_GRAD0_opsz48.png │ │ ├── location_on_400dp_5F6368_FILL0_wght700_GRAD0_opsz48.png │ │ └── location_on_600dp_5F6368_FILL0_wght700_GRAD0_opsz48.png │ ├── marker_outline.imageset │ │ ├── Contents.json │ │ ├── marker_outline.png │ │ ├── marker_outline@2x.png │ │ └── marker_outline@3x.png │ ├── more.imageset │ │ ├── Contents.json │ │ ├── baseline_more_vert_black_36pt_1x.png │ │ ├── baseline_more_vert_black_36pt_2x.png │ │ └── baseline_more_vert_black_36pt_3x.png │ ├── more_small.imageset │ │ ├── Contents.json │ │ ├── baseline_more_vert_black_18pt_1x.png │ │ ├── baseline_more_vert_black_18pt_2x.png │ │ └── baseline_more_vert_black_18pt_3x.png │ ├── movie.imageset │ │ ├── Contents.json │ │ ├── baseline_movie_black_24pt_1x.png │ │ ├── baseline_movie_black_24pt_2x.png │ │ └── baseline_movie_black_24pt_3x.png │ ├── observations.imageset │ │ ├── Contents.json │ │ ├── baseline-place-24px.png │ │ ├── baseline-place-24px@2x.png │ │ └── baseline-place-24px@3x.png │ ├── outline_not_listed_location.imageset │ │ ├── Contents.json │ │ ├── not_listed_location_black_24dp.png │ │ ├── not_listed_location_black_24dp@2x.png │ │ └── not_listed_location_black_24dp@3x.png │ ├── outline_place.imageset │ │ ├── Contents.json │ │ ├── outline_place_black_24pt_1x.png │ │ ├── outline_place_black_24pt_2x.png │ │ └── outline_place_black_24pt_3x.png │ ├── outline_title.imageset │ │ ├── Contents.json │ │ ├── outline_title_black_24pt_1x.png │ │ ├── outline_title_black_24pt_2x.png │ │ └── outline_title_black_24pt_3x.png │ ├── polygon.imageset │ │ ├── Contents.json │ │ ├── polygon_marker.png │ │ ├── polygon_marker@2x.png │ │ └── polygon_marker@3x.png │ ├── radio_button_checked.imageset │ │ ├── Contents.json │ │ ├── baseline_radio_button_checked_black_36pt_1x.png │ │ ├── baseline_radio_button_checked_black_36pt_2x.png │ │ └── baseline_radio_button_checked_black_36pt_3x.png │ ├── radio_button_unchecked.imageset │ │ ├── Contents.json │ │ ├── baseline_radio_button_unchecked_black_36pt_1x.png │ │ ├── baseline_radio_button_unchecked_black_36pt_2x.png │ │ └── baseline_radio_button_unchecked_black_36pt_3x.png │ ├── rectangle.imageset │ │ ├── Contents.json │ │ ├── rectangle.png │ │ ├── rectangle@2x.png │ │ └── rectangle@3x.png │ ├── rss.imageset │ │ ├── Contents.json │ │ ├── baseline_rss_feed_black_24pt_1x.png │ │ ├── baseline_rss_feed_black_24pt_2x.png │ │ └── baseline_rss_feed_black_24pt_3x.png │ ├── shape_edit.imageset │ │ ├── Contents.json │ │ ├── ic_shape_edit-1.png │ │ ├── ic_shape_edit-2.png │ │ └── ic_shape_edit.png │ ├── shape_edit_selected.imageset │ │ ├── Contents.json │ │ ├── ic_shape_edit_selected-1.png │ │ ├── ic_shape_edit_selected-2.png │ │ └── ic_shape_edit_selected.png │ ├── speed.imageset │ │ ├── Contents.json │ │ ├── baseline_speed_black_36pt_1x.png │ │ ├── baseline_speed_black_36pt_2x.png │ │ └── baseline_speed_black_36pt_3x.png │ ├── text_fields.imageset │ │ ├── Contents.json │ │ ├── baseline_text_fields_black_24pt_1x.png │ │ ├── baseline_text_fields_black_24pt_2x.png │ │ └── baseline_text_fields_black_24pt_3x.png │ ├── today.imageset │ │ ├── Contents.json │ │ ├── outline_today_black_24pt_1x.png │ │ ├── outline_today_black_24pt_2x.png │ │ └── outline_today_black_24pt_3x.png │ ├── upload.imageset │ │ ├── Contents.json │ │ ├── baseline_cloud_upload_black_48pt_1x.png │ │ ├── baseline_cloud_upload_black_48pt_2x.png │ │ └── baseline_cloud_upload_black_48pt_3x.png │ └── video.imageset │ │ ├── Contents.json │ │ ├── ic_videocam_black_24dp-1.png │ │ ├── ic_videocam_black_24dp-2.png │ │ └── ic_videocam_black_24dp.png ├── ImportantButton.swift ├── KeyboardConstraint.h ├── KeyboardConstraint.m ├── LatitudeLongitudeButton.swift ├── LdapLoginView.h ├── LdapLoginView.m ├── LinkGenerator.h ├── LinkGenerator.m ├── LocalLoginView.h ├── LocalLoginView.m ├── LocationAnnotation.h ├── LocationAnnotation.m ├── LocationDisplayTableViewController.h ├── LocationDisplayTableViewController.m ├── LocationFilterTableViewController.h ├── LocationFilterTableViewController.m ├── LocationServicesSettingsTableViewController.h ├── LocationServicesSettingsTableViewController.m ├── Locations.h ├── Locations.m ├── LoginView.xib ├── LoginViewController.h ├── LoginViewController.m ├── MAGE-Bridging-Header.h ├── MAGE-Info.plist ├── MAGE-Prefix.pch ├── MAGE.entitlements ├── MageAppCoordinator.h ├── MageAppCoordinator.m ├── MageConstants.h ├── MageConstants.m ├── MageFilter.h ├── MageFilter.m ├── MageInitializer.swift ├── MageMapView.swift ├── MageMapViewController.swift ├── MageOfflineObservationManager.h ├── MageOfflineObservationManager.m ├── MageRootViewController.swift ├── MageSideBarController.swift ├── MageSplitViewController.swift ├── MageUserDefaultKeys.swift ├── MainMageMapView.swift ├── ManagedObjectContextHolder.h ├── ManagedObjectContextHolder.m ├── Map │ ├── AnnotationDragCallback.h │ ├── Cache │ │ ├── CacheActiveSwitch.m │ │ ├── CacheActiveSwitch.swift │ │ ├── CacheOverlay.h │ │ ├── CacheOverlay.swift │ │ ├── CacheOverlayTableCell.h │ │ ├── CacheOverlayTableCell.swift │ │ ├── CacheOverlayTypes.h │ │ ├── CacheOverlayTypes.m │ │ ├── CacheOverlays.h │ │ ├── CacheOverlays.swift │ │ ├── ChildCacheOverlayTableCell.h │ │ ├── ChildCacheOverlayTableCell.swift │ │ ├── GeoPackageCacheOverlay.h │ │ ├── GeoPackageCacheOverlay.swift │ │ ├── GeoPackageFeatureTableCacheOverlay.h │ │ ├── GeoPackageFeatureTableCacheOverlay.swift │ │ ├── GeoPackageTableCacheOverlay.h │ │ ├── GeoPackageTableCacheOverlay.swift │ │ ├── GeoPackageTileTableCacheOverlay.h │ │ ├── GeoPackageTileTableCacheOverlay.swift │ │ ├── XYZDirectoryCacheOverlay.h │ │ └── XYZDirectoryCacheOverlay.swift │ ├── MapAnnotation.h │ ├── MapAnnotation.m │ ├── MapAnnotationObservation.h │ ├── MapAnnotationObservation.m │ ├── MapObservation.h │ ├── MapObservation.m │ ├── MapObservationManager.h │ ├── MapObservationManager.m │ ├── MapObservations.h │ ├── MapObservations.m │ ├── MapPolygonObservation.h │ ├── MapPolygonObservation.m │ ├── MapPolylineObservation.h │ ├── MapPolylineObservation.m │ ├── MapShapeObservation.h │ ├── MapShapeObservation.m │ ├── MapShapePointAnnotationView.h │ ├── MapShapePointAnnotationView.m │ ├── MapShapePointsObservation.h │ ├── MapShapePointsObservation.m │ ├── MapUtils.h │ ├── MapUtils.m │ └── Overlay │ │ ├── LocationAccuracy.h │ │ ├── LocationAccuracy.m │ │ ├── LocationAccuracyRenderer.h │ │ ├── LocationAccuracyRenderer.m │ │ ├── ObservationAccuracy.h │ │ ├── ObservationAccuracy.m │ │ ├── ObservationAccuracyRenderer.h │ │ └── ObservationAccuracyRenderer.m ├── MapCalloutTapped.h ├── MapCalloutTappedSegueDelegate.h ├── MapCalloutTappedSegueDelegate.m ├── MapSettings.h ├── MapSettings.m ├── MapSettingsCoordinator.h ├── MapSettingsCoordinator.m ├── MapTypeCell.xib ├── MapTypeTableViewCell.h ├── MapTypeTableViewCell.m ├── MapViewController_iPad.swift ├── MaterialComponents │ ├── ExpandableCard.swift │ ├── MAGEScheme.swift │ └── PassThroughStackView.swift ├── Media.xcassets │ ├── Contents.json │ ├── mage_logo.imageset │ │ ├── Contents.json │ │ └── mage_logo.png │ ├── mage_logo_toolbar.imageset │ │ ├── Contents.json │ │ ├── mage_logo_toolbar.png │ │ ├── mage_logo_toolbar@2x.png │ │ └── mage_logo_toolbar@3x.png │ └── magic.imageset │ │ ├── Contents.json │ │ └── magic.png ├── Media │ ├── DocumentViewer.swift │ ├── FileViewerCoordinator.swift │ └── MediaPreviewController.swift ├── MediaViewController.h ├── MediaViewController.m ├── Mixins │ ├── BottomSheetEnabled.swift │ ├── CanCreateObservation.swift │ ├── CanReportLocation.swift │ ├── DataSourceMap.swift │ ├── FeedsMap.swift │ ├── FilteredObservationsMap.swift │ ├── FilteredUsersMap.swift │ ├── FollowUser.swift │ ├── GeoPackageBaseMap.swift │ ├── GeoPackageLayerMap.swift │ ├── HasMapSettings.swift │ ├── MapDirectionsMixin.swift │ ├── OnlineLayerMap.swift │ ├── PersistedMapState.swift │ ├── SFGeometryMap.swift │ ├── SingleObservationMap.swift │ ├── StaticLayerMap.swift │ ├── UserHeadingDisplay.swift │ └── UserTrackingMap.swift ├── Model │ ├── Attachment │ │ └── AttachmentModel.swift │ ├── Form │ │ └── FormModel.swift │ ├── GeoPackage │ │ ├── GeoPackageFeatureItem.swift │ │ ├── GeoPackageFeatureKey.swift │ │ ├── GeoPackageMediaRow.swift │ │ ├── GeoPackageProperty.swift │ │ └── GeoPackageRelation.swift │ └── Observation │ │ ├── ObservationFavoritesModel.swift │ │ ├── ObservationFormFieldModel.swift │ │ ├── ObservationFormModel.swift │ │ ├── ObservationImportantModel.swift │ │ ├── ObservationMapItem.swift │ │ └── ObservationModel.swift ├── MoreTableViewDelegate.swift ├── MultiDropdownFieldView.swift ├── NativeService.swift ├── NavigateToButton.swift ├── Navigation │ └── NavigationOverlay.swift ├── NavigationControllerObserver.swift ├── NavigationSettingsViewController.swift ├── Network │ ├── Attachment │ │ └── AttachmentService.swift │ ├── Event │ │ └── EventService.swift │ ├── MageSession.swift │ ├── Observation │ │ ├── ObservationDataFetchOperation.swift │ │ ├── ObservationDataLoadOperation.swift │ │ ├── ObservationFavoriteService.swift │ │ ├── ObservationImportantService.swift │ │ └── ObservationService.swift │ └── User │ │ └── UserService.swift ├── NominatimService.swift ├── Notifications.swift ├── Notifications │ └── MapNotifications.swift ├── NumberBadge.swift ├── NumberFieldView.swift ├── Observation+Section.h ├── Observation+Section.m ├── Observation │ ├── ObservationMap.swift │ ├── ObservationMapItemAnnotation.swift │ └── ObservationsMap.swift ├── ObservationActionHandler.swift ├── ObservationActionsDelegate.swift ├── ObservationActionsSheetController.swift ├── ObservationActionsView.swift ├── ObservationAnnotation.swift ├── ObservationAnnotationView.swift ├── ObservationAttachmentCard.swift ├── ObservationCommonHeaderTableViewCell.h ├── ObservationCommonHeaderTableViewCell.m ├── ObservationEditCardCollectionViewController.swift ├── ObservationEditCoordinator.swift ├── ObservationEditSelectPickerView.xib ├── ObservationFields.h ├── ObservationFields.m ├── ObservationFilterTableViewController.h ├── ObservationFilterTableViewController.m ├── ObservationFormReorder.swift ├── ObservationFormTableViewCell.swift ├── ObservationFormView.swift ├── ObservationFormViewSwiftUI.swift ├── ObservationHeaderView.swift ├── ObservationImportantView.swift ├── ObservationListActionsView.swift ├── ObservationLocationFieldView.swift ├── ObservationLocationFieldViewModel.swift ├── ObservationMapItemView.swift ├── ObservationMapItemViewModel.swift ├── ObservationSelectionDelegate.h ├── ObservationServicesSettingsTableViewController.h ├── ObservationServicesSettingsTableViewController.m ├── ObservationShapeStyle.swift ├── ObservationShapeStyleParser.swift ├── ObservationSyncStatus.swift ├── ObservationTableHeaderView.h ├── ObservationTableHeaderView.m ├── Observations.h ├── Observations.m ├── OfflineMapTableViewController.h ├── OfflineMapTableViewController.swift ├── OnlineMapTableViewController.h ├── OnlineMapTableViewController.m ├── OrView.h ├── OrView.m ├── PageController.swift ├── Persistence │ └── Persistence.swift ├── PersonAnnotationView.swift ├── RadioFieldView.swift ├── Recording.h ├── Recording.m ├── Repository │ ├── Attachment │ │ ├── AttachmentLocalDataSource.swift │ │ └── AttachmentRepository.swift │ ├── BottomSheet │ │ └── BottomSheetRepository.swift │ ├── CoreDataDataSource.swift │ ├── CountingDataLoadOperation.swift │ ├── CurrentLocation │ │ ├── CurrentLocationLocalDataSource.swift │ │ └── CurrentLocationRepository.swift │ ├── DataFetchOperation.swift │ ├── Event │ │ ├── EventLocalDataSource.swift │ │ ├── EventModel.swift │ │ ├── EventRemoteDataSource.swift │ │ └── EventRepository.swift │ ├── FeatureItem │ │ ├── FeatureItemDefinition.swift │ │ └── FeatureItemRepository.swift │ ├── Feed │ │ ├── FeedItemAnnotation.swift │ │ ├── FeedItemDefinition.swift │ │ ├── FeedItemLocalDataSource.swift │ │ └── FeedItemRepository.swift │ ├── Form │ │ ├── FormLocalDataSource.swift │ │ └── FormRepository.swift │ ├── GeoPackage │ │ ├── GeoPackageDataSourceDefinition.swift │ │ └── GeoPackageRepository.swift │ ├── Layer │ │ ├── LayerLocalDataSource.swift │ │ └── LayerRepository.swift │ ├── Location │ │ ├── LocationLocalDataSource.swift │ │ ├── LocationModel.swift │ │ └── LocationRepository.swift │ ├── ManagedObjectChangesPublisher.swift │ ├── Map │ │ └── MapStateRepository.swift │ ├── MapFeatureRepository.swift │ ├── Observation │ │ ├── Favorite │ │ │ ├── ObservationFavoriteLocalDataSource.swift │ │ │ ├── ObservationFavoriteRemoteDataSource.swift │ │ │ └── ObservationFavoriteRepository.swift │ │ ├── Icon │ │ │ ├── ObservationIconLocalDataSource.swift │ │ │ └── ObservationIconRepository.swift │ │ ├── Important │ │ │ ├── ObservationImportantLocalDataSource.swift │ │ │ ├── ObservationImportantRemoteDataSource.swift │ │ │ └── ObservationImportantRepository.swift │ │ ├── ObservationDefinition.swift │ │ ├── ObservationImageRepository.swift │ │ ├── ObservationLocalDataSource.swift │ │ ├── ObservationMapFeatureRepository.swift │ │ ├── ObservationMapImage.swift │ │ ├── ObservationMapItemTileRepository.swift │ │ ├── ObservationRemoteDataSource.swift │ │ ├── ObservationRepository.swift │ │ ├── ObservationTileRepository.swift │ │ ├── ObservationsMapFeatureRepository.swift │ │ └── ObservationsTileRepository.swift │ ├── ObservationLocation │ │ ├── ObservationLocationLocalDataSource.swift │ │ ├── ObservationLocationRepository.swift │ │ ├── ObservationLocationTileRepository.swift │ │ └── ObservationMapItemRepository.swift │ ├── RemoteDataSource.swift │ ├── Role │ │ ├── RoleLocalDataSource.swift │ │ ├── RoleModel.swift │ │ └── RoleRepository.swift │ ├── StaticLayer │ │ ├── StaticLayerFeatureDefinition.swift │ │ ├── StaticLayerLocalDataSource.swift │ │ └── StaticLayerRepository.swift │ ├── Team │ │ └── TeamLocalDataSource.swift │ └── User │ │ ├── UserAvatarChooserDelegate.swift │ │ ├── UserDefinition.swift │ │ ├── UserLocalDataSource.swift │ │ ├── UserModel.swift │ │ ├── UserRemoteDataSource.swift │ │ └── UserRepository.swift ├── RightDetailSubtitleCell.xib ├── RightDetailSubtitleTableViewCell.h ├── RightDetailSubtitleTableViewCell.m ├── Routing │ ├── MageNavStack.swift │ └── MageRouter.swift ├── SearchMapView.swift ├── SearchMapViewController.swift ├── SearchViewController.swift ├── SelectEditViewController.h ├── SelectEditViewController.m ├── ServerURLController.swift ├── SettingsCoordinator.h ├── SettingsCoordinator.m ├── SettingsDataSource.h ├── SettingsDataSource.m ├── SettingsTableViewController.h ├── SettingsTableViewController.m ├── SettingsViewController.h ├── SettingsViewController.m ├── ShowFavoritesButton.swift ├── SignUpDelegate.h ├── SignUpViewController.h ├── SignUpViewController.m ├── SignUpViewController_Server5.h ├── SignUpViewController_Server5.m ├── SignupView.xib ├── SingleFeatureMapView.swift ├── SingleUserMapView.swift ├── StaticPointAnnotation.swift ├── StraightLineNav │ ├── CompassView.swift │ ├── StraightLineNavigation.swift │ └── StraightLineNavigationView.swift ├── StyledPolygon.swift ├── StyledPolyline.swift ├── TMSTileOverlay.h ├── TMSTileOverlay.m ├── TextFieldView.swift ├── ThemeTableViewController.swift ├── TimeFilter.h ├── TimeFilter.m ├── TimeSettingsTableViewController.h ├── TimeSettingsTableViewController.m ├── TransitionScreen.xib ├── TransitionViewController.h ├── TransitionViewController.m ├── UI │ ├── Action │ │ └── Actions.swift │ ├── Attachment │ │ ├── AskToCacheImageView.swift │ │ ├── AskToDownloadFileView.swift │ │ ├── AttachmentPreviewView.swift │ │ ├── DownloadingFileView.swift │ │ ├── DownloadingImageView.swift │ │ └── VideoView.swift │ ├── FeedItem │ │ └── FeedItemSummaryView.swift │ ├── GeoPackage │ │ ├── GeoPackageFeatureSummary.swift │ │ ├── GeoPackageMediaView.swift │ │ └── GeoPackagePropertyRows.swift │ ├── Location │ │ ├── LocationList.swift │ │ ├── LocationListNavStack.swift │ │ └── LocationSummaryView.swift │ ├── MageHostingController.swift │ ├── Observation │ │ ├── ObservationFullView.swift │ │ ├── ObservationList.swift │ │ ├── ObservationListNavStack.swift │ │ └── ObservationSummaryViewSwiftUI.swift │ ├── ObservationLocation │ │ ├── ObservationLocationBottomSheetActionBar.swift │ │ └── ObservationLocationSummary.swift │ ├── Shapes │ │ └── Triangle.swift │ ├── StaticLayer │ │ ├── StaticLayerFeatureBottomSheetActionBar.swift │ │ └── StaticLayerFeatureSummary.swift │ ├── User │ │ ├── EmailButton.swift │ │ ├── MeNavStack.swift │ │ ├── PhoneButton.swift │ │ ├── UserBottomSheetActionBar.swift │ │ ├── UserObservationList.swift │ │ ├── UserSummary.swift │ │ └── UserViewSwiftUI.swift │ └── ValueAnimator.swift ├── UIBarButtonItem+IB.h ├── UIBarButtonItem+IB.m ├── UIColor+Adjust.h ├── UIColor+Adjust.m ├── UIColor+Hex.h ├── UIColor+Hex.m ├── UIImage+Thumbnail.h ├── UIImage+Thumbnail.m ├── UIImageCollectionViewCell.swift ├── UIImageView+IB.h ├── UIImageView+IB.m ├── UINavigationItem+Subtitle.h ├── UINavigationItem+Subtitle.m ├── UINextField.h ├── UINextField.m ├── UIResponder+FirstResponder.h ├── UIResponder+FirstResponder.m ├── UITableViewCell+Setting.h ├── UITableViewCell+Setting.m ├── UIViewController+CaptchaViewController.h ├── UseCase │ ├── FetchEventsUseCase.swift │ └── MageUseCases.swift ├── UserSelectionDelegate.h ├── UserWrapperViewController.swift ├── ValuePickerTableViewController.h ├── ValuePickerTableViewController.m ├── ViewLoader │ ├── ViewLoader.swift │ ├── ViewLoaderAppDelegate.h │ └── ViewLoaderAppDelegate.m ├── ViewModel │ ├── Attachment │ │ ├── AttachmentViewModel.swift │ │ ├── DownloadingFileViewModel.swift │ │ └── DownloadingImageViewModel.swift │ ├── Feed │ │ └── FeedItemBottomSheeViewModel.swift │ ├── GeoPackage │ │ └── GeoPackageFeatureBottomSheetViewModel.swift │ ├── Location │ │ ├── LocationSummaryViewModel.swift │ │ ├── LocationsViewModel.swift │ │ └── UserLocationViewModel.swift │ ├── MageBottomSheetViewModel.swift │ ├── Observation │ │ ├── ObservationFormViewModel.swift │ │ ├── ObservationListViewModel.swift │ │ ├── ObservationLocationBottomSheetViewModel.swift │ │ ├── ObservationSummaryViewModel.swift │ │ ├── ObservationViewViewModel.swift │ │ └── ObservationsViewModel.swift │ ├── StaticLayer │ │ └── StaticLayerBottomSheetViewModel.swift │ └── User │ │ ├── UserBottomSheetViewModel.swift │ │ └── UserViewViewModel.swift ├── WMSTileOverlay.h ├── WMSTileOverlay.m ├── XYZTileOverlay.h ├── XYZTileOverlay.m ├── en.lproj │ └── InfoPlist.strings ├── idp-authView.xib ├── ldap-authView.xib ├── local-authView.xib ├── main.m ├── orView.xib └── preferences.plist ├── MageTests ├── Authentication │ ├── AuthenticationCoordinatorSpy.swift │ ├── AuthenticationCoordinatorTests.swift │ ├── AuthenticationTests.swift │ ├── ChangePasswordViewTests.swift │ ├── LocalLoginViewTests.swift │ ├── MockAuthenticationCoordinatorDelegate.swift │ ├── ServerURLControllerTests.swift │ └── SignupViewControllerTests.swift ├── Categories │ └── LocationUtilitiesTests.swift ├── CoordinateFieldTests.swift ├── DeviceUUIDTests.swift ├── DisconnectedLogin.m ├── Event │ ├── EventChooserControllerTests.swift │ └── EventChooserCoordinatorTests.swift ├── Feed │ ├── FeedItemRetrieverTests.swift │ ├── FeedItemViewViewControllerTests.swift │ ├── FeedItemsViewControllerTests.swift │ ├── FeedServiceTests.swift │ └── FeedTests.swift ├── Form │ ├── FormBuilder.swift │ ├── FormPickerTests.swift │ ├── FormTests.swift │ ├── ObservationFormReorderTests.swift │ ├── allFieldTypesForm.json │ └── emptyForm.json ├── ImageCacheTests.m ├── Info.plist ├── KIF+Extensions.swift ├── KIFMageCoreDataTestCase.swift ├── Layer │ └── LayerTests.swift ├── MAGETests-Bridging-Header.h ├── MAGETests-Info.plist ├── MageCoreDataFixtures.swift ├── MageCoreDataTestCase.swift ├── MageInjectionTestCase.swift ├── MageTests.m ├── Map │ ├── Cache │ │ └── CacheOverlaysTests.swift │ ├── Mixins │ │ ├── BottomSheetEnabledTests.swift │ │ ├── CanCreateObservationTests.swift │ │ ├── CanReportLocationTests.swift │ │ ├── FeedsMapTests.swift │ │ ├── FilteredObservationsMapTests.swift │ │ ├── FilteredUsersMapTests.swift │ │ ├── FollowUserTests.swift │ │ ├── HasMapSettingsTests.swift │ │ ├── MapDirectionsTests.swift │ │ ├── OnlineLayerMapTests.swift │ │ ├── PersistedMapStateTests.swift │ │ ├── SFGeometryMapTests.swift │ │ ├── SingleObservationMapTests.swift │ │ ├── StaticLayerMapTests.swift │ │ ├── UserHeadingDisplayTests.swift │ │ └── UserTrackingMapTests.swift │ ├── ObservationAnnotationTests.swift │ └── StraightLineNav │ │ └── StraightLineNavigationViewTests.swift ├── MaterialComponents │ └── ExpandableCardTests.swift ├── MockMageServer.swift ├── Mocks │ ├── LocalDataSource │ │ ├── FeedItemStaticLocalDataSource.swift │ │ ├── LocationStaticLocalDataSource.swift │ │ ├── ObservationIconStaticLocalDataSource.swift │ │ ├── ObservationLocationStaticLocalDataSource.swift │ │ ├── ObservationStaticLocalDataSource.swift │ │ ├── RoleStaticLocalDataSource.swift │ │ └── UserStaticLocalDataSource.swift │ ├── MockAttachmentCreationDelegate.swift │ ├── MockCLLocationManager.swift │ ├── MockCacheOverlayListener.swift │ ├── MockFieldDelegate.swift │ ├── MockGeometryEditCoordinator.swift │ ├── MockGeometryEditDelegate.swift │ ├── MockLocationService.swift │ ├── MockMKMapViewDelegate.swift │ ├── MockObservationActionsDelegate.swift │ ├── MockObservationEditCardDelegate.swift │ ├── MockObservationEditDelegate.swift │ ├── MockObservationFormListener.swift │ ├── MockObservationFormReorderDelegate.swift │ ├── MockObservationPushDelegate.swift │ ├── MockUIImagePickerController.swift │ ├── RemoteDataSource │ │ ├── ObservationRemoteDataSourceMock.swift │ │ └── UserRemoteDataSourceMock.swift │ ├── Repository │ │ ├── AttachmentRepositoryMock.swift │ │ ├── EventRepositoryMock.swift │ │ ├── FeedItemRepositoryMock.swift │ │ ├── FormRepositoryMock.swift │ │ ├── GeoPackageRepositoryMock.swift │ │ ├── ObservationFavoriteRepositoryMock.swift │ │ ├── ObservationImageRepositoryMock.swift │ │ ├── ObservationImportantRepositoryMock.swift │ │ ├── ObservationLocationRepositoryMock.swift │ │ ├── ObservationRepositoryMock.swift │ │ ├── RoleRepositoryMock.swift │ │ └── UserRepositoryMock.swift │ └── TestPersistence.swift ├── NetworkSyncOptionTetsts.m ├── Observation │ ├── Attachment │ │ └── AttachmentCreationCoordinatorTests.swift │ ├── Edit │ │ ├── Components │ │ │ └── CommonFieldsViewTests.swift │ │ ├── GeometryEditViewControllerTests.swift │ │ ├── ObservationEditCardCollectionViewControllerTests.swift │ │ ├── ObservationEditCoordinatorTests.swift │ │ └── ObservationFormViewTests.swift │ ├── Fields │ │ ├── AttachmentFieldViewTests.swift │ │ ├── CheckboxFieldViewTests.swift │ │ ├── DateViewTests.swift │ │ ├── DropdownFieldViewTests.swift │ │ ├── GeometryViewTests.swift │ │ ├── MultiDropdownFieldViewTests.swift │ │ ├── NumberFieldViewTests.swift │ │ ├── RadioFieldViewTests.swift │ │ └── TextFieldViewTests.swift │ ├── ObservationBottomSheetTests.swift │ ├── ObservationBuilder.swift │ ├── ObservationTransformationTests.swift │ └── View │ │ ├── ObservationHeaderViewTests.swift │ │ ├── ObservationSyncStatusTests.swift │ │ └── ObservationViewCardCollectionViewControllerTests.swift ├── People │ └── UserViewControllerTests.swift ├── ReferenceImages │ ├── AttachmentFieldViewTests │ │ ├── AttachmentFieldViewTests__3_attachments_set_from_observation@3x.png │ │ ├── AttachmentFieldViewTests__4_attachments_set_from_observation@3x.png │ │ ├── AttachmentFieldViewTests__5_attachments_set_from_observation@3x.png │ │ ├── AttachmentFieldViewTests__no_initial_value@3x.png │ │ ├── AttachmentFieldViewTests__non_edit_mode_with_field_title@3x.png │ │ ├── AttachmentFieldViewTests__non_edit_mode_with_no_field_title@3x.png │ │ ├── AttachmentFieldViewTests__one_attachment_set_from_observation@3x.png │ │ ├── AttachmentFieldViewTests__one_attachment_set_later@3x.png │ │ ├── AttachmentFieldViewTests__required_field_is_invalid_if_empty@3x.png │ │ ├── AttachmentFieldViewTests__required_field_is_valid_if_attachment_exists@3x.png │ │ ├── AttachmentFieldViewTests__set_one_attachment_later@3x.png │ │ ├── AttachmentFieldViewTests__set_one_attachment_with_observation_and_one_later@3x.png │ │ ├── AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later@3x.png │ │ ├── AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later_then_remove_first@3x.png │ │ ├── AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later_then_remove_second@3x.png │ │ ├── AttachmentFieldViewTests__should_add_an_attachment_via_the_delegate@3x.png │ │ └── AttachmentFieldViewTests__two_attachments_set_together_later@3x.png │ ├── CheckboxFieldViewTests │ │ ├── CheckboxFieldView__initial_value_false@3x.png │ │ ├── CheckboxFieldView__initial_value_true@3x.png │ │ ├── CheckboxFieldView__no_initial_value@3x.png │ │ ├── CheckboxFieldView__non_edit_mode@3x.png │ │ ├── CheckboxFieldView__required@3x.png │ │ ├── CheckboxFieldView__required_field_is_invalid_if_false@3x.png │ │ ├── CheckboxFieldView__required_field_is_valid_if_true@3x.png │ │ ├── CheckboxFieldView__set_valid_false@3x.png │ │ ├── CheckboxFieldView__set_valid_true_after_being_invalid@3x.png │ │ ├── CheckboxFieldView__set_value_later@3x.png │ │ └── CheckboxFieldView__set_value_simulated_touch@3x.png │ ├── CommonFieldsViewTests │ │ ├── CommonFieldsView__empty_observation@3x.png │ │ ├── CommonFieldsView__line_observation@3x.png │ │ ├── CommonFieldsView__point_observation@3x.png │ │ └── CommonFieldsView__polygon_observation@3x.png │ ├── DateViewTests │ │ ├── DateFieldView__initial_value_set@3x.png │ │ ├── DateFieldView__no_initial_value@3x.png │ │ ├── DateFieldView__non_edit_mode@3x.png │ │ ├── DateFieldView__required_field_has_title_which_indicates_required@3x.png │ │ ├── DateFieldView__set_valid_false@3x.png │ │ ├── DateFieldView__set_valid_true_after_being_invalid@3x.png │ │ ├── DateFieldView__set_value_later@3x.png │ │ ├── DateFieldView__set_value_with_touch_inputs@3x.png │ │ └── DateFieldView__test_delegate@3x.png │ ├── DropdownFieldViewTests │ │ ├── DropdownFieldView__initial_value_set@3x.png │ │ ├── DropdownFieldView__no_initial_value@3x.png │ │ ├── DropdownFieldView__non_edit_mode@3x.png │ │ ├── DropdownFieldView__required_field_should_show_status@3x.png │ │ ├── DropdownFieldView__required_field_should_show_status_after_value_has_been_added@3x.png │ │ └── DropdownFieldView__set_value_later@3x.png │ ├── ExpandableCardTests │ │ ├── ExpandableCardTests__all_header_fields_set@3x.png │ │ ├── ExpandableCardTests__expanded_view_initially_set_to_unexpanded_then_expanded_later@3x.png │ │ ├── ExpandableCardTests__expanded_view_set@3x.png │ │ ├── ExpandableCardTests__expanded_view_set_with_header_information@3x.png │ │ ├── ExpandableCardTests__expanded_view_set_with_header_information_all_set_after_construction@3x.png │ │ ├── ExpandableCardTests__header_field_set_later@3x.png │ │ ├── ExpandableCardTests__header_set@3x.png │ │ ├── ExpandableCardTests__image_and_title_set@3x.png │ │ ├── ExpandableCardTests__image_name_set@3x.png │ │ ├── ExpandableCardTests__subheader_field_set_later@3x.png │ │ ├── ExpandableCardTests__subheader_set@3x.png │ │ ├── ExpandableCardTests__title_field_set_later@3x.png │ │ ├── ExpandableCardTests__title_set@3x.png │ │ ├── ExpandableCardTests__will_show_unexpanded_if_expand_button_is_tapped@3x.png │ │ └── ExpandableCardTests__will_show_unexpanded_if_set@3x.png │ ├── FeedItemViewViewControllerTests │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_no_value_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_no_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_no_value_non_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_long_secondary_value_and_icon_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_non_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_non_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_value_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_primary_value_non_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_secondary_value_mappable@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_secondary_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_no_timestamp__feed_item_with_secondary_value_non_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_no_value_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_no_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_no_value_non_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_long_secondary_value_and_icon_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_non_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_without_timestamp@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_non_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_value_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_value_mappable_mgrs@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_primary_value_non_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_secondary_value_mappable@3x.png │ │ ├── FeedItemViewController_with_timestamp__feed_item_with_secondary_value_mappable_mgrs@3x.png │ │ └── FeedItemViewController_with_timestamp__feed_item_with_secondary_value_non_mappable@3x.png │ ├── FeedItemsViewControllerTests │ │ ├── FeedItemsViewController_no_timestamp__empty_feed@3x.png │ │ ├── FeedItemsViewController_no_timestamp__one_feed_item_no_content@3x.png │ │ ├── FeedItemsViewController_no_timestamp__one_feed_item_with_primary_and_secondary_value@3x.png │ │ ├── FeedItemsViewController_no_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon@3x.png │ │ ├── FeedItemsViewController_no_timestamp__one_feed_item_with_primary_value@3x.png │ │ ├── FeedItemsViewController_no_timestamp__one_feed_item_with_secondary_value@3x.png │ │ ├── FeedItemsViewController_with_timestamp__empty_feed@3x.png │ │ ├── FeedItemsViewController_with_timestamp__one_feed_item_no_content@3x.png │ │ ├── FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value@3x.png │ │ ├── FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon@3x.png │ │ ├── FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon_without_timestamp@3x.png │ │ ├── FeedItemsViewController_with_timestamp__one_feed_item_with_primary_value@3x.png │ │ └── FeedItemsViewController_with_timestamp__one_feed_item_with_secondary_value@3x.png │ ├── FormPickerTests │ │ ├── FormPickerTests__as_a_sheet@3x.png │ │ ├── FormPickerTests__cancel_button_cancels@3x.png │ │ ├── FormPickerTests__initialized@3x.png │ │ ├── FormPickerTests__multiple_forms@3x.png │ │ └── FormPickerTests__one_form@3x.png │ ├── GeometryEditViewControllerTests │ │ ├── GeometryEditViewController__create_a_point_with_long_press@3x.png │ │ ├── GeometryEditViewController__geometry_edit_coordinator_launch@3x.png │ │ ├── GeometryEditViewController__latitude_longitude_tab@3x.png │ │ └── GeometryEditViewController__switch_to_mgrs_tab@3x.png │ ├── GeometryViewTests │ │ ├── GeometryView__edit_mode_reference_image@3x.png │ │ ├── GeometryView__non_edit_mode_reference_image@3x.png │ │ └── GeometryView__set_valid_false@3x.png │ ├── MageRootViewTests │ │ ├── MageRootView__no_feeds@3x.png │ │ ├── MageRootView__one_feed@3x.png │ │ ├── MageRootView__tap_more_button_one_feed@3x.png │ │ ├── MageRootView__tap_more_button_two_feeds@3x.png │ │ ├── MageRootView__tap_observations_button_one_feed@3x.png │ │ ├── MageRootView__two_mappable_feeds_and_two_non_mappable_brand_new@3x.png │ │ ├── MageRootView__two_mappable_feeds_and_two_non_mappable_one_selected@3x.png │ │ └── MageRootView__two_mappable_feeds_and_two_non_mappable_other_one_selected@3x.png │ ├── MapViewControllerTests │ │ ├── MapViewControllerTests__initialize_the_MapViewController@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_add_an_attachment_to_the_observation@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_cancel_an_edit@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_cancel_creating_new_observation@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_create_an_observation_and_view_it@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_create_new_empty_observation@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_create_new_empty_observation_with_long_press@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_create_new_observation@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_create_new_observation_with_no_location@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_edit_an_observation@3x.png │ │ ├── MapViewControllerTests__initialize_the_MapViewController_and_save_an_edit@3x.png │ │ └── MapViewControllerTests__initialize_the_MapViewController_and_view_a_polygon_observation@3x.png │ ├── MultiDropdownFieldViewTests │ │ ├── MultiDropdownFieldView__initial_value_set_with_multiple_values@3x.png │ │ ├── MultiDropdownFieldView__multi_required_field_should_show_status@3x.png │ │ ├── MultiDropdownFieldView__non_edit_mode_multiple_values@3x.png │ │ └── MultiDropdownFieldView__set_value_later@3x.png │ ├── NumberFieldViewTests │ │ ├── NumberFieldView__edit_mode_reference_image@3x.png │ │ ├── NumberFieldView__non_edit_mode_reference_image@3x.png │ │ └── NumberFieldView__set_valid_false@3x.png │ ├── ObservationBottomSheetTests │ │ └── ObservationBottomSheetTests__should_load_an_ObservationBottomSheetController@3x.png │ ├── ObservationEditCardCollectionViewControllerTests │ │ ├── ObservationEditCardCollectionViewController__Legacy__empty_observation@3x.png │ │ ├── ObservationEditCardCollectionViewController__Legacy__launch_gallery@3x.png │ │ ├── ObservationEditCardCollectionViewController__add_form_button_should_call_delegate@3x.png │ │ ├── ObservationEditCardCollectionViewController__clearing_a_field_should_update_the_form_header@3x.png │ │ ├── ObservationEditCardCollectionViewController__empty_new_observation_zero_forms@3x.png │ │ ├── ObservationEditCardCollectionViewController__empty_observation_not_new@3x.png │ │ ├── ObservationEditCardCollectionViewController__filling_out_the_form_should_update_the_form_header@3x.png │ │ ├── ObservationEditCardCollectionViewController__not_show_the_add_form_button_if_there_are_no_forms@3x.png │ │ ├── ObservationEditCardCollectionViewController__observation_should_expand_current_forms@3x.png │ │ ├── ObservationEditCardCollectionViewController__observation_should_show_all_the_things_form@3x.png │ │ ├── ObservationEditCardCollectionViewController__observation_should_show_checkbox_form@3x.png │ │ ├── ObservationEditCardCollectionViewController__observation_should_show_current_forms@3x.png │ │ ├── ObservationEditCardCollectionViewController__observation_should_show_current_forms_multiple_forms@3x.png │ │ ├── ObservationEditCardCollectionViewController__should_add_an_image_if_sent_in_via_delegate@3x.png │ │ ├── ObservationEditCardCollectionViewController__should_bring_up_the_gallery_if_the_gallery_button_is_tapped@3x.png │ │ ├── ObservationEditCardCollectionViewController__show_the_form_button_if_there_are_two_forms@3x.png │ │ └── ObservationEditCardCollectionViewController__when_form_is_added_it_should_show@3x.png │ ├── ObservationFormReorderTests │ │ ├── ObservationFormReorder__observation_for_reorder_form_name_only@3x.png │ │ ├── ObservationFormReorder__observation_for_reorder_primary_and_variant@3x.png │ │ ├── ObservationFormReorder__observation_for_reorder_primary_only@3x.png │ │ └── ObservationFormReorder__observation_for_reorder_variant_only@3x.png │ ├── ObservationFormViewTests │ │ ├── ObservationFormView__no_initial_values_in_the_observation@3x.png │ │ └── ObservationFormView__observation_filled_in_completely@3x.png │ ├── ObservationHeaderViewTests │ │ ├── ObservationHeaderViewTests__initialize_the_ObservationHeaderView@3x.png │ │ └── ObservationHeaderViewTests__tap_important_button@3x.png │ ├── ObservationListCardCellTests │ │ └── ObservationListCardCellTests__should_load_an_ObservationListCardCell@3x.png │ ├── ObservationSyncStatusTests │ │ ├── ObservationSyncStatusTests__dirty@3x.png │ │ ├── ObservationSyncStatusTests__dirty_and_then_pushed@3x.png │ │ ├── ObservationSyncStatusTests__error@3x.png │ │ ├── ObservationSyncStatusTests__pushed_as_current_user@3x.png │ │ └── ObservationSyncStatusTests__tap_sync_now@3x.png │ ├── ObservationViewCardCollectionViewControllerTests │ │ ├── ObservationViewCardCollectionViewControllerTests__initialize_the_ObservationViewCardCollectionViewController@3x.png │ │ ├── ObservationViewCardCollectionViewControllerTests__initialize_the_ObservationViewController@3x.png │ │ ├── ObservationViewCardCollectionViewControllerTests__observation_needs_syncing@3x.png │ │ └── ObservationViewCardCollectionViewControllerTests__observation_needs_syncing_and_then_gets_pushed@3x.png │ ├── ObservationViewControllerTests │ │ └── ObservationViewControllerTests__initialize_the_ObservationViewController@3x.png │ ├── RadioFieldViewTests │ │ ├── RadioFieldView__initial_value_set@3x.png │ │ ├── RadioFieldView__no_initial_value@3x.png │ │ ├── RadioFieldView__non_edit_mode@3x.png │ │ ├── RadioFieldView__required_field_should_show_status@3x.png │ │ └── RadioFieldView__required_field_should_show_status_after_value_has_been_added@3x.png │ ├── StraightLineNavigationViewTests │ │ └── StraightLineNavigationViewTests__should_load_the_view@3x.png │ ├── TextFieldViewTests │ │ ├── TextFieldView_Multi_Line__edit_mode_reference_image@3x.png │ │ ├── TextFieldView_Multi_Line__non_edit_mode_reference_image@3x.png │ │ ├── TextFieldView_Multi_Line__set_valid_false@3x.png │ │ ├── TextFieldView_Single_Line__edit_mode_reference_image@3x.png │ │ ├── TextFieldView_Single_Line__non_edit_mode_reference_image@3x.png │ │ └── TextFieldView_Single_Line__set_valid_false@3x.png │ ├── UserTableHeaderViewTests │ │ ├── UserTableHeaderView__current_user_view@3x.png │ │ └── UserTableHeaderView__user_view@3x.png │ └── UserViewControllerTests │ │ └── UserViewController__user_view@3x.png ├── ReleaseTestPlan.md ├── Repository │ ├── BottomSheet │ │ └── BottomSheetRepositoryTests.swift │ ├── Event │ │ └── EventRepositoryTests.swift │ ├── Location │ │ ├── LocationCoreDataDataSourceTests.swift │ │ └── LocationRepositoryTests.swift │ ├── Observation │ │ ├── ObservationCoreDataDataSourceTests.swift │ │ ├── ObservationCoreDataSourceTests.swift │ │ ├── ObservationImageRepositoryTests.swift │ │ ├── ObservationRepositoryTests.swift │ │ └── ObservationTileRepositoryTests.swift │ └── User │ │ ├── UserCoreDataDataSourceTests.swift │ │ ├── UserRemoteDataSourceTests.swift │ │ └── UserRepositoryTests.swift ├── SDK │ ├── AttachmentPushServiceTests.swift │ ├── GeometryDeserializerTests.swift │ ├── GeometrySerializerTests.swift │ ├── LocationFetchServiceTests.swift │ ├── MageServerTests.swift │ ├── MageTests.swift │ ├── Networking │ │ └── DataConnectionUtilitiesTests.swift │ ├── ObservationFetchServiceTests.swift │ ├── ObservationPushServiceTests.swift │ ├── ObservationToObservationPolicyTests.swift │ ├── ServerAuthenticationTests.swift │ └── UserUtilityTests.swift ├── Settings │ └── Map │ │ └── MapSettingsTests.swift ├── StoredPasswordTests.m ├── TestHelpers.swift ├── TestingAppDelegate.h ├── TestingAppDelegate.m ├── UI │ └── Observation │ │ └── ObservationViewViewModelTests.swift ├── UserDefaults+Extensions.swift └── en.lproj │ └── InfoPlist.strings ├── Maps ├── countries.gpkg └── countries_dark.gpkg ├── Packages ├── CLLocationCoordinate2DExtensions │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── CLLocationCoordinate2DExtensions │ │ │ └── CLLocationCoordinate2DExtensions.swift │ └── Tests │ │ └── CLLocationCoordinate2DExtensionsTests │ │ └── CLLocationCoordinate2DExtensionsTests.swift ├── DataSourceDefinition │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── DataSourceDefinition │ │ │ └── DataSourceDefinition.swift │ └── Tests │ │ └── DataSourceDefinitionTests │ │ └── DataSourceDefinitionTests.swift ├── DataSourceTileOverlay │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── DataSourceTileOverlay │ │ │ ├── CircleImage.swift │ │ │ ├── DataSourceImage.swift │ │ │ ├── DataSourceTileOverlay.swift │ │ │ ├── DataSourceTileProvider.swift │ │ │ ├── MapBoundingBox.swift │ │ │ └── TileRepository.swift │ └── Tests │ │ └── DataSourceTileOverlayTests │ │ └── DataSourceTileOverlayTests.swift ├── DebugUtilities │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── DebugUtilities │ │ │ └── DebugUtilities.swift │ └── Tests │ │ └── DebugUtilitiesTests │ │ └── DebugUtilitiesTests.swift ├── MAGEStyle │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── MAGEStyle │ │ │ ├── MAGEStyle.swift │ │ │ ├── UIColorExtensions.swift │ │ │ └── ViewModifiers.swift │ └── Tests │ │ └── MAGEStyleTests │ │ └── MAGEStyleTests.swift ├── MKMapViewExtensions │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── MKMapViewExtensions │ │ │ └── MKMapViewExtensions.swift │ └── Tests │ │ └── MKMapViewExtensionsTests │ │ └── MKMapViewExtensionsTests.swift ├── MapFramework │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── MapFramework │ │ │ ├── DataSourceAnnotation.swift │ │ │ ├── HackTileOverlayRenderer.swift │ │ │ ├── Locatable.swift │ │ │ ├── MapCoordinator.swift │ │ │ ├── MapFrameworkNotifications.swift │ │ │ ├── MapLongPress.swift │ │ │ ├── MapMixin.swift │ │ │ ├── MapMixins.swift │ │ │ ├── MapProtocol.swift │ │ │ ├── MapRepresentable.swift │ │ │ ├── MapSingleTap.swift │ │ │ ├── MapState.swift │ │ │ └── OverlayRenderable.swift │ └── Tests │ │ └── MapFrameworkTests │ │ └── MapFrameworkTests.swift ├── MaterialViews │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── MaterialViews │ │ │ ├── MaterialButtonStyle.swift │ │ │ ├── MaterialViews.swift │ │ │ └── Snackbar.swift │ └── Tests │ │ └── MaterialViewsTests │ │ └── MaterialViewsTests.swift ├── NSManagedObjectContextExtensions │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── NSManagedObjectContextExtensions │ │ │ └── NSManagedObjectContextExtensions.swift │ └── Tests │ │ └── NSManagedObjectContextExtensionsTests │ │ └── NSManagedObjectContextExtensionsTests.swift ├── StringExtensions │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── StringExtensions │ │ │ └── StringExtensions.swift │ └── Tests │ │ └── StringExtensionsTests │ │ └── StringExtensionsTests.swift ├── UIImageExtensions │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ │ └── UIImageExtensions │ │ │ └── UIImageExtensions.swift │ └── Tests │ │ └── UIImageExtensionsTests │ │ └── UIImageExtensionsTests.swift └── ViewExtensions │ ├── .gitignore │ ├── Package.swift │ ├── Sources │ └── ViewExtensions │ │ └── ViewExtensions.swift │ └── Tests │ └── ViewExtensionsTests │ └── ViewExtensionsTests.swift ├── Podfile ├── Podfile.lock ├── README.md ├── Resources └── Roboto-Medium.ttf ├── Scripts └── set_build_number.sh ├── ci_scripts └── ci_post_clone.sh ├── fastlane ├── Appfile ├── Fastfile └── README.md ├── fontawesome-webfont.ttf ├── responses ├── 000Tile.zip ├── 110.png ├── allTheThings.json ├── apiFail.json ├── apiSuccess.json ├── apiSuccess6.json ├── apiSuccess6NoDisclaimer.json ├── apiSuccessNoAuthStrategies.json ├── apiSuccessNoDisclaimer.json ├── attachmentForm.json ├── attachmentFormPlusOne.json ├── attachmentPushTestResponse.json ├── authorizeLocalSuccess.json ├── checkboxForm.json ├── events.json ├── feedContent.json ├── feeds.json ├── geometryField.json ├── geometryObservations.json ├── gpkgWithMedia.gpkg ├── icon27.png ├── locationsabc.json ├── loginSuccess.json ├── multipleGeometryFields.json ├── myself.json ├── myselfSuccess.json ├── noResponse.html ├── observationNoAttachmentResponse.json ├── observations.json ├── observationsUpdate.json ├── oneForm.json ├── oneFormRestricted.json ├── plantsAnimalsBuildingsIcons.zip ├── polygonObservation.json ├── registrationSuccess.json ├── roles.json ├── settingsMap.json ├── signinSuccess.json ├── signinSuccessInactiveUser.json ├── signupSuccess.json ├── signupSuccessInactive.json ├── signups.json ├── slateTiles4326.gpkg ├── staticFeatures.geojson ├── testRecording.mp4 ├── testResponse.html ├── test_image_attachment.png ├── test_marker.png ├── testmovie.MOV ├── threeEvents.json ├── tile.png ├── tokenSuccess.json ├── tokenSuccessNoDisclaimer.json ├── twoEvents.json ├── twoForms.json ├── twoFormsAlternate.json ├── twoFormsObservations.json ├── twoOneFieldForms.json ├── userabc.json ├── users.json └── zeroForms.json └── sdk ├── AttachmentPushService.h ├── AttachmentPushService.swift ├── AttachmentRoutes.h ├── AttachmentRoutes.m ├── Authentication.h ├── Authentication.m ├── GeometryDeserializer.swift ├── GeometrySerializer.swift ├── IdpAuthentication.h ├── IdpAuthentication.m ├── LdapAuthentication.h ├── LdapAuthentication.m ├── LocalAuthentication.h ├── LocalAuthentication.m ├── LocationFetchService.swift ├── LocationService.h ├── LocationService.m ├── MAGERoutes.h ├── MAGERoutes.m ├── Mage.swift ├── MagePropertiesTransformer.swift ├── MageServer.swift ├── MagicalRecord+MAGE.h ├── MagicalRecord+MAGE.m ├── Model10To15.xcmappingmodel └── xcmapping.xml ├── Model11To15.xcmappingmodel └── xcmapping.xml ├── Model12To15.xcmappingmodel └── xcmapping.xml ├── Model13To15.xcmappingmodel └── xcmapping.xml ├── Model14To15.xcmappingmodel └── xcmapping.xml ├── Model14To16.xcmappingmodel └── xcmapping.xml ├── Model15To16.xcmappingmodel └── xcmapping.xml ├── Model1To15.xcmappingmodel └── xcmapping.xml ├── Model22To23.xcmappingmodel └── xcmapping.xml ├── Model2To15.xcmappingmodel └── xcmapping.xml ├── Model3To15.xcmappingmodel └── xcmapping.xml ├── Model4To15.xcmappingmodel └── xcmapping.xml ├── Model5To15.xcmappingmodel └── xcmapping.xml ├── Model6To15.xcmappingmodel └── xcmapping.xml ├── Model7To15.xcmappingmodel └── xcmapping.xml ├── Model8To15.xcmappingmodel └── xcmapping.xml ├── Model9To15.xcmappingmodel └── xcmapping.xml ├── NSDate+Iso8601.h ├── NSDate+Iso8601.m ├── NSDate+display.h ├── NSDate+display.m ├── NSString+Contains.h ├── NSString+Contains.m ├── Networking ├── DataConnectionUtilities.swift ├── MageSessionManager.h ├── MageSessionManager.m ├── SessionTask.h ├── SessionTask.m ├── SessionTaskQueue.h ├── SessionTaskQueue.m ├── TaskSessionManager.h └── TaskSessionManager.m ├── NotificationRequester.h ├── NotificationRequester.m ├── ObservationFetchService.swift ├── ObservationPushDelegate.swift ├── ObservationPushService.swift ├── ObservationRoutes.h ├── ObservationRoutes.m ├── ObservationToObservationPolicy.swift ├── RouteMethod.h ├── RouteMethod.m ├── Server5 ├── AttachmentRoutes_Server5.h └── AttachmentRoutes_Server5.m ├── ServerAuthentication.h ├── ServerAuthentication.m ├── StoredPassword.h ├── StoredPassword.m ├── UserUtility.swift ├── mage-ios-sdk.xcdatamodeld ├── .xccurrentversion ├── mage-ios-sdk 10.xcdatamodel │ └── contents ├── mage-ios-sdk 11.xcdatamodel │ └── contents ├── mage-ios-sdk 12.xcdatamodel │ └── contents ├── mage-ios-sdk 13.xcdatamodel │ └── contents ├── mage-ios-sdk 14.xcdatamodel │ └── contents ├── mage-ios-sdk 15.xcdatamodel │ └── contents ├── mage-ios-sdk 16.xcdatamodel │ └── contents ├── mage-ios-sdk 17.xcdatamodel │ └── contents ├── mage-ios-sdk 18.xcdatamodel │ └── contents ├── mage-ios-sdk 19.xcdatamodel │ └── contents ├── mage-ios-sdk 2.xcdatamodel │ └── contents ├── mage-ios-sdk 20.xcdatamodel │ └── contents ├── mage-ios-sdk 21.xcdatamodel │ └── contents ├── mage-ios-sdk 22.xcdatamodel │ └── contents ├── mage-ios-sdk 23.xcdatamodel │ └── contents ├── mage-ios-sdk 3.xcdatamodel │ └── contents ├── mage-ios-sdk 4.xcdatamodel │ └── contents ├── mage-ios-sdk 5.xcdatamodel │ └── contents ├── mage-ios-sdk 6.xcdatamodel │ └── contents ├── mage-ios-sdk 7.xcdatamodel │ └── contents ├── mage-ios-sdk 8.xcdatamodel │ └── contents ├── mage-ios-sdk 9.xcdatamodel │ └── contents └── mage-ios-sdk.xcdatamodel │ └── contents └── preferences-sdk.plist /.github/secrets/MAGE.mobileprovision.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/.github/secrets/MAGE.mobileprovision.gpg -------------------------------------------------------------------------------- /.github/secrets/development.p12.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/.github/secrets/development.p12.gpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | *~.nib 4 | 5 | build/ 6 | 7 | *.pbxuser 8 | *.perspective 9 | *.perspectivev3 10 | 11 | *.mode1v3 12 | *.mode2v3 13 | 14 | xcuserdata 15 | *.xcuserstate 16 | 17 | Pods 18 | sonar-project.properties 19 | .sonar_lock 20 | -------------------------------------------------------------------------------- /.slather.yml: -------------------------------------------------------------------------------- 1 | coverage_service: coveralls 2 | xcodeproj: MAGE.xcodeproj 3 | scheme: MAGE 4 | workspace: MAGE.xcworkspace 5 | source_directory: Mage 6 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'cocoapods' 4 | gem 'rake' 5 | gem 'slather' 6 | gem 'xcpretty' 7 | -------------------------------------------------------------------------------- /GondolaMage-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/GondolaMage-Regular.otf -------------------------------------------------------------------------------- /MAGE.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MAGE.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /MAGE.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /MAGEGeoPackageTests/MAGEGeoPackageTests-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // MAGEGeoPackageTests-Bridging-Header.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 10/31/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | 10 | #import 11 | #import "MAGE-Bridging-Header.h" 12 | 13 | #import "TestingAppDelegate.h" 14 | -------------------------------------------------------------------------------- /Mage/AreaAnnotation.h: -------------------------------------------------------------------------------- 1 | // 2 | // AreaAnnotation.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | #import 9 | #import "MapAnnotation.h" 10 | 11 | @interface AreaAnnotation : MapAnnotation 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Mage/AttributionTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // AttributionTableViewCell.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 2/8/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AttributionTableViewCell : UITableViewCell 12 | @property (weak, nonatomic) IBOutlet UILabel *attribution; 13 | @property (weak, nonatomic) IBOutlet UILabel *copyright; 14 | @property (weak, nonatomic) IBOutlet UITextView *text; 15 | @end 16 | -------------------------------------------------------------------------------- /Mage/AttributionTableViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // AttributionTableViewCell.m 3 | // MAGE 4 | // 5 | // Created by William Newman on 2/8/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "AttributionTableViewCell.h" 10 | 11 | @implementation AttributionTableViewCell 12 | 13 | @end -------------------------------------------------------------------------------- /Mage/AudioRecordingDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AudioRecordingDelegate.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | //#import "Recording.h" 9 | // 10 | //@protocol AudioRecordingDelegate 11 | // 12 | //@required 13 | // 14 | //- (void) recordingAvailable: (Recording *) recording; 15 | // 16 | //@end 17 | -------------------------------------------------------------------------------- /Mage/AuthenticationCoordinator+Testing.h: -------------------------------------------------------------------------------- 1 | // 2 | // AuthenticationCoordinator 2.h 3 | // MAGE 4 | // 5 | // Created by Brent Michalski on 3/13/25. 6 | // Copyright © 2025 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | 10 | #import "AuthenticationCoordinator.h" 11 | 12 | @interface AuthenticationCoordinator (Testing) 13 | 14 | @property (nonatomic, strong, nullable) MageServer *server; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/AuthenticationCoordinator_Server5.h: -------------------------------------------------------------------------------- 1 | // 2 | // AuthenticationCoordinator_Server5.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 3/17/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "AuthenticationCoordinator.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface AuthenticationCoordinator_Server5 : AuthenticationCoordinator 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Mage/BottomSheets/BottomSheetView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BottomSheetView.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 9/21/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | protocol BottomSheetView { 12 | func getHeaderColor() -> UIColor? 13 | func refresh() 14 | } 15 | 16 | extension BottomSheetView { 17 | func getHeaderColor() -> UIColor? { 18 | return .clear 19 | } 20 | 21 | func refresh() {} 22 | } 23 | -------------------------------------------------------------------------------- /Mage/CALayer+IB.h: -------------------------------------------------------------------------------- 1 | // 2 | // CALayer+IB.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface CALayer (IB) 10 | 11 | -(UIColor *) borderUIColor; 12 | -(void) setBorderUIColor:(UIColor *) color; 13 | 14 | -(UIColor *) shadowUIColor; 15 | -(void) setShadowUIColor:(UIColor *) color; 16 | 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Mage/Colors.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Mage/CoreData/Canary+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Canary+CoreDataProperties.m 3 | // mage-ios-sdk 4 | // 5 | // Created by Dan Barela on 8/2/18. 6 | // Copyright © 2018 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import CoreData 11 | 12 | extension Canary { 13 | @nonobjc public class func fetchRequest() -> NSFetchRequest { 14 | return NSFetchRequest(entityName: "Canary") 15 | } 16 | 17 | @NSManaged var launchDate: Date? 18 | } 19 | -------------------------------------------------------------------------------- /Mage/CoreData/Canary.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Canary.m 3 | // mage-ios-sdk 4 | // 5 | // Created by Dan Barela on 8/2/18. 6 | // Copyright © 2018 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import CoreData 10 | 11 | @objc public class Canary : NSManagedObject { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Mage/CoreData/FormJson.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FormJson.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 12/7/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import CoreData 11 | 12 | @objc public class FormJson: NSManagedObject { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Mage/DisplaySettingsHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocationDisplayHeader.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 2/8/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface DisplaySettingsHeader : UIView 14 | @property (weak, nonatomic) IBOutlet UILabel *label; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Mage/DisplaySettingsHeader.m: -------------------------------------------------------------------------------- 1 | // 2 | // LocationDisplayHeader.m 3 | // MAGE 4 | // 5 | // Created by William Newman on 2/8/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "DisplaySettingsHeader.h" 10 | 11 | @implementation DisplaySettingsHeader 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Mage/Extensions/ArrayExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ArrayExtensions.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 10/27/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Array { 12 | func chunked(into size: Int) -> [[Element]] { 13 | return stride(from: 0, to: count, by: size).map { 14 | Array(self[$0 ..< Swift.min($0 + size, count)]) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Mage/Extensions/ObjC.h: -------------------------------------------------------------------------------- 1 | // 2 | // ObjC.h 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 11/12/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ObjC : NSObject 12 | 13 | + (BOOL)catchException:(void(^)(void))tryBlock error:(__autoreleasing NSError **)error; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Mage/FICAttachment.h: -------------------------------------------------------------------------------- 1 | // 2 | // FICAttachment.h 3 | // Mage 4 | // 5 | // 6 | 7 | #import "Attachment.h" 8 | #import 9 | 10 | @interface FICAttachment : Attachment 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /Mage/FadeTransitionSegue.h: -------------------------------------------------------------------------------- 1 | // 2 | // FadeTransitionSegue.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 9/8/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface FadeTransitionSegue : NSObject 12 | 13 | + (void) addFadeTransitionToView: (UIView *) view; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Mage/FeatureActionsDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FeatureActionsDelegate.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 7/13/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @objc protocol FeatureActionsDelegate { 12 | @objc optional func getDirectionsToLocation(_ location: CLLocationCoordinate2D, title: String?, sourceView: UIView?); 13 | @objc optional func viewFeature(annotation: MapAnnotation); 14 | } 15 | -------------------------------------------------------------------------------- /Mage/Feed/FeedItemActionsDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FeedItemActionsDelegate.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 7/14/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @objc protocol FeedItemActionsDelegate { 12 | @objc optional func getDirectionsToFeedItem(_ feedItem: FeedItem, sourceView: UIView?); 13 | @objc optional func viewFeedItem(feedItem: FeedItem); 14 | @objc optional func copyLocation(_ location: String); 15 | } 16 | -------------------------------------------------------------------------------- /Mage/FilterTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FilterTableViewController.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 7/20/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface FilterTableViewController : UITableViewController 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/GridType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GridType.swift 3 | // MAGE 4 | // 5 | // Created by Brian Osborn on 9/15/22. 6 | // Copyright © 2022 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @objc public enum GridType: Int { 12 | case NONE 13 | case GARS 14 | case MGRS 15 | } 16 | -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/Icon 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/Icon 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/Icon 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/Icon 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/Icon.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@3x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@3x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@3x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_20pt@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@3x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@3x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@3x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_29pt@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_38@3xpt 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_38@3xpt 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_38@3xpt 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_38@3xpt 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_38@3xpt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_38@3xpt.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@3x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@3x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@3x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_40pt@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@3x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@3x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@3x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_60pt@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@3x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@3x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@3x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_64pt@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_68pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_68pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_68pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_68pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_68pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_68pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_76pt 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_76pt 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_76pt 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_76pt 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_76pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_76pt.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_76pt@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_76pt@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_76pt@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_76pt@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_76pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_76pt@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_83.5@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_83.5@2x 1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_83.5@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_83.5@2x 2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/AppIcon.appiconset/icon_83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/AppIcon.appiconset/icon_83.5@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Mage/Images.xcassets/add_location.imageset/baseline_add_location_black_48pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/add_location.imageset/baseline_add_location_black_48pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/add_location.imageset/baseline_add_location_black_48pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/add_location.imageset/baseline_add_location_black_48pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/add_location.imageset/baseline_add_location_black_48pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/add_location.imageset/baseline_add_location_black_48pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/arrow_drop_down.imageset/baseline_arrow_drop_down_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/arrow_drop_down.imageset/baseline_arrow_drop_down_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/arrow_drop_down.imageset/baseline_arrow_drop_down_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/arrow_drop_down.imageset/baseline_arrow_drop_down_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/arrow_drop_down.imageset/baseline_arrow_drop_down_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/arrow_drop_down.imageset/baseline_arrow_drop_down_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/big_download.imageset/Layer (3).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/big_download.imageset/Layer (3).png -------------------------------------------------------------------------------- /Mage/Images.xcassets/big_download.imageset/Layer (4).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/big_download.imageset/Layer (4).png -------------------------------------------------------------------------------- /Mage/Images.xcassets/big_download.imageset/Layer (5).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/big_download.imageset/Layer (5).png -------------------------------------------------------------------------------- /Mage/Images.xcassets/brightness_medium.imageset/baseline-brightness_medium-24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/brightness_medium.imageset/baseline-brightness_medium-24px.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/brightness_medium.imageset/baseline-brightness_medium-24px@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/brightness_medium.imageset/baseline-brightness_medium-24px@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/brightness_medium.imageset/baseline-brightness_medium-24px@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/brightness_medium.imageset/baseline-brightness_medium-24px@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/contact_card.imageset/baseline_perm_contact_calendar_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/contact_card.imageset/baseline_perm_contact_calendar_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/contact_card.imageset/baseline_perm_contact_calendar_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/contact_card.imageset/baseline_perm_contact_calendar_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/contact_card.imageset/baseline_perm_contact_calendar_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/contact_card.imageset/baseline_perm_contact_calendar_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/defaultMarker.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "default.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "default_2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "default3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Mage/Images.xcassets/defaultMarker.imageset/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/defaultMarker.imageset/default.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/defaultMarker.imageset/default3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/defaultMarker.imageset/default3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/defaultMarker.imageset/default_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/defaultMarker.imageset/default_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/download.imageset/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/download.imageset/download.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/download.imageset/download@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/download.imageset/download@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/download.imageset/download@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/download.imageset/download@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/download_thumbnail.imageset/download_thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/download_thumbnail.imageset/download_thumbnail.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/download_thumbnail.imageset/download_thumbnail@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/download_thumbnail.imageset/download_thumbnail@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/download_thumbnail.imageset/download_thumbnail@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/download_thumbnail.imageset/download_thumbnail@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/event_available.imageset/baseline-event_available-24px (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/event_available.imageset/baseline-event_available-24px (2).png -------------------------------------------------------------------------------- /Mage/Images.xcassets/event_available.imageset/baseline-event_available-24px (2)@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/event_available.imageset/baseline-event_available-24px (2)@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/event_available.imageset/baseline-event_available-24px (2)@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/event_available.imageset/baseline-event_available-24px (2)@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/event_note.imageset/baseline-event_note-24px (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/event_note.imageset/baseline-event_note-24px (1).png -------------------------------------------------------------------------------- /Mage/Images.xcassets/event_note.imageset/baseline-event_note-24px (1)@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/event_note.imageset/baseline-event_note-24px (1)@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/event_note.imageset/baseline-event_note-24px (1)@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/event_note.imageset/baseline-event_note-24px (1)@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/filter.imageset/ic_filter_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/filter.imageset/ic_filter_black_24dp.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/filter.imageset/ic_filter_black_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/filter.imageset/ic_filter_black_36dp.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/filter.imageset/ic_filter_black_48dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/filter.imageset/ic_filter_black_48dp.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/geopackage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "geopackage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "geopackage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "geopackage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Mage/Images.xcassets/geopackage.imageset/geopackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/geopackage.imageset/geopackage.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/geopackage.imageset/geopackage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/geopackage.imageset/geopackage@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/geopackage.imageset/geopackage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/geopackage.imageset/geopackage@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/line_string.imageset/line_string_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/line_string.imageset/line_string_marker.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/line_string.imageset/line_string_marker@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/line_string.imageset/line_string_marker@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/line_string.imageset/line_string_marker@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/line_string.imageset/line_string_marker@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/location_tracking_off.imageset/ic_gps_off_black_24dp-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/location_tracking_off.imageset/ic_gps_off_black_24dp-1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/location_tracking_off.imageset/ic_gps_off_black_24dp-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/location_tracking_off.imageset/ic_gps_off_black_24dp-2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/location_tracking_off.imageset/ic_gps_off_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/location_tracking_off.imageset/ic_gps_off_black_24dp.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/location_tracking_on.imageset/baseline-my_location-24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/location_tracking_on.imageset/baseline-my_location-24px.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/location_tracking_on.imageset/baseline-my_location-24px@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/location_tracking_on.imageset/baseline-my_location-24px@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/location_tracking_on.imageset/baseline-my_location-24px@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/location_tracking_on.imageset/baseline-my_location-24px@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker.imageset/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker.imageset/black.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker.imageset/black@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker.imageset/black@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker.imageset/black@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker.imageset/black@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker_large.imageset/location_on_200dp_5F6368_FILL0_wght700_GRAD0_opsz48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker_large.imageset/location_on_200dp_5F6368_FILL0_wght700_GRAD0_opsz48.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker_large.imageset/location_on_400dp_5F6368_FILL0_wght700_GRAD0_opsz48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker_large.imageset/location_on_400dp_5F6368_FILL0_wght700_GRAD0_opsz48.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker_large.imageset/location_on_600dp_5F6368_FILL0_wght700_GRAD0_opsz48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker_large.imageset/location_on_600dp_5F6368_FILL0_wght700_GRAD0_opsz48.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker_outline.imageset/marker_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker_outline.imageset/marker_outline.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker_outline.imageset/marker_outline@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker_outline.imageset/marker_outline@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/marker_outline.imageset/marker_outline@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/marker_outline.imageset/marker_outline@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/more.imageset/baseline_more_vert_black_36pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/more.imageset/baseline_more_vert_black_36pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/more.imageset/baseline_more_vert_black_36pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/more.imageset/baseline_more_vert_black_36pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/more.imageset/baseline_more_vert_black_36pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/more.imageset/baseline_more_vert_black_36pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/more_small.imageset/baseline_more_vert_black_18pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/more_small.imageset/baseline_more_vert_black_18pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/more_small.imageset/baseline_more_vert_black_18pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/more_small.imageset/baseline_more_vert_black_18pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/more_small.imageset/baseline_more_vert_black_18pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/more_small.imageset/baseline_more_vert_black_18pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/movie.imageset/baseline_movie_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/movie.imageset/baseline_movie_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/movie.imageset/baseline_movie_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/movie.imageset/baseline_movie_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/movie.imageset/baseline_movie_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/movie.imageset/baseline_movie_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/observations.imageset/baseline-place-24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/observations.imageset/baseline-place-24px.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/observations.imageset/baseline-place-24px@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/observations.imageset/baseline-place-24px@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/observations.imageset/baseline-place-24px@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/observations.imageset/baseline-place-24px@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_not_listed_location.imageset/not_listed_location_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_not_listed_location.imageset/not_listed_location_black_24dp.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_not_listed_location.imageset/not_listed_location_black_24dp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_not_listed_location.imageset/not_listed_location_black_24dp@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_not_listed_location.imageset/not_listed_location_black_24dp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_not_listed_location.imageset/not_listed_location_black_24dp@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_place.imageset/outline_place_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_place.imageset/outline_place_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_place.imageset/outline_place_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_place.imageset/outline_place_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_place.imageset/outline_place_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_place.imageset/outline_place_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_title.imageset/outline_title_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_title.imageset/outline_title_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_title.imageset/outline_title_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_title.imageset/outline_title_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/outline_title.imageset/outline_title_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/outline_title.imageset/outline_title_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/polygon.imageset/polygon_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/polygon.imageset/polygon_marker.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/polygon.imageset/polygon_marker@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/polygon.imageset/polygon_marker@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/polygon.imageset/polygon_marker@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/polygon.imageset/polygon_marker@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/radio_button_checked.imageset/baseline_radio_button_checked_black_36pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/radio_button_checked.imageset/baseline_radio_button_checked_black_36pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/radio_button_checked.imageset/baseline_radio_button_checked_black_36pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/radio_button_checked.imageset/baseline_radio_button_checked_black_36pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/radio_button_checked.imageset/baseline_radio_button_checked_black_36pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/radio_button_checked.imageset/baseline_radio_button_checked_black_36pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/radio_button_unchecked.imageset/baseline_radio_button_unchecked_black_36pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/radio_button_unchecked.imageset/baseline_radio_button_unchecked_black_36pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/radio_button_unchecked.imageset/baseline_radio_button_unchecked_black_36pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/radio_button_unchecked.imageset/baseline_radio_button_unchecked_black_36pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/radio_button_unchecked.imageset/baseline_radio_button_unchecked_black_36pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/radio_button_unchecked.imageset/baseline_radio_button_unchecked_black_36pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/rectangle.imageset/rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/rectangle.imageset/rectangle.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/rectangle.imageset/rectangle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/rectangle.imageset/rectangle@2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/rectangle.imageset/rectangle@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/rectangle.imageset/rectangle@3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/rss.imageset/baseline_rss_feed_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/rss.imageset/baseline_rss_feed_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/rss.imageset/baseline_rss_feed_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/rss.imageset/baseline_rss_feed_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/rss.imageset/baseline_rss_feed_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/rss.imageset/baseline_rss_feed_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/shape_edit.imageset/ic_shape_edit-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/shape_edit.imageset/ic_shape_edit-1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/shape_edit.imageset/ic_shape_edit-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/shape_edit.imageset/ic_shape_edit-2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/shape_edit.imageset/ic_shape_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/shape_edit.imageset/ic_shape_edit.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/shape_edit_selected.imageset/ic_shape_edit_selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/shape_edit_selected.imageset/ic_shape_edit_selected-1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/shape_edit_selected.imageset/ic_shape_edit_selected-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/shape_edit_selected.imageset/ic_shape_edit_selected-2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/shape_edit_selected.imageset/ic_shape_edit_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/shape_edit_selected.imageset/ic_shape_edit_selected.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/speed.imageset/baseline_speed_black_36pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/speed.imageset/baseline_speed_black_36pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/speed.imageset/baseline_speed_black_36pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/speed.imageset/baseline_speed_black_36pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/speed.imageset/baseline_speed_black_36pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/speed.imageset/baseline_speed_black_36pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/text_fields.imageset/baseline_text_fields_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/text_fields.imageset/baseline_text_fields_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/text_fields.imageset/baseline_text_fields_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/text_fields.imageset/baseline_text_fields_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/text_fields.imageset/baseline_text_fields_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/text_fields.imageset/baseline_text_fields_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/today.imageset/outline_today_black_24pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/today.imageset/outline_today_black_24pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/today.imageset/outline_today_black_24pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/today.imageset/outline_today_black_24pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/today.imageset/outline_today_black_24pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/today.imageset/outline_today_black_24pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/upload.imageset/baseline_cloud_upload_black_48pt_1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/upload.imageset/baseline_cloud_upload_black_48pt_1x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/upload.imageset/baseline_cloud_upload_black_48pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/upload.imageset/baseline_cloud_upload_black_48pt_2x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/upload.imageset/baseline_cloud_upload_black_48pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/upload.imageset/baseline_cloud_upload_black_48pt_3x.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/video.imageset/ic_videocam_black_24dp-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/video.imageset/ic_videocam_black_24dp-1.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/video.imageset/ic_videocam_black_24dp-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/video.imageset/ic_videocam_black_24dp-2.png -------------------------------------------------------------------------------- /Mage/Images.xcassets/video.imageset/ic_videocam_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Images.xcassets/video.imageset/ic_videocam_black_24dp.png -------------------------------------------------------------------------------- /Mage/KeyboardConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // KeyboardConstraint.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface KeyboardConstraint : NSLayoutConstraint 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /Mage/LocationDisplayTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocationDisplayTableViewController.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 9/10/18. 6 | // Copyright © 2018 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface LocationDisplayTableViewController : UITableViewController 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/LocationFilterTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocationFilterTableViewController.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 7/24/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface LocationFilterTableViewController : UITableViewController 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/MAGE-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_3_0 10 | #warning "This project uses features only available in iOS SDK 3.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #import 17 | #import 18 | @import DateTools; 19 | #endif 20 | -------------------------------------------------------------------------------- /Mage/MAGE.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.default-data-protection 6 | NSFileProtectionCompleteUnlessOpen 7 | com.apple.developer.networking.wifi-info 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Mage/MageFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // Filter.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 1/13/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MageFilter : NSObject 12 | + (NSString *) getFilterString; 13 | + (NSString *) getLocationFilterString; 14 | @end 15 | -------------------------------------------------------------------------------- /Mage/ManagedObjectContextHolder.h: -------------------------------------------------------------------------------- 1 | // 2 | // ManagedObjectContextHolder.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | //@interface ManagedObjectContextHolder : NSObject 10 | // 11 | //- (NSManagedObjectContext *) managedObjectContext; 12 | // 13 | //@end 14 | -------------------------------------------------------------------------------- /Mage/ManagedObjectContextHolder.m: -------------------------------------------------------------------------------- 1 | // 2 | // ManagedObjectContextHolder.m 3 | // MAGE 4 | // 5 | // 6 | 7 | #import "ManagedObjectContextHolder.h" 8 | #import "AppDelegate.h" 9 | 10 | @implementation ManagedObjectContextHolder 11 | 12 | - (NSManagedObjectContext *) managedObjectContext { 13 | return [NSManagedObjectContext MR_defaultContext]; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/Map/Cache/CacheActiveSwitch.m: -------------------------------------------------------------------------------- 1 | // 2 | // CacheActiveSwitch.m 3 | // MAGE 4 | // 5 | // Created by Brian Osborn on 1/11/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | //#import "CacheActiveSwitch.h" 10 | // 11 | //@implementation CacheActiveSwitch 12 | // 13 | //@end 14 | -------------------------------------------------------------------------------- /Mage/Map/Cache/CacheActiveSwitch.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CacheActiveSwitch.h 3 | // MAGE 4 | // 5 | // Created by Brian Osborn on 1/11/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | import Foundation 9 | import UIKit 10 | 11 | @objc class CacheActiveSwitch: UISwitch { 12 | @objc var overlay: CacheOverlay? 13 | } 14 | -------------------------------------------------------------------------------- /Mage/Map/Cache/CacheOverlayTypes.m: -------------------------------------------------------------------------------- 1 | // 2 | // CacheOverlayTypes.m 3 | // MAGE 4 | // 5 | // Created by Brian Osborn on 12/17/15. 6 | // Copyright © 2015 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | //#import "CacheOverlayTypes.h" 10 | // 11 | //@implementation CacheOverlayTypes 12 | // 13 | //@end 14 | -------------------------------------------------------------------------------- /Mage/Map/Cache/ChildCacheOverlayTableCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChildCacheOverlayTableCell.m 3 | // MAGE 4 | // 5 | // Created by Brian Osborn on 1/11/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | @objc class ChildCacheOverlayTableCell: UITableViewCell { 13 | var active: CacheActiveSwitch? 14 | var tableType: UIImageView? 15 | var name: UILabel? 16 | var info: UILabel? 17 | } 18 | -------------------------------------------------------------------------------- /Mage/Map/Overlay/LocationAccuracyRenderer.h: -------------------------------------------------------------------------------- 1 | // 2 | // LcoationAccuracyRenderer.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 5/6/20. 6 | // Copyright © 2020 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface LocationAccuracyRenderer : MKCircleRenderer 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Mage/Map/Overlay/ObservationAccuracy.h: -------------------------------------------------------------------------------- 1 | // 2 | // AccuracyOverlay.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 5/6/20. 6 | // Copyright © 2020 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface ObservationAccuracy : MKCircle 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Mage/Map/Overlay/ObservationAccuracy.m: -------------------------------------------------------------------------------- 1 | // 2 | // AccuracyOverlay.m 3 | // MAGE 4 | // 5 | // Created by William Newman on 5/6/20. 6 | // Copyright © 2020 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "ObservationAccuracy.h" 10 | 11 | @implementation ObservationAccuracy 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Mage/MapCalloutTapped.h: -------------------------------------------------------------------------------- 1 | // 2 | // MapCalloutTappedDelegate.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | @protocol MapCalloutTapped 10 | 11 | @required 12 | -(void) calloutTapped:(id) calloutItem; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Mage/Media.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Mage/Media.xcassets/mage_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mage_logo.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Mage/Media.xcassets/mage_logo.imageset/mage_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Media.xcassets/mage_logo.imageset/mage_logo.png -------------------------------------------------------------------------------- /Mage/Media.xcassets/mage_logo_toolbar.imageset/mage_logo_toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Media.xcassets/mage_logo_toolbar.imageset/mage_logo_toolbar.png -------------------------------------------------------------------------------- /Mage/Media.xcassets/mage_logo_toolbar.imageset/mage_logo_toolbar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Media.xcassets/mage_logo_toolbar.imageset/mage_logo_toolbar@2x.png -------------------------------------------------------------------------------- /Mage/Media.xcassets/mage_logo_toolbar.imageset/mage_logo_toolbar@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Media.xcassets/mage_logo_toolbar.imageset/mage_logo_toolbar@3x.png -------------------------------------------------------------------------------- /Mage/Media.xcassets/magic.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "magic.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Mage/Media.xcassets/magic.imageset/magic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Mage/Media.xcassets/magic.imageset/magic.png -------------------------------------------------------------------------------- /Mage/Model/GeoPackage/GeoPackageMediaRow.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeoPackageMediaRow.swift 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 8/29/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct GeoPackageMediaRow: Identifiable, Hashable { 12 | let id: String = UUID().uuidString 13 | 14 | let title: String 15 | let image: UIImage 16 | } 17 | -------------------------------------------------------------------------------- /Mage/Model/GeoPackage/GeoPackageProperty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeoPackageProperty.swift 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 8/29/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct GeoPackageProperty: Identifiable, Hashable { 12 | let id: String = UUID().uuidString 13 | let name: String 14 | let value: String? 15 | } 16 | -------------------------------------------------------------------------------- /Mage/Model/GeoPackage/GeoPackageRelation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeoPackageRelation.swift 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 8/29/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct GeoPackageRelation: Identifiable, Hashable { 12 | let id: String = UUID().uuidString 13 | let properties: [GeoPackageProperty] 14 | let medias: [GeoPackageMediaRow] 15 | } 16 | -------------------------------------------------------------------------------- /Mage/Notifications.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Notifications.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 4/11/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import MaterialViews 11 | 12 | extension Notification.Name { 13 | public static let SnackbarNotification = Notification.Name("Snackbar") 14 | } 15 | 16 | struct SnackbarNotification { 17 | var snackbarModel: SnackbarModel? 18 | } 19 | -------------------------------------------------------------------------------- /Mage/Observation+Section.h: -------------------------------------------------------------------------------- 1 | // 2 | // Observation+Section.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 4/5/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "MAGE-Swift.h" 10 | 11 | @interface Observation (Section) 12 | 13 | - (NSString *) dateSection; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Mage/ObservationFields.h: -------------------------------------------------------------------------------- 1 | // 2 | // ObservationFields.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 5/26/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ObservationFields : NSObject 12 | 13 | + (NSArray *) fields; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Mage/ObservationFilterTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // FilterTableViewController.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 10/31/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface ObservationFilterTableViewController : UITableViewController 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/ObservationServicesSettingsTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocationServicesSettingsTableViewController.h 3 | // Mage 4 | // 5 | // 6 | 7 | #import 8 | #import "ValuePickerTableViewController.h" 9 | #import 10 | #import 11 | 12 | @interface ObservationServicesSettingsTableViewController : UITableViewController 13 | - (instancetype) initWithScheme: (id) containerScheme; 14 | @end 15 | 16 | -------------------------------------------------------------------------------- /Mage/ObservationTableHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ObservationTableHeaderView.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 3/8/18. 6 | // Copyright © 2018 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface ObservationTableHeaderView : UIView 13 | 14 | - (instancetype) initWithName:(NSString *)name andScheme: (id) containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/OfflineMapTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // OfflineMapTableViewController.h 3 | // MAGE 4 | // 5 | // 6 | 7 | //#import 8 | //#import 9 | //#import "MAGE-Swift.h" 10 | // 11 | //@interface OfflineMapTableViewController : UITableViewController 12 | // 13 | //- (instancetype) initWithScheme: (id) containerScheme context: (NSManagedObjectContext *) context; 14 | // 15 | //@end 16 | -------------------------------------------------------------------------------- /Mage/OrView.h: -------------------------------------------------------------------------------- 1 | // 2 | // OrView.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 5/2/18. 6 | // Copyright © 2018 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface OrView : UIStackView 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/Recording.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | @interface Recording : NSObject 5 | 6 | @property (nonatomic, strong) NSString *mediaType; 7 | @property (nonatomic, strong) NSString *fileName; 8 | @property (nonatomic, strong) NSString *filePath; 9 | @property (nonatomic, strong) NSString *mediaTempFolder; 10 | @property (nonatomic, strong) NSNumber *recordingLength; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /Mage/Recording.m: -------------------------------------------------------------------------------- 1 | // 2 | // MediaType.m 3 | // UFO 4 | // 5 | // 6 | // 7 | 8 | #import "Recording.h" 9 | 10 | @implementation Recording 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /Mage/Repository/Event/EventModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EventModel.swift 3 | // MAGETests 4 | // 5 | // Created by Dan Barela on 8/23/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct EventModel { 12 | var remoteId: NSNumber? 13 | var acl: [AnyHashable: Any]? 14 | } 15 | 16 | extension EventModel { 17 | init(event: Event) { 18 | remoteId = event.remoteId 19 | acl = event.acl 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Mage/SettingsCoordinator.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsCoordinator.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 2/19/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SettingsCoordinator : NSObject 14 | 15 | -(void) start; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Mage/SignUpViewController_Server5.h: -------------------------------------------------------------------------------- 1 | // 2 | // SignUpViewController_Server5.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 3/17/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "SignUpViewController.h" 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SignUpViewController_Server5 : SignUpViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Mage/TMSTileOverlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // TMSTileOverlay.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 10/2/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface TMSTileOverlay : MKTileOverlay 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Mage/TimeSettingsTableViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TimeSettingsTableViewController.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 3/10/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface TimeSettingsTableViewController : UITableViewController 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/TransitionViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TransitionViewController.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 9/29/17. 6 | // Copyright © 2017 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface TransitionViewController : UIViewController 13 | 14 | - (void) applyThemeWithContainerScheme:(id)containerScheme; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Mage/UIBarButtonItem+IB.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIBarButtonItem+IB.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface UIBarButtonItem (IB) 10 | 11 | -(UIImageRenderingMode) imageRenderingMode; 12 | - (void) setImageRenderingMode:(UIImageRenderingMode) imageRenderingMode; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Mage/UIBarButtonItem+IB.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIBarButtonItem+IB.m 3 | // MAGE 4 | // 5 | // 6 | 7 | #import "UIBarButtonItem+IB.h" 8 | 9 | @implementation UIBarButtonItem (IB) 10 | 11 | - (void) setImageRenderingMode:(UIImageRenderingMode) renderingMode { 12 | self.image = [self.image imageWithRenderingMode:renderingMode]; 13 | } 14 | 15 | - (UIImageRenderingMode) imageRenderingMode { 16 | return self.image.renderingMode; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Mage/UIColor+Adjust.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+Adjust.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 6/25/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIColor (Adjust) 14 | 15 | - (UIColor *) lighter:(CGFloat) percentage; 16 | - (UIColor *) darker:(CGFloat) percentage; 17 | - (UIColor *) brightness:(CGFloat) percentage; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /Mage/UIColor+Hex.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+Hex.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 3/11/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIColor (Hex) 14 | 15 | -(NSString *) hex; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Mage/UIImage+Thumbnail.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Thumbnail.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 6/29/16. 6 | // Copyright © 2016 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (Thumbnail) 12 | 13 | - (UIImage *) thumbnailWithSize:(CGSize) size; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Mage/UIImageView+IB.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+IB.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface UIImageView (IB) 10 | 11 | -(UIImageRenderingMode) imageRenderingMode; 12 | - (void) setImageRenderingMode:(UIImageRenderingMode) imageRenderingMode; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Mage/UIImageView+IB.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+IB.m 3 | // MAGE 4 | // 5 | // 6 | 7 | #import "UIImageView+IB.h" 8 | 9 | @implementation UIImageView (IB) 10 | 11 | - (void) setImageRenderingMode:(UIImageRenderingMode) renderingMode { 12 | self.image = [self.image imageWithRenderingMode:renderingMode]; 13 | } 14 | 15 | - (UIImageRenderingMode) imageRenderingMode { 16 | return self.image.renderingMode; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Mage/UINextField.h: -------------------------------------------------------------------------------- 1 | // 2 | // UINextField.h 3 | // Mage 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface UITextField (UINextField) 10 | 11 | @property (nonatomic, assign) IBOutlet UITextField *nextField; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Mage/UIResponder+FirstResponder.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIResponder+FirstResponder.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface UIResponder (FirstResponder) 10 | 11 | +(id)currentFirstResponder; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Mage/UITableViewCell+Setting.h: -------------------------------------------------------------------------------- 1 | // 2 | // UITableViewCell+Setting.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 2/7/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UITableViewCell (Setting) 14 | @property (nonatomic, assign) NSNumber *type; 15 | @property (nonatomic, weak) id info; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Mage/UIViewController+CaptchaViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+CaptchaViewController.h 3 | // MAGE 4 | // 5 | // Created by William Newman on 3/5/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface UIViewController () 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Mage/UseCase/MageUseCases.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MageUseCases.swift 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 9/1/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum MageUseCases { 12 | case fetchEvents 13 | 14 | func callAsFunction() { 15 | switch (self) { 16 | case .fetchEvents: 17 | FetchEventsUseCase().execute() 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Mage/UserSelectionDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ObservationSelectionDelegate.h 3 | // MAGE 4 | // 5 | // 6 | 7 | #import 8 | #import 9 | 10 | @class User; 11 | 12 | @protocol UserSelectionDelegate 13 | 14 | @required 15 | -(void) selectedUser:(User *) user; 16 | -(void) selectedUser:(User *) user region:(MKCoordinateRegion) region; 17 | -(void) userDetailSelected: (User *) user; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Mage/ViewLoader/ViewLoaderAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewLoaderAppDelegate.h 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 6/11/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ViewLoaderAppDelegate : UIResponder 14 | @property (strong, nonatomic) UIWindow *window; 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Mage/ViewModel/Location/UserLocationViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserLocationViewModel.swift 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 8/8/24. 6 | // Copyright © 2024 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class UserLocationViewModel: ObservableObject { 12 | @Injected(\.locationRepository) 13 | var locationRepository: LocationRepository 14 | 15 | init(uri: URL) { 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Mage/WMSTileOverlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // WMSTileOverlay.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 8/6/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WMSTileOverlay : MKTileOverlay 14 | 15 | - (id) initWithURL: (NSString *) url andParameters: (NSDictionary *) parameters; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Mage/XYZTileOverlay.h: -------------------------------------------------------------------------------- 1 | // 2 | // XYZTileOverlay.h 3 | // MAGE 4 | // 5 | // Created by Dan Barela on 9/24/19. 6 | // Copyright © 2019 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface XYZTileOverlay : MKTileOverlay 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /Mage/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /MageTests/Form/emptyForm.json: -------------------------------------------------------------------------------- 1 | { 2 | "name":"Test", 3 | "color":"#9E159C", 4 | "fields":[], 5 | "userFields":[], 6 | "archived":false, 7 | "id":110 8 | } 9 | -------------------------------------------------------------------------------- /MageTests/MAGETests-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "MAGE-Bridging-Header.h" 3 | 4 | #import "TestingAppDelegate.h" 5 | #import "AuthenticationCoordinator+Testing.h" 6 | -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__3_attachments_set_from_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__3_attachments_set_from_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__4_attachments_set_from_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__4_attachments_set_from_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__5_attachments_set_from_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__5_attachments_set_from_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__no_initial_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__no_initial_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__non_edit_mode_with_field_title@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__non_edit_mode_with_field_title@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__non_edit_mode_with_no_field_title@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__non_edit_mode_with_no_field_title@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__one_attachment_set_from_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__one_attachment_set_from_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__one_attachment_set_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__one_attachment_set_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__required_field_is_invalid_if_empty@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__required_field_is_invalid_if_empty@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__required_field_is_valid_if_attachment_exists@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__required_field_is_valid_if_attachment_exists@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_one_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_one_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later_then_remove_first@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later_then_remove_first@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later_then_remove_second@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__set_one_attachment_with_observation_and_two_later_then_remove_second@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__should_add_an_attachment_via_the_delegate@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__should_add_an_attachment_via_the_delegate@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__two_attachments_set_together_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/AttachmentFieldViewTests/AttachmentFieldViewTests__two_attachments_set_together_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__initial_value_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__initial_value_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__initial_value_true@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__initial_value_true@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__no_initial_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__no_initial_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__non_edit_mode@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__non_edit_mode@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__required@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__required@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__required_field_is_invalid_if_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__required_field_is_invalid_if_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__required_field_is_valid_if_true@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__required_field_is_valid_if_true@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_valid_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_valid_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_valid_true_after_being_invalid@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_valid_true_after_being_invalid@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_value_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_value_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_value_simulated_touch@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CheckboxFieldViewTests/CheckboxFieldView__set_value_simulated_touch@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__empty_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__empty_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__line_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__line_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__point_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__point_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__polygon_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/CommonFieldsViewTests/CommonFieldsView__polygon_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__initial_value_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__initial_value_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__no_initial_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__no_initial_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__non_edit_mode@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__non_edit_mode@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__required_field_has_title_which_indicates_required@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__required_field_has_title_which_indicates_required@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__set_valid_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__set_valid_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__set_valid_true_after_being_invalid@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__set_valid_true_after_being_invalid@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__set_value_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__set_value_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__set_value_with_touch_inputs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__set_value_with_touch_inputs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DateViewTests/DateFieldView__test_delegate@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DateViewTests/DateFieldView__test_delegate@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__initial_value_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__initial_value_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__no_initial_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__no_initial_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__non_edit_mode@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__non_edit_mode@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__required_field_should_show_status@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__required_field_should_show_status@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__required_field_should_show_status_after_value_has_been_added@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__required_field_should_show_status_after_value_has_been_added@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__set_value_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/DropdownFieldViewTests/DropdownFieldView__set_value_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__all_header_fields_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__all_header_fields_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_initially_set_to_unexpanded_then_expanded_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_initially_set_to_unexpanded_then_expanded_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_set_with_header_information@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_set_with_header_information@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_set_with_header_information_all_set_after_construction@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__expanded_view_set_with_header_information_all_set_after_construction@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__header_field_set_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__header_field_set_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__header_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__header_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__image_and_title_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__image_and_title_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__image_name_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__image_name_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__subheader_field_set_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__subheader_field_set_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__subheader_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__subheader_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__title_field_set_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__title_field_set_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__title_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__title_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__will_show_unexpanded_if_expand_button_is_tapped@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__will_show_unexpanded_if_expand_button_is_tapped@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__will_show_unexpanded_if_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ExpandableCardTests/ExpandableCardTests__will_show_unexpanded_if_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_no_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_no_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_no_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_no_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_no_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_no_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_long_secondary_value_and_icon_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_long_secondary_value_and_icon_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_and_icon_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_and_secondary_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_primary_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_secondary_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_secondary_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_secondary_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_secondary_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_secondary_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_no_timestamp__feed_item_with_secondary_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_no_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_no_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_no_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_no_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_no_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_no_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_long_secondary_value_and_icon_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_long_secondary_value_and_icon_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_without_timestamp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_and_icon_without_timestamp@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_and_secondary_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_primary_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_secondary_value_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_secondary_value_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_secondary_value_mappable_mgrs@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_secondary_value_mappable_mgrs@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_secondary_value_non_mappable@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemViewViewControllerTests/FeedItemViewController_with_timestamp__feed_item_with_secondary_value_non_mappable@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__empty_feed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__empty_feed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_no_content@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_no_content@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_primary_and_secondary_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_primary_and_secondary_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_primary_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_primary_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_secondary_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_no_timestamp__one_feed_item_with_secondary_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__empty_feed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__empty_feed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_no_content@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_no_content@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon_without_timestamp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_and_secondary_value_and_icon_without_timestamp@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_primary_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_secondary_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FeedItemsViewControllerTests/FeedItemsViewController_with_timestamp__one_feed_item_with_secondary_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FormPickerTests/FormPickerTests__as_a_sheet@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FormPickerTests/FormPickerTests__as_a_sheet@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FormPickerTests/FormPickerTests__cancel_button_cancels@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FormPickerTests/FormPickerTests__cancel_button_cancels@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FormPickerTests/FormPickerTests__initialized@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FormPickerTests/FormPickerTests__initialized@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FormPickerTests/FormPickerTests__multiple_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FormPickerTests/FormPickerTests__multiple_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/FormPickerTests/FormPickerTests__one_form@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/FormPickerTests/FormPickerTests__one_form@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__create_a_point_with_long_press@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__create_a_point_with_long_press@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__geometry_edit_coordinator_launch@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__geometry_edit_coordinator_launch@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__latitude_longitude_tab@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__latitude_longitude_tab@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__switch_to_mgrs_tab@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryEditViewControllerTests/GeometryEditViewController__switch_to_mgrs_tab@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryViewTests/GeometryView__edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryViewTests/GeometryView__edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryViewTests/GeometryView__non_edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryViewTests/GeometryView__non_edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/GeometryViewTests/GeometryView__set_valid_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/GeometryViewTests/GeometryView__set_valid_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__no_feeds@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__no_feeds@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__one_feed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__one_feed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__tap_more_button_one_feed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__tap_more_button_one_feed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__tap_more_button_two_feeds@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__tap_more_button_two_feeds@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__tap_observations_button_one_feed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__tap_observations_button_one_feed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__two_mappable_feeds_and_two_non_mappable_brand_new@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__two_mappable_feeds_and_two_non_mappable_brand_new@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__two_mappable_feeds_and_two_non_mappable_one_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__two_mappable_feeds_and_two_non_mappable_one_selected@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MageRootViewTests/MageRootView__two_mappable_feeds_and_two_non_mappable_other_one_selected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MageRootViewTests/MageRootView__two_mappable_feeds_and_two_non_mappable_other_one_selected@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_add_an_attachment_to_the_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_add_an_attachment_to_the_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_cancel_an_edit@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_cancel_an_edit@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_cancel_creating_new_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_cancel_creating_new_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_an_observation_and_view_it@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_an_observation_and_view_it@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_empty_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_empty_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_empty_observation_with_long_press@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_empty_observation_with_long_press@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_observation_with_no_location@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_create_new_observation_with_no_location@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_edit_an_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_edit_an_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_save_an_edit@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_save_an_edit@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_view_a_polygon_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MapViewControllerTests/MapViewControllerTests__initialize_the_MapViewController_and_view_a_polygon_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__initial_value_set_with_multiple_values@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__initial_value_set_with_multiple_values@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__multi_required_field_should_show_status@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__multi_required_field_should_show_status@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__non_edit_mode_multiple_values@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__non_edit_mode_multiple_values@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__set_value_later@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/MultiDropdownFieldViewTests/MultiDropdownFieldView__set_value_later@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/NumberFieldViewTests/NumberFieldView__edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/NumberFieldViewTests/NumberFieldView__edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/NumberFieldViewTests/NumberFieldView__non_edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/NumberFieldViewTests/NumberFieldView__non_edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/NumberFieldViewTests/NumberFieldView__set_valid_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/NumberFieldViewTests/NumberFieldView__set_valid_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationBottomSheetTests/ObservationBottomSheetTests__should_load_an_ObservationBottomSheetController@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationBottomSheetTests/ObservationBottomSheetTests__should_load_an_ObservationBottomSheetController@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__Legacy__empty_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__Legacy__empty_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__Legacy__launch_gallery@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__Legacy__launch_gallery@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__add_form_button_should_call_delegate@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__add_form_button_should_call_delegate@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__clearing_a_field_should_update_the_form_header@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__clearing_a_field_should_update_the_form_header@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__empty_new_observation_zero_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__empty_new_observation_zero_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__empty_observation_not_new@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__empty_observation_not_new@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__filling_out_the_form_should_update_the_form_header@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__filling_out_the_form_should_update_the_form_header@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__not_show_the_add_form_button_if_there_are_no_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__not_show_the_add_form_button_if_there_are_no_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_expand_current_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_expand_current_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_all_the_things_form@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_all_the_things_form@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_checkbox_form@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_checkbox_form@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_current_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_current_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_current_forms_multiple_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__observation_should_show_current_forms_multiple_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__should_add_an_image_if_sent_in_via_delegate@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__should_add_an_image_if_sent_in_via_delegate@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__should_bring_up_the_gallery_if_the_gallery_button_is_tapped@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__should_bring_up_the_gallery_if_the_gallery_button_is_tapped@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__show_the_form_button_if_there_are_two_forms@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__show_the_form_button_if_there_are_two_forms@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__when_form_is_added_it_should_show@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationEditCardCollectionViewControllerTests/ObservationEditCardCollectionViewController__when_form_is_added_it_should_show@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_form_name_only@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_form_name_only@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_primary_and_variant@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_primary_and_variant@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_primary_only@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_primary_only@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_variant_only@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationFormReorderTests/ObservationFormReorder__observation_for_reorder_variant_only@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationFormViewTests/ObservationFormView__no_initial_values_in_the_observation@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationFormViewTests/ObservationFormView__no_initial_values_in_the_observation@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationFormViewTests/ObservationFormView__observation_filled_in_completely@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationFormViewTests/ObservationFormView__observation_filled_in_completely@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationHeaderViewTests/ObservationHeaderViewTests__initialize_the_ObservationHeaderView@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationHeaderViewTests/ObservationHeaderViewTests__initialize_the_ObservationHeaderView@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationHeaderViewTests/ObservationHeaderViewTests__tap_important_button@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationHeaderViewTests/ObservationHeaderViewTests__tap_important_button@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationListCardCellTests/ObservationListCardCellTests__should_load_an_ObservationListCardCell@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationListCardCellTests/ObservationListCardCellTests__should_load_an_ObservationListCardCell@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__dirty@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__dirty@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__dirty_and_then_pushed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__dirty_and_then_pushed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__error@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__pushed_as_current_user@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__pushed_as_current_user@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__tap_sync_now@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationSyncStatusTests/ObservationSyncStatusTests__tap_sync_now@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__initialize_the_ObservationViewCardCollectionViewController@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__initialize_the_ObservationViewCardCollectionViewController@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__initialize_the_ObservationViewController@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__initialize_the_ObservationViewController@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__observation_needs_syncing@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__observation_needs_syncing@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__observation_needs_syncing_and_then_gets_pushed@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationViewCardCollectionViewControllerTests/ObservationViewCardCollectionViewControllerTests__observation_needs_syncing_and_then_gets_pushed@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/ObservationViewControllerTests/ObservationViewControllerTests__initialize_the_ObservationViewController@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/ObservationViewControllerTests/ObservationViewControllerTests__initialize_the_ObservationViewController@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__initial_value_set@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__initial_value_set@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__no_initial_value@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__no_initial_value@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__non_edit_mode@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__non_edit_mode@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__required_field_should_show_status@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__required_field_should_show_status@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__required_field_should_show_status_after_value_has_been_added@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/RadioFieldViewTests/RadioFieldView__required_field_should_show_status_after_value_has_been_added@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/StraightLineNavigationViewTests/StraightLineNavigationViewTests__should_load_the_view@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/StraightLineNavigationViewTests/StraightLineNavigationViewTests__should_load_the_view@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Multi_Line__edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Multi_Line__edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Multi_Line__non_edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Multi_Line__non_edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Multi_Line__set_valid_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Multi_Line__set_valid_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Single_Line__edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Single_Line__edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Single_Line__non_edit_mode_reference_image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Single_Line__non_edit_mode_reference_image@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Single_Line__set_valid_false@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/TextFieldViewTests/TextFieldView_Single_Line__set_valid_false@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/UserTableHeaderViewTests/UserTableHeaderView__current_user_view@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/UserTableHeaderViewTests/UserTableHeaderView__current_user_view@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/UserTableHeaderViewTests/UserTableHeaderView__user_view@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/UserTableHeaderViewTests/UserTableHeaderView__user_view@3x.png -------------------------------------------------------------------------------- /MageTests/ReferenceImages/UserViewControllerTests/UserViewController__user_view@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/MageTests/ReferenceImages/UserViewControllerTests/UserViewController__user_view@3x.png -------------------------------------------------------------------------------- /MageTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Maps/countries.gpkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Maps/countries.gpkg -------------------------------------------------------------------------------- /Maps/countries_dark.gpkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Maps/countries_dark.gpkg -------------------------------------------------------------------------------- /Packages/CLLocationCoordinate2DExtensions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/DataSourceDefinition/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/DataSourceDefinition/Tests/DataSourceDefinitionTests/DataSourceDefinitionTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import DataSourceDefinition 3 | 4 | final class DataSourceDefinitionTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/DataSourceTileOverlay/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/DataSourceTileOverlay/Tests/DataSourceTileOverlayTests/DataSourceTileOverlayTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import DataSourceTileOverlay 3 | 4 | final class DataSourceTileOverlayTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/DebugUtilities/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/DebugUtilities/Tests/DebugUtilitiesTests/DebugUtilitiesTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import DebugUtilities 3 | 4 | final class DebugUtilitiesTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/MAGEStyle/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/MAGEStyle/Tests/MAGEStyleTests/MAGEStyleTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import MAGEStyle 3 | 4 | final class MAGEStyleTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/MKMapViewExtensions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/MKMapViewExtensions/Tests/MKMapViewExtensionsTests/MKMapViewExtensionsTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import MKMapViewExtensions 3 | 4 | final class MKMapViewExtensionsTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/MapFramework/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/MapFramework/Sources/MapFramework/OverlayRenderable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // 4 | // 5 | // Created by Daniel Barela on 4/12/24. 6 | // 7 | 8 | import Foundation 9 | import MapKit 10 | 11 | public protocol OverlayRenderable { 12 | var renderer: MKOverlayRenderer { get } 13 | } 14 | -------------------------------------------------------------------------------- /Packages/MapFramework/Tests/MapFrameworkTests/MapFrameworkTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import MapFramework 3 | 4 | final class MapFrameworkTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/MaterialViews/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/MaterialViews/Sources/MaterialViews/MaterialViews.swift: -------------------------------------------------------------------------------- 1 | // The Swift Programming Language 2 | // https://docs.swift.org/swift-book 3 | -------------------------------------------------------------------------------- /Packages/MaterialViews/Tests/MaterialViewsTests/MaterialViewsTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import MaterialViews 3 | 4 | final class MaterialViewsTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/NSManagedObjectContextExtensions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/StringExtensions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/StringExtensions/Tests/StringExtensionsTests/StringExtensionsTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import StringExtensions 3 | 4 | final class StringExtensionsTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/UIImageExtensions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/UIImageExtensions/Tests/UIImageExtensionsTests/UIImageExtensionsTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import UIImageExtensions 3 | 4 | final class UIImageExtensionsTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Packages/ViewExtensions/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | xcuserdata/ 5 | DerivedData/ 6 | .swiftpm/configuration/registries.json 7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata 8 | .netrc 9 | -------------------------------------------------------------------------------- /Packages/ViewExtensions/Tests/ViewExtensionsTests/ViewExtensionsTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import ViewExtensions 3 | 4 | final class ViewExtensionsTests: XCTestCase { 5 | func testExample() throws { 6 | // XCTest Documentation 7 | // https://developer.apple.com/documentation/xctest 8 | 9 | // Defining Test Cases and Test Methods 10 | // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Resources/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/Resources/Roboto-Medium.ttf -------------------------------------------------------------------------------- /ci_scripts/ci_post_clone.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | # Install CocoaPods using Homebrew. 5 | brew install cocoapods 6 | 7 | 8 | # Install dependencies you manage with CocoaPods. 9 | pod install 10 | -------------------------------------------------------------------------------- /fastlane/Appfile: -------------------------------------------------------------------------------- 1 | # app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app 2 | # apple_id("[[APPLE_ID]]") # Your Apple email address 3 | 4 | 5 | # For more information about the Appfile, see: 6 | # https://docs.fastlane.tools/advanced/#appfile 7 | -------------------------------------------------------------------------------- /fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /responses/000Tile.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/000Tile.zip -------------------------------------------------------------------------------- /responses/110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/110.png -------------------------------------------------------------------------------- /responses/apiSuccess6NoDisclaimer.json: -------------------------------------------------------------------------------- 1 | 2 | 3 | { 4 | "provision": { 5 | "strategy":"uid" 6 | }, 7 | "authenticationStrategies":{ 8 | "local":{ 9 | "passwordMinLength":14 10 | } 11 | }, 12 | "version":{ 13 | "major":6, 14 | "minor":0, 15 | "micro":0 16 | }, 17 | "description":"Geospatial situation awareness application", 18 | "name":"MAGE" 19 | } 20 | -------------------------------------------------------------------------------- /responses/apiSuccessNoAuthStrategies.json: -------------------------------------------------------------------------------- 1 | { 2 | "provision": { 3 | "strategy":"uid" 4 | }, 5 | "version":{ 6 | "major":6, 7 | "minor":0, 8 | "micro":0 9 | }, 10 | "description":"Geospatial situation awareness application", 11 | "name":"MAGE", 12 | "disclaimer":{ 13 | "show":false 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /responses/apiSuccessNoDisclaimer.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "provision": { 4 | "strategy":"uid" 5 | }, 6 | "authenticationStrategies":{ 7 | "local":{ 8 | "passwordMinLength":14 9 | } 10 | }, 11 | "version":{ 12 | "major":5, 13 | "minor":4, 14 | "micro":0 15 | }, 16 | "description":"Geospatial situation awareness application", 17 | "name":"MAGE", 18 | "disclaimer":{ 19 | "show":false 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /responses/gpkgWithMedia.gpkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/gpkgWithMedia.gpkg -------------------------------------------------------------------------------- /responses/icon27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/icon27.png -------------------------------------------------------------------------------- /responses/noResponse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | No 4 | 5 | 6 | -------------------------------------------------------------------------------- /responses/plantsAnimalsBuildingsIcons.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/plantsAnimalsBuildingsIcons.zip -------------------------------------------------------------------------------- /responses/registrationSuccess.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "DEVICEID", 3 | "uid": "DEVICEUUID", 4 | "name": "string", 5 | "description": "string", 6 | "registered": false 7 | } 8 | -------------------------------------------------------------------------------- /responses/settingsMap.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "webSearchType": "NOMINATIM", 4 | "webNominatimUrl": "https://nominatim.openstreetmap.org", 5 | "mobileSearchType": "NATIVE" 6 | } 7 | -------------------------------------------------------------------------------- /responses/slateTiles4326.gpkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/slateTiles4326.gpkg -------------------------------------------------------------------------------- /responses/testRecording.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/testRecording.mp4 -------------------------------------------------------------------------------- /responses/testResponse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | No 4 | 5 | 6 | -------------------------------------------------------------------------------- /responses/test_image_attachment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/test_image_attachment.png -------------------------------------------------------------------------------- /responses/test_marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/test_marker.png -------------------------------------------------------------------------------- /responses/testmovie.MOV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/testmovie.MOV -------------------------------------------------------------------------------- /responses/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ngageoint/mage-ios/4063c2061082b49ccfdd44bcbcbf2a566f6c7455/responses/tile.png -------------------------------------------------------------------------------- /responses/zeroForms.json: -------------------------------------------------------------------------------- 1 | 2 | [] 3 | -------------------------------------------------------------------------------- /sdk/IdpAuthentication.h: -------------------------------------------------------------------------------- 1 | // 2 | // IdpAuthentication.h 3 | // mage-ios-sdk 4 | // 5 | // Created by William Newman on 11/5/15. 6 | // Copyright © 2015 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Authentication.h" 11 | 12 | @interface IdpAuthentication : NSObject 13 | @end 14 | -------------------------------------------------------------------------------- /sdk/LdapAuthentication.h: -------------------------------------------------------------------------------- 1 | // 2 | // LdapAuthentication.h 3 | // mage-ios-sdk 4 | // 5 | // Created by William Newman on 6/21/19. 6 | // Copyright © 2019 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Authentication.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface LdapAuthentication : NSObject 15 | 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /sdk/LocalAuthentication.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocalAuthentication.h 3 | // mage-ios-sdk 4 | // 5 | // 6 | 7 | #import "Authentication.h" 8 | 9 | @interface LocalAuthentication : NSObject 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /sdk/MagePropertiesTransformer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MagePropertiesTransformer.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 9/13/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | @objc(MagePropertiesTransformer) 10 | class MagePropertiesTransformer: NSSecureUnarchiveFromDataTransformer { 11 | override class var allowedTopLevelClasses: [AnyClass] { 12 | return super.allowedTopLevelClasses + [SFGeometry.self] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /sdk/MagicalRecord+MAGE.h: -------------------------------------------------------------------------------- 1 | // 2 | // MagicalRecord+MAGE.h 3 | // mage-ios-sdk 4 | // 5 | // Created by William Newman on 11/17/15. 6 | // Copyright © 2015 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MagicalRecord (MAGE) 12 | 13 | +(void) setupMageCoreDataStack; 14 | +(void) deleteAndSetupMageCoreDataStack; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /sdk/NSDate+Iso8601.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+Iso8601.h 3 | // mage-ios-sdk 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface NSDate (Iso8601) 10 | 11 | - (NSString *) iso8601String; 12 | 13 | + (NSDate *) dateFromIso8601String: (NSString *) iso8601String; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /sdk/NSString+Contains.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Contains.h 3 | // mage-ios-sdk 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface NSString (Contains) 10 | 11 | - (BOOL)safeContainsString:(NSString*)other; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /sdk/NSString+Contains.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Contains.m 3 | // mage-ios-sdk 4 | // 5 | // 6 | 7 | #import "NSString+Contains.h" 8 | 9 | @implementation NSString (Contains) 10 | 11 | - (BOOL)safeContainsString:(NSString*)other { 12 | NSRange range = [self rangeOfString:other]; 13 | return range.length != 0; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /sdk/NotificationRequester.h: -------------------------------------------------------------------------------- 1 | // 2 | // NotificationRequester.h 3 | // Pods 4 | // 5 | // Created by Dan Barela on 8/30/17. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @class Observation; 12 | @class Event; 13 | 14 | @interface NotificationRequester : NSObject 15 | 16 | + (void) observationPulled: (Observation *) observation; 17 | + (void) sendBulkNotificationCount: (NSUInteger) count inEvent: (Event *) event; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /sdk/ObservationPushDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservationPushDelegate.swift 3 | // MAGE 4 | // 5 | // Created by Daniel Barela on 11/18/21. 6 | // Copyright © 2021 National Geospatial Intelligence Agency. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol ObservationPushDelegate where Self: NSObject { 12 | func didPush(observation: Observation, success: Bool, error: Error?); 13 | } 14 | -------------------------------------------------------------------------------- /sdk/RouteMethod.m: -------------------------------------------------------------------------------- 1 | // 2 | // RouteMethod.m 3 | // mage-ios-sdk 4 | // 5 | // Created by Daniel Barela on 3/17/21. 6 | // Copyright © 2021 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import "RouteMethod.h" 10 | 11 | @implementation RouteMethod 12 | 13 | - (NSURL *) routeURL { 14 | return [NSURL URLWithString:self.route]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /sdk/Server5/AttachmentRoutes_Server5.h: -------------------------------------------------------------------------------- 1 | // 2 | // AttachmentRoutes_Server5.h 3 | // mage-ios-sdk 4 | // 5 | // Created by Daniel Barela on 3/17/21. 6 | // Copyright © 2021 National Geospatial-Intelligence Agency. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AttachmentRoutes.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface AttachmentRoutes_Server5 : AttachmentRoutes 15 | 16 | + (instancetype) singleton; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /sdk/ServerAuthentication.h: -------------------------------------------------------------------------------- 1 | // 2 | // ServerAuthentication.h 3 | // mage-ios-sdk 4 | // 5 | // 6 | 7 | #import 8 | #import "Authentication.h" 9 | 10 | @interface ServerAuthentication : NSObject 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /sdk/StoredPassword.h: -------------------------------------------------------------------------------- 1 | // 2 | // StoredPassword.h 3 | // mage-ios-sdk 4 | // 5 | // 6 | 7 | #import 8 | 9 | @interface StoredPassword : NSObject 10 | 11 | + (NSString *) retrieveStoredToken; 12 | + (NSString *) persistTokenToKeyChain: (NSString *) token; 13 | 14 | + (void) clearToken; 15 | + (void) clearPassword; 16 | 17 | + (NSString *) retrieveStoredPassword; 18 | + (NSString *) persistPasswordToKeyChain: (NSString *) password; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /sdk/mage-ios-sdk.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | mage-ios-sdk 23.xcdatamodel 7 | 8 | 9 | --------------------------------------------------------------------------------