From: <kro...@us...> - 2011-01-30 19:59:20
|
Revision: 4084 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4084&view=rev Author: kroko_koenig Date: 2011-01-30 19:59:10 +0000 (Sun, 30 Jan 2011) Log Message: ----------- some fixes and playlist (not 100%) Modified Paths: -------------- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/setup.xml trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/communication/HttpHandler.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/music/MusicDir.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/pictures/Pictures.java trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/ExecuteCommand.cs trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/MusicHandler.cs trunk/plugins/AndroidRemote/Server/AndroidRemote/Properties/AssemblyInfo.cs trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs trunk/plugins/AndroidRemote/Server/AndroidRemote.suo Added Paths: ----------- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/drawable/ic_skin1_file_playlist.png trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/skin.xml trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/SelectSkin.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup_ip.java trunk/plugins/AndroidRemote/Release/skins.jpg Removed Paths: ------------- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Setup_ip.java trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup.java Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/AndroidManifest.xml 2011-01-30 19:59:10 UTC (rev 4084) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="mediaportal.remote" android:versionName="1.1" android:versionCode="1"> + package="mediaportal.remote" android:versionCode="1" android:versionName="1.2"> <application android:icon="@drawable/ic_launcher_icon" android:theme="@android:style/Theme.NoTitleBar" @@ -15,13 +15,13 @@ </activity> <activity android:launchMode="singleInstance" android:name=".Splash"></activity> <activity android:launchMode="singleInstance" android:name=".control.Remote_01"></activity> - <activity android:launchMode="singleInstance" android:name=".control.Remote_02"></activity> + <activity android:launchMode="singleInstance" android:name=".control.Remote_03"></activity> <activity android:launchMode="singleInstance" android:name=".pictures.Pictures"></activity> <activity android:launchMode="singleInstance" android:name=".pictures.Picturesfullscreen"></activity> <activity android:launchMode="singleInstance" android:name=".music.MusicDir"></activity> - <activity android:launchMode="singleInstance" android:name="Setup"></activity> - <activity android:launchMode="singleInstance" android:name="Setup_ip"></activity> + <activity android:launchMode="singleInstance" android:name=".setup.Setup"></activity> + <activity android:launchMode="singleInstance" android:name=".setup.Setup_ip"></activity> <activity android:launchMode="singleInstance" android:name=".nowPlaying.NowPlaying"></activity> <activity android:launchMode="singleInstance" android:name=".nowPlaying.NowPlayingList"></activity> <activity android:launchMode="singleInstance" android:name=".music.MusicArtist"></activity> @@ -32,6 +32,7 @@ <activity android:launchMode="singleInstance" android:name=".multimedia.Webradio"></activity> <activity android:name=".MediaPlayerControl" android:launchMode="singleInstance"></activity> <activity android:name=".movies.Movies" android:launchMode="singleInstance"></activity> + <activity android:launchMode="singleInstance" android:name=".setup.SelectSkin"></activity> </application> <uses-sdk android:minSdkVersion="3" /> Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/gen/mediaportal/remote/R.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -60,19 +60,20 @@ public static final int ic_skin1_file_folderback=0x7f02002b; public static final int ic_skin1_file_movie=0x7f02002c; public static final int ic_skin1_file_picture=0x7f02002d; - public static final int ic_skin1_splash=0x7f02002e; - public static final int ic_tab_album=0x7f02002f; - public static final int ic_tab_album_off=0x7f020030; - public static final int ic_tab_album_on=0x7f020031; - public static final int ic_tab_artist=0x7f020032; - public static final int ic_tab_artist_off=0x7f020033; - public static final int ic_tab_artist_on=0x7f020034; - public static final int ic_tab_music=0x7f020035; - public static final int ic_tab_music_off=0x7f020036; - public static final int ic_tab_music_on=0x7f020037; - public static final int ic_tab_song=0x7f020038; - public static final int ic_tab_song_off=0x7f020039; - public static final int ic_tab_song_on=0x7f02003a; + public static final int ic_skin1_file_playlist=0x7f02002e; + public static final int ic_skin1_splash=0x7f02002f; + public static final int ic_tab_album=0x7f020030; + public static final int ic_tab_album_off=0x7f020031; + public static final int ic_tab_album_on=0x7f020032; + public static final int ic_tab_artist=0x7f020033; + public static final int ic_tab_artist_off=0x7f020034; + public static final int ic_tab_artist_on=0x7f020035; + public static final int ic_tab_music=0x7f020036; + public static final int ic_tab_music_off=0x7f020037; + public static final int ic_tab_music_on=0x7f020038; + public static final int ic_tab_song=0x7f020039; + public static final int ic_tab_song_off=0x7f02003a; + public static final int ic_tab_song_on=0x7f02003b; } public static final class id { public static final int GridView01=0x7f060014; @@ -84,7 +85,8 @@ public static final int LinearLayout04=0x7f060079; public static final int LinearLayout05=0x7f06007f; public static final int ListView01=0x7f06003c; - public static final int Spinner01=0x7f06008a; + public static final int RadioGroup01=0x7f060094; + public static final int Spinner01=0x7f06008b; public static final int SurfaceView01=0x7f06002d; public static final int TableLayout01=0x7f060006; public static final int TableLayout02=0x7f06004b; @@ -97,9 +99,10 @@ public static final int btnAlbumSelUp=0x7f060019; public static final int btnArtistSelDown=0x7f06001b; public static final int btnArtistSelUp=0x7f06001d; - public static final int btnIpSettings=0x7f06008c; + public static final int btnIpSettings=0x7f06008e; public static final int btnResultSelDown=0x7f06001f; public static final int btnResultSelUp=0x7f060021; + public static final int btnSelectSkin=0x7f06008d; public static final int btnSongSelDown=0x7f060023; public static final int btnSongSelUp=0x7f060025; public static final int btn_main_music=0x7f060009; @@ -203,26 +206,33 @@ public static final int now_progress=0x7f060032; public static final int now_stop=0x7f060038; public static final int now_title=0x7f060035; - public static final int radio01=0x7f060094; - public static final int radio02=0x7f060095; - public static final int radio03=0x7f060096; - public static final int radio04=0x7f060097; - public static final int radioStop=0x7f060098; - public static final int server_ip=0x7f06008f; - public static final int server_macid=0x7f060091; - public static final int server_name=0x7f06008e; - public static final int server_port=0x7f060090; - public static final int splash=0x7f060092; + public static final int radio01=0x7f06009d; + public static final int radio02=0x7f06009e; + public static final int radio03=0x7f06009f; + public static final int radio04=0x7f0600a0; + public static final int radioStop=0x7f0600a1; + public static final int selectSkin1=0x7f060095; + public static final int selectSkin2=0x7f060097; + public static final int selectSkin3=0x7f060099; + public static final int server_ip=0x7f060091; + public static final int server_macid=0x7f060093; + public static final int server_name=0x7f060090; + public static final int server_port=0x7f060092; + public static final int splash=0x7f06009b; public static final int text_kb_streamed=0x7f060028; - public static final int title=0x7f060093; + public static final int title=0x7f06009c; public static final int txtDbAlbum=0x7f060018; public static final int txtDbArtist=0x7f06001c; public static final int txtDbResult=0x7f060020; public static final int txtDbSong=0x7f060024; public static final int txtDirectory=0x7f060013; public static final int txtFile=0x7f060029; - public static final int txtIntanceName=0x7f06008d; - public static final int vibration=0x7f06008b; + public static final int txtIntanceName=0x7f06008f; + public static final int txtVersion=0x7f06008a; + public static final int vibration=0x7f06008c; + public static final int visitHome1=0x7f060096; + public static final int visitHome2=0x7f060098; + public static final int visitHome3=0x7f06009a; public static final int widget0=0x7f060012; public static final int widget00=0x7f06003d; public static final int widget01=0x7f060041; @@ -250,9 +260,10 @@ public static final int remote03b=0x7f030011; public static final int setup=0x7f030012; public static final int setup_ip=0x7f030013; - public static final int splash=0x7f030014; - public static final int title=0x7f030015; - public static final int webradio=0x7f030016; + public static final int skin=0x7f030014; + public static final int splash=0x7f030015; + public static final int title=0x7f030016; + public static final int webradio=0x7f030017; } public static final class string { public static final int app_name=0x7f040000; Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/drawable/ic_skin1_file_playlist.png =================================================================== (Binary files differ) Property changes on: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/drawable/ic_skin1_file_playlist.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/setup.xml =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/setup.xml 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/setup.xml 2011-01-30 19:59:10 UTC (rev 4084) @@ -6,13 +6,19 @@ <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="24dip" android:text="Global settings" android:paddingBottom="10dip" android:textColor="#FFFFFFFF"></TextView> - <TextView android:layout_width="fill_parent" - android:layout_height="wrap_content" android:textSize="18dip" android:text="Power Mode" android:textColor="#FFFFFFFF"></TextView> + <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFFFF" android:text="Version" android:id="@+id/txtVersion"></TextView><TextView android:layout_width="fill_parent" + android:layout_height="wrap_content" android:textSize="18dip" android:text="Power Mode" android:textColor="#FFFFFFFF" android:layout_marginTop="10dip"></TextView> <Spinner android:id="@+id/Spinner01" android:layout_width="fill_parent" android:layout_height="wrap_content"></Spinner> <CheckBox android:layout_width="wrap_content" - android:layout_height="wrap_content" android:textSize="18dip" android:id="@+id/vibration" android:text="use vibration feedback" android:textColor="#FFFFFFFF"></CheckBox><Button android:layout_height="wrap_content" android:id="@+id/btnIpSettings" android:text="IP settings" android:layout_width="fill_parent" android:layout_marginTop="20dip"></Button> + android:layout_height="wrap_content" android:textSize="18dip" android:id="@+id/vibration" android:text="use vibration feedback" android:textColor="#FFFFFFFF"></CheckBox> + <Button android:layout_height="wrap_content" android:id="@+id/btnSelectSkin" + android:text="Select skin" android:layout_width="fill_parent" + android:layout_marginTop="20dip" android:textSize="18dip"> + </Button> + + </LinearLayout> Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/skin.xml =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/skin.xml (rev 0) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/res/layout/skin.xml 2011-01-30 19:59:10 UTC (rev 4084) @@ -0,0 +1,30 @@ +<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"> +<TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Select skin" android:textColor="#FFFFFFFF" android:layout_marginTop="5dip" android:textSize="24dip"></TextView> + + <RadioGroup android:id="@+id/RadioGroup01" android:layout_height="wrap_content" android:layout_width="fill_parent"> + + <LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent"> + <RadioButton android:id="@+id/selectSkin1" + android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:layout_weight="1" android:checked="true" android:text="dark skin ( by inspirement )"> + </RadioButton> + <Button android:id="@+id/visitHome1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Homepage" android:layout_marginLeft="10dip" android:layout_gravity="right"></Button> + +</LinearLayout> + + <LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent"> + <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_gravity="left" android:layout_weight="1" android:id="@+id/selectSkin2" android:text="Skin2 ( by someone )"> + </RadioButton> + <Button android:id="@+id/visitHome2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Homepage" android:layout_marginLeft="10dip" android:layout_gravity="right"></Button> + </LinearLayout> + + <LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent"> + <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_gravity="left" android:layout_weight="1" android:id="@+id/selectSkin3" android:text="Skin3 ( by someone )"> + </RadioButton> + <Button android:id="@+id/visitHome3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Homepage" android:layout_marginLeft="10dip" android:layout_gravity="right"></Button> + </LinearLayout> + +</RadioGroup> + +</LinearLayout> Deleted: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Setup_ip.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Setup_ip.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/Setup_ip.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2005-2011 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 mediaportal.remote.R; -import mediaportal.remote.utils.AppSettings; -import android.app.Activity; -import android.os.Bundle; -import android.widget.EditText; -import android.widget.TextView; - -public class Setup_ip extends Activity { - - private TextView txtInstance; - private EditText txtName; - private EditText txtServer; - private EditText txtPort; - private EditText txtMac; - - /** Called when the activity is first created. */ - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - setContentView(R.layout.setup_ip); - - txtInstance = (TextView) findViewById(R.id.txtIntanceName); - txtName = (EditText) findViewById(R.id.server_name); - txtServer = (EditText) findViewById(R.id.server_ip); - txtPort = (EditText) findViewById(R.id.server_port); - txtMac = (EditText) findViewById(R.id.server_macid); - } - - @Override - public void onResume() { - super.onResume(); - - txtInstance.setText("Instance name (" + AppSettings.getInstance() + ")"); - txtName.setText(AppSettings.getName()); - txtServer.setText(AppSettings.getServer()); - txtPort.setText(AppSettings.getPort()); - txtMac.setText(AppSettings.getMacId()); - } - - @Override - public void onPause() { - super.onPause(); - - AppSettings.setName(txtName.getText().toString()); - AppSettings.setServer(txtServer.getText().toString()); - AppSettings.setPort(txtPort.getText().toString()); - AppSettings.setMacId(txtMac.getText().toString()); - } -} Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/communication/HttpHandler.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/communication/HttpHandler.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/communication/HttpHandler.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -27,10 +27,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.net.URLEncoder; import mediaportal.remote.utils.AppSettings; import android.graphics.Bitmap; @@ -80,13 +82,22 @@ public Bitmap DownloadImage(String urlStr) { - final String url = urlStr.replaceAll(" ","%20"); + try { + urlStr = URLEncoder.encode(urlStr, "UTF-8"); + } catch (UnsupportedEncodingException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + urlStr = urlStr.replaceAll("%2F", "/"); + urlStr = urlStr.replaceAll("%3A", ":"); + Bitmap bitmap = null; InputStream in = null; try { - in = openHttpConnection(url); + in = openHttpConnection(urlStr); bitmap = BitmapFactory.decodeStream(in); if (in != null) in.close(); @@ -147,6 +158,7 @@ .toString(); try { + InputStream in = openHttpConnection("http://" + AppSettings.getServer() + ":" + AppSettings.getPort() + "/music/" + Path + Filename.replaceAll(" ", "%20")); Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/main.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -35,6 +35,8 @@ import mediaportal.remote.nowPlaying.NowPlaying; import mediaportal.remote.nowPlaying.NowPlayingXmlHandler; import mediaportal.remote.pictures.Pictures; +import mediaportal.remote.setup.Setup; +import mediaportal.remote.setup.Setup_ip; import mediaportal.remote.utils.AppSettings; import mediaportal.remote.utils.KeyLock; import mediaportal.remote.utils.SAX_Parser; @@ -103,7 +105,7 @@ Intent myIntent = new Intent(this, Splash.class); startActivity(myIntent); } - + // create MP folder try { File fPath = new File(Environment.getExternalStorageDirectory(), @@ -220,7 +222,8 @@ switch (keyCode) { case KeyEvent.KEYCODE_MENU: { - final CharSequence[] items = { "Settings", "Switch HTPC", "Exit" }; + final CharSequence[] items = { "Global Settings", "IP Settings", + "Switch HTPC", "Exit" }; AlertDialog.Builder builder = new AlertDialog.Builder(Main.this); builder.setTitle("Select option"); @@ -228,11 +231,15 @@ builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { switch (item) { - case 0: // settings - Intent myIntent = new Intent(Main.this, Setup.class); - startActivityForResult(myIntent, 0); + case 0: // global settings + Intent myIntent1 = new Intent(Main.this, Setup.class); + startActivityForResult(myIntent1, 0); break; - case 1: // switch instance + case 1: // ip settings + Intent myIntent2 = new Intent(Main.this, Setup_ip.class); + startActivityForResult(myIntent2, 0); + break; + case 2: // switch instance final CharSequence[] items2 = AppSettings.getNames(); AlertDialog.Builder builder = new AlertDialog.Builder( @@ -255,7 +262,8 @@ break; } - txtInstance.setText(AppSettings.getName()); + txtInstance.setText(AppSettings + .getName()); Pictures.actualDir = ""; } @@ -264,7 +272,7 @@ AlertDialog alert = builder.create(); alert.show(); break; - case 2: // exit + case 3: // exit android.os.Process.killProcess(android.os.Process .myPid()); break; @@ -380,7 +388,7 @@ @Override public void onPause() { super.onPause(); - + doUpdate = false; mHandler.removeCallbacks(mUpdateTimeTask); } @@ -394,7 +402,7 @@ private class update extends AsyncTask<String, Void, Void> { // can use UI thread here protected void onPreExecute() { - + } // automatically done on worker thread (separate from UI thread) Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/music/MusicDir.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/music/MusicDir.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/music/MusicDir.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -70,8 +70,10 @@ final CharSequence[] items = { "Add to playlist", "Clear playlist", "Save to SD card", "Play locally" }; + final CharSequence[] itemsPlaylist = { "Add to playlist", "Clear playlist" }; - final CharSequence[] itemsLong = { "Add folder to playlist", "Clear playlist" }; + final CharSequence[] itemsLong = { "Add folder to playlist", + "Clear playlist" }; @Override public void onCreate(Bundle savedInstanceState) { @@ -79,7 +81,7 @@ setContentView(R.layout.music); myParent = this.getApplicationContext(); - + mHandler.removeCallbacks(mUpdateTimeTask); mHandler.postDelayed(mUpdateTimeTask, 100); @@ -100,15 +102,22 @@ AlertDialog.Builder builder = new AlertDialog.Builder( parent.getContext()); + CharSequence[] tmp = items; + if(!selectedItem.File.toLowerCase().contains(".mp3")) + { + tmp = itemsPlaylist; + } + builder.setTitle(selectedItem.File); - builder.setItems(items, + builder.setItems(tmp, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { switch (item) { case 0: SendCommand.PostAddFile(actualDir - + selectedItem.File.replaceAll(" ", "%20")); + + selectedItem.File.replaceAll( + " ", "%20")); Toast.makeText( MusicDir.this, selectedItem.File @@ -125,22 +134,28 @@ SavetoSDCard(selectedItem.File); break; case 3: - - String link = "http://" + AppSettings.getServer() - + ":" + AppSettings.getPort() + "/music/"; - - String file = actualDir + selectedItem.File; + + String link = "http://" + + AppSettings.getServer() + ":" + + AppSettings.getPort() + + "/music/"; + + String file = actualDir + + selectedItem.File; try { - file = URLEncoder.encode(file, "UTF-8"); + file = URLEncoder.encode(file, + "UTF-8"); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } link = link + file; - - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setDataAndType(Uri.parse(link), "audio/mpeg"); - + + Intent intent = new Intent( + Intent.ACTION_VIEW); + intent.setDataAndType(Uri.parse(link), + "audio/mpeg"); + startActivity(intent); break; } @@ -185,7 +200,7 @@ Vibration.vibrateShort(); selectedItem = musicList.get(position - 1); - + AlertDialog.Builder builder = new AlertDialog.Builder( parent.getContext()); @@ -197,7 +212,9 @@ switch (item) { case 0: // add folder - SendCommand.PostAddFolder(actualDir + selectedItem.File.replaceAll(" ", "%20")); + SendCommand.PostAddFolder(actualDir + + selectedItem.File.replaceAll( + " ", "%20")); break; case 1: SendCommand.PostClearPlaylist(); @@ -216,7 +233,7 @@ }); } - + @Override public void onResume() { super.onResume(); @@ -368,7 +385,15 @@ item.typ = "folder"; iv.setTag(item); } else { + + if(txtName.toLowerCase().contains(".mp3")) + { iv.setImageResource(R.drawable.ic_skin1_file_audio); + } + else + { + iv.setImageResource(R.drawable.ic_skin1_file_playlist); + } musicItem item = new musicItem(); item.title = txtName; item.typ = "item"; Modified: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/pictures/Pictures.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/pictures/Pictures.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/pictures/Pictures.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -208,8 +208,7 @@ DirItems item = pictureList.get(picNo); if (!item.isFolder) { if (item.Picture == null) { - String file = server + actualDir.replaceAll(" ", "%20") - + item.File + ".thb"; + String file = server + actualDir + item.File + ".thb"; item.Picture = http.DownloadImage(file); if (picNo < pictureList.size()) // very strange exeption happens here 10/10 pictureList.set(picNo, item); Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/SelectSkin.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/SelectSkin.java (rev 0) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/SelectSkin.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2005-2011 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.setup; + +import mediaportal.remote.R; +import mediaportal.remote.utils.Vibration; +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.RadioButton; + +public class SelectSkin extends Activity { + + private RadioButton radio1; + private RadioButton radio2; + private RadioButton radio3; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.skin); + + radio1 = (RadioButton) findViewById(R.id.selectSkin1); + radio2 = (RadioButton) findViewById(R.id.selectSkin2); + radio3 = (RadioButton) findViewById(R.id.selectSkin3); + + radio1.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + Vibration.vibrateShort(); + if (isChecked) { + radio2.setChecked(false); + radio3.setChecked(false); + } + } + }); + radio2.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + Vibration.vibrateShort(); + if (isChecked) { + radio1.setChecked(false); + radio3.setChecked(false); + } + } + }); + radio3.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + Vibration.vibrateShort(); + if (isChecked) { + radio1.setChecked(false); + radio2.setChecked(false); + } + } + }); + + + Button btnVisitHome1 = (Button) findViewById(R.id.visitHome1); + btnVisitHome1.setOnClickListener(new View.OnClickListener() { + public void onClick(View view) { + Vibration.vibrateShort(); + OpenURL("http://www.kleiner-schelm.de"); + } + }); + Button btnVisitHome2 = (Button) findViewById(R.id.visitHome2); + btnVisitHome2.setOnClickListener(new View.OnClickListener() { + public void onClick(View view) { + Vibration.vibrateShort(); + OpenURL("http://www.kleiner-schelm.de"); + } + }); + Button btnVisitHome3 = (Button) findViewById(R.id.visitHome3); + btnVisitHome3.setOnClickListener(new View.OnClickListener() { + public void onClick(View view) { + Vibration.vibrateShort(); + OpenURL("http://www.kleiner-schelm.de"); + } + }); + + } + + private void OpenURL(String Url) { + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(Url)); + startActivity(i); + } + +} \ No newline at end of file Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup.java (rev 0) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2005-2011 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.setup; + +import mediaportal.remote.R; +import mediaportal.remote.utils.AppSettings; +import mediaportal.remote.utils.Vibration; +import android.app.Activity; +import android.content.Intent; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.Spinner; +import android.widget.TextView; + +public class Setup extends Activity { + + private Spinner powerMode; + private CheckBox vibrate; + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + setContentView(R.layout.setup); + + TextView version = (TextView)findViewById(R.id.txtVersion); + version.setText("Version : " + getSoftwareVersion()); + + vibrate = (CheckBox) findViewById(R.id.vibration); + vibrate.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, + boolean isChecked) { + if (isChecked) { + Vibration.vibrateShort(); + } + } + }); + + powerMode = (Spinner) findViewById(R.id.Spinner01); + ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( + this, R.array.shutdown, + android.R.layout.simple_spinner_item); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + powerMode.setAdapter(adapter); + + Button selectSkin = (Button) findViewById(R.id.btnSelectSkin); + selectSkin.setOnClickListener(new View.OnClickListener() { + public void onClick(View view) { + Vibration.vibrateShort(); + + Intent myIntent = new Intent(view.getContext(), + SelectSkin.class); + startActivity(myIntent); + } + }); + + } + + @Override + public void onResume() { + super.onResume(); + + vibrate.setChecked(AppSettings.getVibrate()); + powerMode.setSelection(AppSettings.getPowerMode()); + } + + @Override + public void onPause() { + super.onPause(); + + AppSettings.setVibrate(vibrate.isChecked()); + AppSettings.setPowerMode(powerMode.getSelectedItemPosition()); + } + + private String getSoftwareVersion() { + try { + PackageInfo packageInfo = getPackageManager().getPackageInfo( + getPackageName(), 0); + return packageInfo.versionName; + } catch (PackageManager.NameNotFoundException e) { + Log.e("MediaPortal", "Package name not found", e); + } + return "not found"; + } +} Added: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup_ip.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup_ip.java (rev 0) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup/Setup_ip.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2005-2011 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.setup; + +import mediaportal.remote.R; +import mediaportal.remote.utils.AppSettings; +import android.app.Activity; +import android.os.Bundle; +import android.widget.EditText; +import android.widget.TextView; + +public class Setup_ip extends Activity { + + private TextView txtInstance; + private EditText txtName; + private EditText txtServer; + private EditText txtPort; + private EditText txtMac; + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + setContentView(R.layout.setup_ip); + + txtInstance = (TextView) findViewById(R.id.txtIntanceName); + txtName = (EditText) findViewById(R.id.server_name); + txtServer = (EditText) findViewById(R.id.server_ip); + txtPort = (EditText) findViewById(R.id.server_port); + txtMac = (EditText) findViewById(R.id.server_macid); + } + + @Override + public void onResume() { + super.onResume(); + + txtInstance.setText("Instance name (" + AppSettings.getInstance() + ")"); + txtName.setText(AppSettings.getName()); + txtServer.setText(AppSettings.getServer()); + txtPort.setText(AppSettings.getPort()); + txtMac.setText(AppSettings.getMacId()); + } + + @Override + public void onPause() { + super.onPause(); + + AppSettings.setName(txtName.getText().toString()); + AppSettings.setServer(txtServer.getText().toString()); + AppSettings.setPort(txtPort.getText().toString()); + AppSettings.setMacId(txtMac.getText().toString()); + } +} Deleted: trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup.java =================================================================== --- trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup.java 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Android/MediaPortalRemote/src/mediaportal/remote/setup.java 2011-01-30 19:59:10 UTC (rev 4084) @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2005-2011 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 mediaportal.remote.R; -import mediaportal.remote.utils.AppSettings; -import mediaportal.remote.utils.Vibration; -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.Button; -import android.widget.CheckBox; -import android.widget.CompoundButton; -import android.widget.Spinner; - -public class Setup extends Activity { - - private Spinner powerMode; - private CheckBox vibrate; - - /** Called when the activity is first created. */ - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - setContentView(R.layout.setup); - - vibrate = (CheckBox) findViewById(R.id.vibration); - vibrate.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - public void onCheckedChanged(CompoundButton buttonView, - boolean isChecked) { - if (isChecked) { - Vibration.vibrateShort(); - } - } - }); - - powerMode = (Spinner) findViewById(R.id.Spinner01); - ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( - this, R.array.shutdown, - android.R.layout.simple_spinner_item); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - powerMode.setAdapter(adapter); - - Button settings = (Button) findViewById(R.id.btnIpSettings); - settings.setOnClickListener(new View.OnClickListener() { - public void onClick(View view) { - Vibration.vibrateShort(); - - Intent myIntent = new Intent(view.getContext(), - Setup_ip.class); - startActivity(myIntent); - } - }); - - } - - @Override - public void onResume() { - super.onResume(); - - vibrate.setChecked(AppSettings.getVibrate()); - powerMode.setSelection(AppSettings.getPowerMode()); - } - - @Override - public void onPause() { - super.onPause(); - - AppSettings.setVibrate(vibrate.isChecked()); - AppSettings.setPowerMode(powerMode.getSelectedItemPosition()); - } -} Added: trunk/plugins/AndroidRemote/Release/skins.jpg =================================================================== (Binary files differ) Property changes on: trunk/plugins/AndroidRemote/Release/skins.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/ExecuteCommand.cs =================================================================== --- trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/ExecuteCommand.cs 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/ExecuteCommand.cs 2011-01-30 19:59:10 UTC (rev 4084) @@ -368,47 +368,72 @@ PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC); - bool found = false; - string fileName = data["filename"]; - fileName = fileName.Replace("%20", " "); - fileName = fileName.Replace("/", "\\"); - string artist = data["artist"].Replace("%20", " "); - string title = data["title"].Replace("%20", " "); + if (fileName.ToLower().Contains(".mp3")) + { + bool found = false; - directoryList = GetMpShare("music"); - string local = GetLocalDir(fileName, directoryList); + fileName = fileName.Replace("%20", " "); + fileName = fileName.Replace("/", "\\"); - foreach (PlayListItem item in playList) - { - if (item.FileName == local) + string artist = data["artist"].Replace("%20", " "); + string title = data["title"].Replace("%20", " "); + + directoryList = GetMpShare("music"); + string local = GetLocalDir(fileName, directoryList); + + foreach (PlayListItem item in playList) { - found = true; - break; + if (item.FileName == local) + { + found = true; + break; + } } + + if (!found) + { + AndroidServer.logDebug("add music : " + artist + " - " + title); + + PlayListItem playlistItem = new PlayListItem(); + playlistItem.Type = PlayListItem.PlayListItemType.Audio; + playlistItem.FileName = local; + playlistItem.Description = artist + " - " + title; + playlistItem.Duration = 0; + + MusicTag readTag = TagReader.ReadTag(local); + playlistItem.MusicTag = readTag; + + playList.Add(playlistItem); + + if (!g_Player.Playing) + { + StartPlaylistPlayer del = new StartPlaylistPlayer(StartPlayerLast); + GUIGraphicsContext.form.Invoke(del, new object[] { }); + } + } } - - if (!found) + else { - AndroidServer.logDebug("add music : " + artist + " - " + title); + playList.Clear(); + fileName = fileName.Replace("%20", " "); + fileName = fileName.Replace("/", "\\"); + directoryList = GetMpShare("music"); + string local = GetLocalDir(fileName, directoryList); + PlayListItem playlistItem = new PlayListItem(); - playlistItem.Type = PlayListItem.PlayListItemType.Audio; + playlistItem.Type = PlayListItem.PlayListItemType.Unknown; playlistItem.FileName = local; - playlistItem.Description = artist + " - " + title; + playlistItem.Description = Path.GetFileNameWithoutExtension(local); playlistItem.Duration = 0; - MusicTag readTag = TagReader.ReadTag(local); - playlistItem.MusicTag = readTag; - playList.Add(playlistItem); - if (!g_Player.Playing) - { - StartPlaylistPlayer del = new StartPlaylistPlayer(StartPlayerLast); - GUIGraphicsContext.form.Invoke(del, new object[] { }); - } + StartPlaylistPlayer del = new StartPlaylistPlayer(StartPlayer); + GUIGraphicsContext.form.Invoke(del, new object[] { }); + } } #endregion Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/MusicHandler.cs =================================================================== --- trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/MusicHandler.cs 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Server/AndroidRemote/Content/MusicHandler.cs 2011-01-30 19:59:10 UTC (rev 4084) @@ -259,13 +259,16 @@ msg += "<Folder>" + SomeUtils.EncodeString(Path.GetFileName(f)) + "</Folder>\r\n"; } - //files - string[] files = Directory.GetFiles(dir, "*.mp3", SearchOption.TopDirectoryOnly); - foreach (string f in files) + ArrayList fileList = getAllpattern(dir); + fileList.Sort(); + + for (int i = 0; i < fileList.Count; i++) { - string fName = Path.GetFileName(f); + string file = (string)fileList[i]; + string fName = Path.GetFileName(file); msg += "<File>" + SomeUtils.EncodeString(fName) + "</File>\r\n"; } + msg += "</Directory>\r\n"; // send @@ -687,5 +690,18 @@ } return string.Empty; } + + private static ArrayList getAllpattern(string Dir) + { + string[] filters = { ".mp3", ".m3u", ".pls", ".wpl" }; + + ArrayList files = new ArrayList(); + foreach (string filter in filters) + { + files.AddRange(Directory.GetFiles(Dir, "*" + filter)); + } + + return files; + } } } Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/AndroidRemote/Server/AndroidRemote/Properties/AssemblyInfo.cs 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Server/AndroidRemote/Properties/AssemblyInfo.cs 2011-01-30 19:59:10 UTC (rev 4084) @@ -32,5 +32,5 @@ // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.2.0.0")] -[assembly: AssemblyFileVersion("0.2.0.0")] +[assembly: AssemblyVersion("0.2.1.0")] +[assembly: AssemblyFileVersion("0.2.1.0")] Modified: trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs =================================================================== --- trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs 2011-01-28 09:25:28 UTC (rev 4083) +++ trunk/plugins/AndroidRemote/Server/AndroidRemote/Request.cs 2011-01-30 19:59:10 UTC (rev 4084) @@ -314,6 +314,34 @@ { PictureHandler.ReplyRandomPicture(socket); } + + #region some test how to accces the gui + else if (req.StartsWith("/onlinevideos")) + { + GUIWindowManager.ActivateWindow(4755); + } + else if (req.StartsWith("/items")) + { + GUIWindow window = GUIWindowManager.GetWindow(4755); + GUIFacadeControl cont = (GUIFacadeControl) window.GetControl(50); + + cont.SelectedListItemIndex = 2; + GUIListItem i = cont.SelectedListItem; + + // header + string msg = "HTTP/1.0 200 Ok\r\n"; + msg += "Content-Type: application/xml; charset=utf-8; filename=info.xml" + "\r\n"; + msg += "Proxy-Connection: close" + "\r\n"; + msg += "\r\n"; + // content + msg += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"; + msg += "<OnlineVideos>\r\n"; + + + msg += "<OnlineVideos>\r\n"; + } + #endregion + else { handler.SendErrorURL(socket, req); 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. |