<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>BrightBerry-1.debug</filename>
    </added>
    <added>
      <filename>BrightBerry.cod</filename>
    </added>
    <added>
      <filename>BrightBerry.debug</filename>
    </added>
    <added>
      <filename>BrightBerry.jar</filename>
    </added>
    <added>
      <filename>src/mobi/bbhn/brightberry/DeleteObjectThread.java</filename>
    </added>
    <added>
      <filename>src/mobi/bbhn/brightberry/DeletePlacemarkThread.java</filename>
    </added>
    <added>
      <filename>src/mobi/bbhn/brightberry/Friends.java</filename>
    </added>
    <added>
      <filename>src/mobi/bbhn/brightberry/FriendsScreen.java</filename>
    </added>
    <added>
      <filename>src/mobi/bbhn/brightberry/PlacemarkCreateThread.java</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,6 @@
 &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
 &lt;classpath&gt;
-	&lt;classpathentry kind=&quot;src&quot; path=&quot;src&quot;/&gt;
+	&lt;classpathentry excluding=&quot;mobi/bbhn/brightberry/Friends.java|mobi/bbhn/brightberry/FriendsScreen.java&quot; kind=&quot;src&quot; path=&quot;src&quot;/&gt;
 	&lt;classpathentry kind=&quot;con&quot; path=&quot;org.eclipse.jdt.USER_LIBRARY/NET_RIM_BLACKBERRY&quot;/&gt;
 	&lt;classpathentry kind=&quot;src&quot; path=&quot;.tmp&quot;/&gt;
 	&lt;classpathentry kind=&quot;output&quot; path=&quot;bin&quot;/&gt;</diff>
      <filename>.classpath</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1 @@
-bin
-BrightBerry-1.debug
-BrightBerry.cod
-BrightBerry.debug
-BrightBerry.jar
\ No newline at end of file
+bin
\ No newline at end of file</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -1,20 +1,16 @@
 Manifest-Version: 1.0
-MIDlet-Version: 0.2.1
-MIDlet-Jar-Size: 289416
+MIDlet-Version: 0.2.2
+MIDlet-Jar-Size: 308540
 MicroEdition-Configuration: CLDC-1.1
 MIDlet-Jar-URL: BrightBerry.jar
 RIM-COD-Module-Dependencies: net_rim_cldc,net_rim_os,net_rim_bbapi_browser,net_rim_bbapi_invoke,net_rim_locationapi
-RIM-COD-URL-1: BrightBerry-1.cod
-RIM-COD-SHA1-1: d3 a4 36 49 ee 15 56 24 4f d4 99 a8 b7 54 b5 29 1a 64 3e 7e
-RIM-MIDlet-Flags-1: 0
-RIM-COD-Size-1: 48084
 RIM-COD-Module-Name: BrightBerry
 MIDlet-Name: BrightBerry
-RIM-COD-Size: 62880
-RIM-COD-Creation-Time: 1244589107
+RIM-COD-Size: 62212
+RIM-COD-Creation-Time: 1245119583
 MIDlet-1: BrightBerry,img/BKIcon.jpg,
 RIM-COD-URL: BrightBerry.cod
 MIDlet-Description: Unofficial Blackberry app for Brightkite using the REST-API
-RIM-COD-SHA1: 30 df 03 b9 b6 1f 48 2e 06 27 9d ac 4a b2 7c 0b bc 69 06 2d
+RIM-COD-SHA1: 4d b8 19 d5 42 09 7f 10 23 12 8d a1 d6 49 d9 d1 7d 8d 4e b8
 MicroEdition-Profile: MIDP-2.0
 MIDlet-Vendor: Hallgren Networks</diff>
      <filename>BrightBerry.jad</filename>
    </modified>
    <modified>
      <diff>@@ -17,6 +17,10 @@ AutoRestart=0
 ]
 [DefFiles
 ]
+[DependencyFiles
+src\mobi\bbhn\brightberry\Friends.java
+src\mobi\bbhn\brightberry\FriendsScreen.java
+]
 [DependsOn
 ]
 Description=Unofficial Blackberry app for Brightkite using the REST-API
@@ -49,6 +53,8 @@ src\mobi\bbhn\brightberry\Comments.java
 src\mobi\bbhn\brightberry\CommentScreen.java
 src\mobi\bbhn\brightberry\CommentsList.java
 src\mobi\bbhn\brightberry\CommentThread.java
+src\mobi\bbhn\brightberry\DeleteObjectThread.java
+src\mobi\bbhn\brightberry\DeletePlacemarkThread.java
 src\mobi\bbhn\brightberry\DirectMessageRcv.java
 src\mobi\bbhn\brightberry\DirectMessageRcvDeleteThread.java
 src\mobi\bbhn\brightberry\DirectMessageRcvList.java
@@ -59,6 +65,8 @@ src\mobi\bbhn\brightberry\DirectMessageSentDeleteThread.java
 src\mobi\bbhn\brightberry\DirectMessageSentList.java
 src\mobi\bbhn\brightberry\DirectMessageSentScreen.java
 src\mobi\bbhn\brightberry\DirectMessageSentThread.java
+src\mobi\bbhn\brightberry\Friends.java
+src\mobi\bbhn\brightberry\FriendsScreen.java
 src\mobi\bbhn\brightberry\HTTPPhoto.java
 src\mobi\bbhn\brightberry\ImageCache.java
 src\mobi\bbhn\brightberry\JournalListener.java
@@ -67,6 +75,7 @@ src\mobi\bbhn\brightberry\MainButton.java
 src\mobi\bbhn\brightberry\NetworkConfig.java
 src\mobi\bbhn\brightberry\OptionsScreen.java
 src\mobi\bbhn\brightberry\Placemark.java
+src\mobi\bbhn\brightberry\PlacemarkCreateThread.java
 src\mobi\bbhn\brightberry\PlacemarkList.java
 src\mobi\bbhn\brightberry\PlacemarkScreen.java
 src\mobi\bbhn\brightberry\PlacemarkUpdateThread.java
@@ -129,4 +138,4 @@ Title=BrightBerry
 Type=0
 UserData=|src
 Vendor=Hallgren Networks
-Version=0.2.1
+Version=0.2.2</diff>
      <filename>BrightBerry.jdp</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 MIDlet-Name: BrightBerry
-MIDlet-Version: 0.2.1
+MIDlet-Version: 0.2.2
 MIDlet-Vendor: Hallgren Networks
 MIDlet-Description: Unofficial Blackberry app for Brightkite using the REST-API
 MIDlet-Jar-URL: BrightBerry.jar</diff>
      <filename>BrightBerry.rapc</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,16 @@
+=== 0.2.2
+* New Features
+ * You can now delete your own notes/checkins/photos
+ * Adding a Thank you to the people that have donated money to keep this program alive
+ * Added a secret debug menu that can only be access on the StreamScreen. Code is &quot;debug&quot; and it allows you to access a BKobject directly
+ * Allows creation of placemarks from Search Screen and Place Stream
+ * Allowing Deletion of placemarks.
+ 
+* Fixes
+ * No longer displays &quot;Send Direct Message&quot; when your viewing yourself or posts created by yourself.
+ * Reformating the BKObjectScreen to not depend on the type to be passed in the constructor.
+ * Adding confirmation to deleting direct message received and sent
+
 === 0.2.1
 * New Features
  * Adding support to post notes and photos about a search/placemark location</diff>
      <filename>CHANGELOG.rdoc</filename>
    </modified>
    <modified>
      <diff>@@ -46,6 +46,8 @@ public class AboutScreen extends MainScreen {
         add(new SeparatorField());
         add(new RichTextField(&quot;Special Thanks to @thillerson, @doctorklein, @hiro, @sprouticus, @barkerja, @jemerick&quot;));
         add(new SeparatorField());
+        add(new RichTextField(&quot;Thank you for the following people who contributed to help fund BrightBerry: Daniel J, Andrew K, Brad T, Jayme M, Matthew H, Robert K, David C, and Marco F&quot;));
+        add(new SeparatorField());
         add(new RichTextField(&quot;Portions of code from BBPlacemarks written by Jason Emerick (@jemerick)&quot;));
         add(new SeparatorField());
         add(new RichTextField(&quot;This is not an official Brightkite app in no way does this application represent the views or opinions of Brightkite or No Sleep Media LLC.&quot;));</diff>
      <filename>src/mobi/bbhn/brightberry/AboutScreen.java</filename>
    </modified>
    <modified>
      <diff>@@ -53,10 +53,10 @@ public class BkObjectScreen extends MainScreen {
     BitmapField photoField = new BitmapField(loading, BitmapField.FIELD_HCENTER|BitmapField.FOCUSABLE|BitmapField.EDITABLE|HIGHLIGHT_FOCUS);
     BkObjectScreen screen = this;
     MenuItem commentItem;
+    LabelField title = new LabelField(&quot;BrightBerry Details&quot;, Field.FIELD_HCENTER);
     MenuItem refreshItem;
     ListField commentlist = new CommentListField();
     Font bold = Font.getDefault().derive(Font.BOLD);
-    private String type;
     private String body;
     private String creator;
     private String location;
@@ -69,134 +69,133 @@ public class BkObjectScreen extends MainScreen {
     private MenuItem viewDetailsItem;
     private MenuItem commentsDMItem;
 	private MenuItem ViewStreamItem;
+	private String type;
     protected boolean onSavePrompt() {
-            return true;
+        return true;
     }
 
     
-    public BkObjectScreen(String objectID, String type) {
-            String firstLetter = type.substring(0,1);  // Get first letter
-            String remainder   = type.substring(1);    // Get remainder of word.
-            this.type = firstLetter.toUpperCase() + remainder.toLowerCase();
-            Thread updateThread = new BkObjectThread(this.screen, objectID, type);
-            updateThread.start();
-            this.objectID = objectID;
-            
-            super.setTitle(new LabelField(&quot;BrightBerry &quot; + this.type + &quot; Details&quot;, Field.FIELD_HCENTER));
-            this.creatorField.setFont(this.bold);
-            
-            this.commentItem = new MenuItem(&quot;Post Comment&quot;, 5, 10) {
-                public void run() {
-                	UiApplication.getUiApplication().pushScreen(new PostCommentScreen(BkObjectScreen.this.objectID));
-                }
-            };
-            this.refreshItem = new MenuItem(&quot;Refresh&quot;, 6, 10) {
-                public void run() {
-                    refresh();
-                }
-            };
-            
-            this.viewDetailsItem = new MenuItem(&quot;View Comment Details&quot;, 1, 10) {
-                public void run() {
-                    String body = commentsStream[commentlist.getSelectedIndex()].getBody();
-                    String name = commentsStream[commentlist.getSelectedIndex()].getName();
-                    String created = commentsStream[commentlist.getSelectedIndex()].getCreated();
-                    UiApplication.getUiApplication().pushScreen(new CommentScreen(BkObjectScreen.this.objectID, name, body, created));
-                }
-            };
-            
-            
-            this.commentsDMItem = new MenuItem(&quot;Send Direct Message&quot;, 2, 10) {
-                public void run() {
-                    String name = commentsStream[commentlist.getSelectedIndex()].getName();
-                    UiApplication.getUiApplication().pushScreen(new SendDirectMessageScreen(name));
-                }
-            };
-            
-            this.ViewStreamItem = new MenuItem(&quot;View User Stream&quot;, 3, 10) {
-            	public void run() {
-            		String creator = commentsStream[commentlist.getSelectedIndex()].getName();
-        			UiApplication.getUiApplication().pushScreen(new StreamScreen(true, &quot;person&quot;, 0, creator));
-            	}
-            };
-            
-            addMenuItem(this.commentItem);
-            addMenuItem(MenuItem.separator(4));
-            addMenuItem(this.refreshItem);
+    public BkObjectScreen(String objectID) {
+        Thread updateThread = new BkObjectThread(this.screen, objectID);
+        updateThread.start();
+        this.objectID = objectID;
+        
+        super.setTitle(title);
+        this.creatorField.setFont(this.bold);
+        
+        this.commentItem = new MenuItem(&quot;Post Comment&quot;, 5, 10) {
+            public void run() {
+            	UiApplication.getUiApplication().pushScreen(new PostCommentScreen(BkObjectScreen.this.objectID));
+            }
+        };
+        this.refreshItem = new MenuItem(&quot;Refresh&quot;, 6, 10) {
+            public void run() {
+                refresh();
+            }
+        };
+        
+        this.viewDetailsItem = new MenuItem(&quot;View Comment Details&quot;, 1, 10) {
+            public void run() {
+                String body = commentsStream[commentlist.getSelectedIndex()].getBody();
+                String name = commentsStream[commentlist.getSelectedIndex()].getName();
+                String created = commentsStream[commentlist.getSelectedIndex()].getCreated();
+                UiApplication.getUiApplication().pushScreen(new CommentScreen(BkObjectScreen.this.objectID, name, body, created));
+            }
+        };
+        
+        
+        this.commentsDMItem = new MenuItem(&quot;Send Direct Message&quot;, 2, 10) {
+            public void run() {
+                String name = commentsStream[commentlist.getSelectedIndex()].getName();
+                UiApplication.getUiApplication().pushScreen(new SendDirectMessageScreen(name));
+            }
+        };
+        
+        this.ViewStreamItem = new MenuItem(&quot;View User Stream&quot;, 3, 10) {
+        	public void run() {
+        		String creator = commentsStream[commentlist.getSelectedIndex()].getName();
+    			UiApplication.getUiApplication().pushScreen(new StreamScreen(true, &quot;person&quot;, 0, creator));
+        	}
+        };
+        
+        addMenuItem(this.commentItem);
+        addMenuItem(MenuItem.separator(4));
+        addMenuItem(this.refreshItem);
     }
     
     public void refresh() {
             UiApplication.getUiApplication().popScreen(this);
-            UiApplication.getUiApplication().pushScreen(new BkObjectScreen(objectID, type));
+            UiApplication.getUiApplication().pushScreen(new BkObjectScreen(objectID));
     }
     
-    public void updateObject(String body, String creator, String location, String created_at_as_words, boolean about, String photo, int commentscount) {
-            if (body.length() &gt; 0) {
-                    this.body = body;
-            } else if (this.type.equals(&quot;Checkin&quot;)) {
-                    this.body = &quot;Checked in&quot;;
-            } else {
-                    this.body = &quot;&quot;;
-            }
-            this.created_at_as_words = created_at_as_words;
-            this.creator = creator;
-            this.location = location;
-            this.about = about;
-            this.photo = photo;
-            this.commentscount = commentscount;
-            UiApplication.getUiApplication().invokeLater(new Runnable() {
-                    public void run() {
-                            if (BkObjectScreen.this.commentscount &gt; 0) {
-                                    Thread comments = new CommentThread(BkObjectScreen.this.screen, BkObjectScreen.this.objectID);
-                                    comments.start();
-                            }
-                            BkObjectScreen.this.creatorField.setText(BkObjectScreen.this.creator);
-                            if (BkObjectScreen.this.about) {
-                                    BkObjectScreen.this.locationField.setText(&quot;about &quot; + BkObjectScreen.this.location);
-                            } else {
-                                    if (BkObjectScreen.this.location.startsWith(&quot;near&quot;)) {
-                                            BkObjectScreen.this.locationField.setText(BkObjectScreen.this.location);
-                                    } else {
-                                            BkObjectScreen.this.locationField.setText(&quot;@&quot; + BkObjectScreen.this.location);
-                                    }
-                            }
-                            BkObjectScreen.this.createdField.setText(BkObjectScreen.this.created_at_as_words + &quot; ago&quot;);
-                            BkObjectScreen.this.add(creatorField);
-                            if (BkObjectScreen.this.type.equals(&quot;Photo&quot;)){
-                                    Bitmap bmPhoto = HTTPPhoto.getPhoto(BkObjectScreen.this.photo);
-                                    if (bmPhoto != null) {
-                                            BkObjectScreen.this.photoField.setBitmap(bmPhoto);
-                                            BkObjectScreen.this.add(photoField);
-                                    }
-                            }
-                            if (BkObjectScreen.this.body.length() &gt; 0 &amp;&amp; BkObjectScreen.this.body.equals(&quot;null&quot;) == false) {
-                                    BkObjectScreen.this.bodyField.setText(BkObjectScreen.this.body);
-                                    BkObjectScreen.this.add(bodyField);
-                            }
-                            BkObjectScreen.this.add(new SeparatorField());
-                            BkObjectScreen.this.add(locationField);
-                            BkObjectScreen.this.add(new SeparatorField());
-                            BkObjectScreen.this.add(createdField);
+    public void updateObject(String type, String body, String creator, String location, String created_at_as_words, boolean about, String photo, int commentscount) {
+        this.type = type;
+    	if (body.length() &gt; 0) {
+                this.body = body;
+        } else if (type.equals(&quot;checkin&quot;)) {
+                this.body = &quot;Checked in&quot;;
+        } else {
+                this.body = &quot;&quot;;
+        }
+        this.created_at_as_words = created_at_as_words;
+        this.creator = creator;
+        this.location = location;
+        this.about = about;
+        this.photo = photo;
+        this.commentscount = commentscount;
+        UiApplication.getUiApplication().invokeLater(new Runnable() {
+            public void run() {
+        		if (BkObjectScreen.this.commentscount &gt; 0) {
+                    Thread comments = new CommentThread(BkObjectScreen.this.screen, BkObjectScreen.this.objectID);
+                    comments.start();
+                }
+                BkObjectScreen.this.creatorField.setText(BkObjectScreen.this.creator);
+                if (BkObjectScreen.this.about) {
+                	BkObjectScreen.this.locationField.setText(&quot;about &quot; + BkObjectScreen.this.location);
+                } else {
+                    if (BkObjectScreen.this.location.startsWith(&quot;near&quot;)) {
+                        BkObjectScreen.this.locationField.setText(BkObjectScreen.this.location);
+                    } else {
+                        BkObjectScreen.this.locationField.setText(&quot;@&quot; + BkObjectScreen.this.location);
+                    }
+                }
+                BkObjectScreen.this.createdField.setText(BkObjectScreen.this.created_at_as_words + &quot; ago&quot;);
+                BkObjectScreen.this.add(creatorField);
+                if (BkObjectScreen.this.type.equals(&quot;Photo&quot;)){
+                    Bitmap bmPhoto = HTTPPhoto.getPhoto(BkObjectScreen.this.photo);
+                    if (bmPhoto != null) {
+                        BkObjectScreen.this.photoField.setBitmap(bmPhoto);
+                        BkObjectScreen.this.add(photoField);
                     }
-            });
+                }
+                if (BkObjectScreen.this.body.length() &gt; 0 &amp;&amp; BkObjectScreen.this.body.equals(&quot;null&quot;) == false) {
+                    BkObjectScreen.this.bodyField.setText(BkObjectScreen.this.body);
+                    BkObjectScreen.this.add(bodyField);
+                }
+                BkObjectScreen.this.add(new SeparatorField());
+                BkObjectScreen.this.add(locationField);
+                BkObjectScreen.this.add(new SeparatorField());
+                BkObjectScreen.this.add(createdField);
+            }
+        });
     }
     
     public void updateComments(final Comments[] commentsStream) {
-            this.commentsStream = commentsStream;
-            UiApplication.getUiApplication().invokeLater(new Runnable() { 
-                    public void run() {
-                            BkObjectScreen.this.commentlist.setEmptyString(&quot;Nothing to see here&quot;, DrawStyle.LEFT);
-                            BkObjectScreen.this.commentlist.setSize(BkObjectScreen.this.commentsStream.length);
-                            BkObjectScreen.this.commentlist.setCallback(new CommentsCallback(BkObjectScreen.this.commentsStream));
-                            BkObjectScreen.this.commentlist.setRowHeight(ListField.ROW_HEIGHT_FONT*3);
-                            add(new SeparatorField());
-                            LabelField commentLabel = new LabelField(&quot;Comments (&quot; + commentscount + &quot;)&quot;, LabelField.FIELD_HCENTER|LabelField.NON_FOCUSABLE);
-                            commentLabel.setFont(Font.getDefault().derive(Font.BOLD, Font.getDefault().getHeight()+5));
-                            add(commentLabel);
-                            add(new SeparatorField());
-                            add(BkObjectScreen.this.commentlist);
-                    }
-            });
+        this.commentsStream = commentsStream;
+        UiApplication.getUiApplication().invokeLater(new Runnable() { 
+            public void run() {
+                BkObjectScreen.this.commentlist.setEmptyString(&quot;Nothing to see here&quot;, DrawStyle.LEFT);
+                BkObjectScreen.this.commentlist.setSize(BkObjectScreen.this.commentsStream.length);
+                BkObjectScreen.this.commentlist.setCallback(new CommentsCallback(BkObjectScreen.this.commentsStream));
+                BkObjectScreen.this.commentlist.setRowHeight(ListField.ROW_HEIGHT_FONT*3);
+                add(new SeparatorField());
+                LabelField commentLabel = new LabelField(&quot;Comments (&quot; + commentscount + &quot;)&quot;, LabelField.FIELD_HCENTER|LabelField.NON_FOCUSABLE);
+                commentLabel.setFont(Font.getDefault().derive(Font.BOLD, Font.getDefault().getHeight()+5));
+                add(commentLabel);
+                add(new SeparatorField());
+                add(BkObjectScreen.this.commentlist);
+            }
+        });
     }
     
 	public class CommentListField extends ListField {</diff>
      <filename>src/mobi/bbhn/brightberry/BkObjectScreen.java</filename>
    </modified>
    <modified>
      <diff>@@ -52,11 +52,9 @@ public class BkObjectThread extends Thread {
 	private int commentscount;
 	Settings settings = Settings.getInstance();
 
-	public BkObjectThread(BkObjectScreen screen, String objectID, String type) {
+	public BkObjectThread(BkObjectScreen screen, String objectID) {
 		this.screen = screen;
-		BkObjectThread tmp56_55 = this;
-		tmp56_55.url = tmp56_55.url + objectID + &quot;.json&quot;;
-		this.type = type;
+		this.url = this.url + objectID + &quot;.json&quot;;
 	}
 
 	public void run() {
@@ -79,7 +77,7 @@ public class BkObjectThread extends Thread {
 
 			this.serverResponse = buffer.toString();
 			parseJSON(this.serverResponse);
-			this.screen.updateObject(body, creator, location, created_at_as_words, about, photo, commentscount);
+			this.screen.updateObject(type, body, creator, location, created_at_as_words, about, photo, commentscount);
 	    } catch (IOException ex) {
 	    	ex.printStackTrace();
 	    }
@@ -91,6 +89,7 @@ public class BkObjectThread extends Thread {
 			objectStream = new JSONObject(json);
 			JSONObject placeStream = objectStream.getJSONObject(&quot;place&quot;);
 			JSONObject creatorStream = objectStream.getJSONObject(&quot;creator&quot;);
+			this.type = objectStream.getString(&quot;object_type&quot;);
 			if (placeStream.optString(&quot;display_location&quot;).length() &gt; 0 &amp;&amp; placeStream.optString(&quot;name&quot;).length() &lt; 1) {
 				this.location = placeStream.getString(&quot;display_location&quot;);
 			} else if (placeStream.optString(&quot;display_location&quot;).length() &gt; 0) {</diff>
      <filename>src/mobi/bbhn/brightberry/BkObjectThread.java</filename>
    </modified>
    <modified>
      <diff>@@ -34,7 +34,7 @@ import net.rim.device.api.ui.Color;
 import net.rim.device.api.ui.UiApplication;
 
 public class BrightBerry extends UiApplication {
-	static String version = &quot;0.2.1-ALPHA&quot;;
+	static String version = &quot;0.2.2-ALPHA&quot;;
 	static String gmkey = &quot;ABQIAAAAyqsOf4y12VmEo_2G0kkmUxRpIJO9csrDHHCYF6wRDNKwcymzzRQrUdTZ3AkMMnIbfqA_JKHMK0MjHw&quot;;
 	static String useragent = &quot;BrightBerry &quot; + version;
 	static int itembgcolor = Color.WHITE;</diff>
      <filename>src/mobi/bbhn/brightberry/BrightBerry.java</filename>
    </modified>
    <modified>
      <diff>@@ -77,11 +77,14 @@ public class DirectMessageRcvScreen extends MainScreen {
 	
 	MenuItem dltmenuItem = new MenuItem(&quot;Delete Message&quot;, 5, 10) {
 		public void run() {
-			int id = directMessage[msglist.getSelectedIndex()].getID();
-			Thread deletetrd = new DirectMessageRcvDeleteThread(id, DirectMessageRcvScreen.this.screen);
-			deletetrd.start();
-			deletedIndex = msglist.getSelectedIndex();
-			Status.show(&quot;Deleting message&quot;);
+			int sure = Dialog.ask(Dialog.D_YES_NO, &quot;Are you sure you want to delete this message?&quot;);
+			if (Dialog.YES == sure) {
+				int id = directMessage[msglist.getSelectedIndex()].getID();
+				Thread deletetrd = new DirectMessageRcvDeleteThread(id, DirectMessageRcvScreen.this.screen);
+				deletetrd.start();
+				deletedIndex = msglist.getSelectedIndex();
+				Status.show(&quot;Deleting message&quot;);
+			}
 		}
 	};
 	</diff>
      <filename>src/mobi/bbhn/brightberry/DirectMessageRcvScreen.java</filename>
    </modified>
    <modified>
      <diff>@@ -70,10 +70,13 @@ public class DirectMessageSentScreen extends MainScreen {
 	
 	MenuItem dltmenuItem = new MenuItem(&quot;Delete Message&quot;, 5, 10) {
 		public void run() {
-			int id = directMessage[msglist.getSelectedIndex()].getID();
-			Thread deletetrd = new DirectMessageSentDeleteThread(id, DirectMessageSentScreen.this.screen);
-			deletetrd.start();
-			Status.show(&quot;Deleting message&quot;);
+			int sure = Dialog.ask(Dialog.D_YES_NO, &quot;Are you sure you want to delete this message?&quot;);
+			if (Dialog.YES == sure) {
+				int id = directMessage[msglist.getSelectedIndex()].getID();
+				Thread deletetrd = new DirectMessageSentDeleteThread(id, DirectMessageSentScreen.this.screen);
+				deletetrd.start();
+				Status.show(&quot;Deleting message&quot;);
+			}
 		}
 	};
 	</diff>
      <filename>src/mobi/bbhn/brightberry/DirectMessageSentScreen.java</filename>
    </modified>
    <modified>
      <diff>@@ -34,21 +34,31 @@ import net.rim.device.api.util.Persistable;
 public class Placemark implements Persistable, Comparator {
 	private String name;
 	private String display_location;
-	private String id;
+	private String placeid;
 	private float latitude;
 	private float longitude;
+	private int placemarkid;
 
 	public Placemark() {
 	}
 
-	public Placemark(String name, String display_location, String id, float latitude, float longitude) {
+	public Placemark(int placemarkid, String placeid, String name, String display_location, float latitude, float longitude) {
+		this.placemarkid = placemarkid;
+		this.placeid = placeid;
 		this.name = name;
 		this.display_location = display_location;
-		this.id = id;
 		this.latitude = latitude;
 		this.longitude = longitude;
 	}
 
+	public int getPlacemarkID() {
+		return this.placemarkid;
+	}
+	
+	public String getPlaceID() {
+		return this.placeid;
+	}
+	
 	public String getName() {
 		return this.name;
 	}
@@ -56,10 +66,6 @@ public class Placemark implements Persistable, Comparator {
 	public String getDisplayLocation() {
 		return this.display_location;
 	}
-
-	public String getId() {
-		return this.id;
-	}
 	
 	public float getLatitude() {
 		return this.latitude;</diff>
      <filename>src/mobi/bbhn/brightberry/Placemark.java</filename>
    </modified>
    <modified>
      <diff>@@ -28,6 +28,7 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI
 OF SUCH DAMAGE.
 */
 
+
 import net.rim.device.api.system.Bitmap;
 import net.rim.device.api.system.Display;
 import net.rim.device.api.ui.DrawStyle;
@@ -47,7 +48,6 @@ class PlacemarkCallback implements ListFieldCallback {
 		int fontht = f.getHeight();
 		Bitmap drawbmp = Bitmap.getBitmapResource(&quot;img/icon_placemarks.gif&quot;);
 		int newy = (y+(drawbmp.getHeight()/2));
-		System.out.println (&quot;New Y; &quot; + newy);
 		g.drawBitmap(2, newy, drawbmp.getWidth(), drawbmp.getHeight(), drawbmp, 0, 0);
 		g.setFont(f.derive(Font.BOLD));
 		g.drawText(placemark[index].getName(), drawbmp.getWidth()+3, y, DrawStyle.ELLIPSIS);</diff>
      <filename>src/mobi/bbhn/brightberry/PlacemarkList.java</filename>
    </modified>
    <modified>
      <diff>@@ -34,6 +34,7 @@ import net.rim.device.api.ui.ContextMenu;
 import net.rim.device.api.ui.DrawStyle;
 import net.rim.device.api.ui.MenuItem;
 import net.rim.device.api.ui.UiApplication;
+import net.rim.device.api.ui.component.Dialog;
 import net.rim.device.api.ui.component.LabelField;
 import net.rim.device.api.ui.component.ListField;
 import net.rim.device.api.ui.component.RichTextField;
@@ -53,6 +54,8 @@ public class PlacemarkScreen extends MainScreen {
 	private MenuItem mapItem;
 	private MenuItem postnote;
 	private MenuItem postphoto;
+	private MenuItem deleteItem;
+	private boolean pldeleted;
 	protected boolean onSavePrompt() {
 		return true;
 	}
@@ -65,71 +68,64 @@ public class PlacemarkScreen extends MainScreen {
 		
 		this.checkinItem = new MenuItem(&quot;Checkin Here&quot;, 1, 10) {
 			public void run() {
-				if (PlacemarkScreen.this.list.getSelectedIndex() &gt; -1) {
-					Placemark[] places = settings.getPlacemarks();
-					String id = places[PlacemarkScreen.this.list.getSelectedIndex()].getId();
-					Thread checkinThread = new CheckInThread(id, &quot;placemark&quot;, PlacemarkScreen.this.screen);
-					checkinThread.start();
-				} else {
-					Status.show(&quot;No Placemark selected&quot;);
-				}
+				Placemark[] places = settings.getPlacemarks();
+				String id = places[PlacemarkScreen.this.list.getSelectedIndex()].getPlaceID();
+				Thread checkinThread = new CheckInThread(id, &quot;placemark&quot;, PlacemarkScreen.this.screen);
+				checkinThread.start();
 			}
 		};
 		
 		this.placestreamItem = new MenuItem(&quot;View Place Stream&quot;, 2, 10) {
 			public void run() {
-				if (PlacemarkScreen.this.list.getSelectedIndex() &gt; -1) {
-					Placemark[] places = settings.getPlacemarks();
-					String placeid = places[PlacemarkScreen.this.list.getSelectedIndex()].getId();
-					String placename = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
-					float latitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLatitude();
-					float longitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLongitude();
-					UiApplication.getUiApplication().pushScreen(new StreamScreen(true, &quot;place&quot;, 0, latitude, longitude, placeid, placename));
-				} else {
-					Status.show(&quot;No Placemark selected&quot;);
-				}
+				Placemark[] places = settings.getPlacemarks();
+				String placeid = places[PlacemarkScreen.this.list.getSelectedIndex()].getPlaceID();
+				String placename = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
+				float latitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLatitude();
+				float longitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLongitude();
+				UiApplication.getUiApplication().pushScreen(new StreamScreen(true, &quot;place&quot;, 0, latitude, longitude, placeid, placename));
 			}
 		};
 		
 		this.postnote = new MenuItem(&quot;Post Note About&quot;, 3, 10) {
 			public void run() {
-				if (PlacemarkScreen.this.list.getSelectedIndex() &gt; -1) {
-					Placemark[] places = settings.getPlacemarks();
-					String placeid = places[PlacemarkScreen.this.list.getSelectedIndex()].getId();
-					String placename = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
-					UiApplication.getUiApplication().pushScreen(new PostNoteScreen(placeid, placename));
-				} else {
-					Status.show(&quot;No Placemark selected&quot;);
-				}
+				Placemark[] places = settings.getPlacemarks();
+				String placeid = places[PlacemarkScreen.this.list.getSelectedIndex()].getPlaceID();
+				String placename = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
+				UiApplication.getUiApplication().pushScreen(new PostNoteScreen(placeid, placename));
 			}
 		};
 		
 		this.postphoto = new MenuItem(&quot;Post Photo About&quot;, 4, 10) {
 			public void run() {
-				if (PlacemarkScreen.this.list.getSelectedIndex() &gt; -1) {
-					Placemark[] places = settings.getPlacemarks();
-					String placeid = places[PlacemarkScreen.this.list.getSelectedIndex()].getId();
-					String placename = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
-					UiApplication.getUiApplication().pushScreen(new PostPhotoScreen(placeid, placename));
-				} else {
-					Status.show(&quot;No Placemark selected&quot;);
-				}
+				Placemark[] places = settings.getPlacemarks();
+				String placeid = places[PlacemarkScreen.this.list.getSelectedIndex()].getPlaceID();
+				String placename = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
+				UiApplication.getUiApplication().pushScreen(new PostPhotoScreen(placeid, placename));
 			}
 		};
 		
 		this.mapItem = new MenuItem(&quot;View on Blackberry Map&quot;, 5, 10) {
 			public void run() {
-				if (PlacemarkScreen.this.list.getSelectedIndex() &gt; -1) {
+				Placemark[] places = settings.getPlacemarks();
+				float latitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLatitude();
+				float longitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLongitude();
+				String label = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
+				String description = places[PlacemarkScreen.this.list.getSelectedIndex()].getDisplayLocation();
+	            String location = &quot;&lt;lbs&gt;&quot; + &quot;&lt;location lat='&quot; + (int)(latitude*100000) + &quot;' lon='&quot; + (int)(longitude*100000) + &quot;' label='&quot; + label  +&quot;' description='&quot; + description + &quot;'/&gt;&quot; + &quot;&lt;/lbs&gt;&quot;;
+	            System.out.println(&quot;Location string: &quot; + location);
+	            Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, new MapsArguments(MapsArguments.ARG_LOCATION_DOCUMENT, location));
+			}
+		};
+		
+		this.deleteItem = new MenuItem(&quot;Delete Placemark&quot;, 6, 10) {
+			public void run() {
+				int sure = Dialog.ask(Dialog.D_YES_NO, &quot;Are you sure you want to delete this placemark?&quot;);
+				if (Dialog.YES == sure) {
+					System.out.println(&quot;User Answered Yes&quot;);
 					Placemark[] places = settings.getPlacemarks();
-					float latitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLatitude();
-					float longitude = places[PlacemarkScreen.this.list.getSelectedIndex()].getLongitude();
-					String label = places[PlacemarkScreen.this.list.getSelectedIndex()].getName();
-					String description = places[PlacemarkScreen.this.list.getSelectedIndex()].getDisplayLocation();
-		            String location = &quot;&lt;lbs&gt;&quot; + &quot;&lt;location lat='&quot; + (int)(latitude*100000) + &quot;' lon='&quot; + (int)(longitude*100000) + &quot;' label='&quot; + label  +&quot;' description='&quot; + description + &quot;'/&gt;&quot; + &quot;&lt;/lbs&gt;&quot;;
-		            System.out.println(&quot;Location string: &quot; + location);
-		            Invoke.invokeApplication(Invoke.APP_TYPE_MAPS, new MapsArguments(MapsArguments.ARG_LOCATION_DOCUMENT, location));
-				} else {
-					Status.show(&quot;No Placemark selected&quot;);
+					int placemarkid = places[PlacemarkScreen.this.list.getSelectedIndex()].getPlacemarkID();
+					DeletePlacemarkThread delthread = new DeletePlacemarkThread(placemarkid, PlacemarkScreen.this);
+					delthread.start();
 				}
 			}
 		};
@@ -168,7 +164,6 @@ public class PlacemarkScreen extends MainScreen {
 	public void updateStatus(String message) {
 		this.message = message;
 		UiApplication.getUiApplication().invokeLater(new Runnable() {
-
 			public void run() {
 				Status.show(&quot;You successfully checked in at &quot; + PlacemarkScreen.this.message);
 				if (UiApplication.getUiApplication().getActiveScreen() == PlacemarkScreen.this) {
@@ -184,7 +179,6 @@ public class PlacemarkScreen extends MainScreen {
 			public void run() {
 				LabelField locationLabel = new LabelField(&quot;You're checked in @ &quot; + PlacemarkScreen.this.message);
 				PlacemarkScreen.this.setStatus(locationLabel);
-				//PlacemarkScreen.this.statusField.setText(&quot;You are currently checked in at &quot; + PlacemarkScreen.this.message);
 			}
 		});
 	}
@@ -195,8 +189,25 @@ public class PlacemarkScreen extends MainScreen {
 			public void run() { 
 				PlacemarkScreen.this.settings.setPlacemarks(PlacemarkScreen.this.placemarks);
 				Settings.save(PlacemarkScreen.this.settings);
-				UiApplication.getUiApplication().popScreen(PlacemarkScreen.this.screen);
-				UiApplication.getUiApplication().pushScreen(new PlacemarkScreen());
+				if (UiApplication.getUiApplication().getActiveScreen() == PlacemarkScreen.this) {
+					UiApplication.getUiApplication().popScreen(PlacemarkScreen.this.screen);
+					UiApplication.getUiApplication().pushScreen(new PlacemarkScreen());
+				}
+			}
+		});
+	}
+	
+	public void callDelete(boolean pldeleted) {
+		this.pldeleted = pldeleted;
+		UiApplication.getUiApplication().invokeLater(new Runnable() {
+			public void run() {
+				if (PlacemarkScreen.this.pldeleted) {
+					Status.show(&quot;Placemark Deleted, now updating Placemarks&quot;);
+					Thread updateThread = new PlacemarksUpdateThread(PlacemarkScreen.this.screen);
+					updateThread.start();
+				} else {
+					Dialog.alert(&quot;Error deleting Placemark&quot;);
+				}
 			}
 		});
 	}
@@ -208,6 +219,7 @@ public class PlacemarkScreen extends MainScreen {
 			contextMenu.addItem(postnote);
 			contextMenu.addItem(postphoto);
 			contextMenu.addItem(mapItem);
+			contextMenu.addItem(deleteItem);
 		}
 	}
 }
\ No newline at end of file</diff>
      <filename>src/mobi/bbhn/brightberry/PlacemarkScreen.java</filename>
    </modified>
    <modified>
      <diff>@@ -93,7 +93,8 @@ class PlacemarksUpdateThread extends Thread {
 				JSONObject jsonPlacemark = jsonArray.getJSONObject(x);
 				String placeName = jsonPlacemark.getString(&quot;placemark&quot;);
 				JSONObject jsonPlace = jsonPlacemark.getJSONObject(&quot;place&quot;);
-				String id = jsonPlace.getString(&quot;id&quot;);
+				String placeid = jsonPlace.getString(&quot;id&quot;);
+				int placemarkid = jsonPlacemark.getInt(&quot;id&quot;);
 				float latitude = (float)jsonPlace.getDouble(&quot;latitude&quot;);
 				float longitude = (float)jsonPlace.getDouble(&quot;longitude&quot;);
 				String name = jsonPlace.optString(&quot;name&quot;);
@@ -106,7 +107,7 @@ class PlacemarksUpdateThread extends Thread {
 				} else {
 					locationname = jsonPlace.getString(&quot;name&quot;); 
 				}
-				placemarks.addElement(new Placemark(placeName, locationname, id, latitude, longitude));
+				placemarks.addElement(new Placemark(placemarkid, placeid, placeName, locationname, latitude, longitude));
 			}
 			rv = new Placemark[jsonArray.length()];
 			placemarks.copyInto(rv);</diff>
      <filename>src/mobi/bbhn/brightberry/PlacemarkUpdateThread.java</filename>
    </modified>
    <modified>
      <diff>@@ -49,8 +49,7 @@ public class PostNoteThread extends Thread {
 	Settings settings = Settings.getInstance();
 	
 	public PostNoteThread(String id, String note, PostNoteScreen screen) {
-		PostNoteThread tmp56_55 = this;
-		tmp56_55.url = tmp56_55.url + id + &quot;/notes.json&quot;;
+		this.url = this.url + id + &quot;/notes.json&quot;;
 		URLEncodedPostData urlenc = new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, true);
 		urlenc.append(&quot;note[body]&quot;, note);
 		this.note = urlenc.toString();</diff>
      <filename>src/mobi/bbhn/brightberry/PostNoteThread.java</filename>
    </modified>
    <modified>
      <diff>@@ -34,6 +34,7 @@ import javax.microedition.location.LocationException;
 import javax.microedition.location.LocationProvider;
 import javax.microedition.location.QualifiedCoordinates;
 
+import net.rim.device.api.system.Bitmap;
 import net.rim.device.api.ui.ContextMenu;
 import net.rim.device.api.ui.DrawStyle;
 import net.rim.device.api.ui.Field;
@@ -41,11 +42,13 @@ import net.rim.device.api.ui.FieldChangeListener;
 import net.rim.device.api.ui.MenuItem;
 import net.rim.device.api.ui.UiApplication;
 import net.rim.device.api.ui.component.AutoTextEditField;
+import net.rim.device.api.ui.component.BasicEditField;
 import net.rim.device.api.ui.component.ButtonField;
 import net.rim.device.api.ui.component.Dialog;
 import net.rim.device.api.ui.component.LabelField;
 import net.rim.device.api.ui.component.ListField;
 import net.rim.device.api.ui.component.ObjectChoiceField;
+import net.rim.device.api.ui.component.SeparatorField;
 import net.rim.device.api.ui.component.Status;
 import net.rim.device.api.ui.container.MainScreen;
 
@@ -72,6 +75,8 @@ public class SearchPlaceScreen extends MainScreen {
 	MenuItem placestreamItem;
 	MenuItem postnote;
 	MenuItem postphoto;
+	MenuItem placemark;
+	private boolean plcreated;
 	protected boolean onSavePrompt() {
 		return true;
 	}
@@ -136,6 +141,33 @@ public class SearchPlaceScreen extends MainScreen {
 			}
 		};
 		
+		placemark = new MenuItem(&quot;Create Placemark&quot;, 5, 10) {
+			public void run() {
+				String placeid = searchPlaceResults[list.getSelectedIndex()].getId();
+				String plname = searchPlaceResults[list.getSelectedIndex()].getName();
+				if (plname.length() &gt; 20) {
+					plname = plname.substring(0, 19);
+				}
+				Dialog pldialog = new Dialog(Dialog.D_OK_CANCEL, &quot;Placemark this place:&quot;, 0, Bitmap.getPredefinedBitmap(Bitmap.INFORMATION), Dialog.GLOBAL_STATUS);
+				BasicEditField placename = new BasicEditField(&quot;&quot;, plname, 20, BasicEditField.NO_NEWLINE);
+				pldialog.add(placename);
+				pldialog.add(new SeparatorField());
+				pldialog.add(new LabelField(&quot;Give your placemark a name. For example, \&quot;home\&quot;, \&quot;work\&quot;, \&quot;hockey rink\&quot;&quot;));
+				int answer = pldialog.doModal();
+				System.out.println(&quot;PD: &quot; + answer);
+				System.out.println(&quot;Length: &quot; + placename.getText().length());
+				if (answer == Dialog.OK) {
+					if (placename.getText().length() &lt; 2) {
+						Dialog.alert(&quot;Placemark name must be greater than 2 characters&quot;);
+					} else {
+						PlacemarkCreateThread plcreate = new PlacemarkCreateThread(placeid, placename.getText(), SearchPlaceScreen.this);
+						plcreate.start();
+					}
+					System.out.println(&quot;Text: &quot; + placename.getText());
+				}
+			}
+		};
+		
 		this.searchButtonField.setChangeListener(listener);
 		add(this.searchButtonField);
 		addMenuItem(GPSItem);
@@ -238,6 +270,20 @@ public class SearchPlaceScreen extends MainScreen {
 			contextMenu.addItem(placestreamItem);
 			contextMenu.addItem(postnote);
 			contextMenu.addItem(postphoto);
+			contextMenu.addItem(placemark);
 		}
 	}
+	
+	public void plCreated(boolean success) {
+		this.plcreated = success;
+		UiApplication.getUiApplication().invokeLater(new Runnable() {
+			public void run() {
+				if (SearchPlaceScreen.this.plcreated) {
+					Dialog.alert(&quot;Placemark Created&quot;);
+				} else {
+					Dialog.alert(&quot;Unable to create placemark&quot;);
+				}
+			}
+		});
+	}
 }
\ No newline at end of file</diff>
      <filename>src/mobi/bbhn/brightberry/SearchPlaceScreen.java</filename>
    </modified>
    <modified>
      <diff>@@ -35,8 +35,10 @@ import net.rim.device.api.ui.ContextMenu;
 import net.rim.device.api.ui.DrawStyle;
 import net.rim.device.api.ui.Field;
 import net.rim.device.api.ui.FieldChangeListener;
+import net.rim.device.api.ui.Keypad;
 import net.rim.device.api.ui.MenuItem;
 import net.rim.device.api.ui.UiApplication;
+import net.rim.device.api.ui.component.BasicEditField;
 import net.rim.device.api.ui.component.BitmapField;
 import net.rim.device.api.ui.component.ButtonField;
 import net.rim.device.api.ui.component.Dialog;
@@ -59,8 +61,14 @@ public class StreamScreen extends MainScreen {
 			contextMenu.addItem(new ViewMapMenuItem());
 			contextMenu.addItem(MenuItem.separator(8));
 			contextMenu.addItem(new CheckinMenuItem());
+			contextMenu.addItem(new CreatePlacemark());
 		}
     };
+    BasicEditField debugpost = new BasicEditField(&quot;Go to post: &quot;, &quot;&quot;) {
+		protected void makeContextMenu(ContextMenu contextMenu) {
+    		contextMenu.addItem(new DebugMenuItem());
+		}
+	};
 	Settings settings = Settings.getInstance();
 	MenuItem refreshItem;
 	StreamScreen screen = this;
@@ -80,6 +88,10 @@ public class StreamScreen extends MainScreen {
 	private String placeid;
 	private String placename;
 	private String message;
+	private boolean deleted;
+	private String deletedtype;
+	private int debugger;
+	private boolean plcreated;
 	static boolean BKauth;
 	
 	// Regular constructor
@@ -286,8 +298,7 @@ public class StreamScreen extends MainScreen {
 		
 		public void run() {
 			String objectID = stream[list.getSelectedIndex()].getId();
-			String type = stream[list.getSelectedIndex()].getType();
-			UiApplication.getUiApplication().pushScreen(new BkObjectScreen(objectID, type));
+			UiApplication.getUiApplication().pushScreen(new BkObjectScreen(objectID));
 		}
 	}
 	
@@ -409,6 +420,53 @@ public class StreamScreen extends MainScreen {
 		}
 	}
 	
+	public final class DeleteObjectMenuItem extends MenuItem {
+		public DeleteObjectMenuItem() {
+			super(&quot;Delete &quot; +  StreamScreen.this.stream[StreamScreen.this.list.getSelectedIndex()].getType().toUpperCase().substring(0, 1) + StreamScreen.this.stream[StreamScreen.this.list.getSelectedIndex()].getType().substring(1), 8, 1);
+		}
+		
+		public void run() {
+			String type = StreamScreen.this.stream[StreamScreen.this.list.getSelectedIndex()].getType().toUpperCase().substring(0, 1) + StreamScreen.this.stream[StreamScreen.this.list.getSelectedIndex()].getType().substring(1);
+			int sure = Dialog.ask(Dialog.D_YES_NO, &quot;Are you sure you want to delete this &quot; + type + &quot;?&quot;);
+			if (Dialog.YES == sure) {
+				String objectid = stream[list.getSelectedIndex()].getId();
+				DeleteObjectThread delthread = new DeleteObjectThread(objectid, StreamScreen.this.screen, type);
+				delthread.start();
+			}
+		}
+	}
+	
+	public final class CreatePlacemark extends MenuItem {
+		public CreatePlacemark() {
+			super(&quot;Add To Placemarks&quot;, 9, 1);
+		}
+		
+		public void run() {
+			String placeid = StreamScreen.this.placeid;
+			String plname = StreamScreen.this.placename;
+			if (plname.length() &gt; 20) {
+				plname = plname.substring(0, 19);
+			}
+			Dialog pldialog = new Dialog(Dialog.D_OK_CANCEL, &quot;Placemark this place:&quot;, 0, Bitmap.getPredefinedBitmap(Bitmap.INFORMATION), Dialog.GLOBAL_STATUS);
+			BasicEditField placename = new BasicEditField(&quot;&quot;, plname, 20, BasicEditField.NO_NEWLINE);
+			pldialog.add(placename);
+			pldialog.add(new SeparatorField());
+			pldialog.add(new LabelField(&quot;Give your placemark a name. For example, \&quot;home\&quot;, \&quot;work\&quot;, \&quot;hockey rink\&quot;&quot;));
+			int answer = pldialog.doModal();
+			System.out.println(&quot;PD: &quot; + answer);
+			System.out.println(&quot;Length: &quot; + placename.getText().length());
+			if (answer == Dialog.OK) {
+				if (placename.getText().length() &lt; 2) {
+					Dialog.alert(&quot;Placemark name must be greater than 2 characters&quot;);
+				} else {
+					PlacemarkCreateThread plcreate = new PlacemarkCreateThread(placeid, placename.getText(), StreamScreen.this);
+					plcreate.start();
+				}
+				System.out.println(&quot;Text: &quot; + placename.getText());
+			}
+		}
+	}
+	
 	public void updateStatus(String message) {
 		this.message = message;
 		UiApplication.getUiApplication().invokeLater(new Runnable() {
@@ -423,6 +481,13 @@ public class StreamScreen extends MainScreen {
 	
 	public class StreamListField extends ListField {
 		protected void makeContextMenu(ContextMenu contextMenu) {
+			String creator = StreamScreen.this.stream[StreamScreen.this.list.getSelectedIndex()].getCreator();
+			if (StreamScreen.this.settings.getUsername().equals(creator) == false) {
+				contextMenu.addItem(new SendDirectMessageMenuItem());
+			} else {
+				contextMenu.addItem(MenuItem.separator(8));
+				contextMenu.addItem(new DeleteObjectMenuItem());
+			}
 			if (StreamScreen.this.streamtoview.equals(&quot;place&quot;) == false) {
 				contextMenu.addItem(new ViewMapMenuItem());
 				contextMenu.addItem(new ViewPlaceItem());
@@ -430,10 +495,71 @@ public class StreamScreen extends MainScreen {
 			contextMenu.addItem(new ViewMoreMenuItem());
 			contextMenu.addItem(new FullTextMenuItem());
 			contextMenu.addItem(new PostCommentMenuItem());
-			contextMenu.addItem(new SendDirectMessageMenuItem());
 			if (StreamScreen.this.streamtoview.equals(&quot;person&quot;) == false) {
 				contextMenu.addItem(new ViewStreamItem());
 			}
 		}
 	}
+	
+	public void callDelete(boolean deleted, String type) {
+		this.deleted = deleted;
+		this.deletedtype = type;
+		UiApplication.getUiApplication().invokeLater(new Runnable() {
+			public void run() {
+				if (StreamScreen.this.deleted) {
+					Status.show(StreamScreen.this.deletedtype + &quot; deleted&quot;);
+					StreamScreen.this.refresh();
+				} else {
+					Status.show(&quot;Unable to delete &quot; + StreamScreen.this.deletedtype.toLowerCase());
+				}
+			}
+		});
+	}
+	
+	public boolean keyDown(int keycode, int time) {
+		char test = Keypad.map(keycode);
+		String mytest = &quot;&quot; + test;
+		if (mytest.equals(&quot;d&quot;) &amp;&amp; this.debugger == 0) {
+			this.debugger = 1;
+		} else if (mytest.equals(&quot;e&quot;) &amp;&amp; this.debugger == 1) {
+			this.debugger = 2;
+		} else if (mytest.equals(&quot;b&quot;) &amp;&amp; this.debugger == 2) {
+			this.debugger = 3;
+		} else if (mytest.equals(&quot;u&quot;) &amp;&amp; this.debugger == 3) {
+			this.debugger = 4;
+		} else if (mytest.equals(&quot;g&quot;) &amp;&amp; this.debugger == 4) {
+			add(new SeparatorField());
+			add(debugpost);
+		} else {
+			this.debugger = 0;
+		}
+		return false;
+	}
+	
+	public final class DebugMenuItem extends MenuItem {
+		public DebugMenuItem() {
+			super(&quot;Go to Debug Post&quot;, 1, 1);
+		}
+		
+		public void run() {
+			UiApplication.getUiApplication().pushScreen(new BkObjectScreen(debugpost.getText()));
+		}
+	}
+	
+	public void plCreated(boolean success) {
+		this.plcreated = success;
+		UiApplication.getUiApplication().invokeLater(new Runnable() {
+			public void run() {
+				if (StreamScreen.this.plcreated) {
+					Dialog.alert(&quot;Placemark Created&quot;);
+				} else {
+					Dialog.alert(&quot;Unable to create placemark&quot;);
+				}
+			}
+		});
+	}
+	
+	protected boolean onSavePrompt() {
+		return true;
+	}
 }</diff>
      <filename>src/mobi/bbhn/brightberry/StreamScreen.java</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>b2f2b892ce207fcc5a6e7b9c79f64da0a092f8fd</id>
    </parent>
  </parents>
  <author>
    <name>Chris Hallgren</name>
    <email>challgren@hallgrennetwork.com</email>
  </author>
  <url>http://github.com/challgren/brightberry/commit/712785a42721ca9c75f1753121f353ca7eb4128a</url>
  <id>712785a42721ca9c75f1753121f353ca7eb4128a</id>
  <committed-date>2009-06-15T19:45:57-07:00</committed-date>
  <authored-date>2009-06-15T19:45:57-07:00</authored-date>
  <message>Version 0.2.2 - See changelog. Also Friend* is still in the works excluded from the build at this time</message>
  <tree>1df45647cbcd8d2d88f61ac979b8fd43c05b0c7e</tree>
  <committer>
    <name>Chris Hallgren</name>
    <email>challgren@hallgrennetwork.com</email>
  </committer>
</commit>
