aboutsummaryrefslogtreecommitdiff
path: root/subsonic-android
diff options
context:
space:
mode:
Diffstat (limited to 'subsonic-android')
-rw-r--r--subsonic-android/AndroidManifest.xml16
-rw-r--r--subsonic-android/res/layout/appwidget.xml89
-rw-r--r--subsonic-android/res/layout/appwidget4x1.xml191
-rw-r--r--subsonic-android/res/layout/appwidget4x2.xml226
-rw-r--r--subsonic-android/res/layout/appwidget4x3.xml112
-rw-r--r--subsonic-android/res/layout/appwidget4x4.xml114
-rw-r--r--subsonic-android/res/values/strings.xml2
-rw-r--r--subsonic-android/res/xml/appwidget4x3.xml7
-rw-r--r--subsonic-android/res/xml/appwidget4x4.xml7
-rw-r--r--subsonic-android/res/xml/appwidget_info.xml7
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x1.java1
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x2.java1
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x3.java29
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x4.java29
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/provider/DSubWidgetProvider.java12
15 files changed, 555 insertions, 288 deletions
diff --git a/subsonic-android/AndroidManifest.xml b/subsonic-android/AndroidManifest.xml
index 6224cf79..43cff05f 100644
--- a/subsonic-android/AndroidManifest.xml
+++ b/subsonic-android/AndroidManifest.xml
@@ -114,6 +114,22 @@
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget4x2"/>
</receiver>
+ <receiver
+ android:name="github.daneren2005.dsub.provider.DSubWidget4x3"
+ android:label="@string/widget.4x3">
+ <intent-filter>
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
+ </intent-filter>
+ <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget4x3"/>
+ </receiver>
+ <receiver
+ android:name="github.daneren2005.dsub.provider.DSubWidget4x4"
+ android:label="@string/widget.4x4">
+ <intent-filter>
+ <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
+ </intent-filter>
+ <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget4x4"/>
+ </receiver>
<provider android:name="github.daneren2005.dsub.provider.DSubSearchProvider"
android:authorities="github.daneren2005.dsub.provider.DSubSearchProvider"/>
diff --git a/subsonic-android/res/layout/appwidget.xml b/subsonic-android/res/layout/appwidget.xml
deleted file mode 100644
index fa47a7b9..00000000
--- a/subsonic-android/res/layout/appwidget.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal"
- android:background="@drawable/appwidget_bg">
-
- <ImageView
- android:id="@+id/appwidget_coverart"
- android:layout_height="fill_parent"
- android:layout_width="81dip"
- android:scaleType="fitXY"
- android:src="@drawable/appwidget_art_default"
- android:clickable="true"
- android:focusable="true"
- android:background="@drawable/media_button"/>
- <LinearLayout
- android:id="@+id/appwidget_top"
- android:layout_height="fill_parent"
- android:layout_width="fill_parent"
- android:orientation="vertical"
- android:clickable="true"
- android:focusable="true"
- android:background="@drawable/media_button">
-
- <TextView
- android:id="@+id/title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="16sp"
- android:textColor="@color/appwidget_text"
- android:textStyle="bold"
- android:textSize="16sp"
- android:singleLine="true"
- android:paddingLeft="5dip"
- android:paddingRight="5dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="20dip"
- android:ellipsize="none"/>
- <TextView
- android:id="@+id/artist"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textColor="@color/cyan"
- android:minHeight="12sp"
- android:textSize="12sp"
- android:singleLine="true"
- android:paddingLeft="5dip"
- android:paddingBottom="2dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="10dip"
- android:ellipsize="none"/>
-
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="1.0dip"
- android:background="#33ffffff"/>
-
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal">
- <ImageButton
- android:id="@+id/control_previous"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_previous"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- <ImageButton
- android:id="@+id/control_play"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_play"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- <ImageButton
- android:id="@+id/control_next"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_next"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- </LinearLayout>
- </LinearLayout>
-</LinearLayout>
diff --git a/subsonic-android/res/layout/appwidget4x1.xml b/subsonic-android/res/layout/appwidget4x1.xml
index ed08d674..5e55aa37 100644
--- a/subsonic-android/res/layout/appwidget4x1.xml
+++ b/subsonic-android/res/layout/appwidget4x1.xml
@@ -1,91 +1,106 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal"
- android:background="@drawable/appwidget_bg">
-
- <ImageView
- android:id="@+id/appwidget_coverart"
- android:layout_height="fill_parent"
- android:layout_width="82dip"
- android:scaleType="fitXY"
- android:src="@drawable/appwidget_art_default"
- android:clickable="true"
- android:focusable="true"
- android:background="@drawable/media_button"/>
- <LinearLayout
- android:id="@+id/appwidget_top"
- android:layout_height="fill_parent"
- android:layout_width="fill_parent"
- android:orientation="vertical"
- android:clickable="true"
- android:focusable="true"
- android:background="@drawable/media_button">
-
- <TextView
- android:id="@+id/title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="16sp"
- android:textColor="@color/appwidget_text"
- android:textStyle="bold"
- android:textSize="16sp"
- android:singleLine="true"
- android:paddingTop="4dip"
- android:paddingLeft="5dip"
- android:paddingRight="5dip"
- android:paddingBottom="0dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="20dip"
- android:ellipsize="none"/>
- <TextView
- android:id="@+id/artist"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textColor="@color/cyan"
- android:minHeight="14sp"
- android:textSize="12sp"
- android:singleLine="true"
- android:paddingLeft="5dip"
- android:paddingBottom="2dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="10dip"
- android:ellipsize="none"/>
-
- <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:minWidth="250dp"
+ android:minHeight="40dp"
+ android:background="@drawable/appwidget_bg"
+ android:orientation="horizontal" >
+
+ <ImageView
+ android:id="@+id/appwidget_coverart"
+ android:layout_width="80dp"
+ android:layout_height="80dp"
+ android:layout_gravity="center_vertical"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/appwidget_art_default" />
+
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/appwidget_top"
android:layout_width="fill_parent"
- android:layout_height="1.0dip"
- android:background="#33ffffff"/>
-
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal">
- <ImageButton
- android:id="@+id/control_previous"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_previous"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- <ImageButton
- android:id="@+id/control_play"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_play"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- <ImageButton
- android:id="@+id/control_next"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_next"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- </LinearLayout>
- </LinearLayout>
-</LinearLayout>
+ android:layout_height="wrap_content"
+ android:clickable="true"
+ android:focusable="true"
+ android:orientation="vertical"
+ android:background="@drawable/media_button">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="20dip"
+ android:minHeight="16sp"
+ android:paddingLeft="4dip"
+ android:paddingRight="4dip"
+ android:paddingTop="4dip"
+ android:singleLine="true"
+ android:gravity="center_horizontal"
+ android:text="Title"
+ android:textColor="@color/appwidget_text"
+ android:textSize="16sp"
+ android:textStyle="bold" />
+
+ <TextView
+ android:id="@+id/artist"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="10dip"
+ android:minHeight="12sp"
+ android:paddingBottom="4dip"
+ android:paddingLeft="4dip"
+ android:paddingRight="4dip"
+ android:singleLine="true"
+ android:gravity="center_horizontal"
+ android:text="Artist"
+ android:textColor="@color/appwidget_text"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="horizontal"
+ android:paddingBottom="4dip"
+ android:paddingTop="4dip" >
+
+ <ImageButton
+ android:id="@+id/control_previous"
+ android:layout_width="0dip"
+ android:layout_height="fill_parent"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:background="@drawable/media_button"
+ android:src="@drawable/ic_appwidget_music_previous" />
+
+ <ImageButton
+ android:id="@+id/control_play"
+ android:layout_width="0dip"
+ android:layout_height="fill_parent"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_play"
+ android:background="@drawable/media_button" />
+
+ <ImageButton
+ android:id="@+id/control_next"
+ android:layout_width="0dip"
+ android:layout_height="fill_parent"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_next"
+ android:background="@drawable/media_button" />
+ </LinearLayout>
+ </LinearLayout>
+
+</LinearLayout> \ No newline at end of file
diff --git a/subsonic-android/res/layout/appwidget4x2.xml b/subsonic-android/res/layout/appwidget4x2.xml
index 6407c298..575ae1c2 100644
--- a/subsonic-android/res/layout/appwidget4x2.xml
+++ b/subsonic-android/res/layout/appwidget4x2.xml
@@ -1,105 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="140dp"
- android:orientation="horizontal"
- android:background="@drawable/appwidget_bg">
-
- <ImageView
- android:id="@+id/appwidget_coverart"
- android:layout_height="fill_parent"
- android:layout_width="135dip"
- android:scaleType="fitXY"
- android:src="@drawable/appwidget_art_default"
- android:clickable="true"
- android:focusable="true"
- android:background="@drawable/media_button"/>
- <LinearLayout
- android:id="@+id/appwidget_top"
- android:layout_height="fill_parent"
- android:layout_width="fill_parent"
- android:orientation="vertical"
- android:clickable="true"
- android:focusable="true"
- android:background="@drawable/media_button">
-
- <TextView
- android:id="@+id/title"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:minHeight="16sp"
- android:textColor="@color/appwidget_text"
- android:textStyle="bold"
- android:textSize="16sp"
- android:singleLine="true"
- android:paddingTop="8dip"
- android:paddingLeft="5dip"
- android:paddingRight="5dip"
- android:paddingBottom="4dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="20dip"
- android:ellipsize="none"/>
- <TextView
- android:id="@+id/artist"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textColor="@color/appwidget_text"
- android:minHeight="12sp"
- android:textSize="14sp"
- android:singleLine="true"
- android:paddingLeft="5dip"
- android:paddingBottom="2dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="10dip"
- android:ellipsize="none"/>
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:minWidth="250dp"
+ android:minHeight="110dp"
+ android:background="@drawable/appwidget_bg"
+ android:orientation="horizontal" >
- <TextView
- android:id="@+id/album"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:textColor="@color/cyan"
- android:minHeight="12sp"
- android:textSize="14sp"
- android:singleLine="true"
- android:paddingLeft="5dip"
- android:paddingBottom="20dip"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="10dip"
- android:ellipsize="none"/>
-
- <LinearLayout
+ <ImageView
+ android:id="@+id/appwidget_coverart"
+ android:layout_width="120dp"
+ android:layout_height="120dp"
+ android:layout_gravity="center_vertical"
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/appwidget_art_default" />
+
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/appwidget_top"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true"
+ android:focusable="true"
+ android:orientation="vertical"
+ android:paddingTop="4dip"
+ android:paddingBottom="4dip"
+ android:background="@drawable/media_button">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="20dip"
+ android:minHeight="16sp"
+ android:paddingLeft="4dip"
+ android:paddingRight="4dip"
+ android:paddingTop="4dip"
+ android:paddingBottom="2dip"
+ android:singleLine="true"
+ android:gravity="center_horizontal"
+ android:text="Title"
+ android:textColor="@color/appwidget_text"
+ android:textSize="16sp"
+ android:textStyle="bold" />
+
+ <TextView
+ android:id="@+id/artist"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="10dip"
+ android:minHeight="12sp"
+ android:paddingLeft="4dip"
+ android:paddingRight="4dip"
+ android:paddingBottom="2dip"
+ android:singleLine="true"
+ android:gravity="center_horizontal"
+ android:text="Artist"
+ android:textColor="@color/appwidget_text"
+ android:textSize="12sp" />
+
+ <TextView
+ android:id="@+id/album"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="10dip"
+ android:minHeight="12sp"
+ android:paddingBottom="2dip"
+ android:paddingLeft="4dip"
+ android:paddingRight="4dip"
+ android:singleLine="true"
+ android:gravity="center_horizontal"
+ android:text="Album"
+ android:textColor="@color/appwidget_text"
+ android:textSize="12sp" />
+
+ </LinearLayout>
+
+ <LinearLayout
android:layout_width="fill_parent"
- android:layout_height="1.0dip"
- android:background="#33ffffff"/>
-
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="horizontal">
- <ImageButton
- android:id="@+id/control_previous"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_previous"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- <ImageButton
- android:id="@+id/control_play"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_play"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- <ImageButton
- android:id="@+id/control_next"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="fill_parent"
- android:src="@drawable/ic_appwidget_music_next"
- android:background="@drawable/media_button"
- android:scaleType="center"/>
- </LinearLayout>
- </LinearLayout>
-</LinearLayout>
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_gravity="bottom"
+ android:gravity="bottom"
+ android:paddingBottom="4dip"
+ android:paddingTop="4dip" >"
+
+ <ImageButton
+ android:id="@+id/control_previous"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:background="@drawable/media_button"
+ android:src="@drawable/ic_appwidget_music_previous" />
+
+ <ImageButton
+ android:id="@+id/control_play"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_play"
+ android:background="@drawable/media_button" />
+
+ <ImageButton
+ android:id="@+id/control_next"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_next"
+ android:background="@drawable/media_button" />
+ </LinearLayout>
+ </LinearLayout>
+
+</LinearLayout> \ No newline at end of file
diff --git a/subsonic-android/res/layout/appwidget4x3.xml b/subsonic-android/res/layout/appwidget4x3.xml
new file mode 100644
index 00000000..b4f685bc
--- /dev/null
+++ b/subsonic-android/res/layout/appwidget4x3.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:background="@drawable/appwidget_bg"
+ android:orientation="vertical" >
+
+ <ImageView
+ android:id="@+id/appwidget_coverart"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:scaleType="fitCenter"
+ android:layout_weight="1"
+ android:layout_gravity="center_horizontal"
+ android:clickable="true"
+ android:focusable="true"
+ android:paddingTop="6dip"
+ android:paddingBottom="6dip"
+ android:src="@drawable/appwidget_art_default" />
+
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/appwidget_top"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true"
+ android:focusable="true"
+ android:orientation="vertical"
+ android:paddingBottom="4dip"
+ android:paddingTop="4dip"
+ android:background="@drawable/media_button">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="20dip"
+ android:minHeight="16sp"
+ android:paddingLeft="5dip"
+ android:paddingRight="5dip"
+ android:singleLine="true"
+ android:textColor="@color/appwidget_text"
+ android:textSize="16sp"
+ android:text="Title"
+ android:layout_gravity="center_horizontal"
+ android:gravity="center"
+ android:textStyle="bold" />
+
+ <TextView
+ android:id="@+id/artist"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="10dip"
+ android:minHeight="12sp"
+ android:paddingBottom="2dip"
+ android:paddingLeft="5dip"
+ android:singleLine="true"
+ android:text="Artist"
+ android:layout_gravity="center_horizontal"
+ android:gravity="center"
+ android:textColor="@color/appwidget_text"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:gravity="bottom"
+ android:orientation="horizontal"
+ android:paddingBottom="4dip">
+
+ <ImageButton
+ android:id="@+id/control_previous"
+ android:layout_width="0dip"
+ android:layout_height="56dip"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:background="@drawable/media_button"
+ android:src="@drawable/ic_appwidget_music_previous" />
+
+ <ImageButton
+ android:id="@+id/control_play"
+ android:layout_width="0dip"
+ android:layout_height="56dip"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_play"
+ android:background="@drawable/media_button" />
+
+ <ImageButton
+ android:id="@+id/control_next"
+ android:layout_width="0dip"
+ android:layout_height="56dip"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_next"
+ android:background="@drawable/media_button" />
+ </LinearLayout>
+
+ </LinearLayout>
+
+</LinearLayout> \ No newline at end of file
diff --git a/subsonic-android/res/layout/appwidget4x4.xml b/subsonic-android/res/layout/appwidget4x4.xml
new file mode 100644
index 00000000..6e6c12ab
--- /dev/null
+++ b/subsonic-android/res/layout/appwidget4x4.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:orientation="vertical"
+ android:background="@drawable/appwidget_bg" >
+
+ <ImageView
+ android:id="@+id/appwidget_coverart"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:scaleType="fitCenter"
+ android:layout_weight="1"
+ android:layout_gravity="center_horizontal"
+ android:clickable="true"
+ android:focusable="true"
+ android:layout_margin="6dip"
+ android:paddingTop="6dip"
+ android:paddingBottom="6dip"
+ android:src="@drawable/appwidget_art_default" />
+
+ <LinearLayout
+ android:id="@+id/linearLayout1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/appwidget_top"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:clickable="true"
+ android:focusable="true"
+ android:orientation="vertical"
+ android:paddingTop="4dip"
+ android:paddingBottom="4dip"
+ android:background="@drawable/media_button">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="20dip"
+ android:minHeight="16sp"
+ android:paddingLeft="5dip"
+ android:paddingRight="5dip"
+ android:singleLine="true"
+ android:textColor="@color/appwidget_text"
+ android:textSize="16sp"
+ android:text="Title"
+ android:layout_gravity="center_horizontal"
+ android:gravity="center"
+ android:textStyle="bold" />
+
+ <TextView
+ android:id="@+id/artist"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="none"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="10dip"
+ android:minHeight="12sp"
+ android:paddingBottom="2dip"
+ android:paddingLeft="5dip"
+ android:singleLine="true"
+ android:text="Artist"
+ android:layout_gravity="center_horizontal"
+ android:gravity="center"
+ android:textColor="@color/appwidget_text"
+ android:textSize="12sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:gravity="bottom"
+ android:orientation="horizontal"
+ android:paddingBottom="4dip"
+ android:paddingTop="4dip" >
+
+ <ImageButton
+ android:id="@+id/control_previous"
+ android:layout_width="0dip"
+ android:layout_height="56dip"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:background="@drawable/media_button"
+ android:src="@drawable/ic_appwidget_music_previous" />
+
+ <ImageButton
+ android:id="@+id/control_play"
+ android:layout_width="0dip"
+ android:layout_height="56dip"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_play"
+ android:background="@drawable/media_button" />
+
+ <ImageButton
+ android:id="@+id/control_next"
+ android:layout_width="0dip"
+ android:layout_height="56dip"
+ android:layout_weight="1"
+ android:scaleType="center"
+ android:src="@drawable/ic_appwidget_music_next"
+ android:background="@drawable/media_button" />
+ </LinearLayout>
+
+ </LinearLayout>
+
+</LinearLayout> \ No newline at end of file
diff --git a/subsonic-android/res/values/strings.xml b/subsonic-android/res/values/strings.xml
index 2d42a66d..7f03003e 100644
--- a/subsonic-android/res/values/strings.xml
+++ b/subsonic-android/res/values/strings.xml
@@ -304,6 +304,8 @@
<string name="widget.4x1">DSub (4x1)</string>
<string name="widget.4x2">DSub (4x2)</string>
+ <string name="widget.4x3">DSub (4x3)</string>
+ <string name="widget.4x4">DSub (4x4)</string>
<string name="widget.initial_text">Touch to select music</string>
<string name="widget.sdcard_busy">SD card unavailable</string>
<string name="widget.sdcard_missing">No SD card</string>
diff --git a/subsonic-android/res/xml/appwidget4x3.xml b/subsonic-android/res/xml/appwidget4x3.xml
new file mode 100644
index 00000000..51ae97ed
--- /dev/null
+++ b/subsonic-android/res/xml/appwidget4x3.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ android:minWidth="272dip"
+ android:minHeight="180dp"
+ android:updatePeriodMillis="0"
+ android:resizeMode="horizontal|vertical"
+ android:initialLayout="@layout/appwidget4x3"/> \ No newline at end of file
diff --git a/subsonic-android/res/xml/appwidget4x4.xml b/subsonic-android/res/xml/appwidget4x4.xml
new file mode 100644
index 00000000..40956dcf
--- /dev/null
+++ b/subsonic-android/res/xml/appwidget4x4.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ android:minWidth="272dip"
+ android:minHeight="250dp"
+ android:updatePeriodMillis="0"
+ android:resizeMode="horizontal|vertical"
+ android:initialLayout="@layout/appwidget4x4"/> \ No newline at end of file
diff --git a/subsonic-android/res/xml/appwidget_info.xml b/subsonic-android/res/xml/appwidget_info.xml
deleted file mode 100644
index 7ad17ef9..00000000
--- a/subsonic-android/res/xml/appwidget_info.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
- android:minWidth="272dip"
- android:minHeight="56dip"
- android:updatePeriodMillis="0"
- android:resizeMode="horizontal|vertical"
- android:initialLayout="@layout/appwidget"/> \ No newline at end of file
diff --git a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x1.java b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x1.java
index 5461d076..e00bf02d 100644
--- a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x1.java
+++ b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x1.java
@@ -19,7 +19,6 @@
package github.daneren2005.dsub.provider;
import android.appwidget.AppWidgetManager;
-import android.content.Context;
import github.daneren2005.dsub.R;
public class DSubWidget4x1 extends DSubWidgetProvider {
diff --git a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x2.java b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x2.java
index 376a3084..4908f632 100644
--- a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x2.java
+++ b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x2.java
@@ -19,7 +19,6 @@
package github.daneren2005.dsub.provider;
import android.appwidget.AppWidgetManager;
-import android.content.Context;
import github.daneren2005.dsub.R;
public class DSubWidget4x2 extends DSubWidgetProvider {
diff --git a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x3.java b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x3.java
new file mode 100644
index 00000000..f1908d0d
--- /dev/null
+++ b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x3.java
@@ -0,0 +1,29 @@
+/*
+ This file is part of Subsonic.
+
+ Subsonic is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Subsonic is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
+
+ Copyright 2010 (C) Sindre Mehus
+ */
+package github.daneren2005.dsub.provider;
+
+import android.appwidget.AppWidgetManager;
+import github.daneren2005.dsub.R;
+
+public class DSubWidget4x3 extends DSubWidgetProvider {
+ @Override
+ protected int getLayout() {
+ return R.layout.appwidget4x3;
+ }
+}
diff --git a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x4.java b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x4.java
new file mode 100644
index 00000000..7fee2747
--- /dev/null
+++ b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidget4x4.java
@@ -0,0 +1,29 @@
+/*
+ This file is part of Subsonic.
+
+ Subsonic is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Subsonic is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
+
+ Copyright 2010 (C) Sindre Mehus
+ */
+package github.daneren2005.dsub.provider;
+
+import android.appwidget.AppWidgetManager;
+import github.daneren2005.dsub.R;
+
+public class DSubWidget4x4 extends DSubWidgetProvider {
+ @Override
+ protected int getLayout() {
+ return R.layout.appwidget4x4;
+ }
+}
diff --git a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidgetProvider.java b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidgetProvider.java
index be91fe17..321b0f88 100644
--- a/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidgetProvider.java
+++ b/subsonic-android/src/github/daneren2005/dsub/provider/DSubWidgetProvider.java
@@ -59,6 +59,8 @@ public class DSubWidgetProvider extends AppWidgetProvider {
private static final String TAG = DSubWidgetProvider.class.getSimpleName();
private static DSubWidget4x1 instance4x1;
private static DSubWidget4x2 instance4x2;
+ private static DSubWidget4x3 instance4x3;
+ private static DSubWidget4x4 instance4x4;
public static synchronized void notifyInstances(Context context, DownloadService service, boolean playing) {
if(instance4x1 == null) {
@@ -67,9 +69,17 @@ public class DSubWidgetProvider extends AppWidgetProvider {
if(instance4x2 == null) {
instance4x2 = new DSubWidget4x2();
}
+ if(instance4x3 == null) {
+ instance4x3 = new DSubWidget4x3();
+ }
+ if(instance4x4 == null) {
+ instance4x4 = new DSubWidget4x4();
+ }
instance4x1.notifyChange(context, service, playing);
instance4x2.notifyChange(context, service, playing);
+ instance4x3.notifyChange(context, service, playing);
+ instance4x4.notifyChange(context, service, playing);
}
@Override
@@ -90,7 +100,7 @@ public class DSubWidgetProvider extends AppWidgetProvider {
final RemoteViews views = new RemoteViews(context.getPackageName(), getLayout());
views.setTextViewText(R.id.artist, res.getText(R.string.widget_initial_text));
- if(getLayout() != R.layout.appwidget4x1) {
+ if(getLayout() == R.layout.appwidget4x2) {
views.setTextViewText(R.id.album, "");
}