Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Biometrics lock (Lock app with FaceID/TouchID/iOS Password) #2398

Closed
wants to merge 30 commits into from
Closed
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1afab5a
Biometrics lock concept
bgoncal Aug 17, 2023
a7564fb
Improvements on authentication handler and protection overlay
bgoncal Aug 21, 2023
1d757ca
Add localized placeholders
bgoncal Aug 21, 2023
c56f638
Lint autocorrect
bgoncal Nov 1, 2023
1335665
PR improvements and macOS taking in consideration
bgoncal Nov 2, 2023
f85e6ae
Linter autocorrect
bgoncal Nov 2, 2023
9fd70fa
Add missing self reference
bgoncal Nov 7, 2023
5850f35
Fix typo and move biometrics logic
bgoncal Nov 16, 2023
ce1f140
Added new UI for the "lock" screen, moved some code around to a prope…
bgoncal Nov 16, 2023
96cdfac
Biometrics lock concept
bgoncal Aug 17, 2023
fc15eac
Improvements on authentication handler and protection overlay
bgoncal Aug 21, 2023
b728292
Add localized placeholders
bgoncal Aug 21, 2023
fe07834
Lint autocorrect
bgoncal Nov 1, 2023
6ffe64c
PR improvements and macOS taking in consideration
bgoncal Nov 2, 2023
2a9ddda
Linter autocorrect
bgoncal Nov 2, 2023
1f0b692
Add missing self reference
bgoncal Nov 7, 2023
e051dd4
Fix typo and move biometrics logic
bgoncal Nov 16, 2023
63c9c46
Added new UI for the "lock" screen, moved some code around to a prope…
bgoncal Nov 16, 2023
8c656d3
Merge branch 'Biometric-lock-concept' of github.com:bgoncal/HA-iOS in…
bgoncal Dec 4, 2023
9f1a418
Merge branch 'master' into Biometric-lock-concept
bgoncal Dec 5, 2023
75982af
Removed mac implementation and moved to SwiftUI for iOS
bgoncal Dec 5, 2023
27cf8ac
Present on top most controller
bgoncal Dec 5, 2023
97839c3
Linter
bgoncal Dec 5, 2023
77e5077
Present biometric lock on window level
bgoncal Dec 5, 2023
27e2a63
Remove unneeded check
bgoncal Dec 6, 2023
2bc8f60
Improve logic to hide security toggle for mac
bgoncal Dec 6, 2023
072af4e
Use camel case for spacing values
bgoncal Dec 6, 2023
6674456
Auto disable biometric lock when delete all servers
bgoncal Dec 6, 2023
eec44b0
Re-add hebrew and estonian languages
bgoncal Dec 6, 2023
5dbb72e
Merge branch 'master' into Biometric-lock-concept
bgoncal Dec 7, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ on:
- master

env:
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.0.1.app/Contents/Developer
FASTLANE_SKIP_UPDATE_CHECK: true
FASTLANE_XCODE_LIST_TIMEOUT: 60
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60
HOMEBREW_NO_INSTALL_CLEANUP: TRUE
BUNDLE_PATH: vendor/bundle

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

jobs:
lint:
runs-on: ubuntu-latest
Expand All @@ -39,7 +43,7 @@ jobs:
--lint --config .swiftformat .

test:
runs-on: macos-12
runs-on: macos-13
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -104,7 +108,7 @@ jobs:

size:
if: ${{ github.event_name == 'pull_request' }}
runs-on: macos-12
runs-on: macos-13
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/distribute.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
- master

env:
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
DEVELOPER_DIR: /Applications/Xcode_15.0.1.app/Contents/Developer
FASTLANE_SKIP_UPDATE_CHECK: true
FASTLANE_XCODE_LIST_TIMEOUT: 60
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 60
Expand All @@ -16,7 +16,7 @@ env:

jobs:
build:
runs-on: macos-12
runs-on: macos-13
strategy:
fail-fast: false
matrix:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/download_localized_strings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ env:

jobs:
update_strings:
runs-on: macos-12
runs-on: macos-13
steps:
- uses: actions/checkout@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .swiftformat
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--swiftversion 5.3

--exclude vendor,Pods,**/Swiftgen/**,**/Resources/**,fastlane
--exclude vendor,Pods,**/Swiftgen/**,**/Resources/**,fastlane,**/Assets/**

--wraparguments before-first
--wrapparameters before-first
Expand Down
10 changes: 10 additions & 0 deletions Configuration/Entitlements/activate_special_entitlements.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ else
echo "warning: Push provider disabled"
fi

if [[ $TARGET_NAME = "App" ]]; then
if [[ $CI && $CONFIGURATION != "Release" ]]; then
echo "warning: THREAD_NETWORK_CREDENTIALS disabled for CI"
elif [[ ${ENABLE_THREAD_NETWORK_CREDENTIALS} -eq 1 ]]; then
/usr/libexec/PlistBuddy -c "add com.apple.developer.networking.manage-thread-network-credentials bool true" "$ENTITLEMENTS_FILE"
else
echo "warning: THREAD_NETWORK_CREDENTIALS disabled"
fi
fi

if [[ $TARGET_NAME = "App" ]]; then
if [[ $CI && $CONFIGURATION != "Release" ]]; then
echo "warning: Device name disabled for CI"
Expand Down
2 changes: 2 additions & 0 deletions Configuration/HomeAssistant.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ BUNDLE_ID_PREFIX = io.robbie
ENABLE_CRITICAL_ALERTS_QMQYCKL255 = 1
ENABLE_PUSH_PROVIDER_QMQYCKL255 = 1
ENABLE_DEVICE_NAME_QMQYCKL255 = 1
ENABLE_THREAD_NETWORK_CREDENTIALS_QMQYCKL255 = 1

// cascades down
PRODUCT_BUNDLE_IDENTIFIER = ${BUNDLE_ID_PREFIX}.HomeAssistant${BUNDLE_ID_SUFFIX}${PROVISIONING_SUFFIX}
Expand All @@ -28,6 +29,7 @@ CODE_SIGN_STYLE_DEFAULT = Automatic
ENABLE_CRITICAL_ALERTS[sdk=iphoneos*] = $(ENABLE_CRITICAL_ALERTS_$(DEVELOPMENT_TEAM))
ENABLE_PUSH_PROVIDER[sdk=iphoneos*] = $(ENABLE_PUSH_PROVIDER_$(DEVELOPMENT_TEAM))
ENABLE_DEVICE_NAME[sdk=iphoneos*] = $(ENABLE_DEVICE_NAME_$(DEVELOPMENT_TEAM))
ENABLE_THREAD_NETWORK_CREDENTIALS[sdk=iphoneos*] = $(ENABLE_THREAD_NETWORK_CREDENTIALS_$(DEVELOPMENT_TEAM))

// We mutate the entitlements at build time to support other development teams
CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION = YES
Expand Down
94 changes: 45 additions & 49 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,21 @@ GEM
artifactory (3.0.15)
ast (2.4.2)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.618.0)
aws-sdk-core (3.132.0)
aws-eventstream (1.3.0)
aws-partitions (1.859.0)
aws-sdk-core (3.188.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.58.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (1.73.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-s3 (1.140.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.1)
aws-sigv4 (~> 1.6)
aws-sigv4 (1.7.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.1.0)
Expand Down Expand Up @@ -81,17 +81,16 @@ GEM
highline (~> 2.0.0)
concurrent-ruby (1.2.2)
declarative (0.0.20)
digest-crc (0.6.4)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
domain_name (0.6.20231109)
dotenv (2.8.1)
emoji_regex (3.2.3)
escape (0.0.4)
ethon (0.16.0)
ffi (>= 1.15.0)
excon (0.92.4)
faraday (1.10.1)
excon (0.105.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
Expand Down Expand Up @@ -119,8 +118,8 @@ GEM
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
fastlane (2.209.0)
fastimage (2.2.7)
fastlane (2.217.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
Expand All @@ -141,18 +140,19 @@ GEM
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (~> 0.1.1)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0)
terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
Expand All @@ -169,9 +169,9 @@ GEM
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.25.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-core (0.7.0)
google-apis-androidpublisher_v3 (0.53.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.2)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
Expand All @@ -180,30 +180,29 @@ GEM
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.13.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-playcustomapp_v1 (0.10.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-storage_v1 (0.17.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.29.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.2.0)
google-cloud-storage (1.38.0)
google-cloud-errors (1.3.1)
google-cloud-storage (1.45.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.17.0)
google-apis-storage_v1 (~> 0.29.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.2.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
Expand All @@ -213,16 +212,15 @@ GEM
httpclient (2.8.3)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
jmespath (1.6.1)
jmespath (1.6.2)
json (2.6.3)
jwt (2.4.1)
memoist (0.16.2)
mini_magick (4.11.0)
mini_mime (1.1.2)
jwt (2.7.1)
mini_magick (4.12.0)
mini_mime (1.1.5)
minitest (5.20.0)
molinillo (0.8.0)
multi_json (1.15.0)
multipart-post (2.0.0)
multipart-post (2.3.0)
nanaimo (0.3.0)
nap (1.1.0)
naturally (2.2.1)
Expand All @@ -232,10 +230,10 @@ GEM
parallel (1.22.1)
parser (3.1.2.1)
ast (~> 2.4.1)
plist (3.6.0)
plist (3.7.0)
public_suffix (4.0.7)
rainbow (3.1.1)
rake (13.0.6)
rake (13.1.0)
redcarpet (3.5.1)
regexp_parser (2.5.0)
representable (3.2.0)
Expand All @@ -262,16 +260,17 @@ GEM
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3)
signet (0.17.0)
signet (0.18.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.8)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (2.0.0)
terminal-table (1.6.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.1)
Expand All @@ -282,11 +281,8 @@ GEM
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (2.2.0)
webrick (1.7.0)
webrick (1.8.1)
word_wrap (1.0.0)
xcodeproj (1.23.0)
CFPropertyList (>= 2.3.3, < 4.0)
Expand Down
Loading
Loading