Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
196 commits
Select commit Hold shift + click to select a range
c76b623
Update README
ts1 Apr 28, 2019
cf926a8
Update README
ts1 Apr 28, 2019
dcc194e
Let scan timer expire while not scanning
ts1 Apr 29, 2019
0e6b446
Remove extraneous permission dialog
ts1 Apr 29, 2019
807c9a1
Update README
ts1 Apr 29, 2019
e20371e
Release 1.1
ts1 Apr 29, 2019
a3d7ab7
README: Add notarized image
ts1 Apr 29, 2019
5141370
Add iTunes control
ts1 Apr 29, 2019
44365fa
Release 1.2
ts1 Apr 29, 2019
5918c96
Translations refactoring and refinement
ts1 Apr 29, 2019
68f5ca1
Release 1.2.1
ts1 Apr 30, 2019
c5a48eb
Add Lock now
ts1 Apr 30, 2019
9ad1f9f
Add about box
ts1 Apr 30, 2019
a8cf53e
Release 1.3
ts1 Apr 30, 2019
c25ae0b
Fix menu item case
ts1 May 1, 2019
05c3c4a
Rewrite Launcher in Objective-C, reduced app size
ts1 May 1, 2019
af3ead5
Include build number in About box
ts1 May 1, 2019
7424e69
Refine readme and add Japanese translation
ts1 May 2, 2019
2658573
Let about box close on esc key
ts1 May 2, 2019
aed9c4e
Release 1.3.1
ts1 May 2, 2019
7abf8a0
Fix closing about box by esc key
ts1 May 2, 2019
3020a13
Changed signal timeout to 61 seconds
ts1 May 2, 2019
e14be29
Release 1.3.2
ts1 May 2, 2019
60bad96
Use readRSSI for stable, accurate monitoring
ts1 May 2, 2019
94d287c
Release 1.4
ts1 May 3, 2019
da3456b
Assume device is not present when Bluetooth is powered off
ts1 May 3, 2019
ff4c229
Code cleanup
ts1 May 3, 2019
7a05498
Add description of system sleep to README
ts1 May 3, 2019
1bcc4cc
Fix behaviour when switch monitored device
ts1 May 3, 2019
4766c58
Replace off icon
ts1 May 3, 2019
2f3f2db
Release 1.4.1
ts1 May 3, 2019
138eed7
Invalidate signal timer when powered off
ts1 May 4, 2019
76c35c5
Add Bluetooth power warning
ts1 May 4, 2019
6ca55cf
Add password not set warning
ts1 May 4, 2019
f8c8008
Retry waking display
ts1 May 4, 2019
d1deb04
Release 1.4.2
ts1 May 6, 2019
04a6e66
Delay unlocking after system sleep
ts1 May 23, 2019
7b82182
Unlock Screen Now really locks screen
ts1 May 23, 2019
73e3c8f
Release 1.4.3
ts1 May 23, 2019
ba679c7
Delay one second on all unlock events
ts1 Jun 3, 2019
b2be440
Separate lock and unlock RSSI
ts1 Jun 8, 2019
045ebec
Add web links to about box
ts1 Jun 8, 2019
00e00a9
Add update check
ts1 Jun 10, 2019
8078b72
Tweak update notification
ts1 Jul 6, 2019
6901429
Add passive mode
ts1 Jul 6, 2019
cc85b8d
Update README
ts1 Jul 6, 2019
a3def9d
1.5.0
ts1 Jul 6, 2019
7bfe96d
Improve Chinese translation
peiit Jul 18, 2019
a05dc0a
Merge pull request #1 from peiit/master
ts1 Aug 4, 2019
a41b223
Removed unnecessary file
ts1 Aug 4, 2019
488eec4
1.5.1
ts1 Aug 4, 2019
8edfb20
Update README
ts1 Aug 4, 2019
7426768
Control Music.app instead of iTunes on Catalina (#2)
ts1 Oct 23, 2019
914be66
1.5.2
ts1 Oct 23, 2019
8754a4e
change build config
wenmin-wu Nov 1, 2019
ae9d122
support set minimum rssi and use moving average of rssi
wenmin-wu Nov 2, 2019
df9028f
reset project.pbxproj for pull request
wenmin-wu Nov 2, 2019
a4e9c6c
uncomment about info
wenmin-wu Nov 2, 2019
fa298e1
Merge branch 'pull-request' of https://github.com/wenmin-wu/BLEUnlock…
ts1 Nov 28, 2019
1126f93
Fix translations
ts1 Nov 28, 2019
9e8eecd
Add new Apple device names
ts1 Nov 28, 2019
d2b6304
Update README
ts1 Nov 28, 2019
8e64bae
1.6.0
ts1 Nov 28, 2019
20aac57
use local codesigning for debug by default
stephengroat-dd Jan 21, 2020
a4963b0
Create test.yml
stephengroat Jan 22, 2020
0127bb2
Update test.yml
stephengroat Jan 22, 2020
addaeda
build, don't test
stephengroat Jan 22, 2020
29c958b
Merge pull request #5 from stephengroat/ci
ts1 Jan 23, 2020
fd80c53
Update README
ts1 Jan 23, 2020
8acbc2d
Add option to disable lock
ts1 Feb 16, 2020
546eb02
1.7.0
ts1 Feb 16, 2020
56e4475
Change signal timeout to 61 seconds
ts1 Apr 12, 2020
9e49525
Add option to disable unlock
ts1 Apr 12, 2020
7feee8a
v1.8.0
ts1 Apr 12, 2020
652964d
Unlock faster bypassing moving average
ts1 Apr 18, 2020
c47ad77
1.8.1
ts1 Apr 18, 2020
af00b04
Don't ask for password when unlock is disabled
ts1 Apr 21, 2020
783f920
1.8.2
ts1 Apr 21, 2020
bf17751
Add no-signal timeout menu
ts1 Sep 5, 2020
3788ef3
Update copyright year
ts1 Sep 5, 2020
41b151a
Run scripts on events
ts1 Sep 5, 2020
e11d8b1
Improve running script
ts1 Sep 19, 2020
2596c35
Update README
ts1 Sep 19, 2020
a8c99d7
Add name resolution with IOBluetooth
ts1 Sep 19, 2020
28a2917
Update README.ja
ts1 Sep 19, 2020
27220ca
v1.9.0-beta
ts1 Sep 19, 2020
09bb7ec
Fix releasing procedure
ts1 Sep 19, 2020
6e6f729
Create FUNDING.yml
ts1 Sep 19, 2020
d6e7b6d
Fix readme
ts1 Sep 19, 2020
08382cb
Display MAC address, more detailed listing
ts1 Sep 24, 2020
737d418
Fix timeout while scanning
ts1 Oct 10, 2020
282bf19
Improve active mode
ts1 Oct 10, 2020
d7656a0
Fall back to passive mode when reading RSSI times out
ts1 Oct 12, 2020
993cbde
Cleanup
ts1 Oct 14, 2020
1d58a61
Keep connection while active mode
ts1 Oct 14, 2020
f6ece64
1.9.0
ts1 Oct 14, 2020
c60fdde
Password was truncated to 20 characters
ts1 Oct 15, 2020
e9ebc8f
Remove debug print
ts1 Oct 15, 2020
1422bc3
Change maximum RSSI to -30dBm
ts1 Oct 16, 2020
a3ae84e
Exclude Exposure Notification
ts1 Oct 17, 2020
7e862a3
Update README
ts1 Oct 17, 2020
e412a4d
Release 1.9.1
ts1 Oct 17, 2020
29be624
Unlock from screensaver
ts1 Oct 20, 2020
e26897c
Add iPhone models
ts1 Oct 22, 2020
1ff9476
Update funding information
ts1 Oct 29, 2020
fdc51c0
Replace iTunes/Music with Now Playing
ts1 Oct 31, 2020
4ffd228
Optionally launch screensaver to lock
ts1 Oct 31, 2020
28b09e5
Add menu item to set screensaver option
ts1 Oct 31, 2020
211d8e2
Cleanup
ts1 Nov 1, 2020
2b15667
Show active mode status in menu item
ts1 Nov 1, 2020
e626427
Update Apple device names
ts1 Nov 1, 2020
22085db
Fix problem entering active mode
ts1 Nov 1, 2020
2ef9036
Link MediaRemote framework directly
ts1 Nov 3, 2020
b372529
Trying to fix CI
ts1 Nov 3, 2020
645eb87
Add Delay to Lock menu
ts1 Nov 3, 2020
887ed81
1.10.0
ts1 Nov 3, 2020
0770135
Update README
ts1 Nov 3, 2020
9be669f
Update README
ts1 Nov 3, 2020
d4e0fad
Add badges
ts1 Nov 3, 2020
4cfba93
Update README
ts1 Nov 11, 2020
57d4593
Delay unpause to allow Chrome to unpause video playback
ts1 Dec 23, 2020
051aa72
Use Esc key to escape from screen saver
ts1 Dec 23, 2020
7fe644f
Add NSBluetoothAlwaysUsageDescription
ts1 Dec 23, 2020
a3a1cf1
1.10.1
ts1 Dec 23, 2020
7043c93
Update README.md
ts1 Feb 24, 2021
2aa0122
Update READMEs
ts1 Mar 14, 2021
8d00ddb
Update README.ja.md
ts1 Mar 14, 2021
c9ae848
Send upto 20 characters at once
ts1 Apr 9, 2021
da376cb
Bump year
ts1 Apr 9, 2021
3f964da
Pass RSSI as second argument to script (#31)
ts1 Apr 29, 2021
7d2bbbb
Update Apple device names
ts1 Apr 30, 2021
0fc1f2d
Nortalize with personal account
ts1 Apr 30, 2021
6b1db35
1.10.2
ts1 Apr 30, 2021
723f733
Change icon to Big Sur style.
ts1 Apr 30, 2021
cd3afc7
Merge pull request #42 from Skyearn/Icon
ts1 Jun 7, 2021
030eef1
Change StatusBar icon to new app icon style.
Jun 7, 2021
65ac86f
Fix StatusBar icon size.
Jun 7, 2021
e24eca3
Fix Status Bar icon color
Jun 9, 2021
13041cd
Merge pull request #43 from Skyearn/Icon
ts1 Jun 9, 2021
a9cd31a
Changed timing of manual unlock detection
ts1 May 16, 2021
3f6b3fb
Changed timing of manual unlock detection (again)
ts1 Jun 7, 2021
ef58efc
Update READMEs
ts1 Jun 7, 2021
7d51bbb
Beginning of support for Monterey
ts1 Jul 29, 2021
09d59eb
Try to fix crash on Device.description (#47)
ts1 Aug 12, 2021
b592785
1.10.3-rc4
ts1 Aug 12, 2021
491ce57
1.10.3
ts1 Aug 29, 2021
4f9b125
Add support for Monterey BLE device information
ts1 Aug 29, 2021
3fcc4d2
1.11-alpha2
ts1 Aug 29, 2021
3dd37af
Merge branch 'feature/issue-47' into release/monterey
ts1 Aug 30, 2021
31aa260
Add archives to .gitignore
ts1 Aug 30, 2021
adc9fc1
Hide dock icon once app is launched
ts1 Aug 30, 2021
ef7858b
Skip device names with only whitespaces
ts1 Aug 30, 2021
fa24189
1.11-rc
ts1 Aug 30, 2021
713cf74
Fixed bug that modal disappears on first launch
ts1 Sep 4, 2021
f047375
1.11-rc2
ts1 Sep 4, 2021
56ca6ed
Merge branch 'release/monterey'
ts1 Sep 12, 2021
a294faa
1.11
ts1 Sep 12, 2021
29b4efa
Update Apple device names from Device Support Update
ts1 Sep 30, 2021
2c4188b
Add files via upload
Dec 7, 2021
200976a
Support for sleep display on lock (WIP)
ts1 Dec 12, 2021
f3b8b81
Add localizations into project
ts1 Dec 12, 2021
5298d67
Merge branch 'cyberclaus-master'
ts1 Dec 12, 2021
45ff65b
Turkish language added
alonewolfx2 Dec 23, 2021
785d431
Merge pull request #70 from alonewolfx2/master
ts1 Dec 24, 2021
47ea556
add 'wake without unlocking' functionality
wxwern Jan 5, 2022
d87bb52
Merge branch 'wernjie-master'
ts1 Jan 8, 2022
db98c72
Fix Japanese
ts1 Jan 8, 2022
c6c3ce1
Add files via upload
Jan 6, 2022
d353c71
Don't run "intruded" script if unlock is disabled
ts1 Jan 8, 2022
00310ce
New year
ts1 Jan 8, 2022
a60359a
Merge branch 'feature/sleep-display'
ts1 Jan 8, 2022
f1a03ab
Add display sleep option
ts1 Jan 8, 2022
38c1cb5
Add localizations for sleep display
ts1 Jan 8, 2022
8c6f60b
Fix false manual unlock detection
ts1 Jan 9, 2022
a58e658
Tweak lock delay values
ts1 Jan 10, 2022
ea17760
Merge branch 'feature/display-sleep-localizations'
ts1 Jan 10, 2022
b0ff850
Squashed commit of the following:
ts1 Jan 16, 2022
a940e50
Update READMEs
ts1 Jan 16, 2022
349f867
1.12
ts1 Jan 16, 2022
4b8de29
Update READMEs
ts1 Jan 16, 2022
6369b7b
Fixed that scanning stops when the system sleeps and wakes up on Mont…
ts1 Jan 22, 2022
a815ae7
Added to README on how to reset Bluetooth on Monterey
ts1 Jan 22, 2022
05c07d8
1.12.1
ts1 Jan 22, 2022
c0cb29a
Fixed all of the "google translate" errors
tokfrans03 Jun 13, 2022
6212aa3
Merge pull request #83 from tokfrans03/patch-1
ts1 Jun 14, 2022
53182b0
Update README.md
ts1 Jan 28, 2024
233da97
Use notary tool
ts1 Mar 3, 2024
72b22a9
Run intruded event if wake without unlock
ts1 Mar 3, 2024
bd99ae5
Fix README
ts1 Mar 3, 2024
c4088d9
Update FUNDING.yml
ts1 Mar 12, 2024
aa49069
Update README.md
ts1 Mar 12, 2024
2e43873
Add pure gateway parsing + sticky pause-state helpers with standalone…
7onnie Jun 18, 2026
e7a263c
Add NetworkMonitor: SCDynamicStore watcher + permission-free gateway-…
7onnie Jun 18, 2026
2ac3127
Add GatewayParsing.swift and NetworkMonitor.swift to BLEUnlock target
7onnie Jun 18, 2026
9961017
Wire NetworkMonitor into AppDelegate: pause guards + 'Disable on This…
7onnie Jun 18, 2026
26dc5a2
Localize 'Disable on This Network' menu item (en, de)
7onnie Jun 18, 2026
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
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
custom: ["https://www.buymeacoffee.com/tsone"]
13 changes: 13 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: CI

on: [push]

jobs:
build:

runs-on: macOS-latest

steps:
- uses: actions/checkout@master
- name: Start xcodebuild test
run: xcodebuild clean build -project BLEUnlock.xcodeproj -scheme BLEUnlock
59 changes: 57 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,57 @@
/build
/BLEUnlock.xcodeproj/xcuserdata
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata

## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md

fastlane/report.xml
fastlane/screenshots

.DS_Store

/archives
163 changes: 120 additions & 43 deletions BLEUnlock.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

78 changes: 78 additions & 0 deletions BLEUnlock.xcodeproj/xcshareddata/xcschemes/BLEUnlock.xcscheme
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1300"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3DD4B64F226C1C3200451B7B"
BuildableName = "BLEUnlock.app"
BlueprintName = "BLEUnlock"
ReferencedContainer = "container:BLEUnlock.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3DD4B64F226C1C3200451B7B"
BuildableName = "BLEUnlock.app"
BlueprintName = "BLEUnlock"
ReferencedContainer = "container:BLEUnlock.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "3DD4B64F226C1C3200451B7B"
BuildableName = "BLEUnlock.app"
BlueprintName = "BLEUnlock"
ReferencedContainer = "container:BLEUnlock.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,6 @@
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>3D600A3F22701A5A0068FB7B</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>3DD4B64F226C1C3200451B7B</key>
<dict>
<key>primary</key>
Expand Down
42 changes: 42 additions & 0 deletions BLEUnlock/AboutBox.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import Cocoa

private var aboutBox: AboutBox? = nil

class AboutBox: NSWindowController, NSWindowDelegate {
@IBOutlet weak var versionLabel: NSTextField!

@IBAction func visitHomepage(_ sender: Any) {
NSWorkspace.shared.open(URL(string: "https://github.com/ts1/BLEUnlock#readme")!)
}

@IBAction func checkReleases(_ sender: Any) {
NSWorkspace.shared.open(URL(string: "https://github.com/ts1/BLEUnlock/releases")!)
}
convenience init() {
self.init(windowNibName: "AboutBox")
}

override func windowDidLoad() {
super.windowDidLoad()
if let info = Bundle.main.infoDictionary {
if let version = info["CFBundleShortVersionString"] as? String {
if let build = info["CFBundleVersion"] as? String {
versionLabel.stringValue = versionLabel.stringValue.replacingOccurrences(of: "#{version}", with: "\(version) (\(build))")
}
}
}
}

override func cancelOperation(_ sender: Any?) {
close()
}

static func showAboutBox() {
if (aboutBox == nil) {
aboutBox = AboutBox()
}
aboutBox?.showWindow(nil)
NSApp.activate(ignoringOtherApps: true)
aboutBox?.window?.orderFront(self)
}
}
Loading