Advertisement
Guest User

Untitled

a guest
Jan 18th, 2024
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.48 KB | None | 0 0
  1. from kivy.properties import StringProperty
  2. from kivy.lang import Builder
  3. from kivy.uix.tabbedpanel import TabbedPanel
  4. from kivymd.app import MDApp
  5. from kivy.utils import platform
  6. from plyer import filechooser
  7.  
  8. import functions
  9.  
  10. if platform == 'android':
  11. from android.permissions import request_permission, check_permission, Permission
  12.  
  13.  
  14. meals = functions.getMealList()
  15. meal_list_for_kv_file = functions.getMealsFor_kv_File(meals)
  16. current_meal_name = ''
  17.  
  18. kv_string = '''
  19. <MyLayout>
  20. do_default_tab: False
  21. size_hint: 1, 1
  22.  
  23. # ft_top, left_mid, left_bottom, top_left,
  24. # top_mid, top_right, right_top, right_mid,
  25. # right_bottom, bottom_left, bottom_mid,
  26. # bottom_right.
  27.  
  28. tab_pos: 'top_mid'
  29.  
  30. TabbedPanelItem:
  31. text: "Meal List"
  32. ScrollView:
  33. MDList:
  34. {0}
  35.  
  36. TabbedPanelItem:
  37. text: "Meal"
  38. on_release: root.pressedMealTab()
  39. BoxLayout:
  40. orientation: 'vertical'
  41. Label:
  42. font_size: self.width/30
  43. text_size: self.size
  44. halign: 'left'
  45. valign: 'top'
  46. id: Label1Tab2_id
  47. text: root.meal_ingredients
  48. Label:
  49. font_size: self.width/40
  50. text_size: self.size
  51. halign: 'left'
  52. valign: 'top'
  53. id: Label2Tab2_id
  54. text: root.meal_recipe
  55.  
  56.  
  57. TabbedPanelItem:
  58. text: "Week"
  59. on_release: root.pressedWeekTab()
  60. BoxLayout:
  61. orientation: 'vertical'
  62. Label:
  63. text_size: self.size
  64. halign: 'left'
  65. valign: 'middle'
  66. id: Label1Tab3_id
  67. text: root.monday_meals
  68. Label:
  69. text_size: self.size
  70. halign: 'left'
  71. valign: 'middle'
  72. id: Label2Tab3_id
  73. text: root.thuesday_meals
  74. Label:
  75. text_size: self.size
  76. halign: 'left'
  77. valign: 'middle'
  78. id: Label3Tab3_id
  79. text: root.wednesday_meals
  80. Label:
  81. text_size: self.size
  82. halign: 'left'
  83. valign: 'middle'
  84. id: Label4Tab3_id
  85. text: root.thursday_meals
  86. Label:
  87. text_size: self.size
  88. halign: 'left'
  89. valign: 'middle'
  90. id: Label5Tab3_id
  91. text: root.friday_meals
  92. Label:
  93. text_size: self.size
  94. halign: 'left'
  95. valign: 'middle'
  96. id: Label6Tab3_id
  97. text: root.saturday_meals
  98. Label:
  99. text_size: self.size
  100. halign: 'left'
  101. valign: 'middle'
  102. id: Label7Tab3_id
  103. text: root.sunday_meals
  104.  
  105. '''.format(meal_list_for_kv_file)
  106.  
  107. # print(kv_string)
  108.  
  109. # Designate Our .kv design file
  110. Builder.load_string(kv_string)
  111.  
  112. class MyLayout(TabbedPanel):
  113. meal_ingredients = StringProperty()
  114. meal_recipe = StringProperty()
  115. monday_meals = StringProperty()
  116. thuesday_meals = StringProperty()
  117. wednesday_meals = StringProperty()
  118. thursday_meals = StringProperty()
  119. friday_meals = StringProperty()
  120. saturday_meals = StringProperty()
  121. sunday_meals = StringProperty()
  122.  
  123. def check_permissions(self):
  124. if platform == 'android':
  125. if not check_permission(Permission.WRITE_EXTERNAL_STORAGE):
  126. request_permission(Permission.WRITE_EXTERNAL_STORAGE)
  127.  
  128. def on_pre_enter(self, *args):
  129. self.check_permissions()
  130.  
  131. def on_tab_switch(self, instance_tabs, instance_tab, instance_tab_label, tab_text):
  132. self.check_permissions()
  133.  
  134. def pressedMealTab(self):
  135. global current_meal_name
  136. try:
  137. self.ids.Label1Tab2_id.text = functions.getMealIngredientString(current_meal_name)
  138. self.ids.Label2Tab2_id.text = functions.getMealRecipe(current_meal_name)
  139. except:
  140. print("YOU HAVEN'T CHOOSE A MEAL")
  141.  
  142. def pressedWeekTab(self):
  143. try:
  144. self.ids.Label1Tab3_id.text = functions.getMealsForASingleDay("MONDAY", "weekly_menu1_1")
  145. self.ids.Label2Tab3_id.text = functions.getMealsForASingleDay("THUESDAY", "weekly_menu1_2")
  146. self.ids.Label3Tab3_id.text = functions.getMealsForASingleDay("WEDNESDAY", "weekly_menu1_3")
  147. self.ids.Label4Tab3_id.text = functions.getMealsForASingleDay("THURSDAY", "weekly_menu1_4")
  148. self.ids.Label5Tab3_id.text = functions.getMealsForASingleDay("FRIDAY", "weekly_menu1_5")
  149. self.ids.Label6Tab3_id.text = functions.getMealsForASingleDay("SATURDAY", "weekly_menu1_6")
  150. self.ids.Label7Tab3_id.text = functions.getMealsForASingleDay("SUNDAY", "weekly_menu1_7")
  151.  
  152. except:
  153. print("CAN'T GET WEEKLY MENU")
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161. class MealPlannerAndroid(MDApp):
  162. def build(self):
  163. return MyLayout()
  164.  
  165. def pressedMealOnList(self, pressed, list_id):
  166. pressed.tertiary_text = f"You Pressed {list_id}"
  167. #print(pressed.tertiary_text)
  168. global current_meal_name
  169. current_meal_name = list_id
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176. if __name__ == '__main__':
  177. MealPlannerAndroid().run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement