package com.socialize.networks; import android.content.Context; import android.view.View; import com.socialize.android.ioc.IBeanFactory; import com.socialize.api.SocializeSession; import com.socialize.error.SocializeException; import com.socialize.listener.SocializeAuthListener; import com.socialize.ui.view.CustomCheckbox; public class SocialNetworkCheckbox extends CustomCheckbox { private SocialNetworkAuthClickListener socialNetworkAuthClickListener; private SocialNetworkSignOutClickListener socialNetworkSignOutClickListener; private IBeanFactory<SocialNetworkSignOutClickListener> socialNetworkSignOutClickListenerFactory; private OnClickListener localListener = null; private SocializeAuthListener localAuthListener = null; private SocialNetworkSignOutListener localSignOutListener = null; public SocialNetworkCheckbox(Context context) { super(context); } public void init() { super.init(); socialNetworkSignOutClickListener = socialNetworkSignOutClickListenerFactory.getBean(); socialNetworkSignOutClickListener.setListener(new SocialNetworkSignOutListener() { @Override public void onSignOut() { setChecked(false); if(localSignOutListener != null) { localSignOutListener.onSignOut(); } } @Override public void onCancel() { setChecked(true); if(localSignOutListener != null) { localSignOutListener.onCancel(); } } }); socialNetworkAuthClickListener.setListener(new SocializeAuthListener() { @Override public void onError(SocializeException error) { setChecked(false); if(localAuthListener != null) { localAuthListener.onError(error); } } @Override public void onCancel() { setChecked(false); if(localAuthListener != null) { localAuthListener.onCancel(); } } @Override public void onAuthSuccess(SocializeSession session) { setChecked(true); if(localAuthListener != null) { localAuthListener.onAuthSuccess(session); } } @Override public void onAuthFail(SocializeException error) { setChecked(false); if(localAuthListener != null) { localAuthListener.onAuthFail(error); } } }); // Must be super super.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(isChecked()) { socialNetworkAuthClickListener.onClick(v); } else { socialNetworkSignOutClickListener.onClick(v); } if(localListener != null) { localListener.onClick(v); } } }); } public void setSignInListener(SocializeAuthListener listener) { this.localAuthListener = listener; } public void setSignOutListener(SocialNetworkSignOutListener localSignOutListener) { this.localSignOutListener = localSignOutListener; } @Override public void setOnClickListener(OnClickListener l) { this.localListener = l; } public void setSocialNetworkAuthClickListener(SocialNetworkAuthClickListener socialNetworkAuthClickListener) { this.socialNetworkAuthClickListener = socialNetworkAuthClickListener; } public void setSocialNetworkSignOutClickListenerFactory(IBeanFactory<SocialNetworkSignOutClickListener> socialNetworkSignOutClickListenerFactory) { this.socialNetworkSignOutClickListenerFactory = socialNetworkSignOutClickListenerFactory; } }