diff --git a/src/android/AndroidManifest.xml b/src/android/AndroidManifest.xml index 75d40e1f0..8aa3130ac 100644 --- a/src/android/AndroidManifest.xml +++ b/src/android/AndroidManifest.xml @@ -26,4 +26,6 @@ + + \ No newline at end of file diff --git a/src/android/res/layout/category_list_item.xml b/src/android/res/layout/category_list_item.xml index f158cf710..21fdb1477 100644 --- a/src/android/res/layout/category_list_item.xml +++ b/src/android/res/layout/category_list_item.xml @@ -7,6 +7,6 @@ + android:layout_height="wrap_content" android:textSize="28sp" android:fadingEdge="horizontal" android:maxLines="1" android:fadingEdgeLength="10sp"/> \ No newline at end of file diff --git a/src/android/src/org/musikcube/Service.java b/src/android/src/org/musikcube/Service.java index ec620fb0b..792ec32f9 100644 --- a/src/android/src/org/musikcube/Service.java +++ b/src/android/src/org/musikcube/Service.java @@ -14,6 +14,10 @@ import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.IBinder; +import android.telephony.PhoneStateListener; +import android.telephony.TelephonyManager; +import android.view.View; +import android.view.View.OnClickListener; /** * @author doy @@ -49,7 +53,24 @@ public class Service extends android.app.Service { this.player.service = this; this.library = org.musikcube.core.Library.GetInstance(); this.library.Startup(this); + + TelephonyManager telephony = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); + telephony.listen(phoneStateListener,PhoneStateListener.LISTEN_CALL_STATE); } + + private PhoneStateListener phoneStateListener = new PhoneStateListener() { + public void onCallStateChanged(int state,String incomingNumber){ + switch(state) + { + case TelephonyManager.CALL_STATE_RINGING: + Intent intent = new Intent(Service.this, org.musikcube.Service.class); + intent.putExtra("org.musikcube.Service.action", "stop"); + startService(intent); + break; + } + } + }; + /* (non-Javadoc) * @see android.app.Service#onStart(android.content.Intent, int) diff --git a/src/android/src/org/musikcube/core/Library.java b/src/android/src/org/musikcube/core/Library.java index 2722b7752..88dbe9c63 100644 --- a/src/android/src/org/musikcube/core/Library.java +++ b/src/android/src/org/musikcube/core/Library.java @@ -206,7 +206,6 @@ public class Library implements Runnable{ } //Log.v("Library::socket","Successfully connected to "+this.host+":"+this.queryPort); - this.SetStatus(STATUS_AUTHENTICATING); doep.xml.Reader reader = new doep.xml.Reader(this.socket.getInputStream()); //Log.v("Library::run","Reader started"); @@ -318,6 +317,8 @@ public class Library implements Runnable{ public void WriteThread(WriterThreadHelper thread){ //Log.v("Library::WriteThread","Started"); + this.SetStatus(STATUS_AUTHENTICATING); + try{ doep.xml.Writer writer = new doep.xml.Writer(this.socket.getOutputStream()); {