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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## 1.9.0

### New Features

- **New Feature: App Icon Badge Count** - Show MRR, user counts, stock prices, and more on your ActivitySmith app icon.
69 changes: 56 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ See the [API reference](https://activitysmith.com/docs/api-reference/introductio
- [Live Activity Action](#live-activity-action)
- [Icons and Badges](#icons-and-badges)
- [Live Activity Colors](#live-activity-colors)
- [Channels](#channels)
- [Widgets](#widgets)
- [App Icon Badge Count](#app-icon-badge-count)
- [Channels](#channels)

## Installation

Expand Down Expand Up @@ -513,18 +514,6 @@ Choose from these colors for the Live Activity accent, including progress bars a

`lime`, `green`, `cyan`, `blue`, `purple`, `magenta`, `red`, `orange`, `yellow`, `gray`

## Channels

Channels are used to target specific team members or devices. Can be used for both push notifications and live activities.

```python
activitysmith.notifications.send(
title="New subscription 💸",
message="Customer upgraded to Pro plan",
channels=["sales", "customer-success"], # Optional
)
```

## Widgets

<p align="center">
Expand All @@ -547,6 +536,60 @@ String metric values work too.
activitysmith.metrics.update("prod.status", "healthy")
```

## App Icon Badge Count

<p align="center">
<img src="https://cdn.activitysmith.com/features/badge-count.png" alt="ActivitySmith app icon with an App Icon Badge Count" width="680" />
</p>

Show the number you care about on your ActivitySmith app icon. Track MRR, a customer count, a stock price, or any other value you want to keep in view.

Set or update the badge value.

```python
activitysmith.badge_count(8333)
```

To clear the badge, set its value to 0.

```python
activitysmith.badge_count(0)
```

## Channels

Use `channels` to target specific team members or devices

### Push Notifications

```python
activitysmith.notifications.send(
title="New subscription 💸",
message="Customer upgraded to Pro plan",
channels=["sales", "customer-success"],
)
```

### Live Activities

```python
activitysmith.live_activities.start(
content_state=content_state(
title="Nightly Database Backup",
subtitle="verify restore",
type="progress",
percentage=62,
),
channels=["sales", "customer-success"],
)
```

### App Icon Badge Count

```python
activitysmith.badge_count(3, channels=["sales", "customer-success"])
```

## Error Handling

```python
Expand Down
10 changes: 9 additions & 1 deletion activitysmith/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
from activitysmith_openapi.api.live_activities_api import LiveActivitiesApi
from activitysmith_openapi.api.metrics_api import MetricsApi
from activitysmith_openapi.api.push_notifications_api import PushNotificationsApi
from activitysmith_openapi.api.app_icon_badges_api import AppIconBadgesApi

SDK_VERSION = "1.8.0"
SDK_VERSION = "1.9.0"
SDK_HEADER_NAME = "X-ActivitySmith-SDK"
SDK_HEADER_VALUE = f"python-v{SDK_VERSION}"

Expand Down Expand Up @@ -762,3 +763,10 @@ def __post_init__(self) -> None:
self.notifications = NotificationsResource(PushNotificationsApi(api_client))
self.live_activities = LiveActivitiesResource(LiveActivitiesApi(api_client))
self.metrics = MetricsResource(MetricsApi(api_client))
self._app_icon_badges = AppIconBadgesApi(api_client)

def badge_count(self, value: int, *, channels: Any | None = None):
request = _compact_dict({"badge": value, "channels": channels})
return self._app_icon_badges.update_app_icon_badge_count(
app_icon_badge_count_update_request=_normalize_channels_target(request)
)
3 changes: 3 additions & 0 deletions activitysmith_openapi/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
__version__ = "1.8.0"

# import apis into sdk package
from activitysmith_openapi.api.app_icon_badges_api import AppIconBadgesApi
from activitysmith_openapi.api.live_activities_api import LiveActivitiesApi
from activitysmith_openapi.api.metrics_api import MetricsApi
from activitysmith_openapi.api.push_notifications_api import PushNotificationsApi
Expand All @@ -36,6 +37,8 @@
from activitysmith_openapi.models.activity_metric import ActivityMetric
from activitysmith_openapi.models.activity_metric_value import ActivityMetricValue
from activitysmith_openapi.models.alert_payload import AlertPayload
from activitysmith_openapi.models.app_icon_badge_count_update_request import AppIconBadgeCountUpdateRequest
from activitysmith_openapi.models.app_icon_badge_count_update_response import AppIconBadgeCountUpdateResponse
from activitysmith_openapi.models.bad_request_error import BadRequestError
from activitysmith_openapi.models.channel_target import ChannelTarget
from activitysmith_openapi.models.content_state_end import ContentStateEnd
Expand Down
1 change: 1 addition & 0 deletions activitysmith_openapi/api/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# flake8: noqa

# import apis into api package
from activitysmith_openapi.api.app_icon_badges_api import AppIconBadgesApi
from activitysmith_openapi.api.live_activities_api import LiveActivitiesApi
from activitysmith_openapi.api.metrics_api import MetricsApi
from activitysmith_openapi.api.push_notifications_api import PushNotificationsApi
Expand Down
Loading