├── .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 |
--------------------------------------------------------------------------------