Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions airsync-mac/Constants/MacDeviceMappings.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"Mac14,5": "MacBook Air (15-inch, M2, 2023)",
"Mac15,12": "MacBook Air (13-inch, M3, 2024)",
"Mac15,13": "MacBook Air (15-inch, M3, 2024)",
"Mac16,7": "MacBook Air (13-inch, M4, 2024)",
"Mac16,8": "MacBook Air (15-inch, M4, 2024)"
"Mac16,12": "MacBook Air (13-inch, M4, 2025)",
"Mac16,13": "MacBook Air (15-inch, M4, 2025)"
},
"MacBook Pro": {
"MacBookPro15,1": "MacBook Pro (13-inch, 2018)",
Expand All @@ -36,10 +36,10 @@
"Mac15,11": "MacBook Pro (16-inch, M3 Max, 2024)",
"Mac16,1": "MacBook Pro (14-inch, M4, 2024)",
"Mac16,2": "MacBook Pro (16-inch, M4, 2024)",
"Mac16,3": "MacBook Pro (14-inch, M4 Pro, 2024)",
"Mac16,4": "MacBook Pro (16-inch, M4 Pro, 2024)",
"Mac16,5": "MacBook Pro (14-inch, M4 Max, 2024)",
"Mac16,6": "MacBook Pro (16-inch, M4 Max, 2024)"
"Mac16,8": "MacBook Pro (14-inch, M4 Pro, 2024)",
"Mac16,7": "MacBook Pro (16-inch, M4 Pro, 2024)",
"Mac16,6": "MacBook Pro (14-inch, M4 Max, 2024)",
"Mac16,5": "MacBook Pro (16-inch, M4 Max, 2024)"
},
"Mac mini": {
"Macmini8,1": "Mac mini (2018)",
Expand Down
12 changes: 12 additions & 0 deletions airsync-mac/Core/AppState.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ class AppState: ObservableObject {
self.adbEnabled = UserDefaults.standard.bool(forKey: "adbEnabled")
self.showMenubarText = UserDefaults.standard.bool(forKey: "showMenubarText")

// Default to true if not previously set
let showNameObj = UserDefaults.standard.object(forKey: "showMenubarDeviceName")
self.showMenubarDeviceName = showNameObj == nil
? true
: UserDefaults.standard.bool(forKey: "showMenubarDeviceName")

let savedMaxLength = UserDefaults.standard.integer(forKey: "menubarTextMaxLength")
self.menubarTextMaxLength = savedMaxLength > 0 ? savedMaxLength : 30

Expand Down Expand Up @@ -116,6 +122,12 @@ class AppState: ObservableObject {
}
}

@Published var showMenubarDeviceName: Bool {
didSet {
UserDefaults.standard.set(showMenubarDeviceName, forKey: "showMenubarDeviceName")
}
}

@Published var menubarTextMaxLength: Int {
didSet {
UserDefaults.standard.set(menubarTextMaxLength, forKey: "menubarTextMaxLength")
Expand Down
1 change: 0 additions & 1 deletion airsync-mac/Screens/HomeScreen/AppContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ struct AppContentView: View {

case .apps:
AppsView()
.font(.largeTitle)
.transition(.blurReplace)

case .transfers:
Expand Down
6 changes: 4 additions & 2 deletions airsync-mac/Screens/MenubarView/MenuBarLabelView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,14 @@ struct MenuBarLabelView: View {
return "\(title) - \(artist)"
} else {
var parts: [String] = []
parts.append(device.name)
if appState.showMenubarDeviceName {
parts.append(device.name)
}

if let batteryLevel = appState.status?.battery.level {
parts.append("\(batteryLevel)%")
}
return parts.joined(separator: " ")
return parts.isEmpty ? nil : parts.joined(separator: " ")
}
}

Expand Down
15 changes: 15 additions & 0 deletions airsync-mac/Screens/Settings/SettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,21 @@ struct SettingsView: View {
.transition(.opacity.combined(with: .move(edge: .top)))
.animation(.easeInOut(duration: 0.3), value: appState.showMenubarText)

HStack{
Label {
Text("Show device name")
} icon: {
Image(systemName: "iphone.gen3")
.imageScale(.medium)
.frame(width: 18, alignment: .center)
}
Spacer()
Toggle("", isOn: $appState.showMenubarDeviceName)
.toggleStyle(.switch)
}
.transition(.opacity.combined(with: .move(edge: .top)))
.animation(.easeInOut(duration: 0.3), value: appState.showMenubarText)

HStack{
Label("Hide Dock Icon", systemImage: "dock.rectangle")
Spacer()
Expand Down
10 changes: 5 additions & 5 deletions appcast.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
<channel>
<title>AirSync</title>
<item>
<title>2.0.29</title>
<pubDate>Fri, 05 Sep 2025 00:25:19 +0530</pubDate>
<sparkle:version>5</sparkle:version>
<sparkle:shortVersionString>2.0.29</sparkle:shortVersionString>
<title>2.0.30</title>
<pubDate>Sat, 13 Sep 2025 23:27:04 +0530</pubDate>
<sparkle:version>6</sparkle:version>
<sparkle:shortVersionString>2.0.30</sparkle:shortVersionString>
<sparkle:minimumSystemVersion>14.6</sparkle:minimumSystemVersion>
<enclosure url="https://github.com/sameerasw/airsync-mac/releases/download/v2.0.29-BETA/AirSync.dmg" length="6590975" type="application/octet-stream" sparkle:edSignature="CSRoPak+DvQ5GC6xqB1nACB7QRg9UDjm2jZksUPMBgz+Djvk36zBfbX3FYPN7EDyFf/+2dqDs9qv3QBGXHaxDg=="/>
<enclosure url="https://github.com/sameerasw/airsync-mac/releases/download/v2.0.30-BETA/AirSync.dmg" length="6604788" type="application/octet-stream" sparkle:edSignature="UcIekIqalykGjHU9Kv3imHw8IaeUDCjQbX03zxye0t/X6vOq5R7ULei6FEGxDfMr78jUvKH8Ofv4ZR2RBY0FCQ=="/>
</item>
</channel>
</rss>