<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -16,6 +16,9 @@ object PrefKeys {
   
   val HIGHEST_ID        = &quot;highestId&quot;
   val HIGHEST_MENTION_ID= &quot;highestMentionId&quot;
+  val HIGHEST_RETWEET_OF_ME_ID= &quot;highestRetweetOfMeId&quot;
+  val HIGHEST_RETWEET_BY_ME_ID= &quot;highestRetweetByMeId&quot;
+  val HIGHEST_RETWEET_TO_ME_ID= &quot;highestRetweetToMeId&quot;
   val HIGHEST_RECEIVED_DM_ID = &quot;highestReceivedDmId&quot;
   val HIGHEST_SENT_DM_ID     = &quot;highestSentDmId&quot;
   </diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/state/PrefKeys.scala</filename>
    </modified>
    <modified>
      <diff>@@ -5,17 +5,24 @@ import org.talkingpuffin.state.PrefKeys._
 import org.talkingpuffin.twitter.AuthenticatedSession
 
 class DataProviders(val twitterSession: AuthenticatedSession, prefs: Preferences, progress: LongOpListener) {
-  val prefKeys = List(HIGHEST_ID, HIGHEST_MENTION_ID, HIGHEST_RECEIVED_DM_ID, HIGHEST_SENT_DM_ID)
+  val prefKeys = List(HIGHEST_ID, HIGHEST_MENTION_ID, HIGHEST_RETWEET_OF_ME_ID, 
+    HIGHEST_RETWEET_BY_ME_ID, HIGHEST_RETWEET_TO_ME_ID, 
+    HIGHEST_RECEIVED_DM_ID, HIGHEST_SENT_DM_ID)
 
   private def getHighest(idx: Int): Option[Long] = 
     prefs.get(prefKeys(idx), null) match {case null =&gt; None; case v =&gt; Some(v.toLong)} 
 
   val followingProvider = new FollowingProvider(twitterSession, getHighest(0), progress)
   val mentionsProvider  = new MentionsProvider (twitterSession, getHighest(1), progress)
-  val dmsReceivedProvider = new DmsReceivedProvider (twitterSession, getHighest(2), progress)
-  val dmsSentProvider = new DmsSentProvider (twitterSession, getHighest(3), progress)
+  val retweetsOfMeProvider  = new RetweetsOfMeProvider (twitterSession, getHighest(2), progress)
+  val retweetedByMeProvider  = new RetweetedByMeProvider (twitterSession, getHighest(3), progress)
+  val retweetedToMeProvider  = new RetweetedToMeProvider (twitterSession, getHighest(4), progress)
+  val dmsReceivedProvider = new DmsReceivedProvider (twitterSession, getHighest(5), progress)
+  val dmsSentProvider = new DmsSentProvider (twitterSession, getHighest(6), progress)
 
-  val providers = List(followingProvider, mentionsProvider, dmsReceivedProvider, dmsSentProvider)
+  val providers = List(followingProvider, mentionsProvider, retweetsOfMeProvider, 
+    retweetedByMeProvider, retweetedToMeProvider, dmsReceivedProvider, dmsSentProvider)
+  val autoStartProviders = List(followingProvider, mentionsProvider, dmsReceivedProvider)
   val providersAndPrefKeys = providers zip prefKeys
   
   def stop = providers.foreach(_.stop)</diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/ui/DataProviders.scala</filename>
    </modified>
    <modified>
      <diff>@@ -17,7 +17,7 @@ class Streams(val service: String, val twitterSession: AuthenticatedSession,
   
   var views = List[View]()
   
-  providers.providers.foreach(provider =&gt; {
+  providers.autoStartProviders.foreach(provider =&gt; {
     createView(provider, None)
     provider.loadNewData
   })</diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/ui/Streams.scala</filename>
    </modified>
    <modified>
      <diff>@@ -43,7 +43,9 @@ class TopFrame(service: String, twitterSession: AuthenticatedSession) extends Fr
   title = Main.title + &quot; - &quot; + service + &quot; &quot; + twitterSession.user
   menuBar = new MainMenuBar(streams.providers, tagUsers)
   reactions += {
-    case e: NewViewEvent =&gt; streams.createView(e.provider, None)
+    case e: NewViewEvent =&gt; 
+      streams.createView(e.provider, None)
+      e.provider.loadNewData
   }
   listenTo(menuBar)
 </diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/ui/TopFrame.scala</filename>
    </modified>
    <modified>
      <diff>@@ -25,6 +25,24 @@ class MentionsProvider(session: AuthenticatedSession, startingId: Option[Long],
   override def updateFunc:(TwitterArgs) =&gt; List[TwitterStatus] = session.getReplies
 }
 
+class RetweetsOfMeProvider(session: AuthenticatedSession, startingId: Option[Long], 
+    longOpListener: LongOpListener)
+    extends TweetsProvider(session, startingId, &quot;RTs of Me&quot;, longOpListener) {
+  override def updateFunc:(TwitterArgs) =&gt; List[TwitterStatus] = session.getRetweetsOfMe
+}
+
+class RetweetedByMeProvider(session: AuthenticatedSession, startingId: Option[Long], 
+    longOpListener: LongOpListener)
+    extends TweetsProvider(session, startingId, &quot;RTs by Me&quot;, longOpListener) {
+  override def updateFunc:(TwitterArgs) =&gt; List[TwitterStatus] = session.getRetweetedByMe
+}
+
+class RetweetedToMeProvider(session: AuthenticatedSession, startingId: Option[Long], 
+    longOpListener: LongOpListener)
+    extends TweetsProvider(session, startingId, &quot;RTs to Me&quot;, longOpListener) {
+  override def updateFunc:(TwitterArgs) =&gt; List[TwitterStatus] = session.getRetweetedToMe
+}
+
 class DmsReceivedProvider(session: AuthenticatedSession, startingId: Option[Long], 
     longOpListener: LongOpListener)
     extends DataProvider(session, startingId, &quot;DMs Rcvd&quot;, longOpListener) {</diff>
      <filename>desktop/src/main/scala/org/talkingpuffin/ui/TweetsProvider.scala</filename>
    </modified>
    <modified>
      <diff>@@ -15,11 +15,13 @@ class AuthenticatedSession(val user: String, val password: String, val apiURL: S
 
   override def httpPublisher = http
   
+  implicit def page2TwitterArgs(page: Int) = TwitterArgs.page(page) 
+
+  
   /**
   * @param id the user id &lt;i&gt;or&lt;/i&gt; user name of the desired friends timeline
   */
   def getFriendsTimeline(id: String): List[TwitterStatus] = getFriendsTimeline(id,TwitterArgs())
-  def getFriendsTimeline(id: String,page: Int): List[TwitterStatus] = getFriendsTimeline(id,TwitterArgs.page(page))
 
   def getFriendsTimeline(id: String, args:TwitterArgs): List[TwitterStatus] = {
     parse(&quot;/statuses/friends_timeline/&quot; + urlEncode(id) + &quot;.xml&quot; + args, 
@@ -27,14 +29,12 @@ class AuthenticatedSession(val user: String, val password: String, val apiURL: S
   }
 
   def getFriendsTimeline(): List[TwitterStatus] = getFriendsTimeline(user,TwitterArgs())
-  def getFriendsTimeline(page: Int): List[TwitterStatus] = getFriendsTimeline(user,TwitterArgs.page(page))
   def getFriendsTimeline(args:TwitterArgs): List[TwitterStatus] = getFriendsTimeline(user,args)
 
   /**
   * @param id the user id &lt;i&gt;or&lt;/i&gt; user name of the desired user's timeline
   */
   def getUserTimeline(id: String): List[TwitterStatus] = getUserTimeline(id,TwitterArgs())
-  def getUserTimeline(id: String, page: Int): List[TwitterStatus] = getUserTimeline(id,TwitterArgs.page(page))
 
   def getUserTimeline(id: String, args: TwitterArgs): List[TwitterStatus] = {
     parse(&quot;/statuses/user_timeline/&quot; + urlEncode(id) + &quot;.xml&quot; + args,  
@@ -45,7 +45,6 @@ class AuthenticatedSession(val user: String, val password: String, val apiURL: S
   * @param id the user id &lt;i&gt;or&lt;/i&gt; user name of the desired user's timeline with retweets
   */
   def getHomeTimeline(id: String): List[TwitterStatus] = getHomeTimeline(id,TwitterArgs())
-  def getHomeTimeline(id: String, page: Int): List[TwitterStatus] = getHomeTimeline(id,TwitterArgs.page(page))
 
   def getHomeTimeline(id: String, args: TwitterArgs): List[TwitterStatus] = {
     parse(&quot;/statuses/home_timeline/&quot; + urlEncode(id) + &quot;.xml&quot; + args, TwitterStatus.apply,
@@ -65,21 +64,18 @@ class AuthenticatedSession(val user: String, val password: String, val apiURL: S
   }
 
   def getRetweetedByMe(): List[TwitterStatus] = getRetweetedByMe(TwitterArgs())
-  def getRetweetedByMe(page: Int): List[TwitterStatus] = getRetweetedByMe(TwitterArgs.page(page))
 
   def getRetweetedByMe(args: TwitterArgs): List[TwitterStatus] = {
     parse(&quot;/statuses/retweeted_by_me.xml&quot; + args, TwitterStatus.apply, &quot;status&quot;).list
   }
 
   def getRetweetedToMe(): List[TwitterStatus] = getRetweetedToMe(TwitterArgs())
-  def getRetweetedToMe(page: Int): List[TwitterStatus] = getRetweetedToMe(TwitterArgs.page(page))
 
   def getRetweetedToMe(args: TwitterArgs): List[TwitterStatus] = {
     parse(&quot;/statuses/retweeted_to_me.xml&quot; + args, TwitterStatus.apply, &quot;status&quot;).list
   }
-
+  
   def getRetweetsOfMe(): List[TwitterStatus] = getRetweetsOfMe(TwitterArgs())
-  def getRetweetsOfMe(page: Int): List[TwitterStatus] = getRetweetsOfMe(TwitterArgs.page(page))
 
   def getRetweetsOfMe(args: TwitterArgs): List[TwitterStatus] = {
     parse(&quot;/statuses/retweets_of_me.xml&quot; + args, TwitterStatus.apply, &quot;status&quot;).list
@@ -93,21 +89,14 @@ class AuthenticatedSession(val user: String, val password: String, val apiURL: S
         TwitterUser.apply).parseXMLElement()
   }
 
-  def getUserDetail(): TwitterUser = {
-    getUserDetail(user)
-  }
+  def getUserDetail(): TwitterUser = getUserDetail(user)
   
   def getReplies(): List[TwitterStatus] = {
     parse(&quot;/statuses/replies.xml&quot;, TwitterStatus.apply, &quot;status&quot;).list
   }
   
-  def getReplies(page: Int): List[TwitterStatus] = {
-    getReplies(TwitterArgs.page(page))
-  }
-
   def getReplies(args: TwitterArgs): List[TwitterStatus] = {
-    parse(&quot;/statuses/replies.xml&quot; + args,
-        TwitterStatus.apply, &quot;status&quot;).list
+    parse(&quot;/statuses/replies.xml&quot; + args, TwitterStatus.apply, &quot;status&quot;).list
   }
 
   def getFriends(): XmlResult[TwitterUser] = getFriends(TwitterArgs())
@@ -138,13 +127,7 @@ class AuthenticatedSession(val user: String, val password: String, val apiURL: S
   def getFollowersIds(args: TwitterArgs): XmlResult[TwitterUserId] = 
       parse(&quot;/followers/ids.xml&quot; + args, TwitterUserId.apply, &quot;ids&quot;, &quot;id&quot;)
   
-  def getDirectMessages(): List[TwitterMessage] = {
-    getDirectMessages(TwitterArgs())
-  }
-
-  def getDirectMessages(page: Int): List[TwitterMessage] = {
-    getDirectMessages(TwitterArgs.page(page))
-  }
+  def getDirectMessages(): List[TwitterMessage] = getDirectMessages(TwitterArgs())
 
   def getDirectMessages(args: TwitterArgs): List[TwitterMessage] = {
     parse(&quot;/direct_messages.xml&quot; + args, TwitterMessage.apply, &quot;direct_message&quot;).list</diff>
      <filename>twitter-api/src/main/scala/org/talkingpuffin/twitter/AuthenticatedSession.scala</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>757cb2c08bb874681d601eb4befda1f0a37e37a6</id>
    </parent>
  </parents>
  <author>
    <name>Dave Briccetti</name>
    <email>daveb@davebsoft.com</email>
  </author>
  <url>http://github.com/dcbriccetti/talking-puffin/commit/f29be78908b3ecbca9212ce7a99b5d2f1d613bce</url>
  <id>f29be78908b3ecbca9212ce7a99b5d2f1d613bce</id>
  <committed-date>2009-11-06T00:43:43-08:00</committed-date>
  <authored-date>2009-11-06T00:43:43-08:00</authored-date>
  <message>Add three new retweet views (their DataProviders not turned on automatically). Use an implicit conversion to remove a lot of boilerplate methods in the Twitter API library.</message>
  <tree>690ae3f715004d905a9887d7a14c38d57e762702</tree>
  <committer>
    <name>Dave Briccetti</name>
    <email>daveb@davebsoft.com</email>
  </committer>
</commit>
