├── fastlane
├── metadata
│ ├── en-US
│ │ ├── name.txt
│ │ ├── marketing_url.txt
│ │ ├── release_notes.txt
│ │ ├── subtitle.txt
│ │ ├── promotional_text.txt
│ │ ├── apple_tv_privacy_policy.txt
│ │ ├── privacy_url.txt
│ │ ├── support_url.txt
│ │ ├── keywords.txt
│ │ └── description.txt
│ ├── primary_first_sub_category.txt
│ ├── secondary_category.txt
│ ├── copyright.txt
│ ├── primary_second_sub_category.txt
│ ├── secondary_first_sub_category.txt
│ ├── secondary_second_sub_category.txt
│ ├── primary_category.txt
│ └── review_information
│ │ ├── first_name.txt
│ │ ├── last_name.txt
│ │ ├── demo_user.txt
│ │ ├── phone_number.txt
│ │ ├── email_address.txt
│ │ ├── demo_password.txt
│ │ └── notes.txt
├── swift
│ ├── formatting
│ │ ├── Brewfile
│ │ ├── Rakefile
│ │ └── Brewfile.lock.json
│ ├── FastlaneSwiftRunner
│ │ ├── FastlaneSwiftRunner.xcodeproj
│ │ │ └── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── README.txt
│ ├── Actions.swift
│ ├── Fastfile.swift
│ ├── RunnerArgument.swift
│ ├── Plugins.swift
│ ├── Appfile.swift
│ ├── SocketClientDelegateProtocol.swift
│ ├── Gymfile.swift
│ ├── Matchfile.swift
│ ├── upgrade_manifest.json
│ ├── Precheckfile.swift
│ ├── Snapshotfile.swift
│ ├── Screengrabfile.swift
│ ├── Deliverfile.swift
│ ├── RubyCommandable.swift
│ ├── Scanfile.swift
│ ├── main.swift
│ ├── PrecheckfileProtocol.swift
│ ├── ControlCommand.swift
│ └── MainProcess.swift
├── screenshots
│ ├── background.jpg
│ ├── en-US
│ │ └── title.strings
│ ├── fonts
│ │ └── Chalkduster.ttf
│ ├── Framefile.json
│ └── README.txt
└── Appfile.swift
├── AddameSPM
├── Sources
│ ├── EventView
│ │ ├── EventsState.swift
│ │ ├── EventsStateMocks.swift
│ │ └── EventsAction.swift
│ ├── UserClient
│ │ ├── UserClient.swift
│ │ └── Mocks.swift
│ ├── MapView
│ │ ├── LocationEnvironment.swift
│ │ ├── LocationSearchState.swift
│ │ └── LocationSearchAction.swift
│ ├── AttachmentS3Client
│ │ ├── AwsS3Manager.swift
│ │ └── Mocks.swift
│ ├── TabsView
│ │ ├── TabState.swift
│ │ ├── TabsAction.swift
│ │ └── TabsEnvironment.swift
│ ├── AsyncImageLoder
│ │ ├── ImagePicker.swift
│ │ ├── EnvironmentValues.swift
│ │ ├── ImageDraw.swift
│ │ ├── AssetExtractor.swift
│ │ ├── AsyncImage.swift
│ │ └── AsyncImageLoder.swift
│ ├── HangoutDetailsFeature
│ │ ├── Resources
│ │ │ ├── Media.xcassets
│ │ │ │ ├── Contents.json
│ │ │ │ └── hangout_dt.imageset
│ │ │ │ │ ├── hangout_dt.jpg
│ │ │ │ │ └── Contents.json
│ │ │ ├── hangout_bc.png
│ │ │ └── hangout_dt.jpg
│ │ ├── EventDetailsState.swift
│ │ ├── EventDetailsAction.swift
│ │ └── EventDetailsOverlayReducer.swift
│ ├── EventFormView
│ │ ├── EventFormEnvironment.swift
│ │ ├── EventFormState.swift
│ │ └── EventFormAction.swift
│ ├── ContactsView
│ │ ├── ContactRowAction.swift
│ │ ├── ContactRowState.swift
│ │ ├── ContactsEnvironment.swift
│ │ ├── ContactsState.swift
│ │ ├── ContactListAction.swift
│ │ ├── ContactsAction.swift
│ │ ├── ContactRowReducer.swift
│ │ └── ContactListView.swift
│ ├── ComposableArchitectureHelpers
│ │ └── WebSocketId.swift
│ ├── Logger
│ │ └── Extension+Logger.swift
│ ├── CoreDataStore
│ │ ├── Entities
│ │ │ └── Contacts
│ │ │ │ ├── ContactEntity+CoreDataClass.swift
│ │ │ │ ├── ContactEntity+CoreDataProperties.swift
│ │ │ │ └── ContactEntityExtension.swift
│ │ ├── Models
│ │ │ └── AddaModel.xcdatamodeld
│ │ │ │ └── AddaModel.xcdatamodel
│ │ │ │ └── contents
│ │ └── CoreDataStore.swift
│ ├── ContactClientLive
│ │ ├── Live.swift
│ │ └── FlatMapLatest.swift
│ ├── ChatClient
│ │ ├── Mocks.swift
│ │ └── ChatClient.swift
│ ├── MyEventsView
│ │ ├── MyEventsAction.swift
│ │ ├── MyEventsListView.swift
│ │ └── EventRowView.swift
│ ├── SettingsFeature
│ │ ├── TermsWebView.swift
│ │ ├── SettingsNavigationLink.swift
│ │ ├── SettingsRow.swift
│ │ └── NotificationsSettingsView.swift
│ ├── LocationSearchClient
│ │ ├── Client.swift
│ │ ├── Mock.swift
│ │ └── Live.swift
│ ├── ConversationsView
│ │ ├── ConversationsState.swift
│ │ ├── ConversationEnvironment.swift
│ │ └── ConversationsAction.swift
│ ├── ConversationClient
│ │ ├── Mocks.swift
│ │ └── ConversationClient.swift
│ ├── ChatView
│ │ ├── ChatState.swift
│ │ ├── ChatAction.swift
│ │ ├── ChatListView.swift
│ │ └── ChatEnvironment.swift
│ ├── EventClient
│ │ ├── Mocks.swift
│ │ └── EventClient.swift
│ ├── AuthenticationView
│ │ ├── PhoneNumberKit+Extension.swift
│ │ └── PhoneNumberTextFieldView.swift
│ ├── ChatClientLive
│ │ └── Live.swift
│ ├── CombineHelpers
│ │ └── Combine.swift
│ ├── ContactClient
│ │ └── Mocks.swift
│ ├── CoreDataClient
│ │ └── CoreDataClient.swift
│ ├── EventClientLive
│ │ └── Live.swift
│ ├── ProfileView
│ │ ├── ProfileAction.swift
│ │ ├── ProfileState.swift
│ │ └── File.swift
│ ├── APIClient
│ │ ├── URLRequest+Extension.swift
│ │ ├── UserClient.swift
│ │ └── APIClient.swift
│ ├── DeviceClient
│ │ └── DeviceClicnt.swift
│ ├── UserClientLive
│ │ └── Live.swift
│ ├── RegisterFormFeature
│ │ ├── RegisterFormView.swift
│ │ └── LocationPermissionView.swift
│ └── ConversationClientLive
│ │ └── Live.swift
├── README.md
├── .gitignore
├── Tests
│ ├── MapViewTests
│ │ └── MapViewTests.swift
│ └── AppFeatureTests
│ │ └── AppFeatureTests.swift
└── .swiftpm
│ └── xcode
│ ├── package.xcworkspace
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ └── xcschemes
│ ├── EventViewTests.xcscheme
│ ├── AppFeatureTests.xcscheme
│ ├── EventFormViewTests.xcscheme
│ ├── ContactsViewTests.xcscheme
│ ├── ChatView.xcscheme
│ ├── TabsView.xcscheme
│ ├── EventView.xcscheme
│ ├── EventClient.xcscheme
│ ├── ProfileView.xcscheme
│ ├── Event.xcscheme
│ ├── SettingsView.xcscheme
│ ├── SharedModels.xcscheme
│ ├── ContactClient.xcscheme
│ ├── EventFormView.xcscheme
│ ├── SwiftUIHelpers.xcscheme
│ ├── EventClientLive.xcscheme
│ ├── KeychainService.xcscheme
│ ├── AttachmentClient.xcscheme
│ ├── SwiftUIExtension.xcscheme
│ ├── ContactClientLive.xcscheme
│ ├── PathMonitorClient.xcscheme
│ ├── AuthenticationView.xcscheme
│ └── AppFeature.xcscheme
├── Gemfile
├── Addame
├── Assets.xcassets
│ ├── Contents.json
│ ├── AppIcon.appiconset
│ │ ├── Icon-App-20x20@1x.png
│ │ ├── Icon-App-20x20@2x.png
│ │ ├── Icon-App-20x20@3x.png
│ │ ├── Icon-App-29x29@1x.png
│ │ ├── Icon-App-29x29@2x.png
│ │ ├── Icon-App-29x29@3x.png
│ │ ├── Icon-App-40x40@1x.png
│ │ ├── Icon-App-40x40@2x.png
│ │ ├── Icon-App-40x40@3x.png
│ │ ├── Icon-App-60x60@2x.png
│ │ ├── Icon-App-60x60@3x.png
│ │ ├── Icon-App-76x76@1x.png
│ │ ├── Icon-App-76x76@2x.png
│ │ ├── ItunesArtwork@2x.png
│ │ └── Icon-App-83.5x83.5@2x.png
│ └── AccentColor.colorset
│ │ └── Contents.json
├── Preview Content
│ └── Preview Assets.xcassets
│ │ └── Contents.json
├── Addame.entitlements
├── Configs
│ ├── ProductionCI.xcconfig
│ ├── DevelopmentCI.xcconfig
│ └── Environment.swift
└── Addame.swift
├── Addame.xcworkspace
├── xcshareddata
│ └── IDEWorkspaceChecks.plist
└── contents.xcworkspacedata
├── .github
└── workflows
│ └── swift.yml
├── .swiftlint.yml
├── .swift-format
└── README.md
/fastlane/metadata/en-US/name.txt:
--------------------------------------------------------------------------------
1 | Adda2
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/marketing_url.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/release_notes.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/subtitle.txt:
--------------------------------------------------------------------------------
1 | Adda
2 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/EventView/EventsState.swift:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/UserClient/UserClient.swift:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/promotional_text.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/primary_first_sub_category.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/secondary_category.txt:
--------------------------------------------------------------------------------
1 | TRAVEL
2 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/MapView/LocationEnvironment.swift:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/copyright.txt:
--------------------------------------------------------------------------------
1 | 2020 Saroar Khandoker
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/apple_tv_privacy_policy.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/primary_second_sub_category.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/secondary_first_sub_category.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/secondary_second_sub_category.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/swift/formatting/Brewfile:
--------------------------------------------------------------------------------
1 | brew("swiftformat")
2 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AttachmentS3Client/AwsS3Manager.swift:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/primary_category.txt:
--------------------------------------------------------------------------------
1 | SOCIAL_NETWORKING
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/first_name.txt:
--------------------------------------------------------------------------------
1 | Saroar
2 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/last_name.txt:
--------------------------------------------------------------------------------
1 | Khandoker
2 |
--------------------------------------------------------------------------------
/AddameSPM/README.md:
--------------------------------------------------------------------------------
1 | # Addame
2 |
3 | A description of this package.
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/privacy_url.txt:
--------------------------------------------------------------------------------
1 | https://addame.com/v1/privacy
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/support_url.txt:
--------------------------------------------------------------------------------
1 | https://addame.com/v1/terms
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/demo_user.txt:
--------------------------------------------------------------------------------
1 | you mobile number
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/phone_number.txt:
--------------------------------------------------------------------------------
1 | +79218821217
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/email_address.txt:
--------------------------------------------------------------------------------
1 | saroar9@gmail.com
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/demo_password.txt:
--------------------------------------------------------------------------------
1 | will get password via sms
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/review_information/notes.txt:
--------------------------------------------------------------------------------
1 | Mobile auth login with a one-time password
2 |
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/fastlane/screenshots/background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/fastlane/screenshots/background.jpg
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/keywords.txt:
--------------------------------------------------------------------------------
1 | walk,nearby now, Area news,neighbours,Новости района,друг,соседи,隣人,гулять,আড্ডা,会う,私の周り
2 |
--------------------------------------------------------------------------------
/fastlane/screenshots/en-US/title.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/fastlane/screenshots/en-US/title.strings
--------------------------------------------------------------------------------
/fastlane/screenshots/fonts/Chalkduster.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/fastlane/screenshots/fonts/Chalkduster.ttf
--------------------------------------------------------------------------------
/Addame/Preview Content/Preview Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/TabsView/TabState.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TabsState.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 06.04.2021.
6 | //
7 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AsyncImageLoder/ImagePicker.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ImagePicker.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 26.01.2021.
6 | //
7 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/HangoutDetailsFeature/Resources/Media.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/AddameSPM/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /.build
3 | /Packages
4 | /*.xcodeproj
5 | xcuserdata/
6 | DerivedData/
7 | .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
8 |
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png
--------------------------------------------------------------------------------
/AddameSPM/Sources/HangoutDetailsFeature/Resources/hangout_bc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/AddameSPM/Sources/HangoutDetailsFeature/Resources/hangout_bc.png
--------------------------------------------------------------------------------
/AddameSPM/Sources/HangoutDetailsFeature/Resources/hangout_dt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/AddameSPM/Sources/HangoutDetailsFeature/Resources/hangout_dt.jpg
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/Addame/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/AddameSPM/Sources/EventFormView/EventFormEnvironment.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EventFormEnvironment.swift
3 | // EventFormEnvironment
4 | //
5 | // Created by Saroar Khandoker on 06.08.2021.
6 | //
7 |
8 |
--------------------------------------------------------------------------------
/Addame/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ContactsView/ContactRowAction.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContactRowAction.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 25.06.2021.
6 | //
7 |
8 | import ChatView
9 | import Contacts
10 | import AddaSharedModels
11 |
12 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/HangoutDetailsFeature/Resources/Media.xcassets/hangout_dt.imageset/hangout_dt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AddaMeSPB/AddaMeIOS/HEAD/AddameSPM/Sources/HangoutDetailsFeature/Resources/Media.xcassets/hangout_dt.imageset/hangout_dt.jpg
--------------------------------------------------------------------------------
/AddameSPM/Sources/ComposableArchitectureHelpers/WebSocketId.swift:
--------------------------------------------------------------------------------
1 | //
2 | // WebSocketId.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 28.06.2021.
6 | //
7 |
8 | import Foundation
9 |
10 | public struct WebSocketId: Hashable {
11 | public init() {}
12 | }
13 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ContactsView/ContactRowState.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContactRowState.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 26.06.2021.
6 | //
7 |
8 | import ChatView
9 | import ComposableArchitecture
10 | import Contacts
11 |
12 | import AddaSharedModels
13 |
14 |
15 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/Logger/Extension+Logger.swift:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | extension Logger {
4 | private static var subsystem = Bundle.main.bundleIdentifier!
5 |
6 | /// Logs the view cycles like viewDidLoad.
7 | static let viewCycle = Logger(subsystem: subsystem, category: "viewcycle")
8 | }
9 |
--------------------------------------------------------------------------------
/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Addame/Addame.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/TabsView/TabsAction.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TabAction.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 05.04.2021.
6 | //
7 |
8 | import EventView
9 | import ConversationsView
10 | import ProfileView
11 | import Foundation
12 |
13 |
14 | import SwiftUI
15 | import AddaSharedModels
16 |
--------------------------------------------------------------------------------
/Addame.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ContactsView/ContactsEnvironment.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContactsEnvironment.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 13.05.2021.
6 | //
7 |
8 | import Combine
9 | import ComposableArchitecture
10 | import CoreDataClient
11 | import CoreDataStore
12 | import Foundation
13 |
14 |
15 |
--------------------------------------------------------------------------------
/AddameSPM/Tests/MapViewTests/MapViewTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // File.swift
3 | // File
4 | //
5 | // Created by Saroar Khandoker on 01.09.2021.
6 | //
7 |
8 | import ComposableArchitecture
9 | import XCTest
10 |
11 | @testable import MapView
12 |
13 | class MapViewTests: XCTestCase {
14 | let scheduler = DispatchQueue.test
15 | }
16 |
--------------------------------------------------------------------------------
/AddameSPM/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/CoreDataStore/Entities/Contacts/ContactEntity+CoreDataClass.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContactEntity+CoreDataClass.swift
3 | // AddaMeIOS
4 | //
5 | // Created by Saroar Khandoker on 01.12.2020.
6 | //
7 | //
8 |
9 | import CoreData
10 | import Foundation
11 |
12 | @objc(ContactEntity)
13 | public class ContactEntity: NSManagedObject {}
14 |
--------------------------------------------------------------------------------
/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Addame.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ContactClientLive/Live.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Live.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 11.03.2021.
6 | //
7 |
8 | import Combine
9 | import CombineContacts
10 | import Contacts
11 | import CoreData
12 | import CoreDataStore
13 | import Foundation
14 | import InfoPlist
15 | import PhoneNumberKit
16 | import AddaSharedModels
17 | import URLRouting
18 | import BSON
19 |
20 |
--------------------------------------------------------------------------------
/fastlane/screenshots/Framefile.json:
--------------------------------------------------------------------------------
1 | {
2 | "device_frame_version": "latest",
3 | "default": {
4 | "keyword": {
5 | "font": "./fonts/Chalkduster.ttf"
6 | },
7 | "title": {
8 | "color": "#FFFFFF"
9 | },
10 | "padding": 50,
11 | "title_below_image": false,
12 | "background": "./background.jpg",
13 | "show_complete_frame": true
14 | },
15 | "data": []
16 | }
17 |
--------------------------------------------------------------------------------
/AddameSPM/Tests/AppFeatureTests/AppFeatureTests.swift:
--------------------------------------------------------------------------------
1 | import XCTest
2 |
3 | @testable import AppFeature
4 |
5 | final class AppFeatureTests: XCTestCase {
6 | func testExample() {
7 | // This is an example of a functional test case.
8 | // Use XCTAssert and related functions to verify your tests produce the correct
9 | // results.
10 | // XCTAssertEqual(Addame().text, "Hello, World!")
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ChatClient/Mocks.swift:
--------------------------------------------------------------------------------
1 | ////
2 | //// Mocks.swift
3 | ////
4 | ////
5 | //// Created by Saroar Khandoker on 05.03.2021.
6 | ////
7 | //
8 | // import Combine
9 | // import Foundation
10 | // import FoundationExtension
11 | //
12 | // import AddaSharedModels
13 | // import BSON
14 | //
15 | // extension ChatClient {
16 | // public static let happyPath = Self(
17 | // messages: { _, _ in MessagePage.draff }
18 | // )
19 | // }
20 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/MyEventsView/MyEventsAction.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MyEventsAction.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 15.06.2022.
6 | //
7 |
8 | import AddaSharedModels
9 |
10 | //public enum MyEventAction: Equatable {}
11 | //
12 | //public enum MyEventsAction: Equatable {
13 | // case onApper
14 | // case event(id: EventResponse.ID, action: MyEventAction)
15 | // case myEventsResponse(TaskResult)
16 | //}
17 |
--------------------------------------------------------------------------------
/fastlane/swift/FastlaneSwiftRunner/README.txt:
--------------------------------------------------------------------------------
1 | Don't modify the structure of this group including but not limited to:
2 | - renaming this group
3 | - adding sub groups
4 | - removing sub groups
5 | - adding new files
6 | - removing files
7 |
8 | If you modify anything in this folder, future fastlane upgrades may not be able to be applied automatically.
9 |
10 | If you need to add new groups, please add them at the root of the "Fastlane Runner" group.
11 |
--------------------------------------------------------------------------------
/Addame/Configs/ProductionCI.xcconfig:
--------------------------------------------------------------------------------
1 | //
2 | // Production.xcconfig
3 | // AddaMeIOS
4 | //
5 | // Created by Saroar Khandoker on 11.11.2020.
6 | //
7 |
8 | // Configuration settings file format documentation can be found at:
9 | // https://help.apple.com/xcode/#/dev745c5c974
10 |
11 | ROOT_URL = https:/$()/domain/v1
12 | WEB_SOCKET_URL = ws:/$()/domain:6060/v1/chat
13 |
14 | // Image Uploading to DigitalOcen
15 | ACCESS_KEY_ID = value
16 | SECRET_ACCESS_KEY = value
17 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/HangoutDetailsFeature/Resources/Media.xcassets/hangout_dt.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "hangout_dt.jpg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AttachmentS3Client/Mocks.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 |
3 | // swiftlint:disable line_length superfluous_disable_command
4 | extension AttachmentS3Client {
5 | public static let empty = Self(
6 | uploadImageToS3: { _, _, _ in "" }
7 | )
8 |
9 | public static let happyPath = Self(
10 | uploadImageToS3: { _, _, _ in "https://adda.nyc3.digitaloceanspaces.com/uploads/images/5fabb05d2470c17919b3c0e2/5fabb05d2470c17919b3c0e2_1605792619988.jpeg"
11 | }
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/Addame/Configs/DevelopmentCI.xcconfig:
--------------------------------------------------------------------------------
1 | //
2 | // Development.xcconfig
3 | // AddaMeIOS
4 | //
5 | // Created by Saroar Khandoker on 02.11.2020.
6 | //
7 |
8 | // Configuration settings file format documentation can be found at:
9 | // https://help.apple.com/xcode/#/dev745c5c974
10 |
11 | // Server URL
12 | ROOT_URL = http:/$()/localhost:8080/v1
13 | WEB_SOCKET_URL = ws:/$()/localhost:6060/v1/chat
14 |
15 | // Image Uploading to DigitalOcen
16 | ACCESS_KEY_ID = value
17 | SECRET_ACCESS_KEY = value
18 |
19 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AsyncImageLoder/EnvironmentValues.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EnvironmentValues+ImageCache.swift
3 | // AddaMeIOS
4 | //
5 | // Created by Saroar Khandoker on 31.08.2020.
6 | //
7 |
8 | import SwiftUI
9 |
10 | public struct ImageCacheKey: EnvironmentKey {
11 | public static let defaultValue: ImageCache = TemporaryImageCache()
12 | }
13 |
14 | extension EnvironmentValues {
15 | public var imageCache: ImageCache {
16 | get { self[ImageCacheKey.self] }
17 | set { self[ImageCacheKey.self] = newValue }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/fastlane/swift/formatting/Rakefile:
--------------------------------------------------------------------------------
1 | # frozen_string_literal: true
2 |
3 | task(default: %w[setup])
4 |
5 | task(setup: [:brew, :lint])
6 |
7 | task(:brew) do
8 | raise '`brew` is required. Please install brew. https://brew.sh/' unless system('which brew')
9 |
10 | puts('➡️ Brew')
11 | sh('brew bundle')
12 | end
13 |
14 | task(:lint) do
15 | Dir.chdir('..') do
16 | sh("swiftformat . --config formatting/.swiftformat --verbose --selfrequired waitWithPolling --exclude Fastfile.swift --swiftversion 4.0")
17 | end
18 | end
19 |
--------------------------------------------------------------------------------
/fastlane/Appfile.swift:
--------------------------------------------------------------------------------
1 | // The bundle identifier of your app
2 | var appIdentifier: String { return "com.addame.AddaMeIOS" }
3 | // Your Apple email address
4 | var appleID: String { return "saroarkhandoker@yahoo.com" }
5 |
6 | // App Store Connect Team ID
7 | var itcTeam: String? { return "119123163" }
8 | // Apple Developer Portal Team ID
9 | var teamID: String { return "6989658CU5" }
10 |
11 | var appVersion: String { return "1.0.0" }
12 | // For more information about the Appfile, see:
13 | // https://docs.fastlane.tools/advanced/#appfile
14 |
--------------------------------------------------------------------------------
/fastlane/screenshots/README.txt:
--------------------------------------------------------------------------------
1 | Put all screenshots you want to use inside the folder of its language (e.g. en-US).
2 | The device type will automatically be recognized using the image resolution. Apple TV screenshots
3 | should be stored in a subdirectory named appleTV with language folders inside of it. iMessage
4 | screenshots, like Apple TV screenshots, should also be stored in a subdirectory named iMessage
5 | with language folders inside of it.
6 |
7 | The screenshots can be named whatever you want, but keep in mind they are sorted alphabetically.
8 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/SettingsFeature/TermsWebView.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 | import WebKit
3 |
4 | public struct TermsAndPrivacyWebRepresentableView: UIViewRepresentable {
5 | let urlString: String?
6 |
7 | public func makeUIView(context _: Context) -> WKWebView {
8 | return WKWebView()
9 | }
10 |
11 | public func updateUIView(_ uiView: WKWebView, context _: Context) {
12 | if let safeString = urlString, let url = URL(string: safeString) {
13 | let request = URLRequest(url: url)
14 | uiView.load(request)
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/fastlane/swift/Actions.swift:
--------------------------------------------------------------------------------
1 | // Actions.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This autogenerated file will be overwritten or replaced when running "fastlane generate_swift"
5 | //
6 | // ** NOTE **
7 | // This file is provided by fastlane and WILL be overwritten in future updates
8 | // If you want to add extra functionality to this project, create a new file in a
9 | // new group so that it won't be marked for upgrade
10 | //
11 |
12 | import Foundation
13 |
14 | // Please don't remove the lines below
15 | // They are used to detect outdated files
16 | // FastlaneRunnerAPIVersion [0.9.56]
17 |
--------------------------------------------------------------------------------
/fastlane/swift/Fastfile.swift:
--------------------------------------------------------------------------------
1 | // This class is automatically included in FastlaneRunner during build
2 | // If you have a custom Fastfile.swift, this file will be replaced by it
3 | // Don't modify this file unless you are familiar with how fastlane's swift code generation works
4 | // *** This file will be overwritten or replaced during build time ***
5 |
6 | import Foundation
7 |
8 | open class Fastfile: LaneFile {
9 | override public init() {
10 | super.init()
11 | }
12 | }
13 |
14 | // Please don't remove the lines below
15 | // They are used to detect outdated files
16 | // FastlaneRunnerAPIVersion [0.9.1]
17 |
--------------------------------------------------------------------------------
/fastlane/swift/RunnerArgument.swift:
--------------------------------------------------------------------------------
1 | // RunnerArgument.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | //
5 | // ** NOTE **
6 | // This file is provided by fastlane and WILL be overwritten in future updates
7 | // If you want to add extra functionality to this project, create a new file in a
8 | // new group so that it won't be marked for upgrade
9 | //
10 |
11 | import Foundation
12 |
13 | struct RunnerArgument {
14 | let name: String
15 | let value: String
16 | }
17 |
18 | // Please don't remove the lines below
19 | // They are used to detect outdated files
20 | // FastlaneRunnerAPIVersion [0.9.2]
21 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/LocationSearchClient/Client.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LocalSearchClient.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 06.07.2021.
6 | //
7 |
8 | import ComposableArchitecture
9 | import MapKit
10 |
11 | public struct LocalSearchClient {
12 |
13 | public var search: @Sendable (MKLocalSearch.Request) -> AsyncStream
14 |
15 | public init(search: @escaping @Sendable (MKLocalSearch.Request) -> AsyncStream) {
16 | self.search = search
17 | }
18 |
19 | public struct Error: Swift.Error, Equatable {
20 | public init() {}
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/fastlane/swift/Plugins.swift:
--------------------------------------------------------------------------------
1 | // Plugins.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This autogenerated file will be overwritten or replaced when installing/updating plugins or running "fastlane generate_swift"
5 | //
6 | // ** NOTE **
7 | // This file is provided by fastlane and WILL be overwritten in future updates
8 | // If you want to add extra functionality to this project, create a new file in a
9 | // new group so that it won't be marked for upgrade
10 | //
11 |
12 | import Foundation
13 |
14 | // Please don't remove the lines below
15 | // They are used to detect outdated files
16 | // FastlaneRunnerAPIVersion [0.9.56]
17 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ConversationsView/ConversationsState.swift:
--------------------------------------------------------------------------------
1 | import ChatView
2 | import ComposableArchitecture
3 | import ContactsView
4 | import Foundation
5 | import AddaSharedModels
6 |
7 | extension Conversations.State {
8 | public static let placholderConversations = Self(
9 | isLoadingPage: true,
10 | conversations: .init(uniqueElements: ConversationOutPut.conversationsMock),
11 | chatState: .init(
12 | conversation: .exploreAreaDraff, currentUser: .withFirstName,
13 | websocketState: .init(user: .withFirstName)
14 | ),
15 | websocketState: .init(user: .withFirstName)
16 | )
17 | }
18 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ConversationClient/Mocks.swift:
--------------------------------------------------------------------------------
1 | ////
2 | //// Mocks.swift
3 | ////
4 | ////
5 | //// Created by Saroar Khandoker on 22.02.2021.
6 | ////
7 | //
8 | // import Combine
9 | // import Foundation
10 | // import FoundationExtension
11 | //
12 | // import AddaSharedModels
13 | //
14 | //// swiftlint:disable all
15 | // extension ConversationClient {
16 | // public static let happyPath = Self(
17 | // create: { _ in ConversationOutPut.runningDraff },
18 | // addUserToConversation: { _ in AddUser.draff },
19 | // list: { _ in ConversationsResponse.conversationResponseMock },
20 | // find: { _ in ConversationOutPut.exploreAreaDraff }
21 | // )
22 | // }
23 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/SettingsFeature/SettingsNavigationLink.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct SettingsNavigationLink: View where Destination: View {
4 | let destination: Destination
5 | let title: LocalizedStringKey
6 |
7 | var body: some View {
8 | SettingsRow {
9 | NavigationLink(
10 | destination: self.destination,
11 | label: {
12 | HStack {
13 | Text(self.title)
14 | .font(.system(size: 20, design: .rounded))
15 |
16 | Spacer()
17 | Image(systemName: "arrow.right")
18 | .font(.system(size: 20, design: .rounded))
19 | }
20 | }
21 | )
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/SettingsFeature/SettingsRow.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | public struct SettingsRow: View where Content: View {
4 | @Environment(\.colorScheme) var colorScheme
5 | let content: () -> Content
6 |
7 | public init(@ViewBuilder content: @escaping () -> Content) {
8 | self.content = content
9 | }
10 |
11 | public var body: some View {
12 | VStack(alignment: .leading) {
13 | self.content()
14 | .padding([.top, .bottom])
15 | Rectangle()
16 | .fill(Color.hex(self.colorScheme == .dark ? 0x7d7d7d : 0xEEEEEE))
17 | .frame(maxWidth: .infinity, minHeight: 2, idealHeight: 2, maxHeight: 2)
18 | }
19 | .padding(.horizontal)
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/fastlane/swift/Appfile.swift:
--------------------------------------------------------------------------------
1 | // Appfile.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // The bundle identifier of your app
5 | var appIdentifier: String { return "" }
6 | // Your Apple email address
7 | var appleID: String { return "" }
8 |
9 | // Developer Portal Team ID
10 | var teamID: String { return "" }
11 | var itcTeam: String? { return nil } // App Store Connect Team ID (may be nil if no team)
12 |
13 | // you can even provide different app identifiers, Apple IDs and team names per lane:
14 | // More information: https://docs.fastlane.tools/advanced/#appfile
15 |
16 | // Please don't remove the lines below
17 | // They are used to detect outdated files
18 | // FastlaneRunnerAPIVersion [0.9.1]
19 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ChatView/ChatState.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChatState.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 06.04.2021.
6 | //
7 |
8 | import ComposableArchitecture
9 | import AddaSharedModels
10 | import WebSocketReducer
11 |
12 | extension Chat.State {
13 | public static let placeholderMessages = Self(
14 | isLoadingPage: true,
15 | conversation: .lookingForAcompanyDraff,
16 | messages: .init(uniqueElements: MessagePage.draff.items),
17 | currentUser: .withFirstName,
18 | websocketState: .init(user: .withFirstName)
19 | )
20 |
21 | // (
22 | // currentUser
23 | // isLoadingPage: true,
24 | // messages: .init(uniqueElements: MessagePage.draff.items)
25 | // )
26 | }
27 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/EventClient/Mocks.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EventClient.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 25.01.2021.
6 | //
7 |
8 | import Combine
9 | import Foundation
10 |
11 | import AddaSharedModels
12 |
13 | // swiftlint:disable all
14 | extension EventClient {
15 | private static let data = Date(timeIntervalSince1970: 0)
16 | public static let empty = Self(
17 | events: { _ in EventsResponse.draffEmpty },
18 | create: { _ in EventResponse.emptyDraff },
19 | categoriesFetch: { CategoriesResponse.draff }
20 | )
21 |
22 | public static let happyPath = Self(
23 | events: { _ in EventsResponse.draff },
24 | create: { _ in EventResponse.runningDraff },
25 | categoriesFetch: { CategoriesResponse.draff }
26 | )
27 | }
28 |
--------------------------------------------------------------------------------
/fastlane/swift/SocketClientDelegateProtocol.swift:
--------------------------------------------------------------------------------
1 | // SocketClientDelegateProtocol.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | //
5 | // ** NOTE **
6 | // This file is provided by fastlane and WILL be overwritten in future updates
7 | // If you want to add extra functionality to this project, create a new file in a
8 | // new group so that it won't be marked for upgrade
9 | //
10 |
11 | import Foundation
12 |
13 | protocol SocketClientDelegateProtocol: class {
14 | func connectionsOpened()
15 | func connectionsClosed()
16 | func commandExecuted(serverResponse: SocketClientResponse, completion: (SocketClient) -> Void)
17 | }
18 |
19 | // Please don't remove the lines below
20 | // They are used to detect outdated files
21 | // FastlaneRunnerAPIVersion [0.9.2]
22 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ContactsView/ContactsState.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContactsAction.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 12.05.2021.
6 | //
7 |
8 | import ChatView
9 | import ComposableArchitecture
10 | import Contacts
11 |
12 | import AddaSharedModels
13 | import BSON
14 |
15 | // extension ContactsState {
16 | // var view: ContactsView.ViewState {
17 | // ContactsView.ViewState(
18 | // alert: self.alert,
19 | // contacts: self.contacts,
20 | // invalidPermission: self.invalidPermission,
21 | // isLoading: self.isLoading
22 | // )
23 | // }
24 | // }
25 |
26 | // swiftlint:disable line_length superfluous_disable_command
27 | extension ContactsReducer.State {
28 | public static let contactsPlaceholder = Self(isAuthorizedContacts: true)
29 | }
30 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/UserClient/Mocks.swift:
--------------------------------------------------------------------------------
1 | ////
2 | //// UserClient.swift
3 | ////
4 | ////
5 | //// Created by Saroar Khandoker on 27.01.2021.
6 | ////
7 | //
8 | // import Combine
9 | // import Foundation
10 | // import AddaSharedModels
11 | //
12 | // extension UserClient {
13 | // public static let happyPath = Self(
14 | // userMeHandler: { _ in UserOutput.withAttachments },
15 | // update: { _ in
16 | // UserOutput.withAttachments.fullName = "HappyPath"
17 | // return UserOutput.withAttachments
18 | // },
19 | // delete: { _ in true }
20 | // )
21 | //
22 | // public static let failed = Self(
23 | // userMeHandler: { _ in UserOutput.withAttachments },
24 | // update: { _ in UserOutput.withAttachments },
25 | // delete: { _ in false }
26 | // )
27 | // }
28 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AuthenticationView/PhoneNumberKit+Extension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PhoneNumberKit+Extension.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 06.10.2021.
6 | //
7 |
8 | import Foundation
9 | import PhoneNumberKit
10 |
11 | // extension PhoneNumberKit {
12 | //
13 | // public override convenience init() {
14 | // self.init(metadataCallback: PhoneNumberKit.bundleMetadataCallback)
15 | // }
16 | //
17 | // public static func bundleMetadataCallback() throws -> Data? {
18 | // guard let jsonPath = Bundle.main.path(forResource: "PhoneNumberMetadata", ofType: "json") else {
19 | // throw PhoneNumberError.metadataNotFound
20 | // }
21 | // let data = try Data(contentsOf: URL(fileURLWithPath: jsonPath))
22 | // return data
23 | // }
24 | //
25 | // }
26 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/MapView/LocationSearchState.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LocationSearchState.swift
3 | // LocationSearchState
4 | //
5 | // Created by Saroar Khandoker on 09.08.2021.
6 | //
7 |
8 | import Combine
9 | import ComposableArchitecture
10 | import Foundation
11 | import MapKit
12 | import Network
13 | import SwiftUI
14 | import SwiftUIExtension
15 | import AddaSharedModels
16 |
17 | extension LocationSearch.State {
18 | public static let locationSearchPlacholder = Self(
19 | searchTextInput: "",
20 | placeMark: Placemark(coordinate: CLLocationCoordinate2D(latitude: 60.006 , longitude: 30.38752), title: "улица Вавиловых, 8 к1, Saint Petersburg, Russia, 195257")
21 | )
22 | // "Тихорецкий проспект, 3БЕ Санкт-Петербург, Россия, 194064"
23 | }
24 |
25 | extension MKLocalSearchCompletion: Identifiable {}
26 |
--------------------------------------------------------------------------------
/fastlane/metadata/en-US/description.txt:
--------------------------------------------------------------------------------
1 | Use Adda to:
2 | -> Discover users who live nearby
3 | -> You can see nearby stories anonymously
4 | -> You can see any place on the map to explore new friends and events
5 | -> Locate content anywhere on the map
6 | -> Build your own local social network
7 | -> Be social, Be Friendly
8 |
9 | ADDA, a new way location-based network to meet new people and know more about them. With real-time events, hangouts, and communication. You can post what you want to do, nearby so people can see: Grabbing a taxi, selling, buying, events around you, hangouts, or helping out those near you are some examples. We believe with this app you can meet people in real life much easier. Our goal is to let people connect in real life as opposed to just connecting on your screen.
10 |
11 | Meeting new neighbors is easier than ever.
12 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/CoreDataStore/Entities/Contacts/ContactEntity+CoreDataProperties.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ContactEntity+CoreDataProperties.swift
3 | // AddaMeIOS
4 | //
5 | // Created by Saroar Khandoker on 01.12.2020.
6 | //
7 | //
8 |
9 | import CoreData
10 | import Foundation
11 |
12 | extension ContactEntity {
13 | @nonobjc public class func fetchRequest() -> NSFetchRequest {
14 | return NSFetchRequest(entityName: "ContactEntity")
15 | }
16 |
17 | @NSManaged public var avatar: String?
18 | @NSManaged public var fullName: String
19 | @NSManaged public var id: String?
20 | @NSManaged public var identifier: String
21 | @NSManaged public var isRegister: Bool
22 | @NSManaged public var phoneNumber: String
23 | @NSManaged public var userId: String
24 | }
25 |
26 | extension ContactEntity: Identifiable {}
27 |
--------------------------------------------------------------------------------
/fastlane/swift/Gymfile.swift:
--------------------------------------------------------------------------------
1 | // Gymfile.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This class is automatically included in FastlaneRunner during build
5 |
6 | // This autogenerated file will be overwritten or replaced during build time, or when you initialize `gym`
7 | //
8 | // ** NOTE **
9 | // This file is provided by fastlane and WILL be overwritten in future updates
10 | // If you want to add extra functionality to this project, create a new file in a
11 | // new group so that it won't be marked for upgrade
12 | //
13 |
14 | public class Gymfile: GymfileProtocol {
15 | // If you want to enable `gym`, run `fastlane gym init`
16 | // After, this file will be replaced with a custom implementation that contains values you supplied
17 | // during the `init` process, and you won't see this message
18 | }
19 |
20 | // Generated with fastlane 2.193.1
21 |
--------------------------------------------------------------------------------
/fastlane/swift/Matchfile.swift:
--------------------------------------------------------------------------------
1 | // Matchfile.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This class is automatically included in FastlaneRunner during build
5 |
6 | // This autogenerated file will be overwritten or replaced during build time, or when you initialize `match`
7 | //
8 | // ** NOTE **
9 | // This file is provided by fastlane and WILL be overwritten in future updates
10 | // If you want to add extra functionality to this project, create a new file in a
11 | // new group so that it won't be marked for upgrade
12 | //
13 |
14 | public class Matchfile: MatchfileProtocol {
15 | // If you want to enable `match`, run `fastlane match init`
16 | // After, this file will be replaced with a custom implementation that contains values you supplied
17 | // during the `init` process, and you won't see this message
18 | }
19 |
20 | // Generated with fastlane 2.193.1
21 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ChatClientLive/Live.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Live.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 05.03.2021.
6 | //
7 |
8 | //
9 | // import Combine
10 | // import Foundation
11 | // import InfoPlist
12 | // import AddaSharedModels
13 | // import URLRouting
14 | //
15 | // extension ChatClient {
16 | // public static var live: ChatClient = .init(
17 | // messages: { query, conversationId in
18 | // return try await ChatClient.apiClient.decodedResponse(
19 | // for: .chatEngine(
20 | // .conversations(
21 | // .conversation(id: conversationId, route: .messages(.list(query: query)))
22 | // )
23 | // ),
24 | // as: MessagePage.self,
25 | // decoder: .iso8601
26 | // ).value
27 | // }
28 | // )
29 | //
30 | // }
31 |
--------------------------------------------------------------------------------
/fastlane/swift/upgrade_manifest.json:
--------------------------------------------------------------------------------
1 | {"Actions.swift":"Autogenerated API","Fastlane.swift":"Autogenerated API","DeliverfileProtocol.swift":"Autogenerated API","GymfileProtocol.swift":"Autogenerated API","MatchfileProtocol.swift":"Autogenerated API","Plugins.swift":"Autogenerated API","PrecheckfileProtocol.swift":"Autogenerated API","ScanfileProtocol.swift":"Autogenerated API","ScreengrabfileProtocol.swift":"Autogenerated API","SnapshotfileProtocol.swift":"Autogenerated API","LaneFileProtocol.swift":"Fastfile Components","OptionalConfigValue.swift":"Fastfile Components","ControlCommand.swift":"Networking","RubyCommand.swift":"Networking","RubyCommandable.swift":"Networking","Runner.swift":"Networking","SocketClient.swift":"Networking","SocketClientDelegateProtocol.swift":"Networking","SocketResponse.swift":"Networking","main.swift":"Runner Code","ArgumentProcessor.swift":"Runner Code","RunnerArgument.swift":"Runner Code"}
--------------------------------------------------------------------------------
/fastlane/swift/Precheckfile.swift:
--------------------------------------------------------------------------------
1 | // Precheckfile.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This class is automatically included in FastlaneRunner during build
5 |
6 | // This autogenerated file will be overwritten or replaced during build time, or when you initialize `precheck`
7 | //
8 | // ** NOTE **
9 | // This file is provided by fastlane and WILL be overwritten in future updates
10 | // If you want to add extra functionality to this project, create a new file in a
11 | // new group so that it won't be marked for upgrade
12 | //
13 |
14 | public class Precheckfile: PrecheckfileProtocol {
15 | // If you want to enable `precheck`, run `fastlane precheck init`
16 | // After, this file will be replaced with a custom implementation that contains values you supplied
17 | // during the `init` process, and you won't see this message
18 | }
19 |
20 | // Generated with fastlane 2.193.1
21 |
--------------------------------------------------------------------------------
/fastlane/swift/Snapshotfile.swift:
--------------------------------------------------------------------------------
1 | // Snapshotfile.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This class is automatically included in FastlaneRunner during build
5 |
6 | // This autogenerated file will be overwritten or replaced during build time, or when you initialize `snapshot`
7 | //
8 | // ** NOTE **
9 | // This file is provided by fastlane and WILL be overwritten in future updates
10 | // If you want to add extra functionality to this project, create a new file in a
11 | // new group so that it won't be marked for upgrade
12 | //
13 |
14 | public class Snapshotfile: SnapshotfileProtocol {
15 | // If you want to enable `snapshot`, run `fastlane snapshot init`
16 | // After, this file will be replaced with a custom implementation that contains values you supplied
17 | // during the `init` process, and you won't see this message
18 | }
19 |
20 | // Generated with fastlane 2.193.1
21 |
--------------------------------------------------------------------------------
/fastlane/swift/Screengrabfile.swift:
--------------------------------------------------------------------------------
1 | // Screengrabfile.swift
2 | // Copyright (c) 2021 FastlaneTools
3 |
4 | // This class is automatically included in FastlaneRunner during build
5 |
6 | // This autogenerated file will be overwritten or replaced during build time, or when you initialize `screengrab`
7 | //
8 | // ** NOTE **
9 | // This file is provided by fastlane and WILL be overwritten in future updates
10 | // If you want to add extra functionality to this project, create a new file in a
11 | // new group so that it won't be marked for upgrade
12 | //
13 |
14 | public class Screengrabfile: ScreengrabfileProtocol {
15 | // If you want to enable `screengrab`, run `fastlane screengrab init`
16 | // After, this file will be replaced with a custom implementation that contains values you supplied
17 | // during the `init` process, and you won't see this message
18 | }
19 |
20 | // Generated with fastlane 2.193.1
21 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/LocationSearchClient/Mock.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Mocks.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 06.07.2021.
6 | //
7 |
8 | import ComposableArchitecture
9 | import MapKit
10 |
11 | extension LocalSearchClient {
12 | public static func unimplemented(
13 | search: @Sendable @escaping (MKLocalSearch.Request) -> AsyncStream = { _ in
14 | AsyncStream { continuation in
15 | // Here, you can send a mock response or end the stream immediately
16 | // For example, ending the stream immediately:
17 | continuation.finish()
18 |
19 | // Alternatively, you can yield a mock LocalSearchResponse if needed
20 | // continuation.yield(LocalSearchResponse(/* Mock data */))
21 | }
22 | }
23 | ) -> Self {
24 | Self(search: search)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/HangoutDetailsFeature/EventDetailsState.swift:
--------------------------------------------------------------------------------
1 | //
2 | // HangoutDetailsState.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 12.07.2021.
6 | //
7 |
8 | import ChatView
9 | import ComposableArchitecture
10 | import MapKit
11 | import MapView
12 | import AddaSharedModels
13 |
14 |
15 | extension HangoutDetails.State {
16 | public static let coordinate = CLLocationCoordinate2D(
17 | latitude: 60.00380571585201, longitude: 30.399472870547118
18 | )
19 |
20 | public static let event = EventResponse.bicyclingDraff
21 |
22 | public static let region = CoordinateRegion(
23 | center: coordinate,
24 | span: MKCoordinateSpan(latitudeDelta: 0.03, longitudeDelta: 0.03)
25 | )
26 |
27 | public static let placeHolderEvent = Self(
28 |
29 | event: event,
30 | pointsOfInterest: [.init(coordinate: coordinate, subtitle: "Awesome", title: "Cool")],
31 | region: region,
32 | chatMembers: 3
33 | )
34 | }
35 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AsyncImageLoder/ImageDraw.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ImageDraw.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 28.01.2021.
6 | //
7 |
8 | import Foundation
9 | import UIKit
10 |
11 | public class ImageDraw {
12 | private let renderer = UIGraphicsImageRenderer(size: CGSize(width: 400, height: 400))
13 | private var colors = [
14 | UIColor.red, UIColor.brown, UIColor.yellow, UIColor.green, UIColor.black, UIColor.blue
15 | ]
16 |
17 | public init() {}
18 |
19 | public func buildRandomImage() -> UIImage {
20 | colors.shuffle()
21 |
22 | let image = renderer.image { context in
23 | UIColor.darkGray.setStroke()
24 | context.stroke(renderer.format.bounds)
25 |
26 | let count = 400 / colors.count
27 |
28 | colors.enumerated().forEach { idx, color in
29 | color.setFill()
30 | context.fill(CGRect(x: idx * count, y: 0, width: idx * count, height: 400))
31 | }
32 | }
33 |
34 | return image
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/ChatClient/ChatClient.swift:
--------------------------------------------------------------------------------
1 | // import Combine
2 | // import Foundation
3 | // import FoundationExtension
4 | // import AddaSharedModels
5 | // import URLRouting
6 | // import InfoPlist
7 | //
8 | // public struct ChatClient {
9 | // // swiftlint:disable superfluous_disable_command
10 | // public static let apiClient: URLRoutingClient = .live(
11 | //
12 | // router: siteRouter.baseRequestData(
13 | // .init(
14 | // scheme: EnvironmentKeys.rootURL.scheme,
15 | // host: EnvironmentKeys.rootURL.host,
16 | // port: EnvironmentKeys.setPort(),
17 | // headers: ["Authorization": [ "Bearer "]]
18 | // )
19 | // )
20 | // )
21 | //
22 | // public typealias MessageListHandler = @Sendable (QueryItem, String) async throws -> MessagePage
23 | //
24 | // public let messages: MessageListHandler
25 | //
26 | // public init(
27 | // messages: @escaping MessageListHandler
28 | // ) {
29 | // self.messages = messages
30 | // }
31 | // }
32 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/AsyncImageLoder/AssetExtractor.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AssetExtractor.swift
3 | //
4 | //
5 | // Created by Saroar Khandoker on 26.01.2021.
6 | //
7 |
8 | import Foundation
9 |
10 | #if os(macOS)
11 |
12 | #else
13 | import UIKit
14 | #endif
15 |
16 | public enum AssetExtractor {
17 | public static func createLocalUrl(forImageNamed name: String) -> URL? {
18 | let fileManager = FileManager.default
19 | let cacheDirectory = fileManager.urls(
20 | for: .cachesDirectory, in: .userDomainMask
21 | )[0]
22 |
23 | let url = cacheDirectory.appendingPathComponent("\(name).png")
24 |
25 | guard fileManager.fileExists(atPath: url.path) else {
26 | guard
27 | let image = UIImage(named: name),
28 | let data = image.pngData()
29 | else {
30 | print(#line, self, "cant find image by name: \(name)")
31 | return nil
32 | }
33 |
34 | fileManager.createFile(atPath: url.path, contents: data, attributes: nil)
35 | return url
36 | }
37 |
38 | return url
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/AddameSPM/Sources/CombineHelpers/Combine.swift:
--------------------------------------------------------------------------------
1 | import Combine
2 |
3 | extension Publisher where Output == Never {
4 | public func setOutputType(to _: NewOutput.Type) -> AnyPublisher {
5 | func absurd(_: Never) -> A {}
6 | return map(absurd).eraseToAnyPublisher()
7 | }
8 | }
9 |
10 | extension Publisher {
11 | public func ignoreOutput(
12 | setOutputType _: NewOutput.Type
13 | ) -> AnyPublisher {
14 | return
15 | ignoreOutput()
16 | .setOutputType(to: NewOutput.self)
17 | }
18 |
19 | public func ignoreFailure(
20 | setFailureType _: NewFailure.Type
21 | ) -> AnyPublisher