Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
33a77a0
Add auto-detect app names setting
RKBoss6 Dec 31, 2025
dd9c2e3
Refactor app names and improve name detection logic
RKBoss6 Dec 31, 2025
3b1de89
Update iOS description for notifications and features
RKBoss6 Dec 31, 2025
d40f50f
Update iOS integration version to 0.22
RKBoss6 Dec 31, 2025
617d790
Update ChangeLog for version 0.22 enhancements
RKBoss6 Dec 31, 2025
441a55b
Update README with app name detection feature
RKBoss6 Dec 31, 2025
6ac9f52
Update comment for app name detector
RKBoss6 Dec 31, 2025
820498c
Update boot.js
RKBoss6 Dec 31, 2025
8c231f5
Update boot.js
RKBoss6 Dec 31, 2025
518a996
Refactor app name detection logic in boot.js
RKBoss6 Dec 31, 2025
125af3d
Refactor name formatting logic in boot.js
RKBoss6 Dec 31, 2025
8ed3510
Update apps/ios/boot.js
RKBoss6 Dec 31, 2025
c4ea36e
Update application list in boot.js
RKBoss6 Jan 2, 2026
b79d9ce
Fix copilot formatting suggestions
RKBoss6 Jan 2, 2026
0442d11
Update boot.js
RKBoss6 Jan 2, 2026
632a281
Update boot.js
RKBoss6 Jan 2, 2026
3e30ecd
Remove asterisk from name variable assignment
RKBoss6 Jan 7, 2026
e4683cb
Update auto-detect app names description in README
RKBoss6 Jan 7, 2026
3d43feb
Merge branch 'espruino:master' into iosUpdates
RKBoss6 Jan 12, 2026
070f13a
Merge branch 'espruino:master' into iosUpdates
RKBoss6 Jan 12, 2026
3bf309c
Merge branch 'espruino:master' into iosUpdates
RKBoss6 Jan 21, 2026
5a4b365
Add Gmail to the list of applications for proper icon support
RKBoss6 Jan 21, 2026
44d68a3
Rename 'iOS Wallet' to 'Wallet'
RKBoss6 Jan 21, 2026
974caac
add @gfwilliams's suggestions, if undefined, make setting true by def…
RKBoss6 Jan 22, 2026
c7ec84c
Update ChangeLog
RKBoss6 Jan 22, 2026
54327ee
Refactor name detection logic in boot.js
RKBoss6 Jan 22, 2026
94c9b14
Fix logic for Auto-Detect App Names setting
RKBoss6 Jan 22, 2026
0a9fb9c
Remove redundant negation
RKBoss6 Jan 23, 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 apps/ios/ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@
0.19: Convert numeric weather values to int from BangleDumpWeather shortcut
0.20: Add feels-like temperature data field to weather parsing from BangleDumpWeather shortcut.
0.21: Add BangleDumpLocation shortcut, to update location data on watch without needing to use the watch's GPS, and added more app names/ ids.
0.22: Add setting to auto-detect app names from their bundle IDs instead of displaying the ID as the source
2 changes: 2 additions & 0 deletions apps/ios/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ then the messages app will be able to use that to render characters from iOS. Wi
installed, non-european (ISO8859-1) characters won't be displayed. If `Disable UTF8`
is true *or no fonts library is installed*, text from iOS is converted to ISO8859-1, and known characters with equivalents
within that range are converted (so text will display without a font library).
* `Auto-Detect App Names` - Enables automatic detection of app names from the last item of the Bundle Identifier (`com.Apple.FindMy` --> `Find My`). Detected app names are marked with a `*`, in case of a false/wrong app name detected.


### Connecting your Bangle.js to your iPhone

Expand Down
61 changes: 25 additions & 36 deletions apps/ios/boot.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,92 +65,63 @@
"negAction" : string,
"name" : string,
*/
//Exceptions that the app name detector won't catch.
var appNames = {
"ch.publisheria.bring": "Bring",
"com.apple.facetime": "FaceTime",
"com.apple.mobilecal": "Calendar",
"com.apple.mobilemail": "Mail",
"com.apple.mobilephone": "Phone",
"com.apple.mobileslideshow": "Pictures",
"com.apple.MobileSMS": "SMS Message",
"com.apple.Passbook": "iOS Wallet",
"com.apple.podcasts": "Podcasts",
"com.apple.reminders": "Reminders",
"com.apple.shortcuts": "Shortcuts",
"com.apple.TestFlight": "TestFlight",
"com.apple.ScreenTimeNotifications": "Screen Time",
"com.apple.wifid.usernotification": "WiFi",
"com.apple.Maps": "Maps",
"com.apple.Music": "Apple Music",
"com.apple.AppStore": "App Store",
"com.apple.Preferences": "Settings",
"com.apple.calculator": "Calculator",
"com.apple.camera": "Camera",
"com.apple.weather": "Weather",
"com.apple.VoiceMemos": "Voice Memos",
"com.apple.News": "News",
"com.apple.tv": "Apple TV",
"com.apple.findmy": "Find My",
"com.apple.compass": "Compass",
"com.apple.measure": "Measure",
"com.atebits.Tweetie2": "Twitter",
"com.burbn.instagram": "Instagram",
"com.facebook.Facebook": "Facebook",
"com.facebook.Messenger": "Messenger",
"com.google.Chromecast": "Google Home",
"com.google.Gmail": "GMail",
"com.google.hangouts": "Hangouts",
"com.google.ios.youtube": "YouTube",
"com.google.ios.chrome": "Google Chrome",
"com.google.Maps": "Google Maps",
"com.google.Drive": "Google Drive",
"com.google.GoogleMobile": "Google",
"com.hammerandchisel.discord": "Discord",
"com.ecobee.athenamobile":"Ecobee",
"com.ifttt.ifttt": "IFTTT",
"com.jumbo.app": "Jumbo",
"com.linkedin.LinkedIn": "LinkedIn",
"com.marktplaats.iphone": "Marktplaats",
"com.duolingo.DuolingoMobile": "Duolingo",
"com.roborock.smart":"Roborock",
"com.microsoft.Office.Outlook": "Outlook Mail",
"com.microsoft.Office.Word": "Microsoft Word",
"com.microsoft.Office.Excel": "Microsoft Excel",
"com.microsoft.Office.Powerpoint": "Microsoft PowerPoint",
"com.nestlabs.jasper.release": "Nest",
"com.netflix.Netflix": "Netflix",
"com.reddit.Reddit": "Reddit",
"com.skype.skype": "Skype",
"com.skype.SkypeForiPad": "Skype",
"com.spotify.client": "Spotify",
"com.soundcloud.TouchApp": "SoundCloud",
"com.disney.disneyplus": "Disney+",
"com.hbo.hbonow": "HBO Max",
"com.adp.adpmobile":"ADP",
"com.amazon.Amazon": "Amazon Shopping",
"com.amazon.AmazonVideo": "Prime Video",
"com.dropbox.Dropbox": "Dropbox",
"com.evernote.iPhone.Evernote": "Evernote",
"com.trello": "Trello",
"com.storytel.iphone": "Storytel",
"com.strava.stravaride": "Strava",
"com.tinyspeck.chatlyio": "Slack",
"com.toyopagroup.picaboo": "Snapchat",
"com.ubercab.UberClient": "Uber",
"com.ubercab.UberEats": "UberEats",
"com.unitedinternet.mmc.mobile.gmx.iosmailer": "GMX",
"com.valvesoftware.Steam": "Steam",
"com.vilcsak.bitcoin2": "Coinbase",
"com.wordfeud.free": "WordFeud",
"com.paypal.PPClient": "PayPal",
"com.zhiliaoapp.musically": "TikTok",
"com.pinterest": "Pinterest",
"com.tumblr.tumblr": "Tumblr",
"de.no26.Number26": "N26",
"io.robbie.HomeAssistant": "Home Assistant",
"net.superblock.Pushover": "Pushover",
"net.weks.prowl": "Prowl",
"net.whatsapp.WhatsApp": "WhatsApp",
"nl.postnl.TrackNTrace": "PostNL",
"org.whispersystems.signal": "Signal",
"ph.telegra.Telegraph": "Telegram",
"tv.twitch": "Twitch"
};


Expand Down Expand Up @@ -272,11 +243,29 @@

return;
}

let settings = require("Storage").readJSON("ios.settings.json",1)||{};
var name=""
if(settings.detectNames==true&&(!appNames[msg.appId]&&msg.appId)){
l = msg.appId.split(".");

Check warning on line 249 in apps/ios/boot.js

View workflow job for this annotation

GitHub Actions / build

'l' is not defined
name = l[l.length - 1]

Check warning on line 250 in apps/ios/boot.js

View workflow job for this annotation

GitHub Actions / build

'l' is not defined

Check warning on line 250 in apps/ios/boot.js

View workflow job for this annotation

GitHub Actions / build

'l' is not defined
//capitalize
name=name
// Space between lower->upper (AppName → App Name)
.replace(/([a-z])([A-Z])/g, '$1 $2')
// Space between acronym->word (SMSMessage → SMS Message)
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
// Correct duplicate spacing
.replaceAll(" "," ");
//capitalize
name= name[0].toUpperCase() + name.slice(1);
name+="*" // mark that it's auto-generated
}else{
name=msg.appId;
}
require("messages").pushMessage({
t : msg.event,
id : msg.uid,
src : appNames[msg.appId] || msg.appId,
src : name,
new : msg.new,
title : msg.title&&Bangle.ancsConvertUTF8(msg.title),
subject : msg.subtitle&&Bangle.ancsConvertUTF8(msg.subtitle),
Expand Down
4 changes: 2 additions & 2 deletions apps/ios/metadata.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"id": "ios",
"name": "iOS Integration",
"version": "0.21",
"description": "Display/pull notifications, music, weather, location, and agenda from iOS devices",
"version": "0.22",
"description": "Show and dismiss iOS notifications, and pull music, weather, location, and agenda from iOS devices",
"icon": "app.png",
"tags": "tool,system,ios,apple,messages,notifications",
"dependencies": {"messages":"module"},
Expand Down
7 changes: 7 additions & 0 deletions apps/ios/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@
settings.no_utf8 = v;
updateSettings();
}
},
/*LANG*/"Auto-Detect App Names" : {
value : !!settings.detectNames,
onchange: v => {
settings.detectNames = v;
updateSettings();
}
}
};
E.showMenu(mainmenu);
Expand Down
Loading