-
Create an github account if you don't have.
-
Create a repository, you could also create it as private.
-
Goto your project directory (where main.py exists) and create a file in
.github/workflows/build.yml
(Create the folders if not already existed).
from kivy.uix.recycleview import RecycleView | |
from kivy.clock import Clock | |
from kivy.properties import OptionProperty, BooleanProperty, ObjectProperty, NumericProperty, ListProperty | |
from kivy.animation import Animation | |
from kivymd.uix.behaviors import StencilBehavior, SpecificBackgroundColorBehavior | |
from kivymd.uix.boxlayout import MDBoxLayout | |
from kivy.uix.widget import Widget | |
from Components.effects import LowerScrollEffect, LowerDampedScrollEffect |
from kivy.event import EventDispatcher | |
from kivy.metrics import dp | |
from kivy.properties import ListProperty, StringProperty | |
from kivymd.uix.behaviors import FakeRectangularElevationBehavior | |
from kivymd.uix.card import MDCard | |
from kivy.uix.behaviors import ToggleButtonBehavior | |
from kivy.uix.gridlayout import GridLayout | |
from kivy.uix.boxlayout import BoxLayout | |
from kivy.uix.label import Label |
Many people state that kivy is slow. While this may be true it is mostly due to that python is slow to run on android devices.Thus it is in the programmer's hands to properly optimize their code so as to create a performant application.
Most of the lag on android devices runing kivy apps arise due to widget creation. Widget creation remains the slowest step in a kivy app. Here are some of the methods that I follow to optimize my apps and ensure I can hit 60fps even on old devices
Source: AndroidDev
To get call history programmatically first add read contact permission in Manifest file:
<uses-permission android:name="android.permission.READ_CONTACTS" />
Create xml file. Add the below code in xml file:
<Linearlayout android:layout_height="fill_parent"
def luhn_checksum(card_number): | |
def digits_of(n): | |
return [int(d) for d in str(n)] | |
digits = digits_of(card_number) | |
odd_digits = digits[-1::-2] | |
even_digits = digits[-2::-2] | |
checksum = 0 | |
checksum += sum(odd_digits) | |
for d in even_digits: | |
checksum += sum(digits_of(d*2)) |
BoxLayout: | |
orientation: 'vertical' | |
Label: | |
size_hint_y: None | |
height: '50dp' | |
id: calc | |
text: '' | |
GridLayout: | |
cols: 4 |
[ | |
{ | |
"Country": { | |
"Name": "Afghanistan", | |
"ISOCode": "AF", | |
"ISONumeric": "4" | |
}, | |
"Ambulance": { | |
"All": [ | |
"112" |
The drivers for Intel HD Graphics 3000 in Windows 10 does not expose all Open GL capabilities of the GPU. So software relying on Open GL features not present in Open GL 1.1 will not work. Using older versions of Windows or Linux might work since the chip have more features than the driver exposes.
The fix is to add a compatibility shim using the Windows ADK software.
Link: https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install
# adapted from https://github.com/dpapathanasiou/pdfminer-layout-scanner | |
from os.path import exists | |
from tempfile import mkdtemp, mkstemp | |
from shutil import rmtree | |
from binascii import b2a_hex | |
from os import write, close | |
from threading import Thread | |
from pdfminer.pdfpage import PDFPage |