lbry-android-sdk/p4a/testapps/testapp_keyboard/main.py

145 lines
3.8 KiB
Python
Raw Permalink Normal View History

2017-08-13 03:24:00 +02:00
print('main.py was successfully called')
import os
print('imported os')
from kivy import platform
if platform == 'android':
print('contents of ./lib/python2.7/site-packages/ etc.')
print(os.listdir('./lib'))
print(os.listdir('./lib/python2.7'))
print(os.listdir('./lib/python2.7/site-packages'))
print('this dir is', os.path.abspath(os.curdir))
print('contents of this dir', os.listdir('./'))
with open('./lib/python2.7/site-packages/kivy/app.pyo', 'rb') as fileh:
print('app.pyo size is', len(fileh.read()))
import sys
print('pythonpath is', sys.path)
import kivy
print('imported kivy')
print('file is', kivy.__file__)
from kivy.app import App
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivy.uix.popup import Popup
from kivy.clock import Clock
print('Imported kivy')
from kivy.utils import platform
print('platform is', platform)
kv = '''
#:import Metrics kivy.metrics.Metrics
#:import Window kivy.core.window.Window
<FixedSizeButton@Button>:
size_hint_y: None
height: dp(60)
BoxLayout:
orientation: 'vertical'
BoxLayout:
size_hint_y: None
height: dp(50)
orientation: 'horizontal'
Button:
text: 'None'
on_press: Window.softinput_mode = ''
Button:
text: 'pan'
on_press: Window.softinput_mode = 'pan'
Button:
text: 'below_target'
on_press: Window.softinput_mode = 'below_target'
Button:
text: 'resize'
on_press: Window.softinput_mode = 'resize'
Widget:
Scatter:
id: scatter
size_hint: None, None
size: dp(300), dp(80)
on_parent: self.pos = (300, 100)
BoxLayout:
size: scatter.size
orientation: 'horizontal'
canvas:
Color:
rgba: 1, 0, 0, 1
Rectangle:
pos: 0, 0
size: self.size
Widget:
size_hint_x: None
width: dp(30)
TextInput:
text: 'type in me'
'''
class ErrorPopup(Popup):
error_text = StringProperty('')
def raise_error(error):
print('ERROR:', error)
ErrorPopup(error_text=error).open()
class TestApp(App):
def build(self):
root = Builder.load_string(kv)
Clock.schedule_interval(self.print_something, 2)
# Clock.schedule_interval(self.test_pyjnius, 5)
print('testing metrics')
from kivy.metrics import Metrics
print('dpi is', Metrics.dpi)
print('density is', Metrics.density)
print('fontscale is', Metrics.fontscale)
return root
def print_something(self, *args):
print('App print tick', Clock.get_boottime())
def on_pause(self):
return True
def test_pyjnius(self, *args):
try:
from jnius import autoclass
except ImportError:
raise_error('Could not import pyjnius')
return
print('Attempting to vibrate with pyjnius')
# PythonActivity = autoclass('org.renpy.android.PythonActivity')
# activity = PythonActivity.mActivity
PythonActivity = autoclass('org.kivy.android.PythonActivity')
activity = PythonActivity.mActivity
Intent = autoclass('android.content.Intent')
Context = autoclass('android.content.Context')
vibrator = activity.getSystemService(Context.VIBRATOR_SERVICE)
vibrator.vibrate(1000)
def test_ctypes(self, *args):
import ctypes
def test_numpy(self, *args):
import numpy
print(numpy.zeros(5))
print(numpy.arange(5))
print(numpy.random.random((3, 3)))
TestApp().run()