mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-28 05:13:53 +01:00
* add url to build config Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * add network call functions Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * return response asynchronously Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * inject page size in the request Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * rename from Commons..Response.kt to ..Response.kt Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * convert to .kt Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * ui setup working Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * fix merge conflict Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * cleanup Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * fix CI Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * use suspend function for network calls Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> * doc * doc * doc * doc * doc --------- Signed-off-by: parneet-guraya <gurayaparneet@gmail.com> Co-authored-by: Nicolas Raoul <nicolas.raoul@gmail.com>
515 lines
23 KiB
XML
515 lines
23 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
xmlns:tools="http://schemas.android.com/tools"
|
|
android:orientation="vertical"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:background="?attr/mainBackground"
|
|
android:id="@+id/mediaDetailFrameLayout"
|
|
>
|
|
|
|
<LinearLayout
|
|
android:id="@+id/dummy_caption_description_container"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="match_parent"
|
|
android:layout_gravity="bottom"
|
|
android:elevation="35dp"
|
|
android:orientation="vertical"
|
|
android:visibility="gone"
|
|
android:weightSum="10">
|
|
|
|
<include
|
|
android:id="@+id/show_captions_binding"
|
|
layout="@layout/show_captions_descriptions" />
|
|
</LinearLayout>
|
|
|
|
<ImageView
|
|
android:id="@+id/mediaDetailImageFailed"
|
|
android:layout_height="wrap_content"
|
|
android:layout_width="wrap_content"
|
|
android:layout_gravity="center"
|
|
android:src="@android:drawable/ic_menu_close_clear_cancel"
|
|
android:visibility="gone"
|
|
android:contentDescription="@string/mediaimage_failed"
|
|
/>
|
|
|
|
<com.facebook.drawee.view.SimpleDraweeView
|
|
android:id="@+id/mediaDetailImageView"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="@dimen/dimen_250"
|
|
android:layout_gravity="center_horizontal"
|
|
app:actualImageScaleType="none" />
|
|
|
|
<ScrollView
|
|
android:id="@+id/mediaDetailScrollView"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:background="@android:color/transparent"
|
|
android:cacheColorHint="@android:color/transparent"
|
|
android:fillViewport="true">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical">
|
|
|
|
<!-- Placeholder. Height gets set at runtime based on container size; the initial value is a hack to keep
|
|
the detail info offscreen until it's placed properly. May be a better way to do this. -->
|
|
|
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content" >
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:id="@+id/mediaDetailImageViewSpacer"
|
|
>
|
|
|
|
</LinearLayout>
|
|
|
|
</FrameLayout>
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:background="?attr/mainBackground"
|
|
android:orientation="vertical">
|
|
|
|
<LinearLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:background="@color/primaryDarkColor"
|
|
android:orientation="horizontal"
|
|
android:padding="@dimen/quarter_standard_height">
|
|
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelTitle"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_title" />
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextBody"
|
|
android:id="@+id/mediaDetailTitle"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:textColor="@android:color/white"
|
|
android:layout_height="match_parent"
|
|
tools:text="Title of the media" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:id="@+id/toDoLayout"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:visibility="gone"
|
|
android:background="@color/layout_light_grey"
|
|
>
|
|
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
style="@style/MediaDetailTextLabel"
|
|
android:text="@string/warning" />
|
|
|
|
<TextView
|
|
android:id="@+id/toDoReason"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="@dimen/activity_margin_vertical"
|
|
style="@style/MediaDetailTextBody" />
|
|
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:id="@+id/authorLinearLayout"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_author" />
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextBody"
|
|
android:id="@+id/mediaDetailAuthor"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
tools:text="Media author user name goes here." />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:id="@+id/caption_layout"
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_caption" />
|
|
|
|
<TextView
|
|
android:id="@+id/media_detail_caption"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
style="@style/MediaDetailTextBody"
|
|
android:textIsSelectable="true"
|
|
tools:text="Captions of the media" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_description" />
|
|
|
|
<fr.free.nrw.commons.ui.widget.HtmlTextView
|
|
android:id="@+id/mediaDetailDesc"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="70"
|
|
android:layout_gravity="start"
|
|
android:padding="@dimen/small_gap"
|
|
android:textColor="?attr/mediaDetailsText"
|
|
android:textSize="@dimen/description_text_size"
|
|
android:textIsSelectable="true"
|
|
tools:text="Description of the media goes here. This can potentially be fairly long, and will need to wrap across multiple lines. We hope it looks nice though." />
|
|
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:paddingStart="@dimen/quarter_standard_height"
|
|
android:paddingEnd="@dimen/quarter_standard_height"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
android:id="@+id/show_caption_description_textview"
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="match_parent"
|
|
android:gravity="center"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginBottom="@dimen/dimen_10"
|
|
android:text="@string/media_detail_in_all_languages" />
|
|
|
|
<Button
|
|
android:id="@+id/description_edit"
|
|
android:layout_width="24dp"
|
|
android:layout_height="24dp"
|
|
android:layout_gravity="end"
|
|
android:background="@drawable/ic_baseline_edit_24" />
|
|
<ProgressBar
|
|
android:id="@+id/progressBarEdit"
|
|
style="?android:progressBarStyleSmall"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginEnd="@dimen/tiny_gap"
|
|
android:layout_marginRight="@dimen/tiny_gap"
|
|
android:layout_gravity="center_vertical|end"
|
|
android:indeterminate="true"
|
|
android:indeterminateOnly="true"
|
|
android:visibility="gone"
|
|
tools:visibility="visible"/>
|
|
</LinearLayout>
|
|
|
|
<View
|
|
android:background="?attr/mediaDetailSpacerColor"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="@dimen/tiny_gap"/>
|
|
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_license" />
|
|
|
|
<TextView
|
|
android:id="@+id/mediaDetailLicense"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="70"
|
|
android:layout_gravity="start"
|
|
android:foreground="?attr/selectableItemBackground"
|
|
android:gravity="center_vertical"
|
|
android:padding="@dimen/small_gap"
|
|
android:textColor="?attr/mediaDetailsText"
|
|
android:textSize="@dimen/description_text_size"
|
|
android:drawablePadding="@dimen/tiny_gap"
|
|
android:drawableStart="?attr/iconInfo24"
|
|
tools:text="License link" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_coordinates" />
|
|
|
|
<TextView
|
|
android:id="@+id/mediaDetailCoordinates"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="70"
|
|
android:layout_gravity="start"
|
|
android:foreground="?attr/selectableItemBackground"
|
|
android:gravity="center_vertical"
|
|
android:padding="@dimen/small_gap"
|
|
android:textColor="?attr/mediaDetailsText"
|
|
android:textSize="@dimen/description_text_size"
|
|
android:drawablePadding="@dimen/tiny_gap"
|
|
android:drawableStart="?attr/iconMap24"
|
|
tools:text="Coordinates link" />
|
|
|
|
<Button
|
|
android:id="@+id/coordinate_edit"
|
|
android:layout_width="24dp"
|
|
android:layout_height="24dp"
|
|
android:layout_marginTop="@dimen/standard_gap"
|
|
android:layout_marginBottom="@dimen/standard_gap"
|
|
android:layout_gravity="end"
|
|
android:background="@drawable/ic_baseline_edit_24" />
|
|
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:id="@+id/depicts_layout"
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:textStyle="bold">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_depiction" />
|
|
|
|
<LinearLayout
|
|
android:id="@+id/media_detail_depiction_container"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="70"
|
|
android:orientation="vertical" />
|
|
</LinearLayout>
|
|
|
|
<Button
|
|
android:id="@+id/depictionsEditButton"
|
|
android:layout_width="24dp"
|
|
android:layout_height="24dp"
|
|
android:layout_margin="@dimen/standard_gap"
|
|
android:layout_gravity="end"
|
|
android:visibility="gone"
|
|
android:background="@drawable/ic_baseline_edit_24" />
|
|
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:textStyle="bold">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/detail_panel_cats_label" />
|
|
|
|
<LinearLayout
|
|
android:id="@+id/mediaDetailCategoryContainer"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:layout_weight="70"
|
|
android:orientation="vertical">
|
|
</LinearLayout>
|
|
|
|
</LinearLayout>
|
|
|
|
<androidx.constraintlayout.widget.ConstraintLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="24dp"
|
|
android:layout_margin="@dimen/standard_gap">
|
|
|
|
<ProgressBar
|
|
android:id="@+id/progressBarEditCategory"
|
|
style="?android:progressBarStyleSmall"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginEnd="@dimen/tiny_gap"
|
|
android:layout_marginRight="@dimen/tiny_gap"
|
|
android:layout_gravity="center_vertical|end"
|
|
android:indeterminate="true"
|
|
android:indeterminateOnly="true"
|
|
android:visibility="gone"
|
|
tools:visibility="visible"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/mediaDetailCategoryContainer"
|
|
app:layout_constraintBottom_toTopOf="@id/mediaDetailuploadeddate" />
|
|
|
|
<Button
|
|
android:id="@+id/categoryEditButton"
|
|
android:layout_width="24dp"
|
|
android:layout_height="24dp"
|
|
android:layout_gravity="end"
|
|
android:visibility="gone"
|
|
android:background="@drawable/ic_baseline_edit_24"
|
|
app:layout_constraintEnd_toEndOf="parent"
|
|
app:layout_constraintTop_toBottomOf="@id/mediaDetailCategoryContainer"
|
|
app:layout_constraintBottom_toTopOf="@id/mediaDetailuploadeddate"/>
|
|
|
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_uploaded_date" />
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextBody"
|
|
android:id="@+id/mediaDetailuploadeddate"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
tools:text="Uploaded date" />
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
android:id="@+id/nominatedDeletionBanner"
|
|
android:background="?attr/mediaDetailNominationBackground"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="vertical"
|
|
android:padding="@dimen/quarter_standard_height"
|
|
android:visibility="gone">
|
|
|
|
<TextView
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:gravity="center"
|
|
android:text="@string/nominated_for_deletion"
|
|
android:textColor="@color/primaryTextColor"
|
|
android:textSize="@dimen/normal_text"
|
|
android:textStyle="bold"/>
|
|
|
|
<TextView
|
|
android:id="@+id/seeMore"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:gravity="center"
|
|
android:paddingTop="@dimen/standard_gap"
|
|
android:textColor="@color/primaryTextColor"
|
|
android:textSize="@dimen/normal_text"
|
|
android:textStyle="bold"/>
|
|
</LinearLayout>
|
|
|
|
<LinearLayout
|
|
style="@style/MediaDetailContainer"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal">
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextLabelGeneric"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent"
|
|
android:text="@string/media_detail_discussion" />
|
|
|
|
<TextView
|
|
style="@style/MediaDetailTextBody"
|
|
android:id="@+id/mediaDetailDisc"
|
|
android:layout_width="@dimen/widget_margin"
|
|
android:layout_height="match_parent" />
|
|
</LinearLayout>
|
|
|
|
<androidx.compose.ui.platform.ComposeView
|
|
android:id="@+id/file_usages_compose_view"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content" />
|
|
|
|
<Button
|
|
android:id="@+id/copyWikicode"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_margin="@dimen/standard_gap"
|
|
android:background="@drawable/bg_copy_wikitext_button"
|
|
android:text="@string/copy_wikicode"
|
|
android:textColor="@color/primaryTextColor" />
|
|
|
|
<Button
|
|
android:id="@+id/sendThanks"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginStart="@dimen/standard_gap"
|
|
android:layout_marginEnd="@dimen/standard_gap"
|
|
android:background="@drawable/bg_copy_wikitext_button"
|
|
android:text="@string/send_thanks_to_author"
|
|
android:textColor="@color/primaryTextColor" />
|
|
|
|
<FrameLayout
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:orientation="horizontal"
|
|
android:layout_margin="@dimen/standard_gap">
|
|
|
|
<Button
|
|
android:id="@+id/nominateDeletion"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:background="@drawable/bg_delete_button"
|
|
android:text="@string/nominate_deletion"
|
|
android:textColor="@color/primaryTextColor" />
|
|
|
|
<ProgressBar
|
|
android:id="@+id/progressBarDeletion"
|
|
style="?android:attr/progressBarStyle"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_gravity="right|center_horizontal|center_vertical"
|
|
android:elevation="4dp"
|
|
android:indeterminate="true"
|
|
android:indeterminateTint="@color/primaryTextColor"
|
|
android:indeterminateTintMode="src_atop"
|
|
android:visibility="gone"/>
|
|
|
|
</FrameLayout>
|
|
|
|
</LinearLayout>
|
|
</LinearLayout>
|
|
</ScrollView>
|
|
|
|
</FrameLayout>
|