├── .gitignore ├── LICENSE ├── README.md └── code ├── PPPShared ├── build.gradle └── src │ ├── androidMain │ └── kotlin │ │ ├── Coroutines.kt │ │ ├── api │ │ └── Api.kt │ │ └── db │ │ └── MobileDb.kt │ ├── androidTest │ └── kotlin │ │ ├── TestCoroutines.kt │ │ └── TestDb.kt │ ├── commonMain │ ├── kotlin │ │ ├── Coroutines.kt │ │ ├── api │ │ │ ├── Api.kt │ │ │ ├── HttpBinClient.kt │ │ │ └── NetworkClient.kt │ │ ├── db │ │ │ ├── DatabaseSchema.kt │ │ │ └── MobileDb.kt │ │ ├── extension │ │ │ └── StringExtensions.kt │ │ ├── interfaces │ │ │ ├── InsecureStorage.kt │ │ │ └── SecureStorage.kt │ │ ├── manager │ │ │ └── DeviceManager.kt │ │ ├── model │ │ │ ├── DeviceRequest.kt │ │ │ ├── LockState.kt │ │ │ ├── PairedDevice.kt │ │ │ ├── UserCredentials.kt │ │ │ └── UserToken.kt │ │ ├── presenter │ │ │ ├── BaseCoroutinePresenter.kt │ │ │ ├── CreateAccountPresenter.kt │ │ │ ├── DeviceAddPresenter.kt │ │ │ ├── DeviceDetailPresenter.kt │ │ │ ├── DeviceListPresenter.kt │ │ │ ├── LoginPresenter.kt │ │ │ └── WelcomePresenter.kt │ │ ├── ui │ │ │ ├── ButtonStyle.kt │ │ │ ├── CornerRadius.kt │ │ │ ├── FontSize.kt │ │ │ ├── FontStyle.kt │ │ │ ├── Margin.kt │ │ │ ├── PPPColor.kt │ │ │ ├── TextInputStyle.kt │ │ │ ├── TextStyle.kt │ │ │ └── UnderlineStyle.kt │ │ └── validator │ │ │ └── InputValidator.kt │ └── sqldelight │ │ └── no │ │ └── bakkenbaeck │ │ └── pppshared │ │ └── db │ │ └── StoredDevice.sq │ ├── commonTest │ └── kotlin │ │ ├── TestCoroutines.kt │ │ ├── TestDb.kt │ │ ├── ValidationTests.kt │ │ ├── mock │ │ ├── MockInsecureStorage.kt │ │ ├── MockNetworkClient.kt │ │ └── MockSecureStorage.kt │ │ └── presenter │ │ ├── CreateAccountTests.kt │ │ ├── DeviceAddTests.kt │ │ ├── DeviceDetailTests.kt │ │ ├── DeviceListTests.kt │ │ ├── LoginTests.kt │ │ └── WelcomeTests.kt │ ├── iosMain │ └── kotlin │ │ ├── Coroutines.kt │ │ ├── api │ │ └── Api.kt │ │ ├── db │ │ └── MobileDb.kt │ │ └── ui │ │ ├── PPPColor.kt │ │ └── TextStyleFonts.kt │ └── iosTest │ └── kotlin │ ├── TestCoroutines.kt │ └── TestDb.kt ├── android ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── no │ │ └── bakkenbaeck │ │ └── porchpirateprotector │ │ └── KeyStoreManagerTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── no │ │ │ └── bakkenbaeck │ │ │ └── porchpirateprotector │ │ │ ├── activity │ │ │ └── MainActivity.kt │ │ │ ├── adapter │ │ │ ├── DeviceListAdapter.kt │ │ │ └── IpListAdapter.kt │ │ │ ├── application │ │ │ └── PPPApplication.kt │ │ │ ├── extension │ │ │ ├── FragmentExtensions.kt │ │ │ ├── PPPColorExtensions.kt │ │ │ └── ProgressBarExtensions.kt │ │ │ ├── fragment │ │ │ ├── AddDeviceFragment.kt │ │ │ ├── CreateAccountFragment.kt │ │ │ ├── DeviceDetailFragment.kt │ │ │ ├── DeviceListFragment.kt │ │ │ ├── LoginFragment.kt │ │ │ └── WelcomeFragment.kt │ │ │ └── manager │ │ │ ├── KeyStoreManager.kt │ │ │ └── SharedPreferencesManager.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ ├── ic_add_black_24dp.xml │ │ └── ic_launcher_background.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── fragment_create_account.xml │ │ ├── fragment_device_add.xml │ │ ├── fragment_device_detail.xml │ │ ├── fragment_device_list.xml │ │ ├── fragment_login.xml │ │ ├── fragment_welcome.xml │ │ ├── list_item_ip_address.xml │ │ └── list_item_paired_device.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── navigation │ │ └── totes_not_a_storyboard.xml │ │ ├── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ └── network_security_config.xml │ └── test │ └── java │ └── no │ └── bakkenbaeck │ └── porchpirateprotector │ └── ExampleUnitTest.kt ├── build.gradle ├── codegen ├── ColorGenAndroid.kts ├── ColorGeniOS.kts └── DimenGenAndroid.kts ├── gradle.properties ├── gradle └── wrapper │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── iOS ├── PorchPirateProtector.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── PorchPirateProtector │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Colors │ │ │ ├── Contents.json │ │ │ ├── colorAccent.colorset │ │ │ │ └── Contents.json │ │ │ ├── colorAccentSelected.colorset │ │ │ │ └── Contents.json │ │ │ ├── colorPrimary.colorset │ │ │ │ └── Contents.json │ │ │ ├── colorPrimaryDark.colorset │ │ │ │ └── Contents.json │ │ │ ├── errorRed.colorset │ │ │ │ └── Contents.json │ │ │ ├── success.colorset │ │ │ │ └── Contents.json │ │ │ ├── textDark.colorset │ │ │ │ └── Contents.json │ │ │ ├── textLight.colorset │ │ │ │ └── Contents.json │ │ │ └── textMiddle.colorset │ │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DataController │ │ ├── Keychain.swift │ │ └── UserDefaultsWrapper.swift │ ├── DataSource │ │ ├── IPAddressDataSource.swift │ │ ├── PairedDeviceDataSource.swift │ │ └── SingleSelectionDataSource.swift │ ├── Extension │ │ ├── CGFloat+Conversion.swift │ │ ├── Optional+Empty.swift │ │ ├── UIImage+BackgroundColor.swift │ │ └── UIViewController+Error.swift │ ├── Info.plist │ ├── Protocol │ │ ├── Identifiable.swift │ │ ├── NibLoadable.swift │ │ ├── Segue.swift │ │ └── Weakable.swift │ ├── View │ │ ├── BannerView.swift │ │ ├── BannerView.xib │ │ ├── Buttons.swift │ │ ├── Cells │ │ │ ├── DeviceCell.swift │ │ │ └── IPAddressCell.swift │ │ ├── NibContainer.swift │ │ ├── TextInputView.swift │ │ └── TextInputView.xib │ └── ViewController │ │ ├── CreateAccountViewController.swift │ │ ├── DeviceAddViewController.swift │ │ ├── DeviceDetailViewController.swift │ │ ├── DeviceListViewController.swift │ │ ├── LoginViewController.swift │ │ ├── SeriouslyIFiledARadarAboutThisIn2013NavigationController.swift │ │ └── WelcomeViewController.swift └── PorchPirateProtectorTests │ ├── Info.plist │ ├── KeychainTests.swift │ └── PorchPirateProtectorTests.swift ├── server ├── Dockerfile ├── build.gradle ├── resources │ └── application.conf ├── scripts │ ├── docker_mysql_start.sh │ ├── docker_rebuild.sh │ └── docker_run.sh └── src │ └── no │ └── bakkenbaeck │ └── porchpirateprotector │ ├── Api.kt │ ├── Database.kt │ ├── PasswordHasher.kt │ ├── Server.kt │ └── model │ ├── Device.kt │ ├── PairingKey.kt │ └── User.kt └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/README.md -------------------------------------------------------------------------------- /code/PPPShared/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/build.gradle -------------------------------------------------------------------------------- /code/PPPShared/src/androidMain/kotlin/Coroutines.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/androidMain/kotlin/Coroutines.kt -------------------------------------------------------------------------------- /code/PPPShared/src/androidMain/kotlin/api/Api.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/androidMain/kotlin/api/Api.kt -------------------------------------------------------------------------------- /code/PPPShared/src/androidMain/kotlin/db/MobileDb.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/androidMain/kotlin/db/MobileDb.kt -------------------------------------------------------------------------------- /code/PPPShared/src/androidTest/kotlin/TestCoroutines.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/androidTest/kotlin/TestCoroutines.kt -------------------------------------------------------------------------------- /code/PPPShared/src/androidTest/kotlin/TestDb.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/androidTest/kotlin/TestDb.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/Coroutines.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/Coroutines.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/api/Api.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/api/Api.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/api/HttpBinClient.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/api/HttpBinClient.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/api/NetworkClient.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/api/NetworkClient.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/db/DatabaseSchema.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/db/DatabaseSchema.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/db/MobileDb.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/db/MobileDb.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/extension/StringExtensions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/extension/StringExtensions.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/interfaces/InsecureStorage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/interfaces/InsecureStorage.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/interfaces/SecureStorage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/interfaces/SecureStorage.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/manager/DeviceManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/manager/DeviceManager.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/model/DeviceRequest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/model/DeviceRequest.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/model/LockState.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/model/LockState.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/model/PairedDevice.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/model/PairedDevice.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/model/UserCredentials.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/model/UserCredentials.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/model/UserToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/model/UserToken.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/BaseCoroutinePresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/BaseCoroutinePresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/CreateAccountPresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/CreateAccountPresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/DeviceAddPresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/DeviceAddPresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/DeviceDetailPresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/DeviceDetailPresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/DeviceListPresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/DeviceListPresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/LoginPresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/LoginPresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/presenter/WelcomePresenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/presenter/WelcomePresenter.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/ButtonStyle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/ButtonStyle.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/CornerRadius.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/CornerRadius.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/FontSize.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/FontSize.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/FontStyle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/FontStyle.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/Margin.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/Margin.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/PPPColor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/PPPColor.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/TextInputStyle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/TextInputStyle.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/TextStyle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/TextStyle.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/ui/UnderlineStyle.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/ui/UnderlineStyle.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/kotlin/validator/InputValidator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/kotlin/validator/InputValidator.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonMain/sqldelight/no/bakkenbaeck/pppshared/db/StoredDevice.sq: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonMain/sqldelight/no/bakkenbaeck/pppshared/db/StoredDevice.sq -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/TestCoroutines.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/TestCoroutines.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/TestDb.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/TestDb.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/ValidationTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/ValidationTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/mock/MockInsecureStorage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/mock/MockInsecureStorage.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/mock/MockNetworkClient.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/mock/MockNetworkClient.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/mock/MockSecureStorage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/mock/MockSecureStorage.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/presenter/CreateAccountTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/presenter/CreateAccountTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/presenter/DeviceAddTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/presenter/DeviceAddTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/presenter/DeviceDetailTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/presenter/DeviceDetailTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/presenter/DeviceListTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/presenter/DeviceListTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/presenter/LoginTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/presenter/LoginTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/commonTest/kotlin/presenter/WelcomeTests.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/commonTest/kotlin/presenter/WelcomeTests.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosMain/kotlin/Coroutines.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosMain/kotlin/Coroutines.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosMain/kotlin/api/Api.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosMain/kotlin/api/Api.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosMain/kotlin/db/MobileDb.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosMain/kotlin/db/MobileDb.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosMain/kotlin/ui/PPPColor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosMain/kotlin/ui/PPPColor.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosMain/kotlin/ui/TextStyleFonts.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosMain/kotlin/ui/TextStyleFonts.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosTest/kotlin/TestCoroutines.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosTest/kotlin/TestCoroutines.kt -------------------------------------------------------------------------------- /code/PPPShared/src/iosTest/kotlin/TestDb.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/PPPShared/src/iosTest/kotlin/TestDb.kt -------------------------------------------------------------------------------- /code/android/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/build.gradle -------------------------------------------------------------------------------- /code/android/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/proguard-rules.pro -------------------------------------------------------------------------------- /code/android/src/androidTest/java/no/bakkenbaeck/porchpirateprotector/KeyStoreManagerTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/androidTest/java/no/bakkenbaeck/porchpirateprotector/KeyStoreManagerTest.kt -------------------------------------------------------------------------------- /code/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/activity/MainActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/activity/MainActivity.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/adapter/DeviceListAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/adapter/DeviceListAdapter.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/adapter/IpListAdapter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/adapter/IpListAdapter.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/application/PPPApplication.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/application/PPPApplication.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/extension/FragmentExtensions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/extension/FragmentExtensions.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/extension/PPPColorExtensions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/extension/PPPColorExtensions.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/extension/ProgressBarExtensions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/extension/ProgressBarExtensions.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/AddDeviceFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/AddDeviceFragment.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/CreateAccountFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/CreateAccountFragment.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/DeviceDetailFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/DeviceDetailFragment.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/DeviceListFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/DeviceListFragment.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/LoginFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/LoginFragment.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/WelcomeFragment.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/fragment/WelcomeFragment.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/manager/KeyStoreManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/manager/KeyStoreManager.kt -------------------------------------------------------------------------------- /code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/manager/SharedPreferencesManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/java/no/bakkenbaeck/porchpirateprotector/manager/SharedPreferencesManager.kt -------------------------------------------------------------------------------- /code/android/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/drawable-v24/ic_launcher_foreground.xml -------------------------------------------------------------------------------- /code/android/src/main/res/drawable/ic_add_black_24dp.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/drawable/ic_add_black_24dp.xml -------------------------------------------------------------------------------- /code/android/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/drawable/ic_launcher_background.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/fragment_create_account.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/fragment_create_account.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/fragment_device_add.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/fragment_device_add.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/fragment_device_detail.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/fragment_device_detail.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/fragment_device_list.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/fragment_device_list.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/fragment_login.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/fragment_login.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/fragment_welcome.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/fragment_welcome.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/list_item_ip_address.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/list_item_ip_address.xml -------------------------------------------------------------------------------- /code/android/src/main/res/layout/list_item_paired_device.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/layout/list_item_paired_device.xml -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /code/android/src/main/res/navigation/totes_not_a_storyboard.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/navigation/totes_not_a_storyboard.xml -------------------------------------------------------------------------------- /code/android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /code/android/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/values/dimens.xml -------------------------------------------------------------------------------- /code/android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /code/android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /code/android/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/main/res/xml/network_security_config.xml -------------------------------------------------------------------------------- /code/android/src/test/java/no/bakkenbaeck/porchpirateprotector/ExampleUnitTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/android/src/test/java/no/bakkenbaeck/porchpirateprotector/ExampleUnitTest.kt -------------------------------------------------------------------------------- /code/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/build.gradle -------------------------------------------------------------------------------- /code/codegen/ColorGenAndroid.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/codegen/ColorGenAndroid.kts -------------------------------------------------------------------------------- /code/codegen/ColorGeniOS.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/codegen/ColorGeniOS.kts -------------------------------------------------------------------------------- /code/codegen/DimenGenAndroid.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/codegen/DimenGenAndroid.kts -------------------------------------------------------------------------------- /code/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/gradle.properties -------------------------------------------------------------------------------- /code/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /code/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/gradlew -------------------------------------------------------------------------------- /code/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/gradlew.bat -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/AppDelegate.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorAccent.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorAccent.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorAccentSelected.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorAccentSelected.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorPrimary.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorPrimary.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorPrimaryDark.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/colorPrimaryDark.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/errorRed.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/errorRed.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/success.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/success.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/textDark.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/textDark.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/textLight.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/textLight.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Colors/textMiddle.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Colors/textMiddle.colorset/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/DataController/Keychain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/DataController/Keychain.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/DataController/UserDefaultsWrapper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/DataController/UserDefaultsWrapper.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/DataSource/IPAddressDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/DataSource/IPAddressDataSource.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/DataSource/PairedDeviceDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/DataSource/PairedDeviceDataSource.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/DataSource/SingleSelectionDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/DataSource/SingleSelectionDataSource.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Extension/CGFloat+Conversion.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Extension/CGFloat+Conversion.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Extension/Optional+Empty.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Extension/Optional+Empty.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Extension/UIImage+BackgroundColor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Extension/UIImage+BackgroundColor.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Extension/UIViewController+Error.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Extension/UIViewController+Error.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Info.plist -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Protocol/Identifiable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Protocol/Identifiable.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Protocol/NibLoadable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Protocol/NibLoadable.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Protocol/Segue.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Protocol/Segue.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/Protocol/Weakable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/Protocol/Weakable.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/BannerView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/BannerView.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/BannerView.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/BannerView.xib -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/Buttons.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/Buttons.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/Cells/DeviceCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/Cells/DeviceCell.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/Cells/IPAddressCell.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/Cells/IPAddressCell.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/NibContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/NibContainer.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/TextInputView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/TextInputView.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/View/TextInputView.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/View/TextInputView.xib -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/CreateAccountViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/CreateAccountViewController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/DeviceAddViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/DeviceAddViewController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/DeviceDetailViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/DeviceDetailViewController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/DeviceListViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/DeviceListViewController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/LoginViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/LoginViewController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/SeriouslyIFiledARadarAboutThisIn2013NavigationController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/SeriouslyIFiledARadarAboutThisIn2013NavigationController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtector/ViewController/WelcomeViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtector/ViewController/WelcomeViewController.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtectorTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtectorTests/Info.plist -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtectorTests/KeychainTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtectorTests/KeychainTests.swift -------------------------------------------------------------------------------- /code/iOS/PorchPirateProtectorTests/PorchPirateProtectorTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/iOS/PorchPirateProtectorTests/PorchPirateProtectorTests.swift -------------------------------------------------------------------------------- /code/server/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/Dockerfile -------------------------------------------------------------------------------- /code/server/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/build.gradle -------------------------------------------------------------------------------- /code/server/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/resources/application.conf -------------------------------------------------------------------------------- /code/server/scripts/docker_mysql_start.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/scripts/docker_mysql_start.sh -------------------------------------------------------------------------------- /code/server/scripts/docker_rebuild.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/scripts/docker_rebuild.sh -------------------------------------------------------------------------------- /code/server/scripts/docker_run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/scripts/docker_run.sh -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/Api.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/Api.kt -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/Database.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/Database.kt -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/PasswordHasher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/PasswordHasher.kt -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/Server.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/Server.kt -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/model/Device.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/model/Device.kt -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/model/PairingKey.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/model/PairingKey.kt -------------------------------------------------------------------------------- /code/server/src/no/bakkenbaeck/porchpirateprotector/model/User.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/server/src/no/bakkenbaeck/porchpirateprotector/model/User.kt -------------------------------------------------------------------------------- /code/settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bakkenbaeck/PorchPirateProtector/HEAD/code/settings.gradle --------------------------------------------------------------------------------