mirror of
https://github.com/clangen/musikcube.git
synced 2024-10-02 04:52:32 +00:00
Started on AlbumCover in PlayControl.
This commit is contained in:
parent
0d486e8ce9
commit
cd20260e41
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -16,4 +16,5 @@
|
||||
|
||||
<resources>
|
||||
|
||||
|
||||
</resources>
|
||||
|
@ -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>
|
||||
|
@ -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 org.musikcube.core.Player.OnTrackUpdateListener;
|
||||
|
||||
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.MenuInflater;
|
||||
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 @@ public class PlayerControl extends Activity implements OnTrackUpdateListener, On
|
||||
protected void onPause() {
|
||||
Log.v("MC2::PC","OnPause");
|
||||
Player.GetInstance().SetUpdateListener(null);
|
||||
//this.timer.cancel();
|
||||
super.onPause();
|
||||
}
|
||||
@Override
|
||||
@ -127,12 +135,6 @@ public class PlayerControl extends Activity implements OnTrackUpdateListener, On
|
||||
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 @@ public class PlayerControl extends Activity implements OnTrackUpdateListener, On
|
||||
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 @@ public class PlayerControl extends Activity implements OnTrackUpdateListener, On
|
||||
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 @@ public class PlayerControl extends Activity implements OnTrackUpdateListener, On
|
||||
|
||||
// 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();
|
||||
|
@ -94,6 +94,7 @@ public class TrackList extends ListActivity implements OnQueryResultListener {
|
||||
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,13 +208,14 @@ public class TrackList extends ListActivity implements OnQueryResultListener {
|
||||
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() {
|
||||
super.onPause();
|
||||
|
Loading…
Reference in New Issue
Block a user