package com.vaguehope.onosendai.storage; import java.util.List; import java.util.Map; import java.util.Set; import android.app.Service; import android.content.Intent; import android.database.Cursor; import android.os.Binder; import android.os.IBinder; import android.support.v4.util.Pair; import com.vaguehope.onosendai.config.Column; import com.vaguehope.onosendai.model.Meta; import com.vaguehope.onosendai.model.MetaType; import com.vaguehope.onosendai.model.OutboxTweet; import com.vaguehope.onosendai.model.OutboxTweet.OutboxTweetStatus; import com.vaguehope.onosendai.model.ScrollState; import com.vaguehope.onosendai.model.Tweet; public class DbService extends Service implements DbInterface { // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @Override public void onCreate () { super.onCreate(); dbStart(); } @Override public void onDestroy () { dbStop(); super.onDestroy(); } @Override public IBinder onBind (final Intent arg0) { return this.mBinder; } private final IBinder mBinder = new LocalBinder(); public class LocalBinder extends Binder { public DbInterface getService () { return DbService.this; } } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Data store. private DbAdapter dbAdaptor; private void dbStart () { this.dbAdaptor = new DbAdapter(getApplicationContext()); this.dbAdaptor.open(); } private void dbStop () { this.dbAdaptor.close(); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // DB methods. @Override public void storeTweets (final Column column, final List<Tweet> tweets) { this.dbAdaptor.storeTweets(column, tweets); } @Override public void storeTweets (final int columnId, final List<Tweet> tweets) { this.dbAdaptor.storeTweets(columnId, tweets); } @Override public void appendToTweet (final Tweet tweet, final Meta meta) { this.dbAdaptor.appendToTweet(tweet, meta); } @Override public void deleteTweet (final Column column, final Tweet tweet) { this.dbAdaptor.deleteTweet(column, tweet); } @Override public void deleteTweets (final Column column) { this.dbAdaptor.deleteTweets(column); } @Override public void updateTweetFiltered (final List<Pair<Long, Boolean>> uidToFiltered) { this.dbAdaptor.updateTweetFiltered(uidToFiltered); } @Override public List<Tweet> getTweets (final int columnId, final int numberOf, final Selection selection) { return this.dbAdaptor.getTweets(columnId, numberOf, selection); } @Override public List<Tweet> getTweets (final int columnId, final int numberOf, final Selection selection, final Set<Integer> excludeColumnIds) { return this.dbAdaptor.getTweets(columnId, numberOf, selection, excludeColumnIds); } @Override public Cursor getTweetsCursor (final int columnId, final Selection selection) { return this.dbAdaptor.getTweetsCursor(columnId, selection); } @Override public Cursor getTweetsCursor (final int columnId, final Selection selection, final boolean withInlineMediaOnly) { return this.dbAdaptor.getTweetsCursor(columnId, selection, withInlineMediaOnly); } @Override public Cursor getTweetsCursor (final int columnId, final Selection selection, final Set<Integer> excludeColumnIds, final boolean withInlineMediaOnly) { return this.dbAdaptor.getTweetsCursor(columnId, selection, excludeColumnIds, withInlineMediaOnly); } @Override public List<Tweet> getTweetsSinceTime (final int columnId, final long earliestTime, final int numberOf) { return this.dbAdaptor.getTweetsSinceTime(columnId, earliestTime, numberOf); } @Override public List<Tweet> getTweetsWithSid (final String sid) { return this.dbAdaptor.getTweetsWithSid(sid); } @Override public List<Tweet> findTweetsWithMeta (final MetaType metaType, final String data, final int numberOf) { return this.dbAdaptor.findTweetsWithMeta(metaType, data, numberOf); } @Override public List<Tweet> findTweetsWithMeta (final int columnId, final MetaType metaType, final String data, final int numberOf) { return this.dbAdaptor.findTweetsWithMeta(columnId, metaType, data, numberOf); } @Override public List<Tweet> findTweetsWithAvatarUrl (final String avatarUrl, final int numberOf) { return this.dbAdaptor.findTweetsWithAvatarUrl(avatarUrl, numberOf); } @Override public List<Tweet> searchTweets (final String searchTerm, final List<Column> columns, final int numberOf) { return this.dbAdaptor.searchTweets(searchTerm, columns, numberOf); } @Override public Tweet getTweetDetails (final int columnId, final Tweet tweet) { return this.dbAdaptor.getTweetDetails(columnId, tweet); } @Override public Tweet getTweetDetails (final int columnId, final String tweetSid) { return this.dbAdaptor.getTweetDetails(columnId, tweetSid); } @Override public Tweet getTweetDetails (final String tweetSid) { return this.dbAdaptor.getTweetDetails(tweetSid); } @Override public Tweet getTweetDetails (final long tweetUid) { return this.dbAdaptor.getTweetDetails(tweetUid); } @Override public List<Meta> getTweetMetas (final long tweetUid) { return this.dbAdaptor.getTweetMetas(tweetUid); } @Override public List<Meta> getTweetMetasOfType (final long tweetUid, final MetaType metaType) { return this.dbAdaptor.getTweetMetasOfType(tweetUid, metaType); } @Override public List<String> getUsernames (final String prefix, final int numberOf) { return this.dbAdaptor.getUsernames(prefix, numberOf); } @Override public List<String> getHashtags (final String prefix, final int numberOf) { return this.dbAdaptor.getHashtags(prefix, numberOf); } @Override public int getUnreadCount (final Column column) { return this.dbAdaptor.getUnreadCount(column); } @Override public int getUnreadCount (final int columnId, final Set<Integer> excludeColumnIds, final ScrollState scroll) { return this.dbAdaptor.getUnreadCount(columnId, excludeColumnIds, scroll); } @Override public int getScrollUpCount (final int columnId, final Selection selection, final Set<Integer> excludeColumnIds, final boolean withInlineMediaOnly, final ScrollState scroll) { return this.dbAdaptor.getScrollUpCount(columnId, selection, excludeColumnIds, withInlineMediaOnly, scroll); } @Override public void addTwUpdateListener (final TwUpdateListener listener) { this.dbAdaptor.addTwUpdateListener(listener); } @Override public void removeTwUpdateListener (final TwUpdateListener listener) { this.dbAdaptor.removeTwUpdateListener(listener); } @Override public void storeScroll (final int columnId, final ScrollState state) { this.dbAdaptor.storeScroll(columnId, state); } @Override public void storeUnreadTime (final int columnId, final long unreadTime) { this.dbAdaptor.storeUnreadTime(columnId, unreadTime); } @Override public void mergeAndStoreScrolls (final Map<Column, ScrollState> colToSs, final ScrollChangeType type) { this.dbAdaptor.mergeAndStoreScrolls(colToSs, type); } @Override public ScrollState getScroll (final int columnId) { return this.dbAdaptor.getScroll(columnId); } @Override public void notifyTwListenersColumnState (final int columnId, final ColumnState eventType) { this.dbAdaptor.notifyTwListenersColumnState(columnId, eventType); } @Override public Set<Integer> requestStoreScrollNow () { return this.dbAdaptor.requestStoreScrollNow(); } @Override public long addPostToOutput (final OutboxTweet ot) { return this.dbAdaptor.addPostToOutput(ot); } @Override public void updateOutboxEntry (final OutboxTweet ot) { this.dbAdaptor.updateOutboxEntry(ot); } @Override public List<OutboxTweet> getUnsentOutboxEntries () { return this.dbAdaptor.getUnsentOutboxEntries(); } @Override public List<OutboxTweet> getAllOutboxEntries () { return this.dbAdaptor.getAllOutboxEntries(); } @Override public OutboxTweet getOutboxEntry (final long uid) { return this.dbAdaptor.getOutboxEntry(uid); } @Override public List<OutboxTweet> getOutboxEntries (final OutboxTweetStatus status) { return this.dbAdaptor.getOutboxEntries(status); } @Override public void deleteFromOutbox (final OutboxTweet ot) { this.dbAdaptor.deleteFromOutbox(ot); } @Override public void addOutboxListener (final OutboxListener listener) { this.dbAdaptor.addOutboxListener(listener); } @Override public void removeOutboxListener (final OutboxListener listener) { this.dbAdaptor.removeOutboxListener(listener); } @Override public String getValue (final String key) { return this.dbAdaptor.getValue(key); } @Override public void storeValue (final String key, final String value) { this.dbAdaptor.storeValue(key, value); } @Override public void deleteValue (final String key) { this.dbAdaptor.deleteValue(key); } @Override public void cacheString (final CachedStringGroup group, final String key, final String value) { this.dbAdaptor.cacheString(group, key, value); } @Override public String cachedString (final CachedStringGroup group, final String key) { return this.dbAdaptor.cachedString(group, key); } @Override public void housekeep () { this.dbAdaptor.housekeep(); } @Override public long getTotalTweetsEverSeen () { return this.dbAdaptor.getTotalTweetsEverSeen(); } @Override public double getTweetsPerHour (final int columnId) { return this.dbAdaptor.getTweetsPerHour(columnId); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - }