From: <kro...@us...> - 2010-12-14 13:37:47
|
Revision: 4031 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4031&view=rev Author: kroko_koenig Date: 2010-12-14 13:37:39 +0000 (Tue, 14 Dec 2010) Log Message: ----------- changed post and add progress to music section Modified Paths: -------------- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/readme trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/PostWebserver.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_02.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicAlbum.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicArtist.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicResults.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicSong.java trunk/plugins/AndroidRemote/Release/AndroidRemote.mpe1 trunk/plugins/AndroidRemote/Release/AndroidRemote.xmp2 trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs trunk/plugins/AndroidRemote/Server/AndroidRemote.suo Added Paths: ----------- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/remote03.xml trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_03.java trunk/plugins/AndroidRemote/Release/remote3.jpg Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml 2010-12-14 13:37:39 UTC (rev 4031) @@ -17,6 +17,7 @@ </activity> <activity android:launchMode="singleInstance" android:name=".Remote_01"></activity> <activity android:launchMode="singleInstance" android:name=".Remote_02"></activity> + <activity android:launchMode="singleInstance" android:name=".Remote_03"></activity> <activity android:name=".pictures" android:launchMode="singleInstance"></activity> <activity android:name=".picturesfullscreen" android:launchMode="singleInstance"></activity> <activity android:launchMode="singleInstance" android:name=".MusicDir"></activity> @@ -32,6 +33,7 @@ <uses-sdk android:minSdkVersion="3" /> <uses-permission android:name="android.permission.INTERNET"></uses-permission> + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.VIBRATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> </manifest> \ No newline at end of file Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -79,9 +79,13 @@ public static final int wake_on_lan=0x7f020041; } public static final class id { + public static final int Button01=0x7f060060; public static final int GridView01=0x7f060017; public static final int ImageView01=0x7f060019; + public static final int LinearLayout00=0x7f06004a; public static final int LinearLayout01=0x7f06001a; + public static final int LinearLayout02=0x7f060055; + public static final int LinearLayout03=0x7f06005f; public static final int ListView01=0x7f060028; public static final int TableLayout01=0x7f060005; public static final int TableRow01=0x7f060006; @@ -123,7 +127,26 @@ public static final int btn_main_skp_back=0x7f06000e; public static final int btn_main_skp_forw=0x7f060010; public static final int btn_main_video=0x7f060009; - public static final int clearplaylist=0x7f060050; + public static final int btnkey01=0x7f06004b; + public static final int btnkey02=0x7f06004c; + public static final int btnkey03=0x7f06004d; + public static final int btnkey04=0x7f06004e; + public static final int btnkey05=0x7f06004f; + public static final int btnkey06=0x7f060050; + public static final int btnkey07=0x7f060051; + public static final int btnkey08=0x7f060052; + public static final int btnkey09=0x7f060053; + public static final int btnkey10=0x7f060054; + public static final int btnkey11=0x7f060056; + public static final int btnkey12=0x7f060057; + public static final int btnkey13=0x7f060058; + public static final int btnkey14=0x7f060059; + public static final int btnkey15=0x7f06005a; + public static final int btnkey16=0x7f06005b; + public static final int btnkey17=0x7f06005c; + public static final int btnkey18=0x7f06005d; + public static final int btnkey19=0x7f06005e; + public static final int clearplaylist=0x7f060067; public static final int full_text=0x7f060018; public static final int icon_image=0x7f060001; public static final int icon_text=0x7f060002; @@ -147,18 +170,18 @@ public static final int now_progress=0x7f06001e; public static final int now_stop=0x7f060024; public static final int now_title=0x7f060021; - public static final int open=0x7f060053; - public static final int playlist=0x7f06004f; - public static final int rslide=0x7f060056; - public static final int save=0x7f060052; - public static final int sdcard=0x7f060051; - public static final int send=0x7f060054; - public static final int server_ip=0x7f06004a; - public static final int server_macid=0x7f06004c; - public static final int server_port=0x7f06004b; - public static final int slide=0x7f060055; - public static final int title=0x7f06004e; - public static final int vibration=0x7f06004d; + public static final int open=0x7f06006a; + public static final int playlist=0x7f060066; + public static final int rslide=0x7f06006d; + public static final int save=0x7f060069; + public static final int sdcard=0x7f060068; + public static final int send=0x7f06006b; + public static final int server_ip=0x7f060061; + public static final int server_macid=0x7f060063; + public static final int server_port=0x7f060062; + public static final int slide=0x7f06006c; + public static final int title=0x7f060065; + public static final int vibration=0x7f060064; public static final int widget0=0x7f060011; public static final int widget00=0x7f06002a; public static final int widget01=0x7f06002e; @@ -183,9 +206,10 @@ public static final int playnowlist=0x7f03000c; public static final int remote01=0x7f03000d; public static final int remote02=0x7f03000e; - public static final int setup=0x7f03000f; - public static final int splash=0x7f030010; - public static final int title=0x7f030011; + public static final int remote03=0x7f03000f; + public static final int setup=0x7f030010; + public static final int splash=0x7f030011; + public static final int title=0x7f030012; } public static final class menu { public static final int music_menu=0x7f050000; Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/readme =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/readme 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/readme 2010-12-14 13:37:39 UTC (rev 4031) @@ -37,7 +37,7 @@ Main issues ------------ Vibration feedback (not completed) -Check if WIFI is on +switch WIFI on (just msg now) gesture control for pictures (swipe) / alertdialog save files from Android to MP if the MP has no focus the remote doesnt work (normal) Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/remote03.xml =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/remote03.xml (rev 0) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/remote03.xml 2010-12-14 13:37:39 UTC (rev 4031) @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="utf-8"?> + <LinearLayout android:id="@+id/LinearLayout00" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="wrap_content" android:background="@drawable/brush"> + + <TextView android:id="@+id/naviRemote_text" android:layout_width="fill_parent" + android:layout_height="wrap_content" android:text="Remote 03" + android:gravity="center_horizontal" android:background="#FFA9A9A9" + android:textSize="15dip" + android:textColor="#FF000000" android:textColorHighlight="#FFFFFFFF" android:padding="5dip"> + </TextView> + + <LinearLayout android:id="@+id/LinearLayout01" + android:layout_height="wrap_content" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="fill_parent" android:paddingBottom="5dip" android:paddingTop="5dip"> + + <Button android:id="@+id/btnkey01" android:padding="0dip" + android:text="Q" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey02" android:padding="0dip" + android:text="W" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/btnkey03" android:padding="0dip" + android:text="E" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey04" android:padding="0dip" + android:text="R" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey05" android:padding="0dip" + android:text="T" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/btnkey06" android:padding="0dip" + android:text="Y" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey07" android:padding="0dip" + android:text="U" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey08" android:padding="0dip" + android:text="I" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/btnkey09" android:padding="0dip" + android:text="O" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey10" android:padding="0dip" + android:text="P" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + </LinearLayout> + + <LinearLayout android:id="@+id/LinearLayout02" + android:layout_height="wrap_content" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_gravity="center_horizontal" + android:layout_width="wrap_content" + android:paddingBottom="5dip"> + + <Button android:id="@+id/btnkey11" android:padding="0dip" + android:text="A" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey12" android:padding="0dip" + android:text="S" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/btnkey13" android:padding="0dip" + android:text="D" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey14" android:padding="0dip" + android:text="F" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey15" android:padding="0dip" + android:text="G" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/btnkey16" android:padding="0dip" + android:text="H" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey17" android:padding="0dip" + android:text="J" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/btnkey18" android:padding="0dip" + android:text="K" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/btnkey19" android:padding="0dip" + android:text="L" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + </LinearLayout> + + <LinearLayout android:id="@+id/LinearLayout03" + android:layout_height="wrap_content" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_gravity="center_horizontal" + android:layout_width="wrap_content" + android:paddingBottom="5dip"> + + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="Shift" android:layout_width="48dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="Z" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="X" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="C" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="V" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="B" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="N" android:layout_width="32dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="M" android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="DEL" android:layout_width="48dip" android:layout_height="32dip"> + </Button> + </LinearLayout> + + <LinearLayout android:id="@+id/LinearLayout03" + android:layout_height="wrap_content" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_gravity="center_horizontal" + android:layout_width="wrap_content" + android:paddingBottom="5dip"> + + <Button android:id="@+id/Button01" android:padding="0dip" + android:text=".?123" android:layout_width="64dip" android:layout_height="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:layout_height="32dip" android:layout_width="32dip" android:text="/"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="Space" android:layout_height="32dip" android:layout_width="64dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="." android:layout_height="32dip" android:layout_width="32dip"> + </Button> + <Button android:id="@+id/Button01" android:padding="0dip" + android:text="www" android:layout_width="64dip" android:layout_height="32dip"> + </Button> + + </LinearLayout> + +</LinearLayout> Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/PostWebserver.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/PostWebserver.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/PostWebserver.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -21,7 +21,13 @@ package mediaportal.remote; +import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.InetAddress; +import java.net.Socket; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; @@ -31,6 +37,8 @@ import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; +import org.apache.http.params.HttpProtocolParams; +import org.apache.http.protocol.HTTP; public class PostWebserver { @@ -42,11 +50,55 @@ httpPort = Port; } - public boolean Post(String Data) { + public boolean Post(String data) { boolean result = false; + try { + InetAddress addr = InetAddress.getByName(Settings.Server); + Socket socket = new Socket(addr, 8200); + + // Send header String + String path = "/"; + BufferedWriter wr = new BufferedWriter(new OutputStreamWriter( + socket.getOutputStream(), "UTF8")); + wr.write("POST " + path + " HTTP/1.0\r\n"); + wr.write("Content-Length: " + data.length() + "\r\n"); + wr.write("Content-Type: application/xml\r\n"); + wr.write("\r\n"); + + // Send data + wr.write(data); + wr.flush(); + + // Get response + BufferedReader rd = new BufferedReader(new InputStreamReader( + socket.getInputStream())); + String line; + while ((line = rd.readLine()) != null) { + // Process line... + } + + wr.close(); + rd.close(); + + result = true; + + } catch (Exception e) { + } + + return result; + + } + + public boolean oldPost(String Data) { + + boolean result = false; + try { HttpParams httpParameters = new BasicHttpParams(); + HttpProtocolParams.setContentCharset(httpParameters, HTTP.UTF_8); + HttpProtocolParams.setUseExpectContinue(httpParameters, false); + HttpConnectionParams.setConnectionTimeout(httpParameters, 5000); HttpConnectionParams.setSoTimeout(httpParameters, 5000); @@ -54,8 +106,13 @@ HttpPost httppost = new HttpPost("http://" + httpServer + ":" + httpPort); + httppost.addHeader("Accept", "text/xml"); + httppost.addHeader("Content-Type", "application/xml"); + + Data = Data.replace("\\", "/"); + StringEntity se = new StringEntity(Data, "UTF-8"); - se.setContentType("application/atom+xml"); + se.setContentType("application/xml"); httppost.setEntity(se); @@ -72,4 +129,5 @@ return result; } + } Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_02.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_02.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_02.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -169,8 +169,8 @@ // right to left swipe if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { - - + Intent myIntent = new Intent(this, Remote_03.class); + startActivityForResult(myIntent, 0); } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { Intent myIntent = new Intent(this, Remote_01.class); Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_03.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_03.java (rev 0) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Remote_03.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2005-2010 Team MediaPortal + * http://www.team-mediaportal.com + * + * This Program 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 2, or (at your option) + * any later version. + * + * This Program 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 GNU Make; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +package mediaportal.remote; + +import java.io.IOException; +import java.io.InputStream; +import mediaportal.remote.R; +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.content.res.AssetManager; +import android.os.Bundle; +import android.os.Vibrator; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; +import android.view.GestureDetector.OnGestureListener; +import android.widget.Button; + +public class Remote_03 extends Activity implements OnGestureListener { + + public static final String PREFS_PRIVATE = "PREFS_MP_REMOTE"; + + private GestureDetector gestureScanner; + private static final int SWIPE_MIN_DISTANCE = 120; + private static final int SWIPE_MAX_OFF_PATH = 250; + private static final int SWIPE_THRESHOLD_VELOCITY = 200; + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.remote03); + + gestureScanner = new GestureDetector(this); + + } + + public void PostCommand(String button) { + + PostWebserver post = new PostWebserver(Settings.Server, Settings.Port); + + AssetManager assetManager = getAssets(); + String xml = ""; + + try { + InputStream inputStream = null; + inputStream = assetManager.open("cmd_" + button + ".xml"); + + int x = inputStream.read(); + + while (x != -1) { + xml = xml + (char) x; + x = inputStream.read(); + } + post.Post(xml); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public boolean onTouchEvent(MotionEvent me) { + return gestureScanner.onTouchEvent(me); + } + public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, + float velocityY) { + try { + if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) + return false; + // right to left swipe + if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE + && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { + + } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE + && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { + Intent myIntent = new Intent(this, Remote_02.class); + startActivityForResult(myIntent, 0); + } + } catch (Exception e) { + // nothing + } + return false; + } + + public boolean onDown(MotionEvent arg0) { + return true; + } + public void onLongPress(MotionEvent arg0) { + } + public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2, + float arg3) { + return false; + } + public void onShowPress(MotionEvent arg0) { + } + public boolean onSingleTapUp(MotionEvent arg0) { + return false; + } + + public void DoVibrate() { + if (Settings.Vibrate) { + // Get instance of Vibrator from current Context + Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); + v.vibrate(100); + } + } +} \ No newline at end of file Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -30,6 +30,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.res.AssetManager; +import android.net.ConnectivityManager; import android.os.Bundle; import android.os.Handler; import android.os.Vibrator; @@ -40,7 +41,7 @@ private static final String PREFS_PRIVATE = "PREFS_MP_REMOTE"; private Handler mHandler = new Handler(); - + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -134,6 +135,29 @@ }); } + void chkStatus() { + final ConnectivityManager connMgr = (ConnectivityManager) this + .getSystemService(Context.CONNECTIVITY_SERVICE); + + final android.net.NetworkInfo wifi = connMgr + .getNetworkInfo(ConnectivityManager.TYPE_WIFI); + + final android.net.NetworkInfo mobile = connMgr + .getNetworkInfo(ConnectivityManager.TYPE_MOBILE); + + if (!wifi.isAvailable()) { + Toast.makeText(this, "Wifi is not available !", Toast.LENGTH_LONG).show(); + } + + /* + else if (mobile.isAvailable()) { + Toast.makeText(this, "Mobile 3G ", Toast.LENGTH_LONG).show(); + } else { + Toast.makeText(this, "No Network ", Toast.LENGTH_LONG).show(); + } + */ + } + public void PostCommand(String button) { PostWebserver post = new PostWebserver(Settings.Server, Settings.Port); @@ -164,13 +188,16 @@ v.vibrate(100); } } - + @Override public void onStart() { super.onStart(); mHandler.removeCallbacks(mUpdateTimeTask); mHandler.postDelayed(mUpdateTimeTask, 1000); + + chkStatus(); + } @Override @@ -186,7 +213,7 @@ mHandler.postDelayed(mUpdateTimeTask, 1000); } }; - + private void update() { SharedPreferences settings = getSharedPreferences(PREFS_PRIVATE, MODE_PRIVATE); @@ -197,13 +224,14 @@ nowplayinghandler handler = nowplayinghandler.getinstance(); handler.setconnection(HttpServer, HttpPort); handler.fetchdata(); - + String display = "nothing playing"; TextView txt0 = (TextView) findViewById(R.id.main_now_playing); - - if ((nowplayinghandler.PlayerState != null) && - (!nowplayinghandler.PlayerState.equals("no player active"))) { - display = nowplayinghandler.Artist + " - " + nowplayinghandler.Title; + + if ((nowplayinghandler.PlayerState != null) + && (!nowplayinghandler.PlayerState.equals("no player active"))) { + display = nowplayinghandler.Artist + " - " + + nowplayinghandler.Title; } txt0.setText(display); } Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicAlbum.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicAlbum.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicAlbum.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -22,12 +22,13 @@ package mediaportal.remote; import java.util.ArrayList; - import android.app.Activity; +import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.util.Log; @@ -50,12 +51,13 @@ super.onCreate(savedInstanceState); setContentView(R.layout.music_album); + mHandler.removeCallbacks(mUpdateTimeTask); + mHandler.postDelayed(mUpdateTimeTask, 100); + ListView l1 = (ListView) findViewById(R.id.list_album); - l1.setAdapter(new EfficientAdapter(musicAlbum.this)); l1.setOnItemClickListener(new AdapterView.OnItemClickListener() { - //@override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { @@ -74,34 +76,45 @@ l1.setDividerHeight(2); } - @Override - public void onStart() { - super.onStart(); - - mHandler.removeCallbacks(mUpdateTimeTask); - mHandler.postDelayed(mUpdateTimeTask, 100); - } - private Runnable mUpdateTimeTask = new Runnable() { public void run() { - update(); + new update().execute(); } }; - private void update() { + private class update extends AsyncTask<String, Void, Void> { + private final ProgressDialog dialog = new ProgressDialog(musicAlbum.this); - Log.d("update album", "do update"); + // can use UI thread here + protected void onPreExecute() { + this.dialog.setMessage("Loading..."); + this.dialog.show(); + } - ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); - albumList = handler.GetAlbums(); + // automatically done on worker thread (separate from UI thread) + protected Void doInBackground(final String... args) { + Log.d("update album", "do update"); - if (albumList.size() == 0) { - Toast.makeText(musicAlbum.this, "TIME OUT SERVER", - Toast.LENGTH_LONG).show(); + ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); + albumList = handler.GetAlbums(); + + return null; } - ListView l1 = (ListView) findViewById(R.id.list_album); - l1.invalidateViews(); + // can use UI thread here + protected void onPostExecute(final Void unused) { + if (this.dialog.isShowing()) { + this.dialog.dismiss(); + } + + if (albumList.size() == 0) { + Toast.makeText(musicAlbum.this, "TIME OUT SERVER", + Toast.LENGTH_SHORT).show(); + } else { + ListView listview = (ListView) findViewById(R.id.list_album); + listview.setAdapter(new EfficientAdapter(musicAlbum.this)); + } + } } private static class EfficientAdapter extends BaseAdapter { Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicArtist.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicArtist.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicArtist.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -23,10 +23,12 @@ import java.util.ArrayList; import android.app.Activity; +import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.util.Log; @@ -39,73 +41,85 @@ import android.widget.TextView; import android.widget.Toast; -public class musicArtist extends Activity{ - +public class musicArtist extends Activity { + public static final String PREFS_PRIVATE = "PREFS_MP_REMOTE"; private Handler mHandler = new Handler(); - + private static ArrayList<ReceiveDbXmlHandler.DbItems> artistList; - + public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.music_artist); - - ListView l1 = (ListView) findViewById(R.id.list_artist); - l1.setAdapter(new EfficientAdapter(musicArtist.this)); - - l1.setOnItemClickListener(new AdapterView.OnItemClickListener() - { - //@override + super.onCreate(savedInstanceState); + setContentView(R.layout.music_artist); + + mHandler.removeCallbacks(mUpdateTimeTask); + mHandler.postDelayed(mUpdateTimeTask, 100); + + ListView l1 = (ListView) findViewById(R.id.list_artist); + + l1.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, - long arg3) { - + long arg3) { + ReceiveDbXmlHandler.DbItems item = artistList.get(arg2); - + musicResults.Select = item.Artist; musicResults.Mode = musicResults.SelectMode.Artist; - - Intent myIntent = new Intent(arg1.getContext(), musicResults.class); - startActivityForResult(myIntent, 0); - } + + Intent myIntent = new Intent(arg1.getContext(), + musicResults.class); + startActivityForResult(myIntent, 0); } - ); - - ColorDrawable divcolor = new ColorDrawable(Color.DKGRAY); - l1.setDivider(divcolor); - l1.setDividerHeight(2); - } - - @Override - public void onStart() { - super.onStart(); + }); - mHandler.removeCallbacks(mUpdateTimeTask); - mHandler.postDelayed(mUpdateTimeTask, 100); + ColorDrawable divcolor = new ColorDrawable(Color.DKGRAY); + l1.setDivider(divcolor); + l1.setDividerHeight(2); } + private Runnable mUpdateTimeTask = new Runnable() { public void run() { - update(); + new update().execute(); } }; - private void update() { - - Log.d("update artist", "do update"); - - ReceiveDbHandler handler = ReceiveDbHandler .getinstance(); - artistList = handler.GetArtist(); - - if (artistList.size() == 0) { - Toast.makeText(musicArtist.this, "TIME OUT SERVER", - Toast.LENGTH_LONG).show(); + private class update extends AsyncTask<String, Void, Void> { + private final ProgressDialog dialog = new ProgressDialog(musicArtist.this); + + // can use UI thread here + protected void onPreExecute() { + this.dialog.setMessage("Loading..."); + this.dialog.show(); } - - ListView l1 = (ListView) findViewById(R.id.list_artist); - l1.invalidateViews(); + + // automatically done on worker thread (separate from UI thread) + protected Void doInBackground(final String... args) { + Log.d("update artist", "do update"); + + ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); + artistList = handler.GetArtist(); + + return null; + } + + // can use UI thread here + protected void onPostExecute(final Void unused) { + if (this.dialog.isShowing()) { + this.dialog.dismiss(); + } + + if (artistList.size() == 0) { + Toast.makeText(musicArtist.this, "TIME OUT SERVER", + Toast.LENGTH_SHORT).show(); + } else { + ListView listview = (ListView) findViewById(R.id.list_artist); + listview.setAdapter(new EfficientAdapter(musicArtist.this)); + } + } } - + private static class EfficientAdapter extends BaseAdapter { - + private LayoutInflater mInflater; public EfficientAdapter(Context context) { @@ -113,8 +127,10 @@ } public int getCount() { - if(artistList != null) return artistList.size(); - else return 0; + if (artistList != null) + return artistList.size(); + else + return 0; } public Object getItem(int position) { @@ -127,7 +143,7 @@ public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; - + if (convertView == null) { convertView = mInflater.inflate(R.layout.list_item, null); holder = new ViewHolder(); @@ -142,8 +158,8 @@ } ReceiveDbXmlHandler.DbItems item = artistList.get(position); - - holder.text.setText(String.valueOf(position +1)); + + holder.text.setText(String.valueOf(position + 1)); holder.text2.setText(item.Artist); convertView.setBackgroundColor((position & 1) == 1 ? Color.WHITE @@ -159,4 +175,3 @@ } } - Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicResults.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicResults.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicResults.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -24,10 +24,12 @@ import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; +import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.util.Log; @@ -63,15 +65,16 @@ super.onCreate(savedInstanceState); setContentView(R.layout.music_results); + mHandler.removeCallbacks(mUpdateTimeTask); + mHandler.postDelayed(mUpdateTimeTask, 100); + ListView l1 = (ListView) findViewById(R.id.list_result); - l1.setAdapter(new EfficientAdapter(musicResults.this)); ColorDrawable divcolor = new ColorDrawable(Color.DKGRAY); l1.setDivider(divcolor); l1.setDividerHeight(2); l1.setOnItemClickListener(new AdapterView.OnItemClickListener() { - // @override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { @@ -119,13 +122,12 @@ post.Post(xml); } - public void PostAddItem(ReceiveDbXmlHandler.DbItems Item) { PostWebserver post = new PostWebserver(Settings.Server, Settings.Port); String xml = ""; - + xml += "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; xml += "<message>"; xml += "<command>ADD_MUSIC</command>"; @@ -137,44 +139,54 @@ post.Post(xml); } - private void SavetoSDCard() { } - @Override - public void onStart() { - super.onStart(); - - mHandler.removeCallbacks(mUpdateTimeTask); - mHandler.postDelayed(mUpdateTimeTask, 100); - } - private Runnable mUpdateTimeTask = new Runnable() { public void run() { - update(); + new update().execute(); } }; - private void update() { + private class update extends AsyncTask<String, Void, Void> { + private final ProgressDialog dialog = new ProgressDialog(musicResults.this); - Log.d("update search", "do update"); + // can use UI thread here + protected void onPreExecute() { + this.dialog.setMessage("Loading..."); + this.dialog.show(); + } - ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); - if(Mode == SelectMode.Artist) - itemList = handler.GetSongsByArtist(Select); - if(Mode == SelectMode.Album) - itemList = handler.GetSongsByAlbum(Select); + // automatically done on worker thread (separate from UI thread) + protected Void doInBackground(final String... args) { + Log.d("update search", "do update"); - if (itemList.size() == 0) { - Toast.makeText(musicResults.this, "TIME OUT SERVER", - Toast.LENGTH_LONG).show(); + ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); + if(Mode == SelectMode.Artist) + itemList = handler.GetSongsByArtist(Select); + if(Mode == SelectMode.Album) + itemList = handler.GetSongsByAlbum(Select); + + return null; } - ListView l1 = (ListView) findViewById(R.id.list_result); - l1.invalidateViews(); + // can use UI thread here + protected void onPostExecute(final Void unused) { + if (this.dialog.isShowing()) { + this.dialog.dismiss(); + } + + if (itemList.size() == 0) { + Toast.makeText(musicResults.this, "TIME OUT SERVER", + Toast.LENGTH_SHORT).show(); + } else { + ListView listview = (ListView) findViewById(R.id.list_result); + listview.setAdapter(new EfficientAdapter(musicResults.this)); + } + } } - + private static class EfficientAdapter extends BaseAdapter { private LayoutInflater mInflater; Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicSong.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicSong.java 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/musicSong.java 2010-12-14 13:37:39 UTC (rev 4031) @@ -24,10 +24,12 @@ import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; +import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.util.Log; @@ -56,15 +58,12 @@ super.onCreate(savedInstanceState); setContentView(R.layout.music_song); + mHandler.removeCallbacks(mUpdateTimeTask); + mHandler.postDelayed(mUpdateTimeTask, 100); + ListView l1 = (ListView) findViewById(R.id.list_song); - l1.setAdapter(new EfficientAdapter(musicSong.this)); - ColorDrawable divcolor = new ColorDrawable(Color.DKGRAY); - l1.setDivider(divcolor); - l1.setDividerHeight(2); - l1.setOnItemClickListener(new AdapterView.OnItemClickListener() { - // @override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { @@ -97,36 +96,51 @@ alert.show(); } }); + + ColorDrawable divcolor = new ColorDrawable(Color.DKGRAY); + l1.setDivider(divcolor); + l1.setDividerHeight(2); } - @Override - public void onStart() { - super.onStart(); - - mHandler.removeCallbacks(mUpdateTimeTask); - mHandler.postDelayed(mUpdateTimeTask, 100); - } - private Runnable mUpdateTimeTask = new Runnable() { public void run() { - update(); + new update().execute(); } }; - private void update() { + private class update extends AsyncTask<String, Void, Void> { + private final ProgressDialog dialog = new ProgressDialog(musicSong.this); - Log.d("update song", "do update"); + // can use UI thread here + protected void onPreExecute() { + this.dialog.setMessage("Loading..."); + this.dialog.show(); + } - ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); - songList = handler.GetSongs(); + // automatically done on worker thread (separate from UI thread) + protected Void doInBackground(final String... args) { + Log.d("update song", "do update"); - if (songList.size() == 0) { - Toast.makeText(musicSong.this, "TIME OUT SERVER", Toast.LENGTH_LONG) - .show(); + ReceiveDbHandler handler = ReceiveDbHandler.getinstance(); + songList = handler.GetSongs(); + + return null; } - ListView l1 = (ListView) findViewById(R.id.list_song); - l1.invalidateViews(); + // can use UI thread here + protected void onPostExecute(final Void unused) { + if (this.dialog.isShowing()) { + this.dialog.dismiss(); + } + + if (songList.size() == 0) { + Toast.makeText(musicSong.this, "TIME OUT SERVER", + Toast.LENGTH_SHORT).show(); + } else { + ListView listview = (ListView) findViewById(R.id.list_song); + listview.setAdapter(new EfficientAdapter(musicSong.this)); + } + } } public void PostClear() { @@ -142,7 +156,6 @@ post.Post(xml); } - public void PostAddItem(ReceiveDbXmlHandler.DbItems Item) { PostWebserver post = new PostWebserver(Settings.Server, Settings.Port); @@ -160,7 +173,6 @@ post.Post(xml); } - private void SavetoSDCard() { } Modified: trunk/plugins/AndroidRemote/Release/AndroidRemote.mpe1 =================================================================== (Binary files differ) Modified: trunk/plugins/AndroidRemote/Release/AndroidRemote.xmp2 =================================================================== --- trunk/plugins/AndroidRemote/Release/AndroidRemote.xmp2 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Release/AndroidRemote.xmp2 2010-12-14 13:37:39 UTC (rev 4031) @@ -142,15 +142,16 @@ <Build>0</Build> <Revision>0</Revision> </Version> - <ExtensionDescription>Control your MediaPortal with yout Android. It can be used as a remote control or doing many other things like music, pictures and video control. -Gfx has been done by oddfella and some additional coding is from rolls1400. - + <ExtensionDescription>Control your MediaPortal with yout Android. It can be used as a remote control or doing many other things like music, pictures and video control. +Gfx has been done by oddfella and some additional coding is from rolls1400. + Have fun.</ExtensionDescription> <VersionDescription>initial release</VersionDescription> <DevelopmentStatus>Stable</DevelopmentStatus> <OnlineLocation /> <ReleaseDate>2010-12-09T16:17:18.1693243+01:00</ReleaseDate> <Tags>android,remote</Tags> + <Location>C:\AAA\AndroidRemote2\Release\AndroidRemote.mpe1</Location> <Params> <Items> <SectionParam Name="Icon"> Added: trunk/plugins/AndroidRemote/Release/remote3.jpg =================================================================== (Binary files differ) Property changes on: trunk/plugins/AndroidRemote/Release/remote3.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs =================================================================== --- trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs 2010-12-14 04:10:10 UTC (rev 4030) +++ trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs 2010-12-14 13:37:39 UTC (rev 4031) @@ -545,6 +545,8 @@ // parameter = filename,artist,title,duration PlayListPlayer playlistPlayer = PlayListPlayer.SingletonPlayer; + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC; + PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC); bool found = false; @@ -561,6 +563,8 @@ if (!found) { + AndroidServer.logDebug("add music : " + data["artist"] + " - " + data["title"]); + PlayListItem playlistItem = new PlayListItem(); playlistItem.Type = PlayListItem.PlayListItemType.Audio; playlistItem.FileName = fileName; @@ -597,10 +601,13 @@ #region clear playlist if (data["command"] == ("REMOVE_PLAYLIST")) { + AndroidServer.logDebug("remove from playlist : " + data["filename"]); // add music // parameter = filename PlayListPlayer playlistPlayer = PlayListPlayer.SingletonPlayer; + playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC; + PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC); string fileName = data["filename"]; // TODO need to be converted to local name @@ -609,6 +616,7 @@ if (data["command"] == ("CLEAR_PLAYLIST")) { + AndroidServer.logDebug("clear playlist"); // clear playlist // parameter = none Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote.suo =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |