<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
+<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@drawable/ic_grid_card_background" />
+ <item android:state_enabled="false">
+ <color android:color="#88000000" />
+ </item>
+ <item>
+ <color android:color="#88252525" />
+ </item>
</selector>
-->
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_root_folder_am"
+ android:src="@drawable/ic_doc_audio_dark_am"
android:autoMirrored="true">
</bitmap>
\ No newline at end of file
-->
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_doc_video_am"
+ android:src="@drawable/ic_doc_audio_light_am"
android:autoMirrored="true">
</bitmap>
\ No newline at end of file
-->
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_doc_audio_am"
+ android:src="@drawable/ic_doc_video_dark_am"
android:autoMirrored="true">
</bitmap>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_doc_video_light_am"
+ android:autoMirrored="true">
+</bitmap>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_root_folder_dark_am"
+ android:autoMirrored="true">
+</bitmap>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_root_folder_light_am"
+ android:autoMirrored="true">
+</bitmap>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_focused="true" android:state_activated="true" android:drawable="@color/accent_item_activated" />
+ <item android:state_focused="false" android:state_activated="true" android:drawable="@color/accent_item_activated" />
+ <item android:drawable="@android:color/transparent" />
+</selector>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:state_window_focused="false" android:drawable="@android:color/transparent" />
-
- <item android:state_focused="true" android:state_activated="true" android:drawable="@drawable/ic_grid_card_focused" />
- <item android:state_focused="false" android:state_activated="true" android:drawable="@drawable/ic_grid_card_focused" />
-
- <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/ic_grid_card_pressed" />
- <item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/ic_grid_card_pressed" />
- <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/ic_grid_card_pressed" />
- <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/ic_grid_card_pressed" />
- <item android:state_focused="true" android:drawable="@drawable/ic_grid_card_pressed" />
-
- <item android:drawable="@android:color/transparent" />
-
-</selector>
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/item_background"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:baselineAligned="false">
-
- <FrameLayout
- android:id="@android:id/icon"
- android:layout_width="@dimen/icon_size"
- android:layout_height="@dimen/icon_size"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="20dp">
-
- <ImageView
- android:id="@+id/icon_mime"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scaleType="centerInside"
- android:contentDescription="@null" />
-
- <ImageView
- android:id="@+id/icon_thumb"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scaleType="centerCrop"
- android:contentDescription="@null" />
-
- </FrameLayout>
-
- <!-- This is the one special case where we want baseline alignment! -->
+ android:foreground="@drawable/item_activated">
+
<LinearLayout
- android:layout_width="0dp"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="horizontal">
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:layout_marginEnd="12dp"
- android:singleLine="true"
- android:ellipsize="middle"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Medium" />
-
- <ImageView
- android:id="@android:id/icon1"
- android:layout_width="@dimen/root_icon_size"
- android:layout_height="@dimen/root_icon_size"
- android:layout_marginEnd="8dp"
- android:scaleType="centerInside"
- android:contentDescription="@null" />
-
- <TextView
- android:id="@android:id/summary"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.25"
- android:layout_marginEnd="12dp"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Small" />
-
- <TextView
- android:id="@+id/size"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.125"
- android:layout_marginEnd="12dp"
- android:minWidth="70dp"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewEnd"
- style="@style/TextAppearance.Small" />
-
- <TextView
- android:id="@+id/date"
+ android:minHeight="@dimen/list_item_height"
+ android:paddingStart="@dimen/list_item_padding"
+ android:paddingEnd="@dimen/list_item_padding"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <FrameLayout
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/icon_size"
+ android:layout_height="@dimen/icon_size"
+ android:layout_marginStart="0dp"
+ android:layout_marginEnd="16dp">
+
+ <ImageView
+ android:id="@+id/icon_mime"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ <ImageView
+ android:id="@+id/icon_thumb"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleType="centerCrop"
+ android:contentDescription="@null" />
+
+ </FrameLayout>
+
+ <!-- This is the one special case where we want baseline alignment! -->
+ <LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_weight="0.125"
- android:layout_marginEnd="12dp"
- android:minWidth="70dp"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewEnd"
- style="@style/TextAppearance.Small" />
+ android:layout_weight="1"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.5"
+ android:layout_marginEnd="12dp"
+ android:singleLine="true"
+ android:ellipsize="middle"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+ android:textColor="?android:attr/textColorPrimary" />
+
+ <ImageView
+ android:id="@android:id/icon1"
+ android:layout_width="@dimen/root_icon_size"
+ android:layout_height="@dimen/root_icon_size"
+ android:layout_marginEnd="8dp"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.25"
+ android:layout_marginEnd="12dp"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <TextView
+ android:id="@+id/size"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.125"
+ android:layout_marginEnd="12dp"
+ android:minWidth="70dp"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewEnd"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.125"
+ android:layout_marginEnd="12dp"
+ android:minWidth="70dp"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewEnd"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ </LinearLayout>
</LinearLayout>
-</LinearLayout>
+</FrameLayout>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:listSelector="@android:color/transparent" />
+ android:layout_height="match_parent" />
<GridView
android:id="@+id/grid"
android:layout_height="match_parent"
android:paddingStart="@dimen/grid_padding_horiz"
android:paddingEnd="@dimen/grid_padding_horiz"
- android:paddingTop="@dimen/grid_padding"
- android:paddingBottom="@dimen/grid_padding"
+ android:paddingTop="@dimen/grid_padding_vert"
+ android:paddingBottom="@dimen/grid_padding_vert"
+ android:horizontalSpacing="@dimen/grid_item_padding"
+ android:verticalSpacing="@dimen/grid_item_padding"
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"
- android:listSelector="@android:color/transparent"
+ android:drawSelectorOnTop="true"
android:visibility="gone" />
</com.android.documentsui.DirectoryView>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="@dimen/grid_height"
- android:background="@drawable/item_doc_grid"
- android:foreground="@drawable/item_background">
+ android:layout_height="@dimen/grid_item_height"
+ android:orientation="vertical"
+ android:background="@color/grid_item_background"
+ android:foreground="@drawable/item_activated">
+
+ <ImageView
+ android:id="@+id/icon_thumb"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleType="centerCrop"
+ android:contentDescription="@null" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingBottom="6dp"
android:orientation="vertical">
- <FrameLayout
+ <ImageView
+ android:id="@+id/icon_mime"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
- android:layout_marginBottom="6dp"
- android:background="#fff"
- android:foreground="@drawable/ic_grid_gradient_bg"
- android:foregroundGravity="fill">
-
- <ImageView
- android:id="@+id/icon_mime"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scaleType="centerInside"
- android:contentDescription="@null" />
-
- <ImageView
- android:id="@+id/icon_thumb"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scaleType="centerCrop"
- android:contentDescription="@null" />
-
- </FrameLayout>
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
<LinearLayout
- android:id="@+id/line1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:baselineAligned="false"
+ android:background="@drawable/grid_protect_background"
+ android:orientation="vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:singleLine="true"
- android:ellipsize="middle"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Medium" />
-
- <ImageView
- android:id="@android:id/icon1"
- android:layout_width="@dimen/root_icon_size"
- android:layout_height="@dimen/root_icon_size"
- android:layout_marginStart="8dp"
- android:scaleType="centerInside"
- android:contentDescription="@null" />
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp">
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/line2"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:baselineAligned="false"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
-
- <TextView
- android:id="@+id/date"
- android:layout_width="0dp"
+ <LinearLayout
+ android:id="@+id/line1"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Small" />
-
- <TextView
- android:id="@+id/size"
- android:layout_width="0dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:singleLine="true"
+ android:ellipsize="middle"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+ android:textColor="?android:attr/textColorPrimaryInverse" />
+
+ <ImageView
+ android:id="@android:id/icon1"
+ android:layout_width="@dimen/root_icon_size"
+ android:layout_height="@dimen/root_icon_size"
+ android:layout_marginStart="8dp"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/line2"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:layout_marginStart="8dp"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Small" />
-
- <ImageView
- android:id="@android:id/icon2"
- android:layout_width="@dimen/root_icon_size"
- android:layout_height="@dimen/root_icon_size"
- android:layout_marginStart="8dp"
- android:scaleType="centerInside"
- android:contentDescription="@null"
- android:visibility="gone" />
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.5"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Caption"
+ android:textColor="?android:attr/textColorPrimaryInverse" />
+
+ <TextView
+ android:id="@+id/size"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.5"
+ android:layout_marginStart="8dp"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Caption"
+ android:textColor="?android:attr/textColorPrimaryInverse" />
+
+ <ImageView
+ android:id="@android:id/icon2"
+ android:layout_width="@dimen/root_icon_size"
+ android:layout_height="@dimen/root_icon_size"
+ android:layout_marginStart="8dp"
+ android:scaleType="centerInside"
+ android:contentDescription="@null"
+ android:visibility="gone" />
+
+ </LinearLayout>
</LinearLayout>
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/item_background"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:baselineAligned="false">
-
- <FrameLayout
- android:id="@android:id/icon"
- android:layout_width="@dimen/icon_size"
- android:layout_height="@dimen/icon_size"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="20dp">
-
- <ImageView
- android:id="@+id/icon_mime"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scaleType="centerInside"
- android:contentDescription="@null" />
-
- <ImageView
- android:id="@+id/icon_thumb"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:scaleType="centerCrop"
- android:contentDescription="@null" />
-
- </FrameLayout>
+ android:foreground="@drawable/item_activated">
<LinearLayout
- android:layout_width="0dp"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="vertical">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:baselineAligned="false">
-
- <TextView
- android:id="@android:id/title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:singleLine="true"
- android:ellipsize="middle"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Medium" />
+ android:minHeight="@dimen/list_item_height"
+ android:paddingStart="@dimen/list_item_padding"
+ android:paddingEnd="@dimen/list_item_padding"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <FrameLayout
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/icon_size"
+ android:layout_height="@dimen/icon_size"
+ android:layout_marginEnd="16dp">
<ImageView
- android:id="@android:id/icon1"
- android:layout_width="@dimen/root_icon_size"
- android:layout_height="@dimen/root_icon_size"
- android:layout_marginStart="8dp"
+ android:id="@+id/icon_mime"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
android:scaleType="centerInside"
android:contentDescription="@null" />
- </LinearLayout>
+ <ImageView
+ android:id="@+id/icon_thumb"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleType="centerCrop"
+ android:contentDescription="@null" />
+
+ </FrameLayout>
<LinearLayout
- android:id="@+id/line2"
- android:layout_width="match_parent"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal"
- android:baselineAligned="false">
+ android:layout_weight="1"
+ android:orientation="vertical">
- <TextView
- android:id="@+id/date"
- android:layout_width="90dp"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Small" />
-
- <TextView
- android:id="@+id/size"
- android:layout_width="90dp"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="8dp"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Small" />
-
- <TextView
- android:id="@android:id/summary"
- android:layout_width="0dp"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:singleLine="true"
+ android:ellipsize="middle"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+ android:textColor="?android:attr/textColorPrimary" />
+
+ <ImageView
+ android:id="@android:id/icon1"
+ android:layout_width="@dimen/root_icon_size"
+ android:layout_height="@dimen/root_icon_size"
+ android:layout_marginStart="8dp"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/line2"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_marginStart="8dp"
- android:singleLine="true"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- style="@style/TextAppearance.Small" />
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:baselineAligned="false">
+
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="90dp"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <TextView
+ android:id="@+id/size"
+ android:layout_width="90dp"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="8dp"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginStart="8dp"
+ android:singleLine="true"
+ android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
+
+ </LinearLayout>
</LinearLayout>
</LinearLayout>
-</LinearLayout>
+</FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/grid_height"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
android:orientation="horizontal">
<ProgressBar
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingTop="8dp"
- android:paddingBottom="8dp">
+ android:minHeight="@dimen/list_item_height">
<ProgressBar
android:layout_width="wrap_content"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/grid_height"
- android:paddingTop="?android:attr/listPreferredItemPaddingStart"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingBottom="?android:attr/listPreferredItemPaddingEnd"
- android:foreground="@drawable/item_background">
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:gravity="center"
android:maxLines="4"
android:ellipsize="end"
- android:paddingTop="6dp"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:textAlignment="viewStart" />
+ android:paddingTop="8dp"
+ android:textAlignment="viewStart"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/item_background"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:minHeight="@dimen/list_item_height"
+ android:paddingStart="@dimen/list_item_padding"
+ android:paddingEnd="@dimen/list_item_padding"
android:paddingTop="8dp"
android:paddingBottom="8dp"
+ android:gravity="center_vertical"
android:orientation="horizontal"
android:baselineAligned="false">
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@android:dimen/app_icon_size"
- android:layout_height="@android:dimen/app_icon_size"
- android:layout_marginEnd="8dp"
- android:layout_gravity="center_vertical"
- android:scaleType="centerInside"
- android:contentDescription="@null" />
+ <FrameLayout
+ android:layout_width="@dimen/icon_size"
+ android:layout_height="@dimen/icon_size"
+ android:layout_marginEnd="16dp">
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ </FrameLayout>
<TextView
android:id="@android:id/title"
android:maxLines="2"
android:ellipsize="end"
android:textAlignment="viewStart"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorPrimary" />
</LinearLayout>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+ <bool name="list_divider_inset_left">false</bool>
+</resources>
<resources>
<bool name="always_show_summary">true</bool>
+
+ <dimen name="list_item_height">64dp</dimen>
+ <dimen name="list_item_padding">24dp</dimen>
+
+ <dimen name="list_divider_inset">80dp</dimen>
+
</resources>
<item type="dimen" name="dialog_width">85%</item>
<item type="dimen" name="dialog_height">90%</item>
- <dimen name="grid_padding_horiz">20dp</dimen>
+ <dimen name="grid_padding_horiz">24dp</dimen>
+ <dimen name="grid_padding_vert">8dp</dimen>
+
+ <dimen name="grid_item_padding">8dp</dimen>
+
</resources>
<color name="chip">#ddd</color>
<color name="item_root_pressed">#33cccccc</color>
<color name="item_root_focused">#66cccccc</color>
+
+ <color name="grid_item_background">#ffe1e1e0</color>
+
+ <color name="accent_item_activated">#88009587</color>
+
</resources>
-->
<resources>
- <dimen name="icon_size">32dp</dimen>
+ <dimen name="icon_size">40dp</dimen>
<dimen name="root_icon_size">24dp</dimen>
+
<dimen name="grid_width">160dp</dimen>
- <dimen name="grid_height">170dp</dimen>
+ <dimen name="grid_height">176dp</dimen>
+
+ <dimen name="grid_item_width">160dp</dimen>
+ <dimen name="grid_item_height">176dp</dimen>
+ <dimen name="grid_item_padding">4dp</dimen>
- <dimen name="grid_padding">4dp</dimen>
<dimen name="grid_padding_horiz">4dp</dimen>
+ <dimen name="grid_padding_vert">4dp</dimen>
+
+ <dimen name="list_item_height">72dp</dimen>
+ <dimen name="list_item_padding">16dp</dimen>
+
+ <dimen name="list_divider_inset">72dp</dimen>
+ <bool name="list_divider_inset_left">true</bool>
<bool name="show_as_dialog">false</bool>
<bool name="always_show_summary">false</bool>
+
</resources>
public DirectoryContainerView(Context context) {
super(context);
- setClipChildren(false);
}
public DirectoryContainerView(Context context, AttributeSet attrs) {
super(context, attrs);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
setClipChildren(false);
+ setClipToOutline(false);
+ setClipToPadding(false);
}
@Override
import android.content.Context;
import android.content.Intent;
import android.content.Loader;
+import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.Point;
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final Context context = inflater.getContext();
+ final Resources res = context.getResources();
final View view = inflater.inflate(R.layout.fragment_directory, container, false);
mEmptyView = view.findViewById(android.R.id.empty);
mListView.setMultiChoiceModeListener(mMultiListener);
mListView.setRecyclerListener(mRecycleListener);
+ // Indent our list divider to align with text
+ final Drawable divider = mListView.getDivider();
+ final boolean insetLeft = res.getBoolean(R.bool.list_divider_inset_left);
+ final int insetSize = res.getDimensionPixelSize(R.dimen.list_divider_inset);
+ if (insetLeft) {
+ mListView.setDivider(new InsetDrawable(divider, insetSize, 0, 0, 0));
+ } else {
+ mListView.setDivider(new InsetDrawable(divider, 0, 0, insetSize, 0));
+ }
+
mGridView = (GridView) view.findViewById(R.id.grid);
mGridView.setOnItemClickListener(mItemListener);
mGridView.setMultiChoiceModeListener(mMultiListener);
if (extras != null) {
final String info = extras.getString(DocumentsContract.EXTRA_INFO);
if (info != null) {
- mFooters.add(new MessageFooter(2, R.drawable.ic_dialog_info, info));
+ mFooters.add(new MessageFooter(2, R.drawable.ic_dialog_info_dark, info));
}
final String error = extras.getString(DocumentsContract.EXTRA_ERROR);
if (error != null) {
- mFooters.add(new MessageFooter(3, R.drawable.ic_dialog_alert, error));
+ mFooters.add(new MessageFooter(3, R.drawable.ic_dialog_alert_dark, error));
}
if (extras.getBoolean(DocumentsContract.EXTRA_LOADING, false)) {
mFooters.add(new LoadingFooter());
if (result != null && result.exception != null) {
mFooters.add(new MessageFooter(
- 3, R.drawable.ic_dialog_alert, getString(R.string.query_error)));
+ 3, R.drawable.ic_dialog_alert_dark, getString(R.string.query_error)));
}
if (isEmpty()) {
convertView = inflater.inflate(R.layout.item_doc_list, parent, false);
} else if (state.derivedMode == MODE_GRID) {
convertView = inflater.inflate(R.layout.item_doc_grid, parent, false);
-
- // Apply padding to grid items
- final FrameLayout grid = (FrameLayout) convertView;
- final int gridPadding = getResources()
- .getDimensionPixelSize(R.dimen.grid_padding);
-
- // Tricksy hobbitses! We need to fully clear the drawable so
- // the view doesn't clobber the new InsetDrawable callback
- // when setting back later.
- final Drawable fg = grid.getForeground();
- final Drawable bg = grid.getBackground();
- grid.setForeground(null);
- grid.setBackground(null);
- grid.setForeground(new InsetDrawable(fg, gridPadding));
- grid.setBackground(new InsetDrawable(bg, gridPadding));
} else {
throw new IllegalStateException();
}
// hint to remind user they're a directory.
if (Document.MIME_TYPE_DIR.equals(docMimeType) && state.derivedMode == MODE_GRID
&& showThumbnail) {
- iconDrawable = context.getResources().getDrawable(R.drawable.ic_root_folder);
+ iconDrawable = context.getResources().getDrawable(
+ R.drawable.ic_root_folder_dark);
}
if (summary != null) {
public void setBackground(Drawable background) {
final Rect rect = new Rect();
background.getPadding(rect);
- final InsetDrawable inset = new InsetDrawable(background, -rect.left, 0, -rect.right, 0);
- super.setBackground(inset);
+
+ final boolean insetLeft = getResources().getBoolean(R.bool.list_divider_inset_left);
+ if (insetLeft) {
+ super.setBackground(new InsetDrawable(background, -rect.left, 0, -rect.right, 0));
+ } else {
+ super.setBackground(new InsetDrawable(background, -rect.right, 0, -rect.left, 0));
+ }
}
@Override
add("application/vnd.android.package-archive", icon);
// Audio
- icon = R.drawable.ic_doc_audio;
+ icon = R.drawable.ic_doc_audio_dark;
add("application/ogg", icon);
add("application/x-flac", icon);
add("application/x-font-ttf", icon);
// Image
- icon = R.drawable.ic_doc_image;
+ icon = R.drawable.ic_doc_image_dark;
add("application/vnd.oasis.opendocument.graphics", icon);
add("application/vnd.oasis.opendocument.graphics-template", icon);
add("application/vnd.oasis.opendocument.image", icon);
add("application/x-kword", icon);
// Video
- icon = R.drawable.ic_doc_video;
+ icon = R.drawable.ic_doc_video_dark;
add("application/x-quicktimeplayer", icon);
add("application/x-shockwave-flash", icon);
}
if (mode == DocumentsActivity.State.MODE_GRID) {
return res.getDrawable(R.drawable.ic_grid_folder);
} else {
- return res.getDrawable(R.drawable.ic_root_folder);
+ return res.getDrawable(R.drawable.ic_root_folder_dark);
}
}
if (Document.MIME_TYPE_DIR.equals(mimeType)) {
// TODO: return a mipmap, since this is used for grid
- return res.getDrawable(R.drawable.ic_root_folder);
+ return res.getDrawable(R.drawable.ic_root_folder_dark);
}
// Look for exact match first
// Otherwise look for partial match
final String typeOnly = mimeType.split("/")[0];
if ("audio".equals(typeOnly)) {
- return res.getDrawable(R.drawable.ic_doc_audio);
+ return res.getDrawable(R.drawable.ic_doc_audio_dark);
} else if ("image".equals(typeOnly)) {
- return res.getDrawable(R.drawable.ic_doc_image);
+ return res.getDrawable(R.drawable.ic_doc_image_dark);
} else if ("text".equals(typeOnly)) {
return res.getDrawable(R.drawable.ic_doc_text);
} else if ("video".equals(typeOnly)) {
- return res.getDrawable(R.drawable.ic_doc_video);
+ return res.getDrawable(R.drawable.ic_doc_video_dark);
} else {
return res.getDrawable(R.drawable.ic_doc_generic);
}
// Special root for recents
mRecentsRoot.authority = null;
mRecentsRoot.rootId = null;
- mRecentsRoot.icon = R.drawable.ic_root_recent;
+ mRecentsRoot.icon = R.drawable.ic_root_recent_dark;
mRecentsRoot.flags = Root.FLAG_LOCAL_ONLY | Root.FLAG_SUPPORTS_CREATE
| Root.FLAG_SUPPORTS_IS_CHILD;
mRecentsRoot.title = mContext.getString(R.string.root_recent);
// TODO: remove these special case icons
if (isExternalStorage()) {
- derivedIcon = R.drawable.ic_root_sdcard;
+ derivedIcon = R.drawable.ic_root_sdcard_dark;
} else if (isDownloads()) {
- derivedIcon = R.drawable.ic_root_download;
+ derivedIcon = R.drawable.ic_root_download_dark;
} else if (isImages()) {
- derivedIcon = R.drawable.ic_doc_image;
+ derivedIcon = R.drawable.ic_doc_image_dark;
} else if (isVideos()) {
- derivedIcon = R.drawable.ic_doc_video;
+ derivedIcon = R.drawable.ic_doc_video_dark;
} else if (isAudio()) {
- derivedIcon = R.drawable.ic_doc_audio;
+ derivedIcon = R.drawable.ic_doc_audio_dark;
}
}