Modified:
/trunk/src/android/res/layout/play_control.xml
/trunk/src/android/res/values/strings.xml
/trunk/src/android/res/values/styles.xml
/trunk/src/android/res/xml/preferences.xml
/trunk/src/android/src/org/musikcube/PlayerControl.java
/trunk/src/android/src/org/musikcube/TrackList.java
=======================================
--- /trunk/src/android/res/layout/play_control.xml Thu Aug 6 15:24:39 2009
+++ /trunk/src/android/res/layout/play_control.xml Tue Aug 11 11:57:11 2009
@@ -6,15 +6,15 @@
android:paddingLeft="8dp"
android:paddingRight="8dp" android:gravity="center_vertical|
center_horizontal">
-<LinearLayout android:id="@+id/LinearLayout01" android:layout_weight="0.5"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="left">
-<ImageView android:id="@+id/ImageView01" android:src="@drawable/album"
android:layout_marginTop="5sp" android:layout_marginBottom="5sp"
android:layout_height="200sp" android:layout_width="200sp"
android:scaleType="fitXY"></ImageView>
+<ImageView android:src="@drawable/album" android:layout_marginTop="5sp"
android:layout_marginBottom="5sp" android:layout_height="200sp"
android:layout_width="200sp" android:scaleType="fitXY"
android:id="@+id/AlbumCover"></ImageView><LinearLayout
android:id="@+id/LinearLayout01" android:layout_weight="0.5"
android:layout_height="wrap_content" android:orientation="vertical"
android:gravity="left" android:layout_width="200sp">
+
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textSize="24sp"
android:id="@+id/TrackTitle" android:text="Title:"></TextView>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Album:"
android:id="@+id/TrackAlbum"></TextView>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Artists:"
android:id="@+id/TrackArtist"></TextView>
</LinearLayout>
<LinearLayout android:id="@+id/LinearLayout02"
android:layout_weight="0.5" android:layout_width="wrap_content"
android:layout_height="wrap_content"></LinearLayout><LinearLayout
android:id="@+id/LinearLayout01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:orientation="horizontal">
- <ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/MediaPrev"
android:clickable="true" android:src="@drawable/ic_media_previous"
android:adjustViewBounds="true" android:padding="15sp"></ImageButton>
+ <ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/MediaPrev"
android:src="@drawable/ic_media_previous" android:adjustViewBounds="true"
android:padding="15sp"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:adjustViewBounds="true"
android:id="@+id/MediaPause" android:src="@drawable/ic_media_pause"
android:padding="15sp"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/MediaNext"
android:adjustViewBounds="true" android:src="@drawable/ic_media_next"
android:padding="15sp"></ImageButton>
</LinearLayout>
=======================================
--- /trunk/src/android/res/values/strings.xml Sun Aug 9 13:57:19 2009
+++ /trunk/src/android/res/values/strings.xml Tue Aug 11 11:57:11 2009
@@ -5,14 +5,14 @@
<string name="menu_settings">Settings</string>
<string name="menu_help">Help</string>
-<string name="host">vallgraven.intermezzon.com</string>
+<string name="host"></string>
-<string name="username">doep</string>
-<string name="password">doep</string>
+<string name="username"></string>
+<string name="password"></string>
<string name="queryport">10543</string>
<string name="httpport">10544</string>
<color name="headlineColor">#333333</color>
=======================================
--- /trunk/src/android/res/values/styles.xml Wed Jul 29 15:56:39 2009
+++ /trunk/src/android/res/values/styles.xml Tue Aug 11 11:57:11 2009
@@ -16,4 +16,5 @@
<resources>
+
</resources>
=======================================
--- /trunk/src/android/res/xml/preferences.xml Wed Aug 5 16:16:30 2009
+++ /trunk/src/android/res/xml/preferences.xml Tue Aug 11 11:57:11 2009
@@ -2,13 +2,13 @@
<PreferenceCategory android:title="Connection">
-<EditTextPreference android:key="host" android:enabled="true"
android:title="Host" android:dialogMessage="Hostname or IP to musikServer"
android:summary="Hostname or IP to musikServer" android:dialogTitle="Host"
android:selectable="true"
android:defaultValue="vallgraven.intermezzon.com"></EditTextPreference>
+<EditTextPreference android:key="host" android:enabled="true"
android:title="Host" android:dialogMessage="Hostname or IP to musikServer"
android:summary="Hostname or IP to musikServer" android:dialogTitle="Host"
android:selectable="true"></EditTextPreference>
<EditTextPreference android:key="queryport" android:enabled="true"
android:inputType="number" android:title="Query port"
android:dialogMessage="TCP port for querying musikServer"
android:summary="TCP port for querying musikServer"
android:dialogTitle="Query port"
android:defaultValue="10543"></EditTextPreference>
<EditTextPreference android:key="httpport" android:enabled="true"
android:inputType="number" android:title="HTTP port"
android:dialogMessage="TCP port for streaming music" android:summary="TCP
port for streaming music" android:dialogTitle="HTTP port"
android:defaultValue="10544"></EditTextPreference>
</PreferenceCategory>
<PreferenceCategory android:title="Authentication">
-<EditTextPreference android:key="username" android:enabled="true"
android:title="Username" android:summary="Username to identify yourself to
the musikServer" android:dialogTitle="Username"
android:defaultValue="doep"></EditTextPreference>
-<EditTextPreference android:dialogTitle="Password" android:key="password"
android:inputType="textPassword" android:enabled="true"
android:title="Password" android:summary="Password on the musikServer"
android:defaultValue="doep"></EditTextPreference>
+<EditTextPreference android:key="username" android:enabled="true"
android:title="Username" android:summary="Username to identify yourself to
the musikServer" android:dialogTitle="Username"></EditTextPreference>
+<EditTextPreference android:dialogTitle="Password" android:key="password"
android:inputType="textPassword" android:enabled="true"
android:title="Password" android:summary="Password on the
musikServer"></EditTextPreference>
</PreferenceCategory>
</PreferenceScreen>
=======================================
--- /trunk/src/android/src/org/musikcube/PlayerControl.java Mon Aug 10
13:37:02 2009
+++ /trunk/src/android/src/org/musikcube/PlayerControl.java Tue Aug 11
11:57:11 2009
@@ -1,5 +1,9 @@
package org.musikcube;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.util.Timer;
import java.util.TimerTask;
@@ -13,6 +17,9 @@
import android.app.Activity;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
@@ -21,7 +28,9 @@
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
+import android.webkit.DownloadListener;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
@@ -119,7 +128,6 @@
protected void onPause() {
Log.v("MC2::PC","OnPause");
Player.GetInstance().SetUpdateListener(null);
- //this.timer.cancel();
super.onPause();
}
@Override
@@ -127,12 +135,6 @@
Log.v("MC2::PC","OnResume");
Player.GetInstance().SetUpdateListener(this);
super.onResume();
-
-// this.timer = new Timer();
-/* this.timer.schedule(new TimerTask() { public void run() {
-
callbackTrackPositionsUpdateHandler.post(callbackTrackPositionsUpdateRunnable);
- } }, 100);*/
-//
this.callbackTrackPositionsUpdateHandler.postDelayed(callbackTrackPositionsUpdateRunnable,100);
}
// Need handler for callbacks to the UI thread
@@ -149,8 +151,15 @@
TextView albumView = (TextView)findViewById(R.id.TrackAlbum);
TextView artistView = (TextView)findViewById(R.id.TrackArtist);
TextView durationView = (TextView)findViewById(R.id.TrackDuration);
+
+ int thumbnailId = 0;
synchronized(lock){
+ String thumbnailString = this.track.metadata.get("thumbnail_id");
+ if(thumbnailString!=null){
+ thumbnailId = Integer.parseInt(thumbnailString);
+ }
+
String title = this.track.metadata.get("title");
if(title==null){
titleView.setText("Title:");
@@ -183,6 +192,42 @@
durationText += Integer.toString(seconds);
durationView.setText(durationText);
}
+
+ if(thumbnailId!=0){
+ // Load image
+ Library library = Library.GetInstance();
+ new
DownloadAlbumCoverTask().execute("http://"+library.host+":"+library.httpPort+"/cover/?cover_id="+thumbnailId);
+ }
+
+ }
+
+ private class DownloadAlbumCoverTask extends
AsyncTask<String,Integer,Bitmap>{
+
+ protected Bitmap doInBackground(String... params) {
+ try {
+ URL url = new URL(params[0]);
+ HttpURLConnection conn= (HttpURLConnection)url.openConnection();
+ conn.setDoInput(true);
+ conn.connect();
+ //int length = conn.getContentLength();
+ InputStream is = conn.getInputStream();
+ Bitmap bm = BitmapFactory.decodeStream(is);
+ return bm;
+ } catch (Exception e) {
+ Log.v("mC2:PLAYER","Error "+e.getMessage());
+// e.printStackTrace();
+ return null;
+ }
+ }
+
+ protected void onPostExecute(Bitmap result){
+ if(result==null){
+
+ }else{
+ ImageView cover = (ImageView)findViewById(R.id.AlbumCover);
+ cover.setImageBitmap(result);
+ }
+ }
}
// Need handler for callbacks to the UI thread
@@ -217,19 +262,8 @@
// Next callback in 0.5 seconds
this.callbackTrackPositionsUpdateHandler.postDelayed(callbackTrackPositionsUpdateRunnable,500);
-/* this.timer.schedule(new TimerTask() { public void run() {
-
callbackTrackPositionsUpdateHandler.post(callbackTrackPositionsUpdateRunnable);
- } }, 500);*/
- }
-
-// private java.util.Timer timer = new java.util.Timer();
-
- /*
- gametimer.schedule(new TimerTask() { public void run() {
- seconds+=0.1; updatecount();
- } }, 100, 100);
- */
-
+
+ }
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
=======================================
--- /trunk/src/android/src/org/musikcube/TrackList.java Mon Aug 10 13:37:02
2009
+++ /trunk/src/android/src/org/musikcube/TrackList.java Tue Aug 11 11:57:11
2009
@@ -94,6 +94,7 @@
holder.track = (TextView) view.findViewById(R.id.track);
holder.artist = (TextView) view.findViewById(R.id.artist);
view.setTag(holder);
+
}else{
holder = (TrackViewHolder)view.getTag();
}
@@ -207,12 +208,13 @@
intent.putExtra("org.musikcube.Service.position", position);
intent.putExtra("org.musikcube.Service.action", "playlist");
startService(intent);
-
+
Intent intent2 = new Intent(this, PlayerControl.class);
startActivity(intent2);
}
+
@Override
protected void onPause() {