aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/twitter/task/Searches.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/twitter/task/Searches.kt')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/twitter/task/Searches.kt51
1 files changed, 51 insertions, 0 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/twitter/task/Searches.kt b/app/src/main/java/net/lacolaco/smileessence/twitter/task/Searches.kt
new file mode 100644
index 00000000..9ea1792b
--- /dev/null
+++ b/app/src/main/java/net/lacolaco/smileessence/twitter/task/Searches.kt
@@ -0,0 +1,51 @@
+package net.lacolaco.smileessence.twitter.task
+
+import net.lacolaco.smileessence.data.Account
+import net.lacolaco.smileessence.entity.SavedSearch
+import net.lacolaco.smileessence.entity.Tweet
+import net.lacolaco.smileessence.util.BackgroundTask
+import twitter4j.Query
+import twitter4j.TwitterException
+
+class Searches {
+ class CreateSavedSearchTask(private val account: Account, private val query: String) : BackgroundTask<SavedSearch, Void>() {
+
+ @Throws(Exception::class)
+ override fun doInBackground(): SavedSearch {
+ return SavedSearch.fromTwitter(account.twitter.savedSearches().createSavedSearch(query))
+ }
+ }
+
+ class DestroySavedSearchTask(private val account: Account, private val id: Long) : BackgroundTask<Unit, Void>() {
+
+ @Throws(Exception::class)
+ override fun doInBackground() {
+ account.twitter.savedSearches().destroySavedSearch(id)
+ }
+ }
+
+ class GetAllSavedSearchesTask(private val account: Account) : BackgroundTask<List<SavedSearch>, Void>() {
+
+ @Throws(Exception::class)
+ override fun doInBackground(): List<SavedSearch> {
+ return account.twitter.savedSearches().savedSearches.map { SavedSearch.fromTwitter(it)}
+ }
+ }
+
+ // TODO: List<Tweet> is not good here
+ class SearchTask
+ // --------------------------- CONSTRUCTORS ---------------------------
+
+ (
+ // ------------------------------ FIELDS ------------------------------
+
+ private val account: Account, private val query: Query) : BackgroundTask<List<Tweet>, Void>() {
+
+ // ------------------------ OVERRIDE METHODS ------------------------
+
+ @Throws(TwitterException::class)
+ override fun doInBackground(): List<Tweet> {
+ return Tweet.fromTwitter(account.twitter.search(query).tweets, account.userId)
+ }
+ }
+}