Media detail page redone as a "slide-up" panel.

Loads and displays default or English description, and categories.
No caching of this info yet.

Scrollable pane is a ListView, with the title/desc/category label
in a 'header' view along with a spacer view. The height of the spacer
is set dynamically to the height of the total fragment minus 48dp,
giving room for an initially-visible title section and a little
spillover so you can see it's scrollable.

Clicking on a category in the cats list opens the category page in
an external web browser. In the future this should open the category
within the app, but we don't have a per-cat view yet.

Description and category list are not yet editable.

GitHub: https://github.com/wikimedia/apps-android-commons/pull/41
Change-Id: I46d0a77481dbe64a268a72f3efe49ae72168541f
This commit is contained in:
Brion Vibber 2013-06-25 13:41:29 -07:00 committed by YuviPanda
parent a1d435f86e
commit 4df8ec8fa9
13 changed files with 586 additions and 30 deletions

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:padding="8dp"
android:gravity="center_vertical"
android:id="@+id/mediaDetailCategoryItemText"
android:textSize="18sp"
android:background="#AA000000"
/>

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- 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. -->
<org.wikimedia.commons.media.MediaDetailSpacer
android:layout_width="fill_parent"
android:layout_height="1600dp"
android:id="@+id/mediaDetailSpacer"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#AA000000"
android:padding="8dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title of the media"
android:id="@+id/mediaDetailTitle"
android:layout_gravity="left|start"
android:textColor="@android:color/white"
android:textSize="18sp" /> <!-- 18sp == MediumText -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android: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."
android:id="@+id/mediaDetailDesc"
android:layout_gravity="left|start"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/detail_panel_cats_label"
android:textSize="18sp"
android:layout_gravity="left|start"
android:paddingTop="24dp" android:textColor="@android:color/white"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/mediaDetailCategoryList"
android:layout_gravity="left|start"/>
</LinearLayout>
</LinearLayout>

View file

@ -28,31 +28,14 @@
android:scaleType="fitCenter"
/>
<RelativeLayout
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
android:background="#AA000000"
android:padding="8dp"
>
<EditText
android:id="@+id/mediaDetailTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="flagNoExtractUi"
android:inputType="textNoSuggestions"
android:singleLine="true"
android:textColor="#FFFFFF"/>
<!-- <TextView
android:id="@+id/mediaDetailDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/mediaDetailTitle"
android:layout_alignParentBottom="true"
style="?android:textAppearanceSmall"
android:textColor="#FFFFFFFF"
/> -->
</RelativeLayout>
android:id="@+id/mediaDetailListView"
android:divider="#00A0A0A0"
android:fillViewport="true"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
/>
</FrameLayout>