android-notify 1.60.7.dev0__tar.gz → 1.60.8.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/PKG-INFO +5 -5
  2. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/README.md +4 -4
  3. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/__init__.py +7 -2
  4. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/config.py +1 -1
  5. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/helper.py +5 -3
  6. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/permissions.py +29 -5
  7. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/main.py +28 -10
  8. android_notify-1.60.8.dev0/android_notify/tests/test_notification_permission.py +38 -0
  9. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/widgets/images.py +0 -2
  10. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify.egg-info/PKG-INFO +5 -5
  11. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify.egg-info/SOURCES.txt +8 -7
  12. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/pyproject.toml +1 -1
  13. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/__main__.py +0 -0
  14. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/base.py +0 -0
  15. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/core.py +0 -0
  16. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/fallback-icons/flet-appicon.png +0 -0
  17. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/fallback-icons/pydroid3-appicon.png +0 -0
  18. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/an_types.py +0 -0
  19. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/android.py +0 -0
  20. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/channels.py +0 -0
  21. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/facade.py +0 -0
  22. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/intents.py +0 -0
  23. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/java_classes.py +0 -0
  24. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/internal/logger.py +0 -0
  25. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/styles.py +0 -0
  26. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/sword.py +0 -0
  27. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/__init__.py +0 -0
  28. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/android_notify_test.py +0 -0
  29. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/base_test.py +0 -0
  30. {android_notify-1.60.7.dev0/docs → android_notify-1.60.8.dev0/android_notify}/tests/flet/adv/main.py +0 -0
  31. {android_notify-1.60.7.dev0/docs → android_notify-1.60.8.dev0/android_notify}/tests/flet/adv/tests/__init__.py +0 -0
  32. {android_notify-1.60.7.dev0/docs → android_notify-1.60.8.dev0/android_notify}/tests/flet/adv/tests/test_android_notify_full.py +0 -0
  33. {android_notify-1.60.7.dev0/docs/examples/flet-working → android_notify-1.60.8.dev0/android_notify/tests/flet/basic}/src/core.py +0 -0
  34. {android_notify-1.60.7.dev0/docs → android_notify-1.60.8.dev0/android_notify}/tests/flet/basic/src/main.py +0 -0
  35. {android_notify-1.60.7.dev0/docs/tests/flet/basic → android_notify-1.60.8.dev0/android_notify/tests/flet/flet-working}/src/core.py +0 -0
  36. {android_notify-1.60.7.dev0/docs/examples → android_notify-1.60.8.dev0/android_notify/tests/flet}/flet-working/src/main.py +0 -0
  37. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/p4a/hook.py +0 -0
  38. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/serivces/wallpaper.py +0 -0
  39. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_basic_notifications.py +0 -0
  40. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_actions.py +0 -0
  41. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_appearance.py +0 -0
  42. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_behavior.py +0 -0
  43. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_channels.py +0 -0
  44. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_clear.py +0 -0
  45. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_progress.py +0 -0
  46. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_sound.py +0 -0
  47. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/tests/test_notification_styles.py +0 -0
  48. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify/widgets/texts.py +0 -0
  49. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify.egg-info/dependency_links.txt +0 -0
  50. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify.egg-info/entry_points.txt +0 -0
  51. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify.egg-info/requires.txt +0 -0
  52. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/android_notify.egg-info/top_level.txt +0 -0
  53. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/docs/website/src/pages/data/laner_Sent.py +0 -0
  54. {android_notify-1.60.7.dev0 → android_notify-1.60.8.dev0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: android-notify
3
- Version: 1.60.7.dev0
3
+ Version: 1.60.8.dev0
4
4
  Summary: A Python package that simplifies creating Android notifications in Kivy and Flet apps.
5
5
  Author-email: Fabian <fector101@yahoo.com>
6
6
  License-Expression: MIT
@@ -81,7 +81,7 @@ In your **`buildozer.spec`** file, ensure you include the following:
81
81
 
82
82
  ```ini
83
83
  # Add pyjnius so ensure it's packaged with the build
84
- requirements = python3, kivy, pyjnius, android-notify==1.60.7.dev0
84
+ requirements = python3, kivy, pyjnius, android-notify==1.60.8.dev0
85
85
  # Add permission for notifications
86
86
  android.permissions = POST_NOTIFICATIONS
87
87
  ```
@@ -99,7 +99,7 @@ In your `pyproject.toml` file, ensure you include the following:
99
99
  ```toml
100
100
  [tool.flet.android]
101
101
  dependencies = [
102
- "pyjnius","android-notify==1.60.7.dev0"
102
+ "pyjnius","android-notify==1.60.8.dev0"
103
103
  ]
104
104
 
105
105
  [tool.flet.android.permission]
@@ -117,10 +117,10 @@ dependencies = [
117
117
  <br/>
118
118
 
119
119
  On the [pydroid 3](https://play.google.com/store/apps/details?id=ru.iiec.pydroid3) mobile app for running python code you can test some features.
120
- - In pip section where you're asked to insert `Libary name` paste `android-notify==1.60.7.dev0`
120
+ - In pip section where you're asked to insert `Libary name` paste `android-notify==1.60.8.dev0`
121
121
  - Minimal working example
122
122
  ```py
123
- # Testing with `android-notify==1.60.7.dev0` on pydroid
123
+ # Testing with `android-notify==1.60.8.dev0` on pydroid
124
124
  from kivy.app import App
125
125
  from kivy.uix.boxlayout import BoxLayout
126
126
  from kivy.uix.button import Button
@@ -58,7 +58,7 @@ In your **`buildozer.spec`** file, ensure you include the following:
58
58
 
59
59
  ```ini
60
60
  # Add pyjnius so ensure it's packaged with the build
61
- requirements = python3, kivy, pyjnius, android-notify==1.60.7.dev0
61
+ requirements = python3, kivy, pyjnius, android-notify==1.60.8.dev0
62
62
  # Add permission for notifications
63
63
  android.permissions = POST_NOTIFICATIONS
64
64
  ```
@@ -76,7 +76,7 @@ In your `pyproject.toml` file, ensure you include the following:
76
76
  ```toml
77
77
  [tool.flet.android]
78
78
  dependencies = [
79
- "pyjnius","android-notify==1.60.7.dev0"
79
+ "pyjnius","android-notify==1.60.8.dev0"
80
80
  ]
81
81
 
82
82
  [tool.flet.android.permission]
@@ -94,10 +94,10 @@ dependencies = [
94
94
  <br/>
95
95
 
96
96
  On the [pydroid 3](https://play.google.com/store/apps/details?id=ru.iiec.pydroid3) mobile app for running python code you can test some features.
97
- - In pip section where you're asked to insert `Libary name` paste `android-notify==1.60.7.dev0`
97
+ - In pip section where you're asked to insert `Libary name` paste `android-notify==1.60.8.dev0`
98
98
  - Minimal working example
99
99
  ```py
100
- # Testing with `android-notify==1.60.7.dev0` on pydroid
100
+ # Testing with `android-notify==1.60.8.dev0` on pydroid
101
101
  from kivy.app import App
102
102
  from kivy.uix.boxlayout import BoxLayout
103
103
  from kivy.uix.button import Button
@@ -1,5 +1,10 @@
1
- """"
2
- For Easier Imports For Public Classes
1
+ """
2
+ Android-Notify
3
+ =================
4
+
5
+ For Creating Android Notifications In Python Apps.
6
+
7
+ All the documentation is available at: https://android-notify.vercel.app/
3
8
  """
4
9
  from .core import send_notification
5
10
  from .styles import NotificationStyles
@@ -1,6 +1,6 @@
1
1
  import os
2
2
 
3
- __version__ = "1.60.7.dev0"
3
+ __version__ = "1.60.8.dev0"
4
4
 
5
5
 
6
6
  from .internal.java_classes import autoclass, cast, NotificationManager
@@ -40,14 +40,16 @@ def get_package_path():
40
40
  return os.path.dirname(os.path.abspath(__file__))
41
41
 
42
42
 
43
- def execute_callback(callback,arg):
43
+ def execute_callback(callback,arg, from_who="user"):
44
44
  """
45
45
  Executing Callbacks Safely
46
46
  """
47
- if callback:
47
+ if not callback:
48
48
  return None
49
+ if from_who == "user":
50
+ logger.info(f"Executing On Permission Result Callback...")
49
51
  try:
50
- if can_accept_arguments(callback, True):
52
+ if can_accept_arguments(callback, arg):
51
53
  callback(arg)
52
54
  else:
53
55
  callback()
@@ -1,6 +1,7 @@
1
1
  """
2
2
  For Permission Related Blocks
3
3
  """
4
+ import os.path
4
5
 
5
6
  from .logger import logger
6
7
  from android_notify.config import on_android_platform, on_flet_app, get_python_activity_context
@@ -45,10 +46,16 @@ def ask_notification_permission(callback=None, set_requesting_state=None, legacy
45
46
  logger.warning("Already have permission to send notifications")
46
47
  return None
47
48
 
48
- if not can_show_permission_request_popup():
49
+ if not is_first_permission_ask() and not can_show_permission_request_popup():
49
50
  logger.warning("""Permission to send notifications has been denied permanently.
50
- This happens when the user denies permission twice from the popup.
51
- Opening notification settings...""")
51
+ This can happen when the user denies permission twice from the popup.
52
+
53
+ Opening notification settings...
54
+
55
+ Add in MDApp().on_resume():
56
+ >> if NotificationHandler.has_permission() and self.screen_manager:
57
+ >> self.screen_manager.current = "home_screen"
58
+ """)
52
59
  open_notification_settings_screen()
53
60
  return None
54
61
 
@@ -57,7 +64,7 @@ def ask_notification_permission(callback=None, set_requesting_state=None, legacy
57
64
  def on_permissions_result(_, grants):
58
65
  # _ is permissions
59
66
  execute_callback(callback, grants[0])
60
- execute_callback(set_requesting_state, False)
67
+ execute_callback(set_requesting_state, False,from_who="package")
61
68
 
62
69
  if legacy or on_flet_app():
63
70
  # TODO Handle activity with request code
@@ -66,12 +73,18 @@ def ask_notification_permission(callback=None, set_requesting_state=None, legacy
66
73
  return None
67
74
  else:
68
75
  from android.permissions import request_permissions, Permission # type: ignore
69
- execute_callback(set_requesting_state, True)
76
+ execute_callback(set_requesting_state, True,from_who="package")
70
77
  request_permissions([Permission.POST_NOTIFICATIONS], on_permissions_result)
71
78
  return None
72
79
 
73
80
 
74
81
  def open_notification_settings_screen():
82
+ """In MDApp().on_resume()
83
+
84
+ Example:
85
+ >>> if NotificationHandler.has_permission() and self.screen_manager:
86
+ >>> self.screen_manager.current = "home_screen"
87
+ """
75
88
  context = get_python_activity_context()
76
89
 
77
90
  if not context:
@@ -114,3 +127,14 @@ def can_show_permission_request_popup():
114
127
  return False
115
128
 
116
129
  return context.shouldShowRequestPermissionRationale(Manifest.POST_NOTIFICATIONS)
130
+
131
+
132
+ def is_first_permission_ask():
133
+ from importlib.resources import files
134
+ buffer_file_name = "ASKED_PERMISSION.txt"
135
+ absolute_buffer_file_path = str(files("android_notify") / buffer_file_name) # Making sure one path is always used
136
+
137
+ if os.path.exists(absolute_buffer_file_path):
138
+ return False
139
+ open(absolute_buffer_file_path,'w').close()
140
+ return True
@@ -29,6 +29,7 @@ from android_notify.tests.test_notification_behavior import TestNotificationBeha
29
29
  from android_notify.tests.test_notification_progress import TestNotificationProgress
30
30
  from android_notify.tests.test_notification_sound import TestNotificationSound
31
31
  from android_notify.tests.test_notification_clear import TestClearNotifications
32
+ from android_notify.tests.test_notification_permission import NOTIFICATION_PERMISSION_TESTS
32
33
  from kivy.clock import Clock
33
34
 
34
35
  # -----------------------------
@@ -82,6 +83,7 @@ class TripleClickButton(Button):
82
83
  class AndroidNotifyDemoApp(MDApp):
83
84
 
84
85
  def on_start(self):
86
+ print('starting app...')
85
87
  try:
86
88
  from kivymd.toast import toast
87
89
  name = NotificationHandler.get_name(on_start=True)
@@ -89,6 +91,7 @@ class AndroidNotifyDemoApp(MDApp):
89
91
  except Exception as e:
90
92
  print("Error getting notify name:", e)
91
93
 
94
+ print('on_start','-'*33)
92
95
 
93
96
  def android_service():
94
97
 
@@ -154,11 +157,28 @@ class AndroidNotifyDemoApp(MDApp):
154
157
  self.test_buttons.append(btn)
155
158
  main.add_widget(btn)
156
159
 
160
+ # Permission request needs human inputs for tests
161
+ for label, action in NOTIFICATION_PERMISSION_TESTS.items():
162
+ btn = self._btn(
163
+ f"Run: {label}",
164
+ lambda _, fn=action: self.run_action(fn, _)
165
+ )
166
+ main.add_widget(btn)
157
167
  return root
158
168
 
159
- # -----------------------------
160
- # Helper to make buttons
161
- # -----------------------------
169
+ def run_action(self, action_fn, btn_instance):
170
+ btn_instance.disabled = True
171
+ print(f"\n▶ Running action: {action_fn.__name__}")
172
+
173
+ try:
174
+ action_fn()
175
+ except Exception as error_running_action:
176
+ print("error_running_action:", error_running_action)
177
+ traceback.print_exc()
178
+ finally:
179
+ # Re-enable AFTER user interaction finishes
180
+ btn_instance.disabled = False
181
+
162
182
  def _btn(self, text, callback, height=80):
163
183
  return TripleClickButton(
164
184
  text=text,
@@ -185,9 +205,6 @@ class AndroidNotifyDemoApp(MDApp):
185
205
  for btn in self.test_buttons:
186
206
  btn.disabled = False
187
207
 
188
- # -----------------------------
189
- # Actions
190
- # -----------------------------
191
208
  def request_permission(self, btn_instance):
192
209
  asks_permission_if_needed()
193
210
  btn_instance.disabled = False
@@ -204,16 +221,17 @@ class AndroidNotifyDemoApp(MDApp):
204
221
  btn_instance.disabled = False
205
222
 
206
223
  def on_resume(self):
224
+ print('resuming app..')
207
225
  try:
208
226
  from kivymd.toast import toast
209
227
  name = NotificationHandler.get_name()
210
- toast(text=f"name: {name}", length_long=True)
228
+
229
+ toast(text=f"name: {name}, Permission:{NotificationHandler.has_permission()}", length_long=True)
211
230
  except Exception as e:
212
231
  print("Error getting notify name:", e)
232
+ print('on_resume','-'*33)
233
+
213
234
 
214
235
 
215
- # -----------------------------
216
- # Entry
217
- # -----------------------------
218
236
  if __name__ == "__main__":
219
237
  AndroidNotifyDemoApp().run()
@@ -0,0 +1,38 @@
1
+ # android_notify/tests/basic_notification_actions.py
2
+
3
+ from android_notify import NotificationHandler
4
+ from android_notify.internal.permissions import ask_notification_permission
5
+ from android_notify.core import asks_permission_if_needed
6
+
7
+
8
+ def ask_permission_no_callback():
9
+ NotificationHandler.asks_permission()
10
+
11
+
12
+ def ask_permission_with_callback():
13
+ def some_callback(answer):
14
+ print(f"Hey Dude, Notification Request result {answer}.")
15
+ NotificationHandler.asks_permission(some_callback)
16
+
17
+
18
+ def ask_permission_simple_regular():
19
+ asks_permission_if_needed()
20
+
21
+
22
+ def ask_permission_simple_legacy():
23
+ asks_permission_if_needed(legacy=True)
24
+
25
+
26
+ def ask_permission_from_source():
27
+ def some_callback(answer):
28
+ print(f"Hey, Notification Request Request1: {answer}")
29
+ ask_notification_permission(callback=some_callback)
30
+
31
+
32
+ NOTIFICATION_PERMISSION_TESTS = {
33
+ "permission (no callback)": ask_permission_no_callback,
34
+ "permission (with callback)": ask_permission_with_callback,
35
+ "permission (simple)": ask_permission_simple_regular,
36
+ "permission (legacy)": ask_permission_simple_legacy,
37
+ "permission (from source)": ask_permission_from_source,
38
+ }
@@ -75,8 +75,6 @@ def icon_finder(icon_name):
75
75
  # noinspection PyPackageRequirements
76
76
  from importlib.resources import files
77
77
  return str(files("android_notify")/"fallback-icons"/icon_name)
78
- # import pkg_resources
79
- # return pkg_resources.resource_filename(__name__, f"fallback-icons/{icon_name}")
80
78
  except Exception:
81
79
  # Fallback if pkg_resources not available
82
80
  package_dir = get_package_path()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: android-notify
3
- Version: 1.60.7.dev0
3
+ Version: 1.60.8.dev0
4
4
  Summary: A Python package that simplifies creating Android notifications in Kivy and Flet apps.
5
5
  Author-email: Fabian <fector101@yahoo.com>
6
6
  License-Expression: MIT
@@ -81,7 +81,7 @@ In your **`buildozer.spec`** file, ensure you include the following:
81
81
 
82
82
  ```ini
83
83
  # Add pyjnius so ensure it's packaged with the build
84
- requirements = python3, kivy, pyjnius, android-notify==1.60.7.dev0
84
+ requirements = python3, kivy, pyjnius, android-notify==1.60.8.dev0
85
85
  # Add permission for notifications
86
86
  android.permissions = POST_NOTIFICATIONS
87
87
  ```
@@ -99,7 +99,7 @@ In your `pyproject.toml` file, ensure you include the following:
99
99
  ```toml
100
100
  [tool.flet.android]
101
101
  dependencies = [
102
- "pyjnius","android-notify==1.60.7.dev0"
102
+ "pyjnius","android-notify==1.60.8.dev0"
103
103
  ]
104
104
 
105
105
  [tool.flet.android.permission]
@@ -117,10 +117,10 @@ dependencies = [
117
117
  <br/>
118
118
 
119
119
  On the [pydroid 3](https://play.google.com/store/apps/details?id=ru.iiec.pydroid3) mobile app for running python code you can test some features.
120
- - In pip section where you're asked to insert `Libary name` paste `android-notify==1.60.7.dev0`
120
+ - In pip section where you're asked to insert `Libary name` paste `android-notify==1.60.8.dev0`
121
121
  - Minimal working example
122
122
  ```py
123
- # Testing with `android-notify==1.60.7.dev0` on pydroid
123
+ # Testing with `android-notify==1.60.8.dev0` on pydroid
124
124
  from kivy.app import App
125
125
  from kivy.uix.boxlayout import BoxLayout
126
126
  from kivy.uix.button import Button
@@ -34,18 +34,19 @@ android_notify/tests/test_notification_appearance.py
34
34
  android_notify/tests/test_notification_behavior.py
35
35
  android_notify/tests/test_notification_channels.py
36
36
  android_notify/tests/test_notification_clear.py
37
+ android_notify/tests/test_notification_permission.py
37
38
  android_notify/tests/test_notification_progress.py
38
39
  android_notify/tests/test_notification_sound.py
39
40
  android_notify/tests/test_notification_styles.py
41
+ android_notify/tests/flet/adv/main.py
42
+ android_notify/tests/flet/adv/tests/__init__.py
43
+ android_notify/tests/flet/adv/tests/test_android_notify_full.py
44
+ android_notify/tests/flet/basic/src/core.py
45
+ android_notify/tests/flet/basic/src/main.py
46
+ android_notify/tests/flet/flet-working/src/core.py
47
+ android_notify/tests/flet/flet-working/src/main.py
40
48
  android_notify/tests/p4a/hook.py
41
49
  android_notify/tests/serivces/wallpaper.py
42
50
  android_notify/widgets/images.py
43
51
  android_notify/widgets/texts.py
44
- docs/examples/flet-working/src/core.py
45
- docs/examples/flet-working/src/main.py
46
- docs/tests/flet/adv/main.py
47
- docs/tests/flet/adv/tests/__init__.py
48
- docs/tests/flet/adv/tests/test_android_notify_full.py
49
- docs/tests/flet/basic/src/core.py
50
- docs/tests/flet/basic/src/main.py
51
52
  docs/website/src/pages/data/laner_Sent.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "android-notify"
7
- version = "1.60.7.dev0"
7
+ version = "1.60.8.dev0"
8
8
  description = "A Python package that simplifies creating Android notifications in Kivy and Flet apps."
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  authors = [