globalforest/kivymd/toast/androidtoast/androidtoast.py
2020-10-14 07:19:43 +03:00

69 lines
1.7 KiB
Python
Executable file

"""
AndroidToast
============
.. rubric:: Native implementation of toast for Android devices.
.. code-block:: python
from kivymd.app import MDApp
# Will be automatically used native implementation of the toast
# if your application is running on an Android device.
# Otherwise, will be used toast implementation
# from the kivymd/toast/kivytoast package.
from kivymd.toast import toast
KV = '''
BoxLayout:
orientation:'vertical'
MDToolbar:
id: toolbar
title: 'Test Toast'
md_bg_color: app.theme_cls.primary_color
left_action_items: [['menu', lambda x: '']]
FloatLayout:
MDRaisedButton:
text: 'TEST KIVY TOAST'
on_release: app.show_toast()
pos_hint: {'center_x': .5, 'center_y': .5}
'''
class Test(MDApp):
def show_toast(self):
'''Displays a toast on the screen.'''
toast('Test Kivy Toast')
def build(self):
return Builder.load_string(KV)
Test().run()
"""
__all__ = ("toast",)
from android.runnable import run_on_ui_thread
from jnius import autoclass, cast
Toast = autoclass("android.widget.Toast")
context = autoclass("org.kivy.android.PythonActivity").mActivity
@run_on_ui_thread
def toast(text, length_long=False):
"""Displays a toast.
:length_long: The amount of time (in seconds) that the toast is visible on the screen.
"""
duration = Toast.LENGTH_LONG if length_long else Toast.LENGTH_SHORT
String = autoclass("java.lang.String")
c = cast("java.lang.CharSequence", String(text))
t = Toast.makeText(context, c, duration)
t.show()