manga_info_controller.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <eu.kanade.tachiyomi.widget.ThemedSwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:id="@id/swipe_refresh"
  6. android:layout_width="match_parent"
  7. android:layout_height="match_parent"
  8. tools:context=".ui.browse.source.browse.BrowseSourceController">
  9. <androidx.constraintlayout.widget.ConstraintLayout
  10. android:layout_width="match_parent"
  11. android:layout_height="match_parent">
  12. <ImageView
  13. android:id="@+id/manga_cover"
  14. android:layout_width="0dp"
  15. android:layout_height="0dp"
  16. android:layout_margin="16dp"
  17. android:background="@drawable/rounded_rectangle"
  18. android:contentDescription="@string/description_cover"
  19. app:layout_constraintBottom_toBottomOf="parent"
  20. app:layout_constraintDimensionRatio="h,3:2"
  21. app:layout_constraintStart_toStartOf="parent"
  22. app:layout_constraintTop_toTopOf="parent"
  23. app:layout_constraintVertical_bias="0.0" />
  24. <androidx.core.widget.NestedScrollView
  25. android:id="@+id/info_scrollview"
  26. android:layout_width="0dp"
  27. android:layout_height="0dp"
  28. app:layout_constraintBottom_toBottomOf="parent"
  29. app:layout_constraintEnd_toEndOf="parent"
  30. app:layout_constraintStart_toEndOf="@+id/manga_cover"
  31. app:layout_constraintTop_toTopOf="parent">
  32. <androidx.constraintlayout.widget.ConstraintLayout
  33. android:layout_width="match_parent"
  34. android:layout_height="match_parent"
  35. android:padding="16dp">
  36. <TextView
  37. android:id="@+id/manga_full_title"
  38. style="@style/TextAppearance.Medium.Title"
  39. android:layout_width="wrap_content"
  40. android:layout_height="wrap_content"
  41. android:maxLines="2"
  42. android:text="@string/manga_info_full_title_label"
  43. android:textIsSelectable="false"
  44. app:autoSizeMaxTextSize="20sp"
  45. app:autoSizeMinTextSize="12sp"
  46. app:autoSizeStepGranularity="2sp"
  47. app:autoSizeTextType="uniform"
  48. app:layout_constraintStart_toStartOf="parent"
  49. app:layout_constraintTop_toTopOf="parent" />
  50. <TextView
  51. android:id="@+id/manga_author_label"
  52. style="@style/TextAppearance.Medium.Body2"
  53. android:layout_width="wrap_content"
  54. android:layout_height="wrap_content"
  55. android:text="@string/manga_info_author_label"
  56. android:textIsSelectable="false"
  57. app:layout_constraintStart_toStartOf="parent"
  58. app:layout_constraintTop_toBottomOf="@+id/manga_full_title" />
  59. <TextView
  60. android:id="@+id/manga_author"
  61. style="@style/TextAppearance.Regular.Body1.Secondary"
  62. android:layout_width="0dp"
  63. android:layout_height="wrap_content"
  64. android:layout_marginStart="8dp"
  65. android:ellipsize="end"
  66. android:maxLines="1"
  67. android:textIsSelectable="false"
  68. app:layout_constraintBaseline_toBaselineOf="@+id/manga_author_label"
  69. app:layout_constraintEnd_toEndOf="parent"
  70. app:layout_constraintStart_toEndOf="@+id/manga_author_label" />
  71. <TextView
  72. android:id="@+id/manga_artist_label"
  73. style="@style/TextAppearance.Medium.Body2"
  74. android:layout_width="wrap_content"
  75. android:layout_height="wrap_content"
  76. android:text="@string/manga_info_artist_label"
  77. android:textIsSelectable="false"
  78. app:layout_constraintStart_toStartOf="parent"
  79. app:layout_constraintTop_toBottomOf="@+id/manga_author_label" />
  80. <TextView
  81. android:id="@+id/manga_artist"
  82. style="@style/TextAppearance.Regular.Body1.Secondary"
  83. android:layout_width="0dp"
  84. android:layout_height="wrap_content"
  85. android:layout_marginStart="8dp"
  86. android:ellipsize="end"
  87. android:maxLines="1"
  88. android:textIsSelectable="false"
  89. app:layout_constraintBaseline_toBaselineOf="@+id/manga_artist_label"
  90. app:layout_constraintEnd_toEndOf="parent"
  91. app:layout_constraintStart_toEndOf="@+id/manga_artist_label" />
  92. <TextView
  93. android:id="@+id/manga_chapters_label"
  94. style="@style/TextAppearance.Medium.Body2"
  95. android:layout_width="wrap_content"
  96. android:layout_height="wrap_content"
  97. android:text="@string/manga_info_last_chapter_label"
  98. android:textIsSelectable="false"
  99. app:layout_constraintStart_toStartOf="parent"
  100. app:layout_constraintTop_toBottomOf="@+id/manga_artist_label" />
  101. <TextView
  102. android:id="@+id/manga_chapters"
  103. style="@style/TextAppearance.Regular.Body1.Secondary"
  104. android:layout_width="0dp"
  105. android:layout_height="wrap_content"
  106. android:layout_marginStart="8dp"
  107. android:ellipsize="end"
  108. android:maxLines="1"
  109. android:textIsSelectable="false"
  110. app:layout_constraintBaseline_toBaselineOf="@+id/manga_chapters_label"
  111. app:layout_constraintEnd_toEndOf="parent"
  112. app:layout_constraintStart_toEndOf="@+id/manga_chapters_label" />
  113. <TextView
  114. android:id="@+id/manga_last_update_label"
  115. style="@style/TextAppearance.Medium.Body2"
  116. android:layout_width="wrap_content"
  117. android:layout_height="wrap_content"
  118. android:text="@string/manga_info_latest_data_label"
  119. android:textIsSelectable="false"
  120. app:layout_constraintStart_toStartOf="parent"
  121. app:layout_constraintTop_toBottomOf="@+id/manga_chapters_label" />
  122. <TextView
  123. android:id="@+id/manga_last_update"
  124. style="@style/TextAppearance.Regular.Body1.Secondary"
  125. android:layout_width="0dp"
  126. android:layout_height="wrap_content"
  127. android:layout_marginStart="8dp"
  128. android:ellipsize="end"
  129. android:maxLines="1"
  130. android:textIsSelectable="false"
  131. app:layout_constraintBaseline_toBaselineOf="@+id/manga_last_update_label"
  132. app:layout_constraintEnd_toEndOf="parent"
  133. app:layout_constraintStart_toEndOf="@+id/manga_last_update_label" />
  134. <TextView
  135. android:id="@+id/manga_status_label"
  136. style="@style/TextAppearance.Medium.Body2"
  137. android:layout_width="wrap_content"
  138. android:layout_height="wrap_content"
  139. android:text="@string/manga_info_status_label"
  140. android:textIsSelectable="false"
  141. app:layout_constraintStart_toStartOf="parent"
  142. app:layout_constraintTop_toBottomOf="@+id/manga_last_update_label" />
  143. <TextView
  144. android:id="@+id/manga_status"
  145. style="@style/TextAppearance.Regular.Body1.Secondary"
  146. android:layout_width="0dp"
  147. android:layout_height="wrap_content"
  148. android:layout_marginStart="8dp"
  149. android:ellipsize="end"
  150. android:maxLines="1"
  151. android:textIsSelectable="false"
  152. app:layout_constraintBaseline_toBaselineOf="@+id/manga_status_label"
  153. app:layout_constraintEnd_toEndOf="parent"
  154. app:layout_constraintStart_toEndOf="@+id/manga_status_label" />
  155. <TextView
  156. android:id="@+id/manga_source_label"
  157. style="@style/TextAppearance.Medium.Body2"
  158. android:layout_width="wrap_content"
  159. android:layout_height="wrap_content"
  160. android:text="@string/manga_info_source_label"
  161. android:textIsSelectable="false"
  162. app:layout_constraintStart_toStartOf="parent"
  163. app:layout_constraintTop_toBottomOf="@+id/manga_status_label" />
  164. <TextView
  165. android:id="@+id/manga_source"
  166. style="@style/TextAppearance.Regular.Body1.Secondary"
  167. android:layout_width="0dp"
  168. android:layout_height="wrap_content"
  169. android:layout_marginStart="8dp"
  170. android:ellipsize="end"
  171. android:maxLines="1"
  172. android:textIsSelectable="false"
  173. app:layout_constraintBaseline_toBaselineOf="@+id/manga_source_label"
  174. app:layout_constraintEnd_toEndOf="parent"
  175. app:layout_constraintStart_toEndOf="@+id/manga_source_label" />
  176. <LinearLayout
  177. android:id="@+id/actions_bar"
  178. android:layout_width="match_parent"
  179. android:layout_height="wrap_content"
  180. android:orientation="horizontal"
  181. android:paddingTop="8dp"
  182. android:paddingBottom="8dp"
  183. app:layout_constraintEnd_toEndOf="parent"
  184. app:layout_constraintStart_toStartOf="parent"
  185. app:layout_constraintTop_toBottomOf="@id/manga_source">
  186. <com.google.android.material.button.MaterialButton
  187. android:id="@+id/btn_favorite"
  188. style="@style/Theme.Widget.Button.Icon"
  189. android:layout_width="wrap_content"
  190. android:layout_height="wrap_content"
  191. android:text="@string/add_to_library"
  192. app:icon="@drawable/ic_favorite_border_24dp" />
  193. <com.google.android.material.button.MaterialButton
  194. android:id="@+id/btn_categories"
  195. style="@style/Theme.Widget.Button.Icon.Textless"
  196. android:layout_width="wrap_content"
  197. android:layout_height="wrap_content"
  198. android:layout_marginStart="8dp"
  199. android:contentDescription="@string/action_edit_categories"
  200. android:visibility="gone"
  201. app:icon="@drawable/ic_label_24dp"
  202. tools:visibility="visible" />
  203. <com.google.android.material.button.MaterialButton
  204. android:id="@+id/btn_share"
  205. style="@style/Theme.Widget.Button.Icon.Textless"
  206. android:layout_width="wrap_content"
  207. android:layout_height="wrap_content"
  208. android:layout_marginStart="8dp"
  209. android:contentDescription="@string/action_share"
  210. android:visibility="gone"
  211. app:icon="@drawable/ic_share_24dp"
  212. tools:visibility="visible" />
  213. <com.google.android.material.button.MaterialButton
  214. android:id="@+id/btn_webview"
  215. style="@style/Theme.Widget.Button.Icon.Textless"
  216. android:layout_width="wrap_content"
  217. android:layout_height="wrap_content"
  218. android:layout_marginStart="8dp"
  219. android:contentDescription="@string/action_open_in_web_view"
  220. android:visibility="gone"
  221. app:icon="@drawable/ic_public_24dp"
  222. tools:visibility="visible" />
  223. </LinearLayout>
  224. <TextView
  225. android:id="@+id/manga_summary_label"
  226. style="@style/TextAppearance.Regular.SubHeading"
  227. android:layout_width="match_parent"
  228. android:layout_height="wrap_content"
  229. android:layout_marginBottom="8dp"
  230. android:text="@string/manga_info_about_label"
  231. android:textIsSelectable="false"
  232. app:layout_constraintEnd_toEndOf="parent"
  233. app:layout_constraintStart_toStartOf="parent"
  234. app:layout_constraintTop_toBottomOf="@+id/actions_bar" />
  235. <TextView
  236. android:id="@+id/manga_summary"
  237. style="@style/TextAppearance.Regular.Body1.Secondary"
  238. android:layout_width="match_parent"
  239. android:layout_height="wrap_content"
  240. android:clickable="true"
  241. android:ellipsize="end"
  242. android:focusable="true"
  243. android:maxLines="3"
  244. android:textIsSelectable="false"
  245. app:layout_constraintBottom_toTopOf="@id/manga_genres_tags_wrapper"
  246. app:layout_constraintEnd_toEndOf="parent"
  247. app:layout_constraintStart_toStartOf="parent"
  248. app:layout_constraintTop_toBottomOf="@id/manga_summary_label" />
  249. <FrameLayout
  250. android:id="@+id/manga_genres_tags_wrapper"
  251. android:layout_width="match_parent"
  252. android:layout_height="wrap_content"
  253. android:layout_marginTop="8dp"
  254. android:layout_marginBottom="8dp"
  255. app:layout_constrainedHeight="true"
  256. app:layout_constraintEnd_toEndOf="parent"
  257. app:layout_constraintStart_toStartOf="parent"
  258. app:layout_constraintTop_toBottomOf="@id/manga_summary">
  259. <com.google.android.material.chip.ChipGroup
  260. android:id="@+id/manga_genres_tags_full_chips"
  261. android:layout_width="match_parent"
  262. android:layout_height="wrap_content"
  263. android:visibility="gone"
  264. app:chipSpacingHorizontal="4dp" />
  265. <HorizontalScrollView
  266. android:id="@+id/manga_genres_tags_compact"
  267. android:layout_width="match_parent"
  268. android:layout_height="wrap_content"
  269. android:requiresFadingEdge="horizontal">
  270. <com.google.android.material.chip.ChipGroup
  271. android:id="@+id/manga_genres_tags_compact_chips"
  272. android:layout_width="wrap_content"
  273. android:layout_height="wrap_content"
  274. app:chipSpacingHorizontal="4dp"
  275. app:singleLine="true" />
  276. </HorizontalScrollView>
  277. </FrameLayout>
  278. <Button
  279. android:id="@+id/manga_info_toggle"
  280. style="@style/Theme.Widget.Button"
  281. android:layout_width="match_parent"
  282. android:layout_height="wrap_content"
  283. android:text="@string/manga_info_expand"
  284. android:textSize="12sp"
  285. app:layout_constraintEnd_toEndOf="parent"
  286. app:layout_constraintStart_toStartOf="parent"
  287. app:layout_constraintTop_toBottomOf="@id/manga_genres_tags_wrapper" />
  288. </androidx.constraintlayout.widget.ConstraintLayout>
  289. </androidx.core.widget.NestedScrollView>
  290. </androidx.constraintlayout.widget.ConstraintLayout>
  291. </eu.kanade.tachiyomi.widget.ThemedSwipeRefreshLayout>