diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index afc26622c86c..ef1a73142789 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -1350,13 +1350,15 @@ void App::BuildPrototype(v8::Isolate* isolate, base::Bind(&Browser::SetAsDefaultProtocolClient, browser)) .SetMethod("removeAsDefaultProtocolClient", base::Bind(&Browser::RemoveAsDefaultProtocolClient, browser)) - .SetMethod("setBadgeCount", base::Bind(&Browser::SetBadgeCount, browser)) - .SetMethod("getBadgeCount", base::Bind(&Browser::GetBadgeCount, browser)) + .SetMethod("_setBadgeCount", base::Bind(&Browser::SetBadgeCount, browser)) + .SetMethod("_getBadgeCount", base::Bind(&Browser::GetBadgeCount, browser)) .SetMethod("getLoginItemSettings", &App::GetLoginItemSettings) .SetMethod("setLoginItemSettings", base::Bind(&Browser::SetLoginItemSettings, browser)) .SetMethod("isEmojiPanelSupported", base::Bind(&Browser::IsEmojiPanelSupported, browser)) + .SetProperty("badgeCount", base::Bind(&Browser::GetBadgeCount, browser), + base::Bind(&Browser::SetBadgeCount, browser)) #if defined(OS_MACOSX) .SetMethod("hide", base::Bind(&Browser::Hide, browser)) .SetMethod("show", base::Bind(&Browser::Show, browser)) diff --git a/docs/api/app.md b/docs/api/app.md index 7d93f0d86e2a..0ecb66658091 100644 --- a/docs/api/app.md +++ b/docs/api/app.md @@ -1064,6 +1064,7 @@ gpuDevice: machineModelName: 'MacBookPro', machineModelVersion: '11.5' } ``` + Using `basic` should be preferred if only basic information like `vendorId` or `driverId` is needed. ### `app.setBadgeCount(count)` _Linux_ _macOS_ @@ -1080,10 +1081,14 @@ On macOS, it shows on the dock icon. On Linux, it only works for Unity launcher. **Note:** Unity launcher requires the existence of a `.desktop` file to work, for more information please read [Desktop Environment Integration][unity-requirement]. +**[Deprecated Soon](modernization/property-updates.md)** + ### `app.getBadgeCount()` _Linux_ _macOS_ Returns `Integer` - The current value displayed in the counter badge. +**[Deprecated Soon](modernization/property-updates.md)** + ### `app.isUnityRunning()` _Linux_ Returns `Boolean` - Whether the current desktop environment is Unity launcher. @@ -1344,11 +1349,6 @@ Sets the `image` associated with this dock icon. ## Properties -### `app.applicationMenu` - -A `Menu` property that return [`Menu`](menu.md) if one has been set and `null` otherwise. -Users can pass a [Menu](menu.md) to set this property. - ### `app.accessibilitySupportEnabled` _macOS_ _Windows_ A `Boolean` property that's `true` if Chrome's accessibility support is enabled, `false` otherwise. This property will be `true` if the use of assistive technologies, such as screen readers, has been detected. Setting this property to `true` manually enables Chrome's accessibility support, allowing developers to expose accessibility switch to users in application settings. @@ -1359,6 +1359,20 @@ This API must be called after the `ready` event is emitted. **Note:** Rendering accessibility tree can significantly affect the performance of your app. It should not be enabled by default. +### `app.applicationMenu` + +A `Menu` property that return [`Menu`](menu.md) if one has been set and `null` otherwise. +Users can pass a [Menu](menu.md) to set this property. + +### `app.badgeCount` _Linux_ _macOS_ + +An `Integer` property that returns the badge count for current app. Setting the count to `0` will hide the badge. + +On macOS, setting this with any nonzero integer shows on the dock icon. On Linux, this property only works for Unity launcher. + +**Note:** Unity launcher requires the existence of a `.desktop` file to work, +for more information please read [Desktop Environment Integration][unity-requirement]. + ### `app.isPackaged` A `Boolean` property that returns `true` if the app is packaged, `false` otherwise. For many apps, this property can be used to distinguish development and production environments. diff --git a/docs/api/modernization/property-updates.md b/docs/api/modernization/property-updates.md index 5b75d86414d7..51f519805fde 100644 --- a/docs/api/modernization/property-updates.md +++ b/docs/api/modernization/property-updates.md @@ -5,7 +5,6 @@ The Electron team is currently undergoing an initiative to convert separate gett ## Candidates * `app` module - * `badgeCount` * `name` * `dock` * `badge` @@ -58,3 +57,4 @@ The Electron team is currently undergoing an initiative to convert separate gett * `app` module * `accessibilitySupport` * `applicationMenu` + * `badgeCount` diff --git a/lib/browser/api/app.ts b/lib/browser/api/app.ts index 494a5fae9da7..1b8e9138aeef 100644 --- a/lib/browser/api/app.ts +++ b/lib/browser/api/app.ts @@ -91,6 +91,7 @@ app.getFileIcon = deprecate.promisify(app.getFileIcon) // Property Deprecations deprecate.fnToProperty(app, 'accessibilitySupportEnabled', '_isAccessibilitySupportEnabled', '_setAccessibilitySupportEnabled') +deprecate.fnToProperty(app, 'badgeCount', '_getBadgeCount', '_setBadgeCount') // Wrappers for native classes. const { DownloadItem } = process.electronBinding('download_item') diff --git a/spec-main/api-app-spec.ts b/spec-main/api-app-spec.ts index 8e138105e9da..4bcf7f4bdd31 100644 --- a/spec-main/api-app-spec.ts +++ b/spec-main/api-app-spec.ts @@ -502,51 +502,31 @@ describe('app module', () => { }) }) - describe('app.setBadgeCount', () => { + describe('app.badgeCount', () => { const platformIsNotSupported = (process.platform === 'win32') || (process.platform === 'linux' && !app.isUnityRunning()) const platformIsSupported = !platformIsNotSupported const expectedBadgeCount = 42 - let returnValue: boolean | null = null - beforeEach(() => { returnValue = app.setBadgeCount(expectedBadgeCount) }) - - after(() => { - // Remove the badge. - app.setBadgeCount(0) - }) + after(() => { app.badgeCount = 0 }) describe('on supported platform', () => { - before(function () { - if (platformIsNotSupported) { - this.skip() - } - }) + it('sets a badge count', function () { + if (platformIsNotSupported) return this.skip() - it('returns true', () => { - expect(returnValue).to.equal(true) - }) - - it('sets a badge count', () => { - expect(app.getBadgeCount()).to.equal(expectedBadgeCount) + app.badgeCount = expectedBadgeCount + expect(app.badgeCount).to.equal(expectedBadgeCount) }) }) describe('on unsupported platform', () => { - before(function () { - if (platformIsSupported) { - this.skip() - } - }) + it('does not set a badge count', function () { + if (platformIsSupported) return this.skip() - it('returns false', () => { - expect(returnValue).to.equal(false) - }) - - it('does not set a badge count', () => { - expect(app.getBadgeCount()).to.equal(0) + app.badgeCount = 9999 + expect(app.badgeCount).to.equal(0) }) }) })