From 559305e42e1ea09b8d26085e8f8355bdb6ba0352 Mon Sep 17 00:00:00 2001
From: Joe Robinson <joe@sol.(none)>
Date: Sat, 22 Oct 2011 00:13:24 +0100
Subject: Updating with code from months ago that wasn't commited (This might
 break everything)

---
 AndroidManifest.xml                                | 119 +++---
 README                                             |  10 +-
 bin/com/lc8n/blauploader/FileBrowser.class         | Bin 5630 -> 5635 bytes
 bin/com/lc8n/blauploader/FileShare$1.class         | Bin 0 -> 991 bytes
 bin/com/lc8n/blauploader/FileShare$2.class         | Bin 0 -> 1126 bytes
 bin/com/lc8n/blauploader/FileShare$3.class         | Bin 0 -> 1131 bytes
 bin/com/lc8n/blauploader/FileShare$4.class         | Bin 0 -> 3711 bytes
 bin/com/lc8n/blauploader/FileShare$5.class         | Bin 0 -> 2851 bytes
 bin/com/lc8n/blauploader/FileShare.class           | Bin 0 -> 6734 bytes
 bin/com/lc8n/blauploader/FileUpload.class          | Bin 2063 -> 3670 bytes
 bin/com/lc8n/blauploader/HomeScreen$1.class        | Bin 1089 -> 1089 bytes
 bin/com/lc8n/blauploader/HomeScreen$2.class        | Bin 1091 -> 1091 bytes
 bin/com/lc8n/blauploader/HomeScreen$3.class        | Bin 1092 -> 1092 bytes
 bin/com/lc8n/blauploader/HomeScreen.class          | Bin 1164 -> 1332 bytes
 bin/com/lc8n/blauploader/R$drawable.class          | Bin 406 -> 438 bytes
 bin/com/lc8n/blauploader/R$id.class                | Bin 783 -> 849 bytes
 bin/com/lc8n/blauploader/R$layout.class            | Bin 536 -> 565 bytes
 bin/com/lc8n/blauploader/R$menu.class              | Bin 387 -> 387 bytes
 bin/com/lc8n/blauploader/R$string.class            | Bin 433 -> 463 bytes
 bin/com/lc8n/blauploader/SoundRecorder.class       | Bin 5107 -> 5110 bytes
 bin/com/lc8n/blauploader/UploadLocation$1.class    | Bin 1988 -> 1948 bytes
 bin/com/lc8n/blauploader/UploadLocation$2.class    | Bin 1954 -> 1941 bytes
 .../UploadLocation$MyLocationListener.class        | Bin 2113 -> 2113 bytes
 bin/com/lc8n/blauploader/UploadLocation.class      | Bin 3617 -> 3617 bytes
 .../parser/DefaultFTPFileEntryParserFactory.class  | Bin 4791 -> 4783 bytes
 default.properties                                 |   2 +-
 gen/com/lc8n/blauploader/R.java                    |  31 +-
 res/drawable-hdpi/icon.png                         | Bin 4147 -> 8230 bytes
 res/drawable-hdpi/marcus72.png                     | Bin 0 -> 8230 bytes
 res/drawable-ldpi/icon.png                         | Bin 1723 -> 2635 bytes
 res/drawable-mdpi/icon.png                         | Bin 2574 -> 4195 bytes
 res/layout/filerow.xml                             |  14 +-
 res/layout/home.xml                                |  58 +--
 res/layout/share.xml                               |  30 ++
 res/layout/soundrecorder.xml                       |  36 +-
 res/layout/upload.xml                              |  38 +-
 res/layout/uploadlocation.xml                      |  72 ++--
 res/menu/menu.xml                                  |  32 +-
 res/values/strings.xml                             |  11 +-
 src/com/lc8n/blauploader/FileBrowser.java          | 476 ++++++++++-----------
 src/com/lc8n/blauploader/FileShare.java            | 298 +++++++++++++
 src/com/lc8n/blauploader/FileUpload.java           | 259 +++++++----
 src/com/lc8n/blauploader/HomeScreen.java           | 106 ++---
 src/com/lc8n/blauploader/ProgressInputStream.java  | 192 ++++-----
 src/com/lc8n/blauploader/SoundRecorder.java        | 326 +++++++-------
 src/com/lc8n/blauploader/UploadLocation.java       | 259 ++++++-----
 46 files changed, 1413 insertions(+), 956 deletions(-)
 create mode 100644 bin/com/lc8n/blauploader/FileShare$1.class
 create mode 100644 bin/com/lc8n/blauploader/FileShare$2.class
 create mode 100644 bin/com/lc8n/blauploader/FileShare$3.class
 create mode 100644 bin/com/lc8n/blauploader/FileShare$4.class
 create mode 100644 bin/com/lc8n/blauploader/FileShare$5.class
 create mode 100644 bin/com/lc8n/blauploader/FileShare.class
 create mode 100644 res/drawable-hdpi/marcus72.png
 create mode 100644 res/layout/share.xml
 create mode 100644 src/com/lc8n/blauploader/FileShare.java

diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 58d6c60..ea526c3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,56 +1,65 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.lc8n.blauploader"
-      android:versionCode="1"
-      android:versionName="1.0">
-    <application android:icon="@drawable/icon" android:label="@string/app_name">
-        
-              <activity android:name=".HomeScreen"
-                  android:label="@string/app_name">
-                  <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter></activity>
-        
-        <activity android:name=".FileBrowser"
-                  android:label="@string/app_name">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-            <intent-filter>
-                <action android:name="android.intent.action.SEND" />
-                <category android:name="android.intent.category.DEFAULT" />
-                <data android:mimeType="text/plain" />
-            </intent-filter>
-            
-        </activity>
-        
-        
-        
-                <activity android:name=".SoundRecorder"
-                  android:label="@string/app_name">
-                  <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter></activity>
-            
-                        
-                <activity android:name=".UploadLocation"
-                  android:label="@string/app_name">
-                  <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter></activity>
-
-    </application>
-    <uses-sdk android:minSdkVersion="7" />
-    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
-	<uses-permission android:name="android.permission.RECORD_AUDIO" />
-	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
-	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-	<uses-permission android:name="android.permission.SEND_SMS" />
-
-    
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="com.lc8n.blauploader"
+      android:versionCode="1"
+      android:versionName="1.0">
+    <application android:icon="@drawable/icon" android:label="@string/app_name">
+        
+              <activity android:name=".HomeScreen"
+                  android:label="@string/app_name">
+                  <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter></activity>
+        
+        <activity android:name=".FileBrowser"
+                  android:label="@string/app_name">
+            <!--<intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>-->
+            
+        </activity>
+        
+            <activity android:name=".FileShare"
+                  android:label="Blaupload File">
+            <intent-filter>
+                <action android:name="android.intent.action.SEND" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:mimeType="image/*" />
+            </intent-filter>
+            
+        </activity>
+        
+        
+        
+                <activity android:name=".SoundRecorder"
+                  android:label="@string/app_name">
+                  <!--  intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter> -->
+            </activity>
+            
+                        
+                <activity android:name=".UploadLocation"
+                  android:label="@string/app_name">
+                  <!-- <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter> -->
+            </activity>
+
+    </application>
+    <uses-sdk android:minSdkVersion="7" />
+    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
+	<uses-permission android:name="android.permission.RECORD_AUDIO" />
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+	<uses-permission android:name="android.permission.SEND_SMS" />
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+	
+
+    
 </manifest> 
\ No newline at end of file
diff --git a/README b/README
index 6b4a12b..5e6c70b 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
-One day, this might be a readme file.
-
-Right now, it's not a readme file.
-
-Sorry.
+One day, this might be a readme file.
+
+Right now, it's not a readme file.
+
+Sorry.
diff --git a/bin/com/lc8n/blauploader/FileBrowser.class b/bin/com/lc8n/blauploader/FileBrowser.class
index e4ba7f8..db356c6 100644
Binary files a/bin/com/lc8n/blauploader/FileBrowser.class and b/bin/com/lc8n/blauploader/FileBrowser.class differ
diff --git a/bin/com/lc8n/blauploader/FileShare$1.class b/bin/com/lc8n/blauploader/FileShare$1.class
new file mode 100644
index 0000000..b03e124
Binary files /dev/null and b/bin/com/lc8n/blauploader/FileShare$1.class differ
diff --git a/bin/com/lc8n/blauploader/FileShare$2.class b/bin/com/lc8n/blauploader/FileShare$2.class
new file mode 100644
index 0000000..91d4a68
Binary files /dev/null and b/bin/com/lc8n/blauploader/FileShare$2.class differ
diff --git a/bin/com/lc8n/blauploader/FileShare$3.class b/bin/com/lc8n/blauploader/FileShare$3.class
new file mode 100644
index 0000000..a3d2d3c
Binary files /dev/null and b/bin/com/lc8n/blauploader/FileShare$3.class differ
diff --git a/bin/com/lc8n/blauploader/FileShare$4.class b/bin/com/lc8n/blauploader/FileShare$4.class
new file mode 100644
index 0000000..3e774df
Binary files /dev/null and b/bin/com/lc8n/blauploader/FileShare$4.class differ
diff --git a/bin/com/lc8n/blauploader/FileShare$5.class b/bin/com/lc8n/blauploader/FileShare$5.class
new file mode 100644
index 0000000..90755fc
Binary files /dev/null and b/bin/com/lc8n/blauploader/FileShare$5.class differ
diff --git a/bin/com/lc8n/blauploader/FileShare.class b/bin/com/lc8n/blauploader/FileShare.class
new file mode 100644
index 0000000..2370629
Binary files /dev/null and b/bin/com/lc8n/blauploader/FileShare.class differ
diff --git a/bin/com/lc8n/blauploader/FileUpload.class b/bin/com/lc8n/blauploader/FileUpload.class
index fa10fff..2854498 100644
Binary files a/bin/com/lc8n/blauploader/FileUpload.class and b/bin/com/lc8n/blauploader/FileUpload.class differ
diff --git a/bin/com/lc8n/blauploader/HomeScreen$1.class b/bin/com/lc8n/blauploader/HomeScreen$1.class
index 3d386ac..274682b 100644
Binary files a/bin/com/lc8n/blauploader/HomeScreen$1.class and b/bin/com/lc8n/blauploader/HomeScreen$1.class differ
diff --git a/bin/com/lc8n/blauploader/HomeScreen$2.class b/bin/com/lc8n/blauploader/HomeScreen$2.class
index d7fa6f9..bfbc125 100644
Binary files a/bin/com/lc8n/blauploader/HomeScreen$2.class and b/bin/com/lc8n/blauploader/HomeScreen$2.class differ
diff --git a/bin/com/lc8n/blauploader/HomeScreen$3.class b/bin/com/lc8n/blauploader/HomeScreen$3.class
index 2118eae..47719f9 100644
Binary files a/bin/com/lc8n/blauploader/HomeScreen$3.class and b/bin/com/lc8n/blauploader/HomeScreen$3.class differ
diff --git a/bin/com/lc8n/blauploader/HomeScreen.class b/bin/com/lc8n/blauploader/HomeScreen.class
index 3c29b11..1899b6d 100644
Binary files a/bin/com/lc8n/blauploader/HomeScreen.class and b/bin/com/lc8n/blauploader/HomeScreen.class differ
diff --git a/bin/com/lc8n/blauploader/R$drawable.class b/bin/com/lc8n/blauploader/R$drawable.class
index a29ff28..0dea56c 100644
Binary files a/bin/com/lc8n/blauploader/R$drawable.class and b/bin/com/lc8n/blauploader/R$drawable.class differ
diff --git a/bin/com/lc8n/blauploader/R$id.class b/bin/com/lc8n/blauploader/R$id.class
index be7fa1b..84999bb 100644
Binary files a/bin/com/lc8n/blauploader/R$id.class and b/bin/com/lc8n/blauploader/R$id.class differ
diff --git a/bin/com/lc8n/blauploader/R$layout.class b/bin/com/lc8n/blauploader/R$layout.class
index 696fcb7..ae76dce 100644
Binary files a/bin/com/lc8n/blauploader/R$layout.class and b/bin/com/lc8n/blauploader/R$layout.class differ
diff --git a/bin/com/lc8n/blauploader/R$menu.class b/bin/com/lc8n/blauploader/R$menu.class
index 56e1859..12ba949 100644
Binary files a/bin/com/lc8n/blauploader/R$menu.class and b/bin/com/lc8n/blauploader/R$menu.class differ
diff --git a/bin/com/lc8n/blauploader/R$string.class b/bin/com/lc8n/blauploader/R$string.class
index 527b01a..2e6d248 100644
Binary files a/bin/com/lc8n/blauploader/R$string.class and b/bin/com/lc8n/blauploader/R$string.class differ
diff --git a/bin/com/lc8n/blauploader/SoundRecorder.class b/bin/com/lc8n/blauploader/SoundRecorder.class
index 74aaca6..41f0b58 100644
Binary files a/bin/com/lc8n/blauploader/SoundRecorder.class and b/bin/com/lc8n/blauploader/SoundRecorder.class differ
diff --git a/bin/com/lc8n/blauploader/UploadLocation$1.class b/bin/com/lc8n/blauploader/UploadLocation$1.class
index 7885eb5..e5e5dc3 100644
Binary files a/bin/com/lc8n/blauploader/UploadLocation$1.class and b/bin/com/lc8n/blauploader/UploadLocation$1.class differ
diff --git a/bin/com/lc8n/blauploader/UploadLocation$2.class b/bin/com/lc8n/blauploader/UploadLocation$2.class
index 13f8942..62ea06c 100644
Binary files a/bin/com/lc8n/blauploader/UploadLocation$2.class and b/bin/com/lc8n/blauploader/UploadLocation$2.class differ
diff --git a/bin/com/lc8n/blauploader/UploadLocation$MyLocationListener.class b/bin/com/lc8n/blauploader/UploadLocation$MyLocationListener.class
index e7b2a3c..997a177 100644
Binary files a/bin/com/lc8n/blauploader/UploadLocation$MyLocationListener.class and b/bin/com/lc8n/blauploader/UploadLocation$MyLocationListener.class differ
diff --git a/bin/com/lc8n/blauploader/UploadLocation.class b/bin/com/lc8n/blauploader/UploadLocation.class
index 04af09b..aaa8c0e 100644
Binary files a/bin/com/lc8n/blauploader/UploadLocation.class and b/bin/com/lc8n/blauploader/UploadLocation.class differ
diff --git a/bin/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.class b/bin/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.class
index 6449876..d755cd7 100644
Binary files a/bin/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.class and b/bin/org/apache/commons/net/ftp/parser/DefaultFTPFileEntryParserFactory.class differ
diff --git a/default.properties b/default.properties
index 9d135cb..0b9250e 100644
--- a/default.properties
+++ b/default.properties
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-7
+target=android-8
diff --git a/gen/com/lc8n/blauploader/R.java b/gen/com/lc8n/blauploader/R.java
index ea04b00..64da886 100644
--- a/gen/com/lc8n/blauploader/R.java
+++ b/gen/com/lc8n/blauploader/R.java
@@ -12,34 +12,39 @@ public final class R {
     }
     public static final class drawable {
         public static final int icon=0x7f020000;
+        public static final int marcus72=0x7f020001;
     }
     public static final class id {
-        public static final int ProgressBar01=0x7f060005;
-        public static final int Record=0x7f060003;
-        public static final int Stop=0x7f060004;
+        public static final int ProgressBar01=0x7f060007;
+        public static final int Record=0x7f060005;
+        public static final int Stop=0x7f060006;
         public static final int audio=0x7f060001;
         public static final int browse=0x7f060000;
-        public static final int getlocation=0x7f060007;
+        public static final int filename=0x7f060003;
+        public static final int getlocation=0x7f060009;
         public static final int locate=0x7f060002;
-        public static final int location=0x7f060006;
-        public static final int menuBrowse=0x7f060009;
-        public static final int menuExit=0x7f06000c;
-        public static final int menuLocate=0x7f06000b;
-        public static final int menuRecord=0x7f06000a;
-        public static final int uploadlocation=0x7f060008;
+        public static final int location=0x7f060008;
+        public static final int menuBrowse=0x7f06000b;
+        public static final int menuExit=0x7f06000e;
+        public static final int menuLocate=0x7f06000d;
+        public static final int menuRecord=0x7f06000c;
+        public static final int uploadfile=0x7f060004;
+        public static final int uploadlocation=0x7f06000a;
     }
     public static final class layout {
         public static final int filerow=0x7f030000;
         public static final int home=0x7f030001;
-        public static final int soundrecorder=0x7f030002;
-        public static final int upload=0x7f030003;
-        public static final int uploadlocation=0x7f030004;
+        public static final int share=0x7f030002;
+        public static final int soundrecorder=0x7f030003;
+        public static final int upload=0x7f030004;
+        public static final int uploadlocation=0x7f030005;
     }
     public static final class menu {
         public static final int menu=0x7f050000;
     }
     public static final class string {
         public static final int app_name=0x7f040001;
+        public static final int cancel=0x7f040002;
         public static final int hello=0x7f040000;
     }
 }
diff --git a/res/drawable-hdpi/icon.png b/res/drawable-hdpi/icon.png
index 8074c4c..adaeefb 100644
Binary files a/res/drawable-hdpi/icon.png and b/res/drawable-hdpi/icon.png differ
diff --git a/res/drawable-hdpi/marcus72.png b/res/drawable-hdpi/marcus72.png
new file mode 100644
index 0000000..b93712d
Binary files /dev/null and b/res/drawable-hdpi/marcus72.png differ
diff --git a/res/drawable-ldpi/icon.png b/res/drawable-ldpi/icon.png
index 1095584..4744bb9 100644
Binary files a/res/drawable-ldpi/icon.png and b/res/drawable-ldpi/icon.png differ
diff --git a/res/drawable-mdpi/icon.png b/res/drawable-mdpi/icon.png
index a07c69f..a8a7390 100644
Binary files a/res/drawable-mdpi/icon.png and b/res/drawable-mdpi/icon.png differ
diff --git a/res/layout/filerow.xml b/res/layout/filerow.xml
index 7f12ffa..410c666 100644
--- a/res/layout/filerow.xml
+++ b/res/layout/filerow.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="utf-8"?>
-<TextView
-  xmlns:android="http://schemas.android.com/apk/res/android"
-  android:layout_width="fill_parent"
-  android:layout_height="30sp"
-  android:typeface="monospace">
-</TextView>
+<?xml version="1.0" encoding="utf-8"?>
+<TextView
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="fill_parent"
+  android:layout_height="30sp"
+  android:typeface="monospace">
+</TextView>
diff --git a/res/layout/home.xml b/res/layout/home.xml
index c17cf47..a68954f 100644
--- a/res/layout/home.xml
+++ b/res/layout/home.xml
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
-  xmlns:android="http://schemas.android.com/apk/res/android"
-  android:orientation="vertical"
-  android:layout_width="fill_parent"
-  android:layout_height="fill_parent">
-   <Button
-     android:id="@+id/browse"
-     android:layout_height="fill_parent"
-     android:layout_width="fill_parent"
-     android:layout_weight="1"
-     android:text="Upload File"
-	/>
- <Button
-     android:id="@+id/audio"
-     android:layout_height="fill_parent"
-     android:layout_width="fill_parent"
-     android:layout_weight="1"
-     android:text="Record Audio"
-	/>
- <Button
-     android:id="@+id/locate"
-     android:layout_height="fill_parent"
-     android:layout_width="fill_parent"
-     android:layout_weight="1"
-     android:text="Find Location"
-	/>
-  
-</LinearLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:orientation="vertical"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent">
+   <Button
+     android:id="@+id/browse"
+     android:layout_height="fill_parent"
+     android:layout_width="fill_parent"
+     android:layout_weight="1"
+     android:text="Upload File"
+	/>
+ <Button
+     android:id="@+id/audio"
+     android:layout_height="fill_parent"
+     android:layout_width="fill_parent"
+     android:layout_weight="1"
+     android:text="Record Audio"
+	/>
+ <Button
+     android:id="@+id/locate"
+     android:layout_height="fill_parent"
+     android:layout_width="fill_parent"
+     android:layout_weight="1"
+     android:text="Find Location"
+	/>
+  
+</LinearLayout>
diff --git a/res/layout/share.xml b/res/layout/share.xml
new file mode 100644
index 0000000..6a70ea3
--- /dev/null
+++ b/res/layout/share.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:orientation="vertical"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent">
+  	<TextView
+  		android:text="Enter Filename"
+ 		android:layout_width="fill_parent"
+		android:layout_height="wrap_content"
+	/>
+	<EditText
+		android:id="@+id/filename"
+		android:layout_width="fill_parent"
+		android:layout_height="wrap_content"
+		android:focusable="true"
+	/>
+	  	<TextView
+  		android:text="   "
+ 		android:layout_width="fill_parent"
+		android:layout_height="wrap_content"
+	/>
+	<Button
+		android:id="@+id/uploadfile"
+		android:layout_height="wrap_content"
+		android:layout_width="fill_parent"
+		android:text="Upload"
+	/>
+ 
+</LinearLayout>
diff --git a/res/layout/soundrecorder.xml b/res/layout/soundrecorder.xml
index 184bbae..f707e88 100644
--- a/res/layout/soundrecorder.xml
+++ b/res/layout/soundrecorder.xml
@@ -1,18 +1,18 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
-  xmlns:android="http://schemas.android.com/apk/res/android"
-  android:layout_width="wrap_content"
-  android:layout_height="wrap_content">
- <Button
-     android:id="@+id/Record"
-     android:layout_height="wrap_content"
-     android:layout_width="wrap_content"
-     android:text="Record"
-/>
- <Button
-     android:id="@+id/Stop"
-     android:layout_height="wrap_content"
-     android:layout_width="wrap_content"
-     android:text="Stop"
-/>
-</LinearLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="fill_parent"
+  android:layout_height="wrap_content">
+ <Button
+     android:id="@+id/Record"
+     android:layout_height="wrap_content"
+     android:layout_width="fill_parent"
+     android:text="Record"
+/>
+ <Button
+     android:id="@+id/Stop"
+     android:layout_height="wrap_content"
+     android:layout_width="fill_parent"
+     android:text="Stop"
+/>
+</LinearLayout>
diff --git a/res/layout/upload.xml b/res/layout/upload.xml
index 13a38b7..d56345d 100644
--- a/res/layout/upload.xml
+++ b/res/layout/upload.xml
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="vertical"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    >
-<ListView  
-    android:layout_width="fill_parent" 
-    android:layout_height="wrap_content" 
-    android:text="@string/hello"
-    />
-    <ProgressBar
-android:id="@+id/ProgressBar01"
-android:indeterminateOnly="false"
-android:progressDrawable="@android:drawable/progress_horizontal"
-android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
-android:minHeight="20dip"
-android:maxHeight="20dip" android:layout_width="fill_parent"/>
-</LinearLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    >
+<ListView  
+    android:layout_width="fill_parent" 
+    android:layout_height="wrap_content" 
+    android:text="@string/hello"
+    />
+    <ProgressBar
+android:id="@+id/ProgressBar01"
+android:indeterminateOnly="false"
+android:progressDrawable="@android:drawable/progress_horizontal"
+android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
+android:minHeight="20dip"
+android:maxHeight="20dip" android:layout_width="fill_parent"/>
+</LinearLayout>
diff --git a/res/layout/uploadlocation.xml b/res/layout/uploadlocation.xml
index f924d43..69251e4 100644
--- a/res/layout/uploadlocation.xml
+++ b/res/layout/uploadlocation.xml
@@ -1,36 +1,36 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout
-  xmlns:android="http://schemas.android.com/apk/res/android"
-  android:orientation="vertical"
-  android:layout_width="wrap_content"
-  android:layout_height="wrap_content">
-   <TextView
- 	android:text="Current Location"
- 	     android:layout_height="wrap_content"
-     android:layout_width="wrap_content"
- 	 />
- <TextView
- 	android:id="@+id/location"
- 	android:text=""
- 	     android:layout_height="wrap_content"
-     android:layout_width="wrap_content"
- 	 />
- 	 <LinearLayout
- 	   android:orientation="horizontal"
-  android:layout_width="wrap_content"
-  android:layout_height="wrap_content"
-  >
- <Button
-     android:id="@+id/getlocation"
-     android:layout_height="wrap_content"
-     android:layout_width="wrap_content"
-     android:text="Get Location"
-/>
- <Button
-     android:id="@+id/uploadlocation"
-     android:layout_height="wrap_content"
-     android:layout_width="wrap_content"
-     android:text="Upload"
-/>
-</LinearLayout>
-</LinearLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:orientation="vertical"
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content">
+   <TextView
+ 	android:text="Current Location"
+ 	     android:layout_height="wrap_content"
+     android:layout_width="wrap_content"
+ 	 />
+ <TextView
+ 	android:id="@+id/location"
+ 	android:text=""
+ 	     android:layout_height="wrap_content"
+     android:layout_width="wrap_content"
+ 	 />
+ 	 <LinearLayout
+ 	   android:orientation="horizontal"
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content"
+  >
+ <Button
+     android:id="@+id/getlocation"
+     android:layout_height="wrap_content"
+     android:layout_width="wrap_content"
+     android:text="Get Location"
+/>
+ <Button
+     android:id="@+id/uploadlocation"
+     android:layout_height="wrap_content"
+     android:layout_width="wrap_content"
+     android:text="Upload"
+/>
+</LinearLayout>
+</LinearLayout>
diff --git a/res/menu/menu.xml b/res/menu/menu.xml
index ffc9eca..1d60246 100644
--- a/res/menu/menu.xml
+++ b/res/menu/menu.xml
@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="utf-8"?>
-<menu
-  xmlns:android="http://schemas.android.com/apk/res/android">
-<item android:id="@+id/menuBrowse"
-	  android:icon="@android:drawable/ic_menu_upload"
-	  android:title="Upload Files"></item>
-<item android:id="@+id/menuRecord"
-	  android:icon="@android:drawable/ic_btn_speak_now"
-	  android:title="Record Audio"></item>
-<item android:id="@+id/menuLocate"
-	  android:icon="@android:drawable/ic_menu_compass"
-	  android:title="Send Location"></item>
-<item android:id="@+id/menuExit"
-	  android:icon="@android:drawable/ic_menu_close_clear_cancel"
-	  android:title="Exit"></item>
-</menu>
+<?xml version="1.0" encoding="utf-8"?>
+<menu
+  xmlns:android="http://schemas.android.com/apk/res/android">
+<item android:id="@+id/menuBrowse"
+	  android:icon="@android:drawable/ic_menu_upload"
+	  android:title="Upload Files"></item>
+<item android:id="@+id/menuRecord"
+	  android:icon="@android:drawable/ic_btn_speak_now"
+	  android:title="Record Audio"></item>
+<item android:id="@+id/menuLocate"
+	  android:icon="@android:drawable/ic_menu_compass"
+	  android:title="Send Location"></item>
+<item android:id="@+id/menuExit"
+	  android:icon="@android:drawable/ic_menu_close_clear_cancel"
+	  android:title="Exit"></item>
+</menu>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4f00040..9e611cf 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1,5 +1,6 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <string name="hello">Hello World, fileBrowser!</string>
-    <string name="app_name">blauploader</string>
-</resources>
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="hello">Hello World, fileBrowser!</string>
+    <string name="app_name">blauploader</string>
+    <string name="cancel">Cancel</string>
+</resources>
diff --git a/src/com/lc8n/blauploader/FileBrowser.java b/src/com/lc8n/blauploader/FileBrowser.java
index 18d2214..279ed2c 100644
--- a/src/com/lc8n/blauploader/FileBrowser.java
+++ b/src/com/lc8n/blauploader/FileBrowser.java
@@ -1,239 +1,239 @@
-/*
-    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 3 of the License, 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 this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
-    Copyright 2010 Joe Robinson <joe@lc8n.com>
-*/
-
-package com.lc8n.blauploader;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import android.app.ListActivity;
-import android.app.ProgressDialog;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.telephony.SmsManager;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-
-public class FileBrowser extends ListActivity {
-    /** Called when the activity is first created. */
-	
-	private List<String> directoryEntries = new ArrayList<String>();
-    private File currentDirectory = new File("/");
-    private float fileSize = 0;
-    private Handler pbHandle = null;
-    private ProgressDialog progressDialog;
-    
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        
-        
-        directoryEntries.clear();
-        
-        File[] files = currentDirectory.listFiles();
-        directoryEntries.add("Directory:"+currentDirectory.getAbsolutePath());
-        directoryEntries.add("Up One Level");
-        if (files != null)
-        {
-        for (File file: files)
-        {
-        	directoryEntries.add(file.getPath());
-//        	System.out.println(file.getPath());
-        }
-        }
-        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, R.layout.filerow, this.directoryEntries);
-        
-        this.setListAdapter(directoryList);
-        
-        progressDialog = new ProgressDialog(this);
-		
-		
-		progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-		progressDialog.setMessage("Blauploading...");
-		progressDialog.setCancelable(true);
-		progressDialog.setProgress(0);
-
-
-//		
-//		
-
-		
-		
-		pbHandle = new Handler(){
-		
-        @Override					
-		public void handleMessage(Message msg) {
-		
-			/* get the value from the Message */
-			
-			long progress = msg.getData().getLong("progress_update");
-			System.out.println(progress+"/"+fileSize);
-			if(progress>(fileSize-10240))
-			{
-				progressDialog.dismiss();
-			}
-			float percent = (progress/fileSize)*100;
-			Integer intProgress = Math.round(percent);
-			if(intProgress==100)
-			{
-				progressDialog.dismiss();
-			}
-			else
-			{
-				progressDialog.show();
-				progressDialog.setProgress(intProgress);
-			}
-		}
-		};
-        
-    }
-    
-    public void browseTo(File dir)
-    {
-        directoryEntries.clear();
-        
-        File[] files = dir.listFiles();
-        directoryEntries.add("Current Directory:"+currentDirectory.getAbsolutePath());
-        directoryEntries.add("Up One Level");
-        
-//        System.out.println(files.length);
-        if(files != null)
-        {
-        for (File file: files)
-        {
-        	directoryEntries.add(file.getPath());
-        	System.out.println(file.getPath());
-        }
-        }
-        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, R.layout.filerow, this.directoryEntries);
-        
-        this.setListAdapter(directoryList);
-    }
-    
-    
-    @Override
-    protected void onListItemClick(ListView l, View v, int position, long id) {
-    	
-    	String fileString = directoryEntries.get(position);
-    	
-    	
-    	if(fileString.contains("Directory:"))
-    	{
-    		browseTo(currentDirectory);
-    	}
-    	else if (fileString.equals("Up One Level"))
-    	{
-    		System.out.println(currentDirectory.getParentFile().getPath());
-    		if (currentDirectory.getParent() != null)
-    		{
-    			currentDirectory = currentDirectory.getParentFile();
-    			browseTo(currentDirectory);
-    		}
-    	}
-    	else
-    	{
-    		
-    	
-	    	File chosenFile = new File(fileString);
-	    	if (chosenFile.isDirectory())
-	    	{
-	    		currentDirectory = chosenFile;
-	    		browseTo(currentDirectory);
-	    	}
-	    	else
-	    	{
-
-	    		//upload it
-	    		try {
-
-	    			fileSize = chosenFile.length();
-					
-					
-
-					
-					
-					
-					FileUpload fu = new FileUpload(chosenFile,pbHandle);
-					Thread thread = new Thread(fu);
-					
-					thread.start();
-					
-					SmsManager sms = SmsManager.getDefault();
-					sms.sendTextMessage("07927278978", null, "wjoe blauploaded http://www.blaupload.co.uk/"+chosenFile.getName(), null, null);
-
-
-
-				} catch (Exception e) {
-					// TODO Auto-generated catch block
-					System.err.println(e.getMessage());
-					e.printStackTrace();
-				}
-	    		
-	    	}
-	    
-    	}
-    	
-    	
-    	
-    }
-    
-	@Override
-	public boolean onCreateOptionsMenu(Menu menu) {
-	    MenuInflater inflater = getMenuInflater();
-	    inflater.inflate(R.menu.menu, menu);
-	    return true;
-	}
-	
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-	    // Handle item selection
-	    switch (item.getItemId()) {
-	    case R.id.menuBrowse:
-//	    	Intent browse = new Intent(this, FileBrowser.class);
-//            startActivityForResult(browse, 0);;
-	        return true;
-	    case R.id.menuRecord:
-	    	Intent record = new Intent(this, SoundRecorder.class);
-            startActivityForResult(record, 0);
-	        return true;
-	    case R.id.menuLocate:
-	    	Intent locate = new Intent(this, UploadLocation.class);
-            startActivityForResult(locate, 0);;
-	        return true;    
-	    case R.id.menuExit:
-	    	this.finish();
-	    	break; 
-	    default:
-	        return super.onOptionsItemSelected(item);
-	        
-	    }
-	    return true;
-
-	}
-    
-
- 
+/*
+    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 3 of the License, 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+    Copyright 2010 Joe Robinson <joe@lc8n.com>
+*/
+
+package com.lc8n.blauploader;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import android.app.ListActivity;
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.telephony.SmsManager;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+public class FileBrowser extends ListActivity {
+    /** Called when the activity is first created. */
+	
+	private List<String> directoryEntries = new ArrayList<String>();
+    private File currentDirectory = new File("/");
+    private float fileSize = 0;
+    private Handler pbHandle = null;
+    private ProgressDialog progressDialog;
+    
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        
+        
+        directoryEntries.clear();
+        
+        File[] files = currentDirectory.listFiles();
+        directoryEntries.add("Directory:"+currentDirectory.getAbsolutePath());
+        directoryEntries.add("Up One Level");
+        if (files != null)
+        {
+        for (File file: files)
+        {
+        	directoryEntries.add(file.getPath());
+//        	System.out.println(file.getPath());
+        }
+        }
+        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, R.layout.filerow, this.directoryEntries);
+        
+        this.setListAdapter(directoryList);
+        
+        progressDialog = new ProgressDialog(this);
+		
+		
+		progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+		progressDialog.setMessage("Blauploading...");
+		progressDialog.setCancelable(true);
+		progressDialog.setProgress(0);
+
+
+//		
+//		
+
+		
+		
+		pbHandle = new Handler(){
+		
+        @Override					
+		public void handleMessage(Message msg) {
+		
+			/* get the value from the Message */
+			
+			long progress = msg.getData().getLong("progress_update");
+			System.out.println(progress+"/"+fileSize);
+			if(progress>(fileSize-10240))
+			{
+				progressDialog.dismiss();
+			}
+			float percent = (progress/fileSize)*100;
+			Integer intProgress = Math.round(percent);
+			if(intProgress==100)
+			{
+				progressDialog.dismiss();
+			}
+			else
+			{
+				progressDialog.show();
+				progressDialog.setProgress(intProgress);
+			}
+		}
+		};
+        
+    }
+    
+    public void browseTo(File dir)
+    {
+        directoryEntries.clear();
+        
+        File[] files = dir.listFiles();
+        directoryEntries.add("Current Directory:"+currentDirectory.getAbsolutePath());
+        directoryEntries.add("Up One Level");
+        
+//        System.out.println(files.length);
+        if(files != null)
+        {
+        for (File file: files)
+        {
+        	directoryEntries.add(file.getPath());
+        	System.out.println(file.getPath());
+        }
+        }
+        ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this, R.layout.filerow, this.directoryEntries);
+        
+        this.setListAdapter(directoryList);
+    }
+    
+    
+    @Override
+    protected void onListItemClick(ListView l, View v, int position, long id) {
+    	
+    	String fileString = directoryEntries.get(position);
+    	
+    	
+    	if(fileString.contains("Directory:"))
+    	{
+    		browseTo(currentDirectory);
+    	}
+    	else if (fileString.equals("Up One Level"))
+    	{
+    		System.out.println(currentDirectory.getParentFile().getPath());
+    		if (currentDirectory.getParent() != null)
+    		{
+    			currentDirectory = currentDirectory.getParentFile();
+    			browseTo(currentDirectory);
+    		}
+    	}
+    	else
+    	{
+    		
+    	
+	    	File chosenFile = new File(fileString);
+	    	if (chosenFile.isDirectory())
+	    	{
+	    		currentDirectory = chosenFile;
+	    		browseTo(currentDirectory);
+	    	}
+	    	else
+	    	{
+
+	    		//upload it
+	    		try {
+
+	    			fileSize = chosenFile.length();
+					
+					
+
+					
+					
+					
+					FileUpload fu = new FileUpload(chosenFile,pbHandle);
+					Thread thread = new Thread(fu);
+					
+					thread.start();
+					
+					SmsManager sms = SmsManager.getDefault();
+					sms.sendTextMessage("07927278978", null, "New file blauploaded: http://www.blaupload.co.uk/"+chosenFile.getName(), null, null);
+
+
+
+				} catch (Exception e) {
+					// TODO Auto-generated catch block
+					System.err.println(e.getMessage());
+					e.printStackTrace();
+				}
+	    		
+	    	}
+	    
+    	}
+    	
+    	
+    	
+    }
+    
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+	    MenuInflater inflater = getMenuInflater();
+	    inflater.inflate(R.menu.menu, menu);
+	    return true;
+	}
+	
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+	    // Handle item selection
+	    switch (item.getItemId()) {
+	    case R.id.menuBrowse:
+//	    	Intent browse = new Intent(this, FileBrowser.class);
+//            startActivityForResult(browse, 0);;
+	        return true;
+	    case R.id.menuRecord:
+	    	Intent record = new Intent(this, SoundRecorder.class);
+            startActivityForResult(record, 0);
+	        return true;
+	    case R.id.menuLocate:
+	    	Intent locate = new Intent(this, UploadLocation.class);
+            startActivityForResult(locate, 0);;
+	        return true;    
+	    case R.id.menuExit:
+	    	this.finish();
+	    	break; 
+	    default:
+	        return super.onOptionsItemSelected(item);
+	        
+	    }
+	    return true;
+
+	}
+    
+
+ 
 }
\ No newline at end of file
diff --git a/src/com/lc8n/blauploader/FileShare.java b/src/com/lc8n/blauploader/FileShare.java
new file mode 100644
index 0000000..6b474a5
--- /dev/null
+++ b/src/com/lc8n/blauploader/FileShare.java
@@ -0,0 +1,298 @@
+package com.lc8n.blauploader;
+
+import java.io.File;
+import java.io.InputStream;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.MediaStore;
+import android.telephony.SmsManager;
+import android.util.Log;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
+import android.widget.EditText;
+
+public class FileShare extends Activity {
+	private EditText text;
+	private float fileSize;
+	private Handler pbHandle = null;
+	private ProgressDialog progressDialog;
+	private ProgressDialog preparing;
+	private InputStream is;
+	private String fileName; 
+	private Thread thread;
+	private AlertDialog alert;
+	private File file;
+	
+	
+	public void onCreate(Bundle savedInstanceState)
+	{
+		
+	        super.onCreate(savedInstanceState);
+	        setContentView(R.layout.share);
+	        
+	        File blaDirectory = new File("/sdcard/blaupload/");
+	        blaDirectory.mkdirs();
+	        
+	        Intent intent = getIntent();
+	        Bundle extras = intent.getExtras();
+	        String action = intent.getAction();
+	        
+	        text = (EditText) findViewById(R.id.filename);
+	        text.requestFocus();
+            ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE))  
+            .showSoftInput(text, 0);  
+//	        text.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+//				
+//				public void onFocusChange(View v, boolean hasFocus) {
+//					// TODO Auto-generated method stub
+//					if (hasFocus)
+//					{
+//						
+//					}
+//				}
+//			});
+//	        progressBar = (ProgressBar) findViewById(R.id.uploadprogress);
+	        
+            alert = new AlertDialog.Builder(this).create();
+            alert.setTitle("FTP Response");
+            alert.setButton("OK", new DialogInterface.OnClickListener() {
+				
+				public void onClick(DialogInterface dialog, int which) {
+					alert.dismiss();
+					
+				}
+			});
+	        progressDialog = new ProgressDialog(this);
+			
+			
+			progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+			progressDialog.setMessage("Blauploading...");
+			progressDialog.setCancelable(true);
+			progressDialog.setProgress(0);
+			
+			progressDialog.setButton(getText(R.string.cancel), new DialogInterface.OnClickListener() {
+				
+				public void onClick(DialogInterface dialog, int which) {
+					// Cancel the upload!
+					progressDialog.dismiss();
+					thread.stop();
+					
+					
+				}
+			});
+			
+			preparing = new ProgressDialog(this);
+			preparing.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+			preparing.setMessage("Preparing to Blaupload...");
+			preparing.setCancelable(true);
+			preparing.setButton(getText(R.string.cancel), new DialogInterface.OnClickListener() {
+				
+				public void onClick(DialogInterface dialog, int which) {
+					// Cancel the upload!
+					progressDialog.dismiss();
+					thread.interrupt();
+					
+					
+				}
+			});
+			
+
+
+			
+			
+			pbHandle = new Handler(){
+			
+	        @Override					
+			public void handleMessage(Message msg) {
+			
+				/* get the value from the Message */
+				
+				long progress = msg.getData().getLong("progress_update");
+				System.out.println(progress+"/"+fileSize);
+
+				float percent = (progress/fileSize)*100.0f;
+				System.out.println(percent);
+				Integer intProgress = Math.round(percent);
+				System.out.println(intProgress);
+				int kB = Math.round(progress / 1024);
+				if(intProgress==100 || progress>(fileSize-1024)) {
+					progressDialog.dismiss();
+				}
+				else {
+					preparing.dismiss();
+					progressDialog.show();
+					progressDialog.setProgress(kB);
+				}
+				
+				int code = msg.getData().getInt("response");
+				
+				switch (code) {
+				case 0:
+				break;
+				case 600:
+					alert.setMessage("File Already Exists! Please Rename");
+					alert.show();
+					progressDialog.dismiss();
+					thread.interrupt();
+					break;
+				case 226:
+					progressDialog.dismiss();
+					SmsManager sms = SmsManager.getDefault();
+					sms.sendTextMessage("07927278978", null, "New image blauploaded: http://www.blaupload.co.uk/"+fileName,null, null);
+					break;
+				case 800:
+					alert.setMessage("Unable To Connect To Server!");
+					alert.show();
+					progressDialog.dismiss();
+					break;
+				case 801:
+					alert.setMessage("Unable To Log In!");
+					alert.show();
+					progressDialog.dismiss();
+					break;
+				case 804:
+					alert.setMessage("Unable To Get File List!");
+					alert.show();
+					progressDialog.dismiss();
+					break;
+				case 805:
+					alert.setMessage("Unable To Get Upload File!");
+					alert.show();
+					progressDialog.dismiss();
+					break;
+				case 806:
+					alert.setMessage("FTP Server Did Not Respond!");
+					alert.show();
+					progressDialog.dismiss();
+					break;
+				case 807:
+					alert.setMessage("Unable To Log Out!");
+					alert.show();
+					progressDialog.dismiss();
+					break;
+				default:
+					alert.setMessage("Response Code: "+code);
+					alert.show();
+					progressDialog.dismiss();
+					break;
+					
+					
+				}
+			}
+			};
+	        
+	    
+	        
+	        final Button button = (Button) findViewById(R.id.uploadfile);
+	        button.setOnClickListener(new View.OnClickListener() {
+				
+				public void onClick(View v) {
+					
+					
+
+							fileName = text.getText().toString();
+							String path = file.getParent();
+							System.out.println(path);
+							System.out.println(fileName);
+							
+							
+							File newName = new File(path+"/"+fileName);
+							System.out.println(newName.getAbsolutePath());
+							file.renameTo(newName);
+							file = newName;
+		                    System.out.println("a"+file.getAbsolutePath());
+		                    FileUpload uploader = new FileUpload(file, pbHandle);
+	                		 thread = new Thread(uploader);
+	                		thread.start();
+	                		progressDialog.setMax(Math.round(fileSize/1024));
+	                		preparing.show();
+
+						
+						
+
+					
+//					Toast toast = Toast.makeText(getApplicationContext(), "Upload Complete!", 10);
+//					toast.show();
+				}
+			});
+	        
+	        
+	        
+	        
+	        // if this is from the share menu
+	        if (Intent.ACTION_SEND.equals(action))
+	        {
+	                if (extras.containsKey(Intent.EXTRA_STREAM))
+	                {
+	                        try
+	                        {
+	                                // Get resource path from intent callee
+	                                Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
+	                                
+	                                // Query gallery for camera picture via
+	                                // Android ContentResolver interface
+	                                ContentResolver cr = getContentResolver();
+	                                is = cr.openInputStream(uri);
+
+	                                String[] projection = { MediaStore.MediaColumns.DISPLAY_NAME, MediaStore.MediaColumns.MIME_TYPE, MediaStore.MediaColumns.SIZE, MediaStore.MediaColumns.DATA };
+	                                Cursor cur = cr.query(uri, projection, null, null, null);
+	                                cur.moveToFirst();
+	                                
+                                	fileName = cur.getString(3);
+                                	fileSize = cur.getLong(2);
+                                	System.out.println(cur.getString(3));
+	                                cur.close();
+	                                String[] fileParts = fileName.split("/");
+	                                for (int i = 0; i < fileParts.length; i++) {
+	                                	System.out.println(fileParts[i]);
+	                                }
+	                                text.setText(fileParts[fileParts.length-1]);
+	                                text.setSelection(fileParts[fileParts.length-1].indexOf("."));
+	                                file = new File(fileName);
+
+//	                                text.setSelection(0, filename.indexOf("."));
+//	                                text.requestFocus();
+	                                
+	                                InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+	                             // only will trigger it if no physical keyboard is open
+	                             mgr.showSoftInput(text, InputMethodManager.SHOW_FORCED);
+	                             
+
+	                                // Get binary bytes for encode
+//	                                byte[] data = getBytesFromFile(is);
+//	                                cr.
+//
+//	                                // base 64 encode for text transmission (HTTP)
+//	                                byte[] encoded_data = Base64.encodeBase64(data);
+//	                                String data_string = new String(encoded_data); // convert to string
+//
+//	                                SendRequest(data_string);
+
+	                                return;
+	                        } catch (Exception e)
+	                        {
+	                                Log.e(this.getClass().getName(), e.toString());
+	                        }
+
+	                } else if (extras.containsKey(Intent.EXTRA_TEXT))
+	                {
+	                        return;
+	                }
+	        }
+	        
+	}
+	
+
+}
diff --git a/src/com/lc8n/blauploader/FileUpload.java b/src/com/lc8n/blauploader/FileUpload.java
index b81ec2d..18f7af8 100644
--- a/src/com/lc8n/blauploader/FileUpload.java
+++ b/src/com/lc8n/blauploader/FileUpload.java
@@ -1,76 +1,183 @@
-/*
-    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 3 of the License, 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 this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
-    Copyright 2010 Joe Robinson <joe@lc8n.com>
-*/
-
-package com.lc8n.blauploader;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.SocketException;
-
-import org.apache.commons.net.ftp.FTP;
-import org.apache.commons.net.ftp.FTPClient;
-
-import android.os.Handler;
-
-public class FileUpload implements Runnable{
-	
-	private File file;
-	private Handler pbHandle;
-	public FileUpload(File file, Handler pbHandle)
-	{
-		this.file = file;
-		this.pbHandle = pbHandle;
-	}
-
-    public void uploadFile(File file, Handler pbHandle) throws SocketException, IOException
-    {
-    	
-
-		FileInputStream fis = new FileInputStream(file);
-		BufferedInputStream bis = new BufferedInputStream(fis);
-		ProgressInputStream pis = new ProgressInputStream(bis,pbHandle);
-		String fileName = file.getName();
-		FTPClient ftpClient = new FTPClient();
-		
-		ftpClient.connect("tghost.co.uk");
-		ftpClient.login("blaupload", "lemons");
-		ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
-		ftpClient.enterLocalPassiveMode();
-		ftpClient.changeWorkingDirectory("/");
-		ftpClient.storeFile(fileName, pis);
-		bis.close();
-		pis.close();
-        ftpClient.logout();
-        ftpClient.disconnect();
-
-    }
-	public void run() {
-		try {
-			uploadFile(file, pbHandle);
-		} catch (Exception e) {
-
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		
-	}
-
-}
+/*
+    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 3 of the License, 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+    Copyright 2010 Joe Robinson <joe@lc8n.com>
+*/
+
+package com.lc8n.blauploader;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.SocketException;
+
+import org.apache.commons.net.ftp.FTP;
+import org.apache.commons.net.ftp.FTPClient;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+
+public class FileUpload implements Runnable{
+	
+	private File file = null;
+	private Handler pbHandle;
+	private InputStream is;
+	private String fileName;
+	private FTPClient ftpClient;
+	
+	public FileUpload(File file, Handler pbHandle)
+	{
+		this.file = file;
+		this.pbHandle = pbHandle;
+	}
+	
+	public FileUpload(InputStream is, Handler pbHandle, String fileName)
+	{
+		this.is = is;
+		this.pbHandle = pbHandle;
+		this.fileName = fileName;
+		
+		
+	}
+
+    public void uploadFile(File file, Handler pbHandle)
+    {
+    	
+
+    	int code = 0;
+		FileInputStream fis = null;
+		try {
+			fis = new FileInputStream(file);
+		} catch (FileNotFoundException e) {
+			code = 700;
+		}
+		BufferedInputStream bis = new BufferedInputStream(fis);
+		ProgressInputStream pis = new ProgressInputStream(bis,pbHandle);
+		String fileName = file.getName();
+		ftpClient = new FTPClient();
+		
+		try {
+			ftpClient.connect("tghost.co.uk");
+		} catch (Exception e) {
+			code = 800;
+			e.printStackTrace();
+		}
+		try {
+			ftpClient.login("blaupload", "lemons");
+		} catch (IOException e) {
+			code = 801;
+			e.printStackTrace();
+		}
+		try {
+			ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
+		} catch (IOException e) {
+			code = 802;
+		}
+		ftpClient.enterLocalPassiveMode();
+		try {
+			ftpClient.changeWorkingDirectory("blaupload");
+		} catch (IOException e) {
+			code = 803;
+		}
+		String[] curFiles = null;
+		try {
+			curFiles = ftpClient.listNames();
+		} catch (IOException e) {
+			code = 804;
+		}
+		boolean exists = false;
+		for (int i = 0; i < curFiles.length; i++) {
+			if (curFiles[i].equals(fileName))
+			{
+				exists = true;
+				code = 600;
+			}
+		}
+		if (!exists) {
+			try {
+				ftpClient.storeFile(fileName, pis);
+			} catch (IOException e) {
+				code = 805;
+			}
+			try {
+				code = ftpClient.getReply();
+			} catch (IOException e) {
+				code = 806;
+			}
+    	}
+		try {
+			bis.close();
+			pis.close();
+		} catch (IOException e) {
+			code = 999;
+		}
+
+        try {
+			ftpClient.logout();
+			ftpClient.disconnect();
+		} catch (IOException e) {
+			code = 807;
+		}
+        
+        
+        Bundle data = new Bundle();
+        data.putInt("response", code);
+        Message message = Message.obtain();
+        message.setData(data);
+        pbHandle.sendMessage(message);
+
+    }
+    
+
+	public void run() {
+		try {
+			
+//			if(file == null && is != null) {
+//				file = new File("/sdcard/blaupload/"+fileName);
+//		        OutputStream out = new FileOutputStream(file);
+//		        
+//				int read=0;
+//				byte[] bytes = new byte[1024];
+//		 
+//				while((read = is.read(bytes))!= -1){
+//					out.write(bytes, 0, read);
+//				}
+//		 
+//				is.close();
+//				out.flush();
+//				out.close();
+//			}
+			
+			uploadFile(file, pbHandle);
+		} catch (Exception e) {
+
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+	}
+	public void interrupt() throws IOException {
+		ftpClient.abort();
+		file = null;
+	}
+
+}
diff --git a/src/com/lc8n/blauploader/HomeScreen.java b/src/com/lc8n/blauploader/HomeScreen.java
index 98de7f8..37343f3 100644
--- a/src/com/lc8n/blauploader/HomeScreen.java
+++ b/src/com/lc8n/blauploader/HomeScreen.java
@@ -1,49 +1,57 @@
-package com.lc8n.blauploader;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-
-public class HomeScreen extends Activity{
-	
-
-	public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.home);
-
-        final Button browse = (Button) findViewById(R.id.browse);
-        browse.setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-				Intent myIntent = new Intent(v.getContext(), FileBrowser.class);
-                startActivityForResult(myIntent, 0);
-
-				
-			}
-		});
-        
-        final Button audio = (Button) findViewById(R.id.audio);
-        audio.setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-				Intent myIntent = new Intent(v.getContext(), SoundRecorder.class);
-                startActivityForResult(myIntent, 0);
-				
-			}
-		});
-        
-        final Button locate = (Button) findViewById(R.id.locate);
-        locate	 .setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-				Intent myIntent = new Intent(v.getContext(), UploadLocation.class);
-                startActivityForResult(myIntent, 0);
-				
-			}
-		});
-        
-        
-	}
-}
+package com.lc8n.blauploader;
+
+import java.io.File;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+public class HomeScreen extends Activity{
+	
+
+	public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.home);
+
+        File blaDirectory = new File("/sdcard/blaupload/");
+        blaDirectory.mkdirs();
+
+        
+
+        
+        final Button browse = (Button) findViewById(R.id.browse);
+        browse.setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+				Intent myIntent = new Intent(v.getContext(), FileBrowser.class);
+                startActivityForResult(myIntent, 0);
+                
+				
+			}
+		});
+        
+        final Button audio = (Button) findViewById(R.id.audio);
+        audio.setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+				Intent myIntent = new Intent(v.getContext(), SoundRecorder.class);
+                startActivityForResult(myIntent, 0);
+				
+			}
+		});
+        
+        final Button locate = (Button) findViewById(R.id.locate);
+        locate	 .setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+				Intent myIntent = new Intent(v.getContext(), UploadLocation.class);
+                startActivityForResult(myIntent, 0);
+				
+			}
+		});
+        
+        
+	}
+}
diff --git a/src/com/lc8n/blauploader/ProgressInputStream.java b/src/com/lc8n/blauploader/ProgressInputStream.java
index bda5980..9404633 100644
--- a/src/com/lc8n/blauploader/ProgressInputStream.java
+++ b/src/com/lc8n/blauploader/ProgressInputStream.java
@@ -1,97 +1,97 @@
-/*
-    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 3 of the License, 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 this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/*
-    Copyright 2010 Joe Robinson <joe@lc8n.com>
-*/
-
-package com.lc8n.blauploader;
-
-import java.io.IOException;
-import java.io.InputStream;
- 
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
- 
-public class ProgressInputStream extends InputStream {
- 
-    /* Key to retrieve progress value from message bundle passed to handler */
-    public static final String PROGRESS_UPDATE = "progress_update";
- 
-    private static final int TEN_KILOBYTES = 1024 * 10;
- 
-    private InputStream inputStream;
-    private Handler handler;
- 
-    private long progress;
-    private long lastUpdate;
- 
-    private boolean closed;
- 
-    public ProgressInputStream(InputStream inputStream, Handler handler) {
-        this.inputStream = inputStream;
-        this.handler = handler;
- 
-        this.progress = 0;
-        this.lastUpdate = 0;
- 
-        this.closed = false;
-    }
- 
-    @Override
-        public int read() throws IOException {
-            int count = inputStream.read();
-            return incrementCounterAndUpdateDisplay(count);
-        }
- 
-    @Override
-        public int read(byte[] b, int off, int len) throws IOException {
-            int count = inputStream.read(b, off, len);
-            return incrementCounterAndUpdateDisplay(count);
-        }
- 
-    @Override
-        public void close() throws IOException {
-            super.close();
-            if (closed)
-                throw new IOException("already closed");
-            closed = true;
-        }
- 
-    private int incrementCounterAndUpdateDisplay(int count) {
-        if (count > 0)
-            progress += count;
-        lastUpdate = maybeUpdateDisplay(progress, lastUpdate);
-        return count;
-    }
- 
-    private long maybeUpdateDisplay(long progress, long lastUpdate) {
-        if (progress - lastUpdate > TEN_KILOBYTES) {
-            lastUpdate = progress;
-            sendLong(PROGRESS_UPDATE, progress);
-        }
-        return lastUpdate;
-    }
- 
-    public void sendLong(String key, long value) {
-        Bundle data = new Bundle();
-        data.putLong(key, value);
-     
-        Message message = Message.obtain();
-        message.setData(data);
-        handler.sendMessage(message);
-    }
+/*
+    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 3 of the License, 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+    Copyright 2010 Joe Robinson <joe@lc8n.com>
+*/
+
+package com.lc8n.blauploader;
+
+import java.io.IOException;
+import java.io.InputStream;
+ 
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+ 
+public class ProgressInputStream extends InputStream {
+ 
+    /* Key to retrieve progress value from message bundle passed to handler */
+    public static final String PROGRESS_UPDATE = "progress_update";
+ 
+    private static final int TEN_KILOBYTES = 1024 * 10;
+ 
+    private InputStream inputStream;
+    private Handler handler;
+ 
+    private long progress;
+    private long lastUpdate;
+ 
+    private boolean closed;
+ 
+    public ProgressInputStream(InputStream inputStream, Handler handler) {
+        this.inputStream = inputStream;
+        this.handler = handler;
+ 
+        this.progress = 0;
+        this.lastUpdate = 0;
+ 
+        this.closed = false;
+    }
+ 
+    @Override
+        public int read() throws IOException {
+            int count = inputStream.read();
+            return incrementCounterAndUpdateDisplay(count);
+        }
+ 
+    @Override
+        public int read(byte[] b, int off, int len) throws IOException {
+            int count = inputStream.read(b, off, len);
+            return incrementCounterAndUpdateDisplay(count);
+        }
+ 
+    @Override
+        public void close() throws IOException {
+            super.close();
+            if (closed)
+                throw new IOException("already closed");
+            closed = true;
+        }
+ 
+    private int incrementCounterAndUpdateDisplay(int count) {
+        if (count > 0)
+            progress += count;
+        lastUpdate = maybeUpdateDisplay(progress, lastUpdate);
+        return count;
+    }
+ 
+    private long maybeUpdateDisplay(long progress, long lastUpdate) {
+        if (progress - lastUpdate > TEN_KILOBYTES) {
+            lastUpdate = progress;
+            sendLong(PROGRESS_UPDATE, progress);
+        }
+        return lastUpdate;
+    }
+ 
+    public void sendLong(String key, long value) {
+        Bundle data = new Bundle();
+        data.putLong(key, value);
+     
+        Message message = Message.obtain();
+        message.setData(data);
+        handler.sendMessage(message);
+    }
 }
\ No newline at end of file
diff --git a/src/com/lc8n/blauploader/SoundRecorder.java b/src/com/lc8n/blauploader/SoundRecorder.java
index 8e6e7bd..e31fc9f 100644
--- a/src/com/lc8n/blauploader/SoundRecorder.java
+++ b/src/com/lc8n/blauploader/SoundRecorder.java
@@ -1,163 +1,163 @@
-package com.lc8n.blauploader;
-
-import java.io.File;
-
-import android.app.Activity;
-import android.app.ProgressDialog;
-import android.content.ContentValues;
-import android.content.Intent;
-import android.media.MediaRecorder;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.provider.MediaStore;
-import android.telephony.SmsManager;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Button;
-import android.widget.Toast;
-
-public class SoundRecorder extends Activity{
-
-	private MediaRecorder mediaRecorder; 
-	private String fileName;
-	private ProgressDialog progressDialog;
-	private long fileSize;
-	private Handler pbHandle = null;
-	public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.soundrecorder);
-
-        final Button recordButton = (Button) findViewById(R.id.Record);
-        recordButton.setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-				recordAudio();
-				Toast toast = Toast.makeText(getApplicationContext(), "Recording!", 10);
-				toast.show();
-			}
-		});
-        
-        final Button stopButton = (Button) findViewById(R.id.Stop);
-        stopButton.setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-				stopAudio();
-				Toast toast = Toast.makeText(getApplicationContext(), "Stopping!", 10);
-				toast.show();
-			}
-		});
-        
-        progressDialog = new ProgressDialog(this);
-		
-		
-		progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-		progressDialog.setMessage("Blauploading...");
-		progressDialog.setCancelable(true);
-		progressDialog.setProgress(0);
-		
-		pbHandle = new Handler(){
-			
-	        @Override					
-			public void handleMessage(Message msg) {
-			
-				/* get the value from the Message */
-				
-				long progress = msg.getData().getLong("progress_update");
-				System.out.println(progress+"/"+fileSize);
-				if(progress>(fileSize-10240))
-				{
-					progressDialog.dismiss();
-				}
-				float percent = (progress/fileSize)*100;
-				Integer intProgress = Math.round(percent);
-				if(intProgress==100)
-				{
-					progressDialog.dismiss();
-				}
-				else
-				{
-					progressDialog.show();
-					progressDialog.setProgress(intProgress);
-				}
-			}
-			};
-        
-	}
-	
-	public void recordAudio()
-	{
-		mediaRecorder = new MediaRecorder();
-		mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
-		mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
-		mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
-		ContentValues contentValues = new ContentValues(3);
-		contentValues.put(MediaStore.MediaColumns.TITLE, "Blauploaded from Android");
-		contentValues.put(MediaStore.MediaColumns.DATE_ADDED, System.currentTimeMillis());
-//		contentValues.put(MediaStore.MediaColumns.MIME_TYPE, mediaRecorder.)
-		
-		fileName = "/sdcard/blasound"+System.currentTimeMillis()+".3gp";
-		mediaRecorder.setOutputFile(fileName);
-		try {
-			mediaRecorder.prepare();
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		mediaRecorder.start();
-	}
-	
-	public void stopAudio()
-	{
-		mediaRecorder.stop();
-		mediaRecorder.release();
-		File recordedSound = new File(fileName);
-		fileSize = recordedSound.length();
-
-		
-		FileUpload fu = new FileUpload(recordedSound,pbHandle);
-		Thread thread = new Thread(fu);
-		
-		thread.start();
-		
-		SmsManager sms = SmsManager.getDefault();
-		sms.sendTextMessage("07927278978", null, "wjoe blauploaded a recording: http://www.blaupload.co.uk/"+recordedSound.getName(), null, null);
-	}
-	
-	@Override
-	public boolean onCreateOptionsMenu(Menu menu) {
-	    MenuInflater inflater = getMenuInflater();
-	    inflater.inflate(R.menu.menu, menu);
-	    return true;
-	}
-	
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-	    // Handle item selection
-	    switch (item.getItemId()) {
-	    case R.id.menuBrowse:
-	    	Intent browse = new Intent(this, FileBrowser.class);
-            startActivityForResult(browse, 0);
-	        return true;
-	    case R.id.menuRecord:
-//	    	Intent record = new Intent(this, SoundRecorder.class);
-//            startActivityForResult(record, 0);
-	        return true;
-	    case R.id.menuLocate:
-	    	Intent locate = new Intent(this, UploadLocation.class);
-            startActivityForResult(locate, 0);
-	        return true;    
-	    case R.id.menuExit:
-	    	this.finish();
-	    	break; 
-	    default:
-	        return super.onOptionsItemSelected(item);
-	        
-	    }
-	    return true;
-
-	}
-	
-}
+package com.lc8n.blauploader;
+
+import java.io.File;
+
+import android.app.Activity;
+import android.app.ProgressDialog;
+import android.content.ContentValues;
+import android.content.Intent;
+import android.media.MediaRecorder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.MediaStore;
+import android.telephony.SmsManager;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.Toast;
+
+public class SoundRecorder extends Activity{
+
+	private MediaRecorder mediaRecorder; 
+	private String fileName;
+	private ProgressDialog progressDialog;
+	private long fileSize;
+	private Handler pbHandle = null;
+	public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.soundrecorder);
+
+        final Button recordButton = (Button) findViewById(R.id.Record);
+        recordButton.setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+				recordAudio();
+				Toast toast = Toast.makeText(getApplicationContext(), "Recording!", 10);
+				toast.show();
+			}
+		});
+        
+        final Button stopButton = (Button) findViewById(R.id.Stop);
+        stopButton.setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+				stopAudio();
+				Toast toast = Toast.makeText(getApplicationContext(), "Stopping!", 10);
+				toast.show();
+			}
+		});
+        
+        progressDialog = new ProgressDialog(this);
+		
+		
+		progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+		progressDialog.setMessage("Blauploading...");
+		progressDialog.setCancelable(true);
+		progressDialog.setProgress(0);
+		
+		pbHandle = new Handler(){
+			
+	        @Override					
+			public void handleMessage(Message msg) {
+			
+				/* get the value from the Message */
+				
+				long progress = msg.getData().getLong("progress_update");
+				System.out.println(progress+"/"+fileSize);
+				if(progress>(fileSize-10240))
+				{
+					progressDialog.dismiss();
+				}
+				float percent = (progress/fileSize)*100;
+				Integer intProgress = Math.round(percent);
+				if(intProgress==100)
+				{
+					progressDialog.dismiss();
+				}
+				else
+				{
+					progressDialog.show();
+					progressDialog.setProgress(intProgress);
+				}
+			}
+			};
+        
+	}
+	
+	public void recordAudio()
+	{
+		mediaRecorder = new MediaRecorder();
+		mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
+		mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
+		mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
+		ContentValues contentValues = new ContentValues(3);
+		contentValues.put(MediaStore.MediaColumns.TITLE, "Blauploaded from Android");
+		contentValues.put(MediaStore.MediaColumns.DATE_ADDED, System.currentTimeMillis());
+//		contentValues.put(MediaStore.MediaColumns.MIME_TYPE, mediaRecorder.)
+		
+		fileName = "/sdcard/blasound"+System.currentTimeMillis()+".3gp";
+		mediaRecorder.setOutputFile(fileName);
+		try {
+			mediaRecorder.prepare();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		mediaRecorder.start();
+	}
+	
+	public void stopAudio()
+	{
+		mediaRecorder.stop();
+		mediaRecorder.release();
+		File recordedSound = new File(fileName);
+		fileSize = recordedSound.length();
+
+		
+		FileUpload fu = new FileUpload(recordedSound,pbHandle);
+		Thread thread = new Thread(fu);
+		
+		thread.start();
+		
+		SmsManager sms = SmsManager.getDefault();
+		sms.sendTextMessage("07927278978", null, "New sound recording blauploaded: http://www.blaupload.co.uk/"+recordedSound.getName(), null, null);
+	}
+	
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+	    MenuInflater inflater = getMenuInflater();
+	    inflater.inflate(R.menu.menu, menu);
+	    return true;
+	}
+	
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+	    // Handle item selection
+	    switch (item.getItemId()) {
+	    case R.id.menuBrowse:
+	    	Intent browse = new Intent(this, FileBrowser.class);
+            startActivityForResult(browse, 0);
+	        return true;
+	    case R.id.menuRecord:
+//	    	Intent record = new Intent(this, SoundRecorder.class);
+//            startActivityForResult(record, 0);
+	        return true;
+	    case R.id.menuLocate:
+	    	Intent locate = new Intent(this, UploadLocation.class);
+            startActivityForResult(locate, 0);
+	        return true;    
+	    case R.id.menuExit:
+	    	this.finish();
+	    	break; 
+	    default:
+	        return super.onOptionsItemSelected(item);
+	        
+	    }
+	    return true;
+
+	}
+	
+}
diff --git a/src/com/lc8n/blauploader/UploadLocation.java b/src/com/lc8n/blauploader/UploadLocation.java
index 99f1a08..3db3974 100644
--- a/src/com/lc8n/blauploader/UploadLocation.java
+++ b/src/com/lc8n/blauploader/UploadLocation.java
@@ -1,130 +1,129 @@
-package com.lc8n.blauploader;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.location.Criteria;
-import android.location.Location;
-import android.location.LocationListener;
-import android.location.LocationManager;
-import android.os.Bundle;
-import android.telephony.SmsManager;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Button;
-import android.widget.TextView;
-
-public class UploadLocation extends Activity {
-	
-	private TextView textLocation;
-	private double lat = 0;
-	private double lon = 0;
-	private MyLocationListener ll;
-	private LocationManager lm;
-	public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.uploadlocation);
-
-
-        
-        textLocation = (TextView) findViewById(R.id.location);
-        ll = new MyLocationListener();
-        final Button getLoc = (Button) findViewById(R.id.getlocation);
-        getLoc.setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-		        lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
-		        Criteria criteria = new Criteria();
-		        criteria.setAccuracy(Criteria.ACCURACY_FINE);
-		        criteria.setAltitudeRequired(false);
-		        criteria.setBearingRequired(false);
-		        String provider = lm.getBestProvider(criteria, true);
-		        
-		        ll = new MyLocationListener();
-		        lm.requestLocationUpdates(provider, 10000, 0, ll);
-				
-			}
-		});
-        
-        final Button uploadLoc = (Button) findViewById(R.id.uploadlocation);
-        uploadLoc.setOnClickListener(new View.OnClickListener() {
-			
-			public void onClick(View v) {
-				
-		    	SmsManager sms = SmsManager.getDefault();
-				sms.sendTextMessage("07927278978", null, "wjoe blauploaded his location: http://maps.google.com/maps?q="+lat+","+lon, null, null);
-				lm.removeUpdates(ll);
-			}
-		});
-	}
-	
-    private class MyLocationListener implements LocationListener
-    {
-
-    public void onLocationChanged(Location loc) {
-    if (loc != null) {
-
-
-    lat = (loc.getLatitude());
-    lon = (loc.getLongitude());
-    textLocation.setText(lat+", "+lon);
-
-        
-
-    }
-    }
-
-	public void onProviderDisabled(String provider) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void onProviderEnabled(String provider) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void onStatusChanged(String provider, int status, Bundle extras) {
-		// TODO Auto-generated method stub
-		
-	}
-    }
-    
-	@Override
-	public boolean onCreateOptionsMenu(Menu menu) {
-	    MenuInflater inflater = getMenuInflater();
-	    inflater.inflate(R.menu.menu, menu);
-	    return true;
-	}
-	
-	@Override
-	public boolean onOptionsItemSelected(MenuItem item) {
-	    // Handle item selection
-	    switch (item.getItemId()) {
-	    case R.id.menuBrowse:
-	    	Intent browse = new Intent(this, FileBrowser.class);
-            startActivityForResult(browse, 0);;
-	        return true;
-	    case R.id.menuRecord:
-	    	Intent record = new Intent(this, SoundRecorder.class);
-            startActivityForResult(record, 0);
-	        return true;
-	    case R.id.menuLocate:
-//	    	Intent locate = new Intent(this, UploadLocation.class);
-//            startActivityForResult(locate, 0);;
-	        return true;    
-	    case R.id.menuExit:
-	    	this.finish();
-	    	break; 
-	    default:
-	        return super.onOptionsItemSelected(item);
-	        
-	    }
-	    return true;
-
-	}
-    
-
-}
+package com.lc8n.blauploader;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.location.Criteria;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.os.Bundle;
+import android.telephony.SmsManager;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+public class UploadLocation extends Activity {
+	
+	private TextView textLocation;
+	private double lat = 0;
+	private double lon = 0;
+	private MyLocationListener ll;
+	private LocationManager lm;
+	public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.uploadlocation);
+
+
+        
+        textLocation = (TextView) findViewById(R.id.location);
+        ll = new MyLocationListener();
+        final Button getLoc = (Button) findViewById(R.id.getlocation);
+        getLoc.setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+		        lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
+		        Criteria criteria = new Criteria();
+		        criteria.setAltitudeRequired(false);
+		        criteria.setBearingRequired(false);
+		        String provider = lm.getBestProvider(criteria, true);
+		        
+		        ll = new MyLocationListener();
+		        lm.requestLocationUpdates(provider, 10000, 0, ll);
+				
+			}
+		});
+        
+        final Button uploadLoc = (Button) findViewById(R.id.uploadlocation);
+        uploadLoc.setOnClickListener(new View.OnClickListener() {
+			
+			public void onClick(View v) {
+				
+		    	SmsManager sms = SmsManager.getDefault();
+				sms.sendTextMessage("07927278978", null, "Current location: http://maps.google.com/maps?q="+lat+","+lon, null, null);
+				lm.removeUpdates(ll);
+			}
+		});
+	}
+	
+    private class MyLocationListener implements LocationListener
+    {
+
+    public void onLocationChanged(Location loc) {
+    if (loc != null) {
+
+
+    lat = (loc.getLatitude());
+    lon = (loc.getLongitude());
+    textLocation.setText(lat+", "+lon);
+
+        
+
+    }
+    }
+
+	public void onProviderDisabled(String provider) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void onProviderEnabled(String provider) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void onStatusChanged(String provider, int status, Bundle extras) {
+		// TODO Auto-generated method stub
+		
+	}
+    }
+    
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+	    MenuInflater inflater = getMenuInflater();
+	    inflater.inflate(R.menu.menu, menu);
+	    return true;
+	}
+	
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+	    // Handle item selection
+	    switch (item.getItemId()) {
+	    case R.id.menuBrowse:
+	    	Intent browse = new Intent(this, FileBrowser.class);
+            startActivityForResult(browse, 0);;
+	        return true;
+	    case R.id.menuRecord:
+	    	Intent record = new Intent(this, SoundRecorder.class);
+            startActivityForResult(record, 0);
+	        return true;
+	    case R.id.menuLocate:
+//	    	Intent locate = new Intent(this, UploadLocation.class);
+//            startActivityForResult(locate, 0);;
+	        return true;    
+	    case R.id.menuExit:
+	    	this.finish();
+	    	break; 
+	    default:
+	        return super.onOptionsItemSelected(item);
+	        
+	    }
+	    return true;
+
+	}
+    
+
+}
-- 
cgit v1.2.3