Advertisement
jevixlugya

Untitled

Nov 30th, 2022
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.88 KB | Software | 0 0
  1. from kivy.core.audio import SoundLoader
  2. from kivy.factory import Factory
  3. from kivy.core.window import Window
  4. from kivy.properties import StringProperty, ObjectProperty,ListProperty
  5. from kivy.uix.label import Label
  6. from kivy.uix.button import Button
  7. from kivy.uix.popup import Popup
  8. from kivy.uix.screenmanager import ScreenManager, Screen,WipeTransition,RiseInTransition
  9. from kivy.uix.widget import Widget
  10. from kivymd.app import MDApp
  11. from kivymd.uix.button import MDFlatButton
  12. from kivymd.uix.dialog import MDDialog
  13. from kivymd.uix.menu import MDDropdownMenu
  14. from kivymd.uix.picker import MDThemePicker
  15. from kivymd.toast import toast
  16. from kivy.animation import Animation
  17. from kivy.clock import Clock
  18. from kivy.uix.recycleview import RecycleView
  19. from kivymd.uix.list import TwoLineAvatarIconListItem
  20. from kivy.uix.behaviors import ToggleButtonBehavior
  21. from kivy.uix.image import Image
  22. from kivymd.uix.gridlayout import MDGridLayout
  23. from kivy.uix.scrollview import ScrollView
  24.  
  25. Window.size=470,750
  26.  
  27. class AnimScrollView(ScrollView):
  28.     def __init__(self, **kwargs):
  29.         super().__init__(**kwargs)
  30.         time=150
  31.         self.anim = Animation(scroll_y=0, duration=time) + Animation(scroll_y=1, duration=5)
  32.         self.anim.repeat = True
  33.  
  34.     def animate_scroll(self):
  35.         self.anim.start(self)
  36.        
  37.        
  38. class PlayButton(ToggleButtonBehavior, Image):
  39.     def __init__(self, **kwargs):
  40.         super(PlayButton, self).__init__(**kwargs)    
  41.         self.source = 'play icon.png'
  42.         self.background_color=1,1,0,1
  43.  
  44.  
  45.     def on_state(self, widget, value):
  46.         if value == 'down':
  47.             self.source = 'Pause-Button.png'
  48.             self.sound=SoundLoader.load('piano/holy.mp3')
  49.             self.sound.play()
  50.             toast('playing.....')
  51.             self.sound.loop=True
  52.         else:
  53.             self.source = 'play icon.png'
  54.             toast('stoped')
  55.             self.sound.stop()
  56.  
  57. class FontStylescontent(MDGridLayout):
  58.     pass
  59.  
  60. class RV(RecycleView):
  61.     def on_kv_post(self, base_widget):
  62.         self.init_data()
  63.  
  64.     def init_data(self):
  65.         # initialize the data for the recycleview
  66.         self.ennyimba={
  67.             "Gw'oli Mutukuvu":'1',"Ka Tukusuute Omulokozi Waffe ":'2','Mumaaso ga Yesu':'3','Tusinze Nnyo Erinnya Lye':'4',
  68.             'Tumusinze Mukama Waffe':'5',"Mwe Amawanga Ag'oku Nsi":'6','Mukama Gwe Kifo kyaffe':'7','Okukaaba Kwange Owulire':'8',
  69.             'Gwe Eyanunula':'9','Jjangu Yesu Obe Mu Nze':'10','Bonna basuute Mukama':'11',"Twebaza gwe omuva byonna":'12',"Yesu wasuubiza ffe abantu bo":'13',"Ka ntambule naawe Yesu":'14',
  70.             "Yesu alifuga wonna wonna":'15',"Nkwetaaga ayi Mukama":'16',"Si nze, naye Kristo":'17'
  71.            
  72.            
  73.            
  74.            
  75.            
  76.            
  77.            
  78.         }
  79.         self.data = [{'text': f'{i}'} for i in self.ennyimba]
  80.  
  81.     def search_rv(self, text):
  82.         if not text:
  83.             self.init_data()
  84.         else:
  85.             self.data = [x for x in self.data if text.capitalize() in x['text']]
  86.  
  87.        
  88. class Search_Select_Option(TwoLineAvatarIconListItem):
  89.  
  90.     def loadhymn(self,text):
  91.  
  92.         try:
  93.             app = MDApp.get_running_app()
  94.             app.root.get_screen('content').ids.labelhymn.text = self.get_hymn_text3()
  95.             app.root.current = 'content'
  96.            
  97.  
  98.         except:
  99.             pass
  100.             #self.ids.label.text=""
  101.     def get_hymn_text3(self):
  102.         self.hymns = {"Gw'oli Mutukuvu": {'tittle':"Gw'oli mutukuvu",'text': "Ennyimbatext/Gw'oli mutukuvu.txt"},
  103.                  "Ka Tukusuute Omulokozi Waffe ": {'text': 'Ennyimbatext/hymn2.txt'},
  104.                  'Mumaaso ga Yesu': {'text': 'Ennyimbatext/hymn3.txt' },
  105.                  'Tusinze Nnyo Erinnya Lye': {'text': 'Ennyimbatext/hymn4.txt'},
  106.                  'Tumusinze Mukama Waffe': {'text': 'Ennyimbatext/hymn5.txt'},
  107.                  "Mwe Amawanga Ag'oku Nsi": {'text': 'Ennyimbatext/hymn6.txt'},
  108.                  'Mukama Gwe Kifo kyaffe': {'text': 'Ennyimbatext/hymn7.txt'},
  109.                  'Okukaaba Kwange Owulire': {'text': 'Ennyimbatext/hymn8.txt'},
  110.                  'Gwe Eyanunula': {'text': 'Ennyimbatext/hymn9.txt'},
  111.                  'Jjangu Yesu Obe Mu Nze': {'text': 'Ennyimbatext/hymn10.txt'},
  112.                  'Bonna basuute Mukama': {'text': 'Ennyimbatext/hymn11.txt'},
  113.                  "Twebaza gwe omuva byonna": {'text': 'Ennyimbatext/hymn12.txt'},
  114.                  "Yesu wasuubiza ffe abantu bo": {'text': 'Ennyimbatext/hymn13.txt'},
  115.                  "Ka ntambule naawe Yesu": {'text': 'Ennyimbatext/hymn14.txt'},
  116.                  "Yesu alifuga wonna wonna": {'text': 'Ennyimbatext/hymn15.txt'},
  117.                  "Nkwetaaga ayi Mukama": {'text': 'Ennyimbatext/hymn16.txt'},
  118.                  "Si nze, naye Kristo": {'text': 'Ennyimbatext/hymn17.txt'},
  119.                                  
  120.                  }        
  121.         self.page=self.text
  122.         self.t=self.page
  123.  
  124.        
  125.         with open(self.hymns[f'{self.t}']['text']) as f:
  126.             return f.read()        
  127. class Searchin(Screen,RV):
  128.  
  129.     pass
  130. class ScreenManager(ScreenManager):
  131.     def __init__(self,**kwargs):
  132.         super(screenmanager).__init__(**kwargs)
  133.         self.transition=RiseInTransition()
  134.    
  135.    
  136.  
  137.  
  138. class HomeScreen(Screen):
  139.     fontname='fonts/popins.ttf'
  140.  
  141.  
  142.     def theme_callback(self):
  143.         print("theme")
  144.     def button_pressed(self, button):
  145.         gt5 = self.ids.label.text
  146.  
  147.  
  148.  
  149.         if gt5 == '0':
  150.             self.ids.label.text = ''
  151.             self.ids.label.text = f'{button}'
  152.  
  153.         else:
  154.             self.ids.label.text = f'{gt5}'f'{button}'
  155.  
  156.     def remove(self):
  157.          gt5 = self.ids.label.text
  158.          gt5=gt5[:-1]
  159.          self.ids.label.text=gt5
  160.      
  161.     def searchrecycle(self):
  162.         self.manager.current='serchscreen'            
  163.  
  164.     def go_to_page(self):
  165.         self.gt5=self.ids.label.text
  166.         self.page = [self.gt5]
  167.  
  168.         self.hymns = {'1': {'text': "Ennyimbatext/Gw'oli mutukuvu.txt"},
  169.                  '2': {'text': 'Ennyimbatext/hymn2.txt'},
  170.                  '3': {'text': 'Ennyimbatext/hymn3.txt'},
  171.                  '4': {'text': 'Ennyimbatext/hymn4.txt'},
  172.                  '5': {'text': 'Ennyimbatext/hymn5.txt'},
  173.                  '6': {'text': 'Ennyimbatext/hymn6.txt'},
  174.                  '7': {'text': 'Ennyimbatext/hymn7.txt'},
  175.                  '8': {'text': 'Ennyimbatext/hymn8.txt'},
  176.                  '9': {'text': 'Ennyimbatext/hymn9.txt'},
  177.                  '10': {'text': 'Ennyimbatext/hymn10.txt'},
  178.                  '11': {'text': 'Ennyimbatext/hymn11.txt'},
  179.                  '12': {'text': 'Ennyimbatext/hymn12.txt'},
  180.                  '13': {'text': 'Ennyimbatext/hymn13.txt'},
  181.                  '14': {'text': 'Ennyimbatext/hymn14.txt'},
  182.                  '15': {'text': 'Ennyimbatext/hymn15.txt'},
  183.                  '16': {'text': 'Ennyimbatext/hymn16.txt'},
  184.                  '17': {'text': 'Ennyimbatext/hymn17.txt'},
  185.                  '18': {'text': 'Ennyimbatext/hymn18.txt'},
  186.                  '19': {'text': 'Ennyimbatext/hymn19.txt'},
  187.                  '20': {'text': 'Ennyimbatext/hymn20.txt'},
  188.                  '21': {'text': 'Ennyimbatext/hymn21.txt'},
  189.                  '22': {'text': 'Ennyimbatext/hymn22.txt'},
  190.                  '23': {'text': 'Ennyimbatext/hymn23.txt'},
  191.                  '24': {'text': 'Ennyimbatext/hymn24.txt'}                                  
  192.                  }        
  193.  
  194.         try:
  195.             app = MDApp.get_running_app()
  196.             self.manager.get_screen('content').ids.labelhymn.text = self.get_hymn_text(self.gt5)
  197.             self.manager.current = 'content'
  198.             gt5 = self.ids.label.text
  199.            
  200.  
  201.         except:
  202.             self.ids.label.text="Not found"
  203.             #self.ids.label.text=""
  204.  
  205.     def get_hymn_text(self,page):
  206.         self.gt5=self.ids.label.text
  207.         self.page = self.gt5
  208.         with open(self.hymns[f'{self.page}']['text']) as f:
  209.             return f.read()
  210.  
  211.  
  212.  
  213.     def about_callback(self):
  214.         #print("about my app")    
  215.         self.dialog = MDDialog(
  216.             title="About:",
  217.             size_hint=[.6, .5],
  218.             type="custom",
  219.             text="This is Ennyimba Za Kkristo "
  220.             " In Luganda version"
  221.             " By L.S.jevix Software Ug",
  222.             buttons=[
  223.  
  224.                 MDFlatButton(
  225.                     text="OK"
  226.                 ),
  227.             ],
  228.         )
  229.         self.dialog.open()
  230.  
  231. class Content(Screen):
  232.  
  233.     def searchrecycle(self):
  234.         self.manager.current='serchscreen'
  235.        
  236.            
  237.     def callback(self):
  238.         self.manager.current=('home')
  239.        
  240.  
  241. class settingsscreen(Screen):
  242.     def __init__(self):
  243.         super().__init__()
  244.         slid=self.ids.slid
  245.     def callback(self):
  246.         self.manager.current=('home')
  247.  
  248.     def themeshow(self):
  249.         t=MDThemePicker()
  250.         t.open()
  251.  
  252.     def montague(self,text):
  253.         toast("setting applied")
  254.         self.manager.get_screen('content').ids.labelhymn.font_name='fonts/Montague.ttf'
  255.  
  256.     def flashgude(self):
  257.         toast("setting applied")
  258.         self.manager.get_screen('content').ids.labelhymn.font_name='fonts/Flashgude.ttf'
  259.  
  260.     def playball(self):
  261.         toast("setting applied")
  262.         self.manager.get_screen('content').ids.labelhymn.font_name='fonts/Playball.ttf'
  263.  
  264.     def popins(self):
  265.         toast("setting applied")
  266.         self.manager.get_screen('content').ids.labelhymn.font_name='fonts/popins.ttf'
  267.  
  268.     def starshield(self):
  269.         toast("setting applied")
  270.         self.manager.get_screen('content').ids.labelhymn.font_name='fonts/Star Shield.ttf'
  271.  
  272.     def changefont(self,widget):
  273.         size=(str(int(widget.value)))
  274.         self.manager.get_screen('content').ids.labelhymn.font_size=size
  275.  
  276. class EnnyimbaApp(MDApp):
  277.     def __init__(self, **kwargs):
  278.         super().__init__(**kwargs)
  279.         self.screens = iter(
  280.             [
  281.                 Content,Searchin,settingsscreen
  282.             ])
  283.  
  284.     def build(self):
  285.         self.theme_cls.theme_style = 'Light'
  286.         self.theme_cls.primary_palette="Amber" #['Red', 'Pink', 'Purple', 'DeepPurple', 'Indigo', 'Blue', 'LightBlue', 'Cyan', 'Teal', 'Green', 'LightGreen', 'Lime', '', 'Amber', 'Orange', 'DeepOrange', 'Brown', 'Gray', 'BlueGray']
  287.         self.theme_cls.accent_hue='400'
  288.         self.title='Ennyimbs za Kkristo'
  289.         self.theme_cls.accent_palette='Amber'
  290.         self.icon='sda2.png'
  291.         #Window.borderless=True
  292.        
  293.  
  294.     def on_start(self):
  295.         Clock.schedule_once(self.load_screens, 1)
  296.  
  297.     def load_screens(self, dt):
  298.         for s in self.screens:
  299.             # instance and add Screen
  300.             self.root.add_widget(s())
  301.             Clock.schedule_once(self.load_screens)
  302.             print(f'Screen {s} loaded')
  303.             return
  304.  
  305.     def bottom(self):
  306.         print('bottom')
  307.        
  308.  
  309. EnnyimbaApp().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement