diff options
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/suggestion/util/SuggestionServiceConnectionManager.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/ui/suggestion/util/SuggestionServiceConnectionManager.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/suggestion/util/SuggestionServiceConnectionManager.java b/WordPress/src/main/java/org/wordpress/android/ui/suggestion/util/SuggestionServiceConnectionManager.java new file mode 100644 index 000000000..bcbdebe30 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/ui/suggestion/util/SuggestionServiceConnectionManager.java @@ -0,0 +1,55 @@ +package org.wordpress.android.ui.suggestion.util; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.os.IBinder; + +import org.wordpress.android.ui.suggestion.service.SuggestionService; + +public class SuggestionServiceConnectionManager implements ServiceConnection { + + private final Context mContext; + private final int mRemoteBlogId; + private boolean mAttemptingToBind = false; + private boolean mBindCalled = false; + + public SuggestionServiceConnectionManager(Context context, int remoteBlogId) { + mContext = context; + mRemoteBlogId = remoteBlogId; + } + + public void bindToService() { + if (!mAttemptingToBind) { + mAttemptingToBind = true; + mBindCalled = true; + Intent intent = new Intent(mContext, SuggestionService.class); + mContext.bindService(intent, this, Context.BIND_AUTO_CREATE); + } + } + + public void unbindFromService() { + mAttemptingToBind = false; + if (mBindCalled) { + mContext.unbindService(this); + mBindCalled = false; + } + } + + @Override + public void onServiceConnected(ComponentName componentName, IBinder iBinder) { + SuggestionService.SuggestionBinder b = (SuggestionService.SuggestionBinder) iBinder; + SuggestionService suggestionService = b.getService(); + + suggestionService.updateSuggestions(mRemoteBlogId); + suggestionService.updateTags(mRemoteBlogId); + + mAttemptingToBind = false; + } + + @Override + public void onServiceDisconnected(ComponentName componentName) { + // noop + } +} |