Skip to content

Commit

Permalink
v9.0.9
Browse files Browse the repository at this point in the history
  • Loading branch information
sidneys committed Jul 17, 2019
1 parent b93802e commit 6f076b4
Show file tree
Hide file tree
Showing 17 changed files with 3,025 additions and 1,890 deletions.
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ init:

install:
- cmd: echo 🔧 Setting up Node
- ps: Install-Product node Current
- ps: Update-NodeJsInstallation 12.6.0
- cmd: npm --global update npm
- cmd: npm --global install yarn

Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ env:
before_install:
- echo "🔧 Setting up Node"
- curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | NVM_DIR="${HOME}"/.nvm sh
- source "${HOME}"/.nvm/nvm.sh && nvm install 11.14.0 && nvm use 11.14.0
- source "${HOME}"/.nvm/nvm.sh && nvm install 12.6.0 && nvm use 12.6.0
- npm --global update npm
- npm --global install yarn

Expand Down
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,22 @@ Uses macOS' [Notification Center](https://en.wikipedia.org/wiki/Notification_Cen
For text-based pushes, notification thumbnails are generated on-the-fly based on a the originating Websites' favicon.
For pushes containing image content, a thumbnail-sized image is shown within the notification.

> **Simple Setup**
No wrestling with API-Keys or other technical knowledge required.
Login to Pushbullet using Google or Facebook.

> **Custom Notification Sounds**
> **Custom Sound Effects**
Use the default PushBullet sound or one of your choice.
Ships multiple sound effect sets: Android, iOS, Tesla Motors, Slack, Nintendo, Windows, macOS
Or use your own custom sound (supported formats: `.m4a`, `.mp3`, `.mp4`, `.ogg` and `.wav`)

> **Notification Filter**
A portable, file-based filter allows you to skip notifications you don't need.
Supports regular expressions.

> **Simple Setup**
No wrestling with API-Keys or other technical knowledge required.
Login to Pushbullet using Google or Facebook.

> **SMS** [![Feature Status: Alpha](https://img.shields.io/badge/feature-beta-red.svg?style=flat-square)]()
Send & receive SMS to Android devices.
Expand Down
20 changes: 20 additions & 0 deletions RELEASENOTES.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
{
"9.0.9": {
"🍾 features": [
"adds file-based `Notification Filter` for hiding notifications via text or regular expression pattern (https://github.com/sidneys/pb-for-desktop/issues/76)"
],
"💎 improvements": [
"various stability and performance improvements"
],
"🚨 fixes": [
"fixes auto updates & code notarization issues (https://github.com/sidneys/pb-for-desktop/issues/104)",
"fixes Google login issues encountered on some devices"
],
"📒 documentation": [
"updates README"
],
"👷 internals": [
"upgrades `electron` to `v5.0.7`",
"upgrades internal `node_modules`",
"upgrades external `node_modules`"
]
},
"8.18.2": {
"🍾 features": [
"contributed by @LyzardKing: [Add snap package](https://github.com/sidneys/pb-for-desktop/pull/93) (Linux)"
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/images/[email protected]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
30 changes: 27 additions & 3 deletions app/scripts/main/managers/configuration-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -497,10 +497,10 @@ let configurationItems = {
}
},
/**
* pushbulletSoundFile
* pushbulletSoundFilePath
*/
pushbulletSoundFile: {
keypath: 'pushbulletSoundFile',
pushbulletSoundFilePath: {
keypath: 'pushbulletSoundFilePath',
default: path.join(appSoundDirectory, 'default.wav'),
init() {
logger.debug(this.keypath, 'init')
Expand All @@ -519,6 +519,30 @@ let configurationItems = {
electronSettings.set(this.keypath, value)
}
},
/**
* pushbulletNotificationFilterFilePath
*/
pushbulletNotificationFilterFilePath: {
keypath: 'pushbulletNotificationFilterFilePath',
default: path.join(path.dirname(electronSettings.file()), 'filter.txt'),
init() {
logger.debug(this.keypath, 'init')

// Install default "filter.txt" if it does not exist within the users settings yet
if (!fs.existsSync(this.get())) {
fs.copySync(path.join(appRootPath, 'app', 'settings', 'filter-template.txt'), this.default)
}
},
get() {
logger.debug(this.keypath, 'get')

return electronSettings.get(this.keypath)
},
set(value) {
logger.debug(this.keypath, 'set')
electronSettings.set(this.keypath, value)
}
},
/**
* pushbulletSoundVolume
*/
Expand Down
75 changes: 44 additions & 31 deletions app/scripts/main/menus/tray-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const path = require('path')
* Electron
* @constant
*/
const { app, ipcMain, Menu, MenuItem, Tray, webContents } = require('electron')
const { app, ipcMain, Menu, MenuItem, shell, Tray, webContents } = require('electron')

/**
* Modules
Expand Down Expand Up @@ -79,11 +79,12 @@ const trayMenuItemImagePushbulletRepeatRecentNotifications = path.join(appRootPa
const trayMenuItemImagePushbulletClipboardEnabled = path.join(appRootPath, 'app', 'images', `tray-item-pushbulletClipboardEnabled${platformTools.menuItemImageExtension}`)
const trayMenuItemImagePushbulletSmsEnabled = path.join(appRootPath, 'app', 'images', `tray-item-pushbulletSmsEnabled${platformTools.menuItemImageExtension}`)
const trayMenuItemImagePushbulletSoundEnabled = path.join(appRootPath, 'app', 'images', `tray-item-pushbulletSoundEnabled${platformTools.menuItemImageExtension}`)
const trayMenuItemImagePushbulletSoundFile = path.join(appRootPath, 'app', 'images', `tray-item-pushbulletSoundFile${platformTools.menuItemImageExtension}`)
const trayMenuItemImagePushbulletSoundFilePath = path.join(appRootPath, 'app', 'images', `tray-item-pushbulletSoundFilePath${platformTools.menuItemImageExtension}`)
const trayMenuItemImageReconnect = path.join(appRootPath, 'app', 'images', `tray-item-reconnect${platformTools.menuItemImageExtension}`)
const trayMenuItemImageReset = path.join(appRootPath, 'app', 'images', `tray-item-reset${platformTools.menuItemImageExtension}`)
const trayMenuItemImageSnooze = path.join(appRootPath, 'app', 'images', `tray-item-snooze${platformTools.menuItemImageExtension}`)
const trayMenuItemImageWindowTopmost = path.join(appRootPath, 'app', 'images', `tray-item-windowTopmost${platformTools.menuItemImageExtension}`)
const trayMenuItemImagePushbulletNotificationFilterFilePath = path.join(appRootPath, 'app', 'images', `tray-item-pushbulletNotificationFilterFilePath${platformTools.menuItemImageExtension}`)


/**
Expand Down Expand Up @@ -152,7 +153,7 @@ let createTrayMenuTemplate = () => {
configurationManager('pushbulletRepeatRecentNotifications').set(configurationManager('pushbulletRepeatRecentNotifications').default)
configurationManager('pushbulletSmsEnabled').set(configurationManager('pushbulletSmsEnabled').default)
configurationManager('pushbulletSoundEnabled').set(configurationManager('pushbulletSoundEnabled').default)
configurationManager('pushbulletSoundFile').set(configurationManager('pushbulletSoundFile').default)
configurationManager('pushbulletSoundFilePath').set(configurationManager('pushbulletSoundFilePath').default)
configurationManager('pushbulletSoundVolume').set(configurationManager('pushbulletSoundVolume').default)
configurationManager('windowBounds').set(configurationManager('windowBounds').default)
configurationManager('windowTopmost').set(configurationManager('windowTopmost').default)
Expand Down Expand Up @@ -204,16 +205,51 @@ let createTrayMenuTemplate = () => {
{
type: 'separator'
},
{
id: 'appLaunchOnStartup',
label: 'Launch on Startup',
icon: trayMenuItemImageAppLaunchOnStartup,
type: 'checkbox',
checked: configurationManager('appLaunchOnStartup').get(),
click(menuItem) {
configurationManager('appLaunchOnStartup').set(menuItem.checked)
}
},
{
id: 'pushbulletRepeatRecentNotifications',
label: 'Replay Pushes on Launch',
icon: trayMenuItemImagePushbulletRepeatRecentNotifications,
type: 'checkbox',
checked: configurationManager('pushbulletRepeatRecentNotifications').get(),
click(menuItem) {
configurationManager('pushbulletRepeatRecentNotifications').set(menuItem.checked)
}
},
{
type: 'separator'
},
{
id: 'pushbulletNotificationFilterFilePath',
label: 'Notification Filter...',
icon: trayMenuItemImagePushbulletNotificationFilterFilePath,
type: 'normal',
click(menuItem) {
shell.openItem(configurationManager('pushbulletNotificationFilterFilePath').get())
}
},
{
id: 'pushbulletHideNotificationBody',
label: 'Hide Notification Body Text',
label: 'Hide Notification Body',
icon: trayMenuItemImagePushbulletHideNotificationBody,
type: 'checkbox',
checked: configurationManager('pushbulletHideNotificationBody').get(),
click(menuItem) {
configurationManager('pushbulletHideNotificationBody').set(menuItem.checked)
}
},
{
type: 'separator'
},
{
id: 'pushbulletClipboardEnabled',
label: 'Universal Clipboard',
Expand All @@ -237,29 +273,6 @@ let createTrayMenuTemplate = () => {
{
type: 'separator'
},
{
id: 'appLaunchOnStartup',
label: 'Launch on Startup',
icon: trayMenuItemImageAppLaunchOnStartup,
type: 'checkbox',
checked: configurationManager('appLaunchOnStartup').get(),
click(menuItem) {
configurationManager('appLaunchOnStartup').set(menuItem.checked)
}
},
{
id: 'pushbulletRepeatRecentNotifications',
label: 'Replay Pushes on Launch',
icon: trayMenuItemImagePushbulletRepeatRecentNotifications,
type: 'checkbox',
checked: configurationManager('pushbulletRepeatRecentNotifications').get(),
click(menuItem) {
configurationManager('pushbulletRepeatRecentNotifications').set(menuItem.checked)
}
},
{
type: 'separator'
},
{
id: 'windowTopmost',
label: 'Always on Top',
Expand Down Expand Up @@ -305,19 +318,19 @@ let createTrayMenuTemplate = () => {
}
},
{
id: 'pushbulletSoundFile',
id: 'pushbulletSoundFilePath',
label: 'Open Sound File...',
icon: trayMenuItemImagePushbulletSoundFile,
icon: trayMenuItemImagePushbulletSoundFilePath,
type: 'normal',
click() {
app.focus()
dialogProvider.file('Open Sound File (.m4a, .mp3, .mp4, .ogg, .wav)', [ 'm4a', 'mp3', 'mp4', 'wav', 'ogg' ], appSoundDirectory, (error, soundFile) => {
if (error) {
logger.error('pushbulletSoundFile', 'dialogProvider.file', error)
logger.error('pushbulletSoundFilePath', 'dialogProvider.file', error)
return
}

configurationManager('pushbulletSoundFile').set(soundFile)
configurationManager('pushbulletSoundFilePath').set(soundFile)
})
}
},
Expand Down
1 change: 1 addition & 0 deletions app/scripts/main/windows/main-window.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ class MainWindow {
scrollBounce: platformTools.isMacOS ? true : void 0,
webaudio: true,
webgl: true,
webviewTag: true,
webSecurity: false
},
width: void 0,
Expand Down
2 changes: 1 addition & 1 deletion app/scripts/renderer/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ webviewViewElement.addEventListener('dom-ready', () => {

domTools.injectCSS(webviewViewElement, stylesheetFilepath)

/**
/**
* HOTFIX
* Input cursor invisible after navigation in webview
* @see {@link https://github.com/electron/electron/issues/14474}
Expand Down
Loading

0 comments on commit 6f076b4

Please sign in to comment.