/* * Copyright (c) 2012 Socialize Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package com.socialize.ui.share; import android.app.Activity; import android.app.ProgressDialog; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable.Orientation; import android.util.TypedValue; import android.view.Gravity; import android.view.View; import android.widget.*; import com.socialize.ShareUtils; import com.socialize.SocializeService; import com.socialize.android.ioc.IBeanFactory; import com.socialize.api.SocializeSession; import com.socialize.api.action.ShareType; import com.socialize.api.action.share.SimpleShareListener; import com.socialize.auth.AuthProviderType; import com.socialize.config.SocializeConfig; import com.socialize.entity.Entity; import com.socialize.entity.Share; import com.socialize.error.SocializeException; import com.socialize.i18n.I18NConstants; import com.socialize.i18n.LocalizationService; import com.socialize.listener.SocializeAuthListener; import com.socialize.listener.share.ShareAddListener; import com.socialize.log.SocializeLogger; import com.socialize.networks.PostData; import com.socialize.networks.SocialNetwork; import com.socialize.networks.SocialNetworkListener; import com.socialize.networks.facebook.FacebookShareCell; import com.socialize.networks.twitter.TwitterShareCell; import com.socialize.ui.dialog.DialogPanelView; import com.socialize.ui.dialog.SafeProgressDialog; import com.socialize.ui.util.Colors; import com.socialize.ui.util.CompatUtils; import com.socialize.ui.view.ClickableSectionCell; import com.socialize.ui.view.ClickableSectionCell.OnToggleListener; import com.socialize.ui.view.SocializeButton; import com.socialize.util.DisplayUtils; import com.socialize.util.Drawables; import org.json.JSONObject; /** * @author Jason Polites */ public class SharePanelView extends DialogPanelView { private ShareDialogListener shareDialogListener; private SocialNetworkListener socialNetworkListener; private Colors colors; private SocializeConfig config; private SocializeButton continueButton; private SocializeButton cancelButton; private TextView otherOptions; private LinearLayout buttonLayout; private int displayOptions = ShareUtils.DEFAULT; private Entity entity; public SharePanelView(Context context) { super(context); } private IBeanFactory<FacebookShareCell> facebookShareCellFactory; private IBeanFactory<TwitterShareCell> twitterShareCellFactory; private IBeanFactory<GooglePlusCell> googlePlusCellFactory; private IBeanFactory<EmailCell> emailCellFactory; private IBeanFactory<SMSCell> smsCellFactory; private IBeanFactory<RememberCell> rememberCellFactory; private Drawables drawables; private DisplayUtils displayUtils; private FacebookShareCell facebookShareCell; private TwitterShareCell twitterShareCell; private EmailCell emailCell; private SMSCell smsCell; private RememberCell rememberCell; private GooglePlusCell googlePlusCell; private LocalizationService localizationService; float radii = 6; int padding = 8; int headerHeight = 45; float headerRadius = 3; private float[] fbRadii = new float[]{radii, radii, radii, radii, 0.0f, 0.0f, 0.0f, 0.0f}; private int[] fbStroke = new int[]{1, 1, 0, 1}; private float[] twRadii = new float[]{0.0f, 0.0f, 0.0f, 0.0f, radii, radii, radii, radii}; private int[] twStroke = new int[]{1, 1, 1, 1}; public void init() { boolean landscape = false; if(displayUtils != null) { padding = displayUtils.getDIP(12); headerRadius = displayUtils.getDIP(3); headerHeight = displayUtils.getDIP(45); radii = displayUtils.getDIP(radii); landscape = displayUtils.isLandscape(); fbRadii = new float[]{radii, radii, radii, radii, 0.0f, 0.0f, 0.0f, 0.0f}; twRadii = new float[]{0.0f, 0.0f, 0.0f, 0.0f, radii, radii, radii, radii}; } LayoutParams masterParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); masterParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP; setLayoutParams(masterParams); setOrientation(VERTICAL); RelativeLayout container = new RelativeLayout(getContext()); LayoutParams containerParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); containerParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.TOP; containerParams.weight = 1.0f; container.setLayoutParams(containerParams); makeShareButtons(); View continueButtonLayout = makeButtons(); View header = makeHeaderView(headerHeight, headerRadius); LinearLayout contentLayout = new LinearLayout(getContext()); contentLayout.setPadding(padding, padding, padding, 0); contentLayout.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.TOP); if(landscape) { LayoutParams contentParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); contentLayout.setLayoutParams(contentParams); } else { RelativeLayout.LayoutParams contentParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); contentParams.addRule(RelativeLayout.CENTER_IN_PARENT); contentLayout.setLayoutParams(contentParams); } LayoutParams socialNetworkButtonParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); LayoutParams emailSMSButtonParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); emailSMSButtonParams.setMargins(0, padding, 0, 0); contentLayout.setOrientation(VERTICAL); LinearLayout socialNetworkButtonLayout = new LinearLayout(getContext()); socialNetworkButtonLayout.setPadding(0, 0, 0, 0); socialNetworkButtonLayout.setOrientation(VERTICAL); socialNetworkButtonLayout.setLayoutParams(socialNetworkButtonParams); LinearLayout emailSMSButtonLayout = new LinearLayout(getContext()); emailSMSButtonLayout.setPadding(0, 0, 0, 0); emailSMSButtonLayout.setOrientation(VERTICAL); emailSMSButtonLayout.setLayoutParams(emailSMSButtonParams); if(facebookShareCell != null || twitterShareCell != null) { OnToggleListener onToggleListener = new OnToggleListener() { @Override public void onToggle(boolean on) { boolean fbOK = facebookShareCell != null && facebookShareCell.isToggled(); boolean twOK = twitterShareCell != null && twitterShareCell.isToggled(); if(fbOK || twOK) { if(rememberCell != null) { rememberCell.setVisibility(View.VISIBLE); } continueButton.setEnabled(true); } else { if(rememberCell != null) { rememberCell.setVisibility(View.GONE); } // Show continue if we are told to continueButton.setEnabled(((displayOptions & ShareUtils.ALWAYS_CONTINUE) != 0)); } } }; if(facebookShareCell != null) { socialNetworkButtonLayout.addView(facebookShareCell); facebookShareCell.setOnToggleListener(onToggleListener); } if(twitterShareCell != null) { socialNetworkButtonLayout.addView(twitterShareCell); twitterShareCell.setOnToggleListener(onToggleListener); } contentLayout.addView(socialNetworkButtonLayout); } if(googlePlusCell != null) { LinearLayout googlePlusCellLayout = new LinearLayout(getContext()); googlePlusCellLayout.setPadding(0, 0, 0, 0); googlePlusCellLayout.setLayoutParams(emailSMSButtonParams); googlePlusCellLayout.addView(googlePlusCell); contentLayout.addView(googlePlusCellLayout); } if(emailCell != null || smsCell != null) { if(emailCell != null) { emailSMSButtonLayout.addView(emailCell); } if(smsCell != null) { emailSMSButtonLayout.addView(smsCell); } contentLayout.addView(emailSMSButtonLayout); } if(rememberCell != null) { contentLayout.addView(rememberCell); } LayoutParams skipAuthParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); skipAuthParams.gravity = Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL; skipAuthParams.weight = 1.0f; if(displayUtils != null) { skipAuthParams.setMargins(0, displayUtils.getDIP(10), 0, 0); } otherOptions = new TextView(getContext()); if(localizationService != null) otherOptions.setText(localizationService.getString(I18NConstants.SHARE_MORE_OPTIONS)); otherOptions.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12); if(colors != null) otherOptions.setTextColor(colors.getColor(Colors.ANON_CELL_TITLE)); otherOptions.setGravity(Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL); otherOptions.setPadding(0, 0, 0, padding); otherOptions.setLayoutParams(skipAuthParams); otherOptions.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final SafeProgressDialog progress = SafeProgressDialog.show(getContext()); ShareUtils.shareViaOther(getActivity(), entity, new ShareAddListener() { @Override public void onError(SocializeException error) { progress.dismiss(); showErrorToast(getContext(), error); } @Override public void onCreate(Share result) { progress.dismiss(); } }); } }); contentLayout.addView(otherOptions); if(landscape) { RelativeLayout.LayoutParams scrollParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); scrollParams.setMargins(padding, padding, padding, 0); scrollParams.addRule(RelativeLayout.CENTER_IN_PARENT); ScrollView scroller = new ScrollView(getContext()); scroller.setLayoutParams(scrollParams); scroller.addView(contentLayout); container.addView(scroller); } else { container.addView(contentLayout); } addView(header); addView(container); addView(continueButtonLayout); } public void applyDisplayOptions() { if(otherOptions != null) { if((displayOptions & ShareUtils.MORE_OPTIONS) != 0) { otherOptions.setVisibility(View.VISIBLE); } else { otherOptions.setVisibility(View.GONE); } } if(facebookShareCell != null) { if(((displayOptions & ShareUtils.FACEBOOK) != 0)) { facebookShareCell.setVisibility(View.VISIBLE); } else { facebookShareCell.setVisibility(View.GONE); } } if(twitterShareCell != null) { if(((displayOptions & ShareUtils.TWITTER) != 0)) { twitterShareCell.setVisibility(View.VISIBLE); } else { twitterShareCell.setVisibility(View.GONE); } } if(emailCell != null) { if(((displayOptions & ShareUtils.EMAIL) != 0)) { emailCell.setVisibility(View.VISIBLE); } else { emailCell.setVisibility(View.GONE); } } if(smsCell != null) { if(((displayOptions & ShareUtils.SMS) != 0)) { smsCell.setVisibility(View.VISIBLE); } else { smsCell.setVisibility(View.GONE); } } if(rememberCell != null) { if(((displayOptions & ShareUtils.SHOW_REMEMBER) != 0)) { rememberCell.setVisibility(View.VISIBLE); } else { rememberCell.setVisibility(View.GONE); rememberCell = null; } } if(googlePlusCell != null) { if(((displayOptions & ShareUtils.GOOGLE_PLUS) != 0)) { googlePlusCell.setVisibility(View.VISIBLE); } else { googlePlusCell.setVisibility(View.GONE); } } if(buttonLayout != null) { if((displayOptions & ShareUtils.MORE_OPTIONS) != 0) { buttonLayout.setPadding(padding, 0, padding, padding); } else { buttonLayout.setPadding(padding, padding, padding, padding); } } } protected void makeShareButtons() { LayoutParams cellParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); SocializeService socialize = getSocialize(); Context context = getContext(); boolean fbOK = socialize.isSupported(context, AuthProviderType.FACEBOOK) && facebookShareCellFactory != null; boolean twOK = socialize.isSupported(context, AuthProviderType.TWITTER) && twitterShareCellFactory != null; boolean emailOK = socialize.canShare(context, ShareType.EMAIL) && emailCellFactory != null; boolean smsOK = socialize.canShare(context, ShareType.SMS) && smsCellFactory != null; boolean rememberOk = rememberCellFactory != null; boolean googlePlusOK = config != null && config.isGooglePlusEnabled() && socialize.canShare(context, ShareType.GOOGLE_PLUS) && googlePlusCellFactory != null; if(fbOK) { facebookShareCell = facebookShareCellFactory.getBean(); if(facebookShareCell != null) { facebookShareCell.setLayoutParams(cellParams); facebookShareCell.setPadding(padding, padding, padding, padding); if(twOK) { twitterShareCell = twitterShareCellFactory.getBean(); if(twitterShareCell != null) { twitterShareCell.setPadding(padding, padding, padding, padding); twitterShareCell.setLayoutParams(cellParams); twitterShareCell.setBackgroundData(twRadii, twStroke, Color.BLACK); } facebookShareCell.setBackgroundData(fbRadii, fbStroke, Color.BLACK); } } } else if(twOK) { twitterShareCell = twitterShareCellFactory.getBean(); if(twitterShareCell != null) { twitterShareCell.setLayoutParams(cellParams); twitterShareCell.setPadding(padding, padding, padding, padding); } } if(googlePlusOK) { googlePlusCell = googlePlusCellFactory.getBean(); if(googlePlusCell != null) { googlePlusCell.setLayoutParams(cellParams); } } if(emailOK) { emailCell = emailCellFactory.getBean(); if(emailCell != null) { emailCell.setLayoutParams(cellParams); emailCell.setPadding(padding, padding, padding, padding); if(smsOK) { smsCell = smsCellFactory.getBean(); smsCell.setLayoutParams(cellParams); smsCell.setPadding(padding, padding, padding, padding); emailCell.setBackgroundData(fbRadii, fbStroke, Color.BLACK); smsCell.setBackgroundData(twRadii, twStroke, Color.BLACK); } } } else if(smsOK) { smsCell = smsCellFactory.getBean(); if(smsCell != null) { smsCell.setLayoutParams(cellParams); smsCell.setPadding(padding, padding, padding, padding); } } if(rememberOk) { rememberCell = rememberCellFactory.getBean(); if(rememberCell != null) { LayoutParams rememberCellParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); rememberCellParams.setMargins(0, padding, 0, 0); rememberCell.setLayoutParams(rememberCellParams); } } if(facebookShareCell != null) { facebookShareCell.setAuthListener(getAuthClickListener(facebookShareCell, SocialNetwork.FACEBOOK)); } if(twitterShareCell != null) { twitterShareCell.setAuthListener(getAuthClickListener(twitterShareCell, SocialNetwork.TWITTER)); } if(emailCell != null) { emailCell.setOnClickListener(new OnClickListener() { @Override public void onClick(final View v) { if(shareDialogListener != null) { shareDialogListener.onSimpleShare(ShareType.EMAIL); } final ProgressDialog progress = SafeProgressDialog.show(v.getContext()); if(dialog != null) { dialog.dismiss(); } ShareUtils.shareViaEmail(getActivity(), entity, new SimpleShareListener() { @Override public void onError(SocializeException error) { progress.dismiss(); showErrorToast(v.getContext(), error); } @Override public void onCreate(Share entity) { progress.dismiss(); } @Override public boolean onBeforePost(Activity parent, SocialNetwork socialNetwork, PostData postData) { return socialNetworkListener != null && socialNetworkListener.onBeforePost(parent, socialNetwork, postData); } @Override public void onAfterPost(Activity parent, SocialNetwork socialNetwork, JSONObject responseObject) { if(socialNetworkListener != null) { socialNetworkListener.onAfterPost(parent, socialNetwork, responseObject); } } }); } }); } if(smsCell != null) { smsCell.setOnClickListener(new OnClickListener() { @Override public void onClick(final View v) { if(shareDialogListener != null) { shareDialogListener.onSimpleShare(ShareType.SMS); } if(dialog != null) { dialog.dismiss(); } final ProgressDialog progress = SafeProgressDialog.show(v.getContext()); ShareUtils.shareViaSMS(getActivity(), entity, new SimpleShareListener() { @Override public void onError(SocializeException error) { progress.dismiss(); showErrorToast(v.getContext(), error); } @Override public void onCreate(Share entity) { progress.dismiss(); } @Override public boolean onBeforePost(Activity parent, SocialNetwork socialNetwork, PostData postData) { return socialNetworkListener != null && socialNetworkListener.onBeforePost(parent, socialNetwork, postData); } @Override public void onAfterPost(Activity parent, SocialNetwork socialNetwork, JSONObject responseObject) { if(socialNetworkListener != null) { socialNetworkListener.onAfterPost(parent, socialNetwork, responseObject); } } }); } }); } if(googlePlusCell != null) { googlePlusCell.setOnClickListener(new OnClickListener() { @Override public void onClick(final View v) { if(shareDialogListener != null) { shareDialogListener.onSimpleShare(ShareType.GOOGLE_PLUS); } if(dialog != null) { dialog.dismiss(); } final ProgressDialog progress = SafeProgressDialog.show(v.getContext()); ShareUtils.shareViaGooglePlus(getActivity(), entity, new SimpleShareListener() { @Override public void onError(SocializeException error) { progress.dismiss(); showErrorToast(v.getContext(), error); } @Override public void onCreate(Share entity) { progress.dismiss(); } @Override public boolean onBeforePost(Activity parent, SocialNetwork socialNetwork, PostData postData) { return socialNetworkListener != null && socialNetworkListener.onBeforePost(parent, socialNetwork, postData); } @Override public void onAfterPost(Activity parent, SocialNetwork socialNetwork, JSONObject responseObject) { if(socialNetworkListener != null) { socialNetworkListener.onAfterPost(parent, socialNetwork, responseObject); } } }); } }); } } protected View makeButtons() { buttonLayout = new LinearLayout(getContext()); if(continueButton != null) { LayoutParams buttonParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); buttonLayout.setPadding(padding, 0, padding, padding); buttonLayout.setOrientation(HORIZONTAL); buttonLayout.setLayoutParams(buttonParams); buttonLayout.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL); continueButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // Disable to prevent multiple clicks continueButton.setEnabled(false); SocialNetwork[] networks = null; // Get the number of networks enabled if(facebookShareCell != null && facebookShareCell.isToggled()) { if(twitterShareCell != null && twitterShareCell.isToggled()) { networks = new SocialNetwork[]{SocialNetwork.FACEBOOK, SocialNetwork.TWITTER}; } else { networks = new SocialNetwork[]{SocialNetwork.FACEBOOK}; } } else if(twitterShareCell != null && twitterShareCell.isToggled()) { networks = new SocialNetwork[]{SocialNetwork.TWITTER}; } boolean remember = false; if(rememberCell != null) { remember = rememberCell.isToggled(); } shareDialogListener.onContinue(dialog, remember, networks); } }); if(cancelButton != null) { cancelButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); shareDialogListener.onCancel(dialog); } }); buttonLayout.addView(cancelButton); } buttonLayout.addView(continueButton); } return buttonLayout; } protected View makeShareBadge() { RelativeLayout.LayoutParams badgeParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); LayoutParams badgeLayoutParams = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); badgeLayoutParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL; badgeParams.addRule(RelativeLayout.CENTER_IN_PARENT); RelativeLayout badgeLayout = new RelativeLayout(getContext()); badgeLayout.setLayoutParams(badgeLayoutParams); if(drawables != null) { ImageView authBadge = new ImageView(getContext()); authBadge.setImageDrawable(drawables.getDrawable("share_badge.png")); authBadge.setLayoutParams(badgeParams); authBadge.setPadding(0, 0, 0, padding); badgeLayout.addView(authBadge); } return badgeLayout; } protected View makeHeaderView(int headerHeight, float headerRadius) { LayoutParams headerParams = new LayoutParams(LayoutParams.FILL_PARENT, headerHeight); TextView header = new TextView(getContext()); if(colors != null) { GradientDrawable headerBG = new GradientDrawable(Orientation.BOTTOM_TOP, new int[]{colors.getColor(Colors.AUTH_PANEL_BOTTOM), colors.getColor(Colors.AUTH_PANEL_TOP)}); headerBG.setCornerRadii(new float[]{headerRadius, headerRadius, headerRadius, headerRadius, 0.0f, 0.0f, 0.0f, 0.0f}); CompatUtils.setBackgroundDrawable(header, headerBG); } if(localizationService != null) { header.setText(localizationService.getString(I18NConstants.SHARE_HEADER)); } header.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); header.setTextColor(Color.WHITE); header.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); header.setLayoutParams(headerParams); return header; } public void updateNetworkButtonState() { if(facebookShareCell != null) { facebookShareCell.setToggled(getSocialize().isAuthenticatedForRead(AuthProviderType.FACEBOOK)); } if(twitterShareCell != null) { twitterShareCell.setToggled(getSocialize().isAuthenticatedForRead(AuthProviderType.TWITTER)); } } public void checkSupportedNetworkButtonState() { if(facebookShareCell != null && facebookShareCell.isToggled()) { facebookShareCell.setToggled(getSocialize().isAuthenticatedForRead(AuthProviderType.FACEBOOK)); } if(twitterShareCell != null && twitterShareCell.isToggled()) { twitterShareCell.setToggled(getSocialize().isAuthenticatedForRead(AuthProviderType.TWITTER)); } } public void setFacebookShareCellFactory(IBeanFactory<FacebookShareCell> facebookSignInCellFactory) { this.facebookShareCellFactory = facebookSignInCellFactory; } public void setTwitterShareCellFactory(IBeanFactory<TwitterShareCell> twitterSignInCellFactory) { this.twitterShareCellFactory = twitterSignInCellFactory; } public void setDrawables(Drawables drawables) { this.drawables = drawables; } public void setDisplayUtils(DisplayUtils deviceUtils) { this.displayUtils = deviceUtils; } public FacebookShareCell getFacebookShareCell() { return facebookShareCell; } public TwitterShareCell getTwitterShareCell() { return twitterShareCell; } public void setColors(Colors colors) { this.colors = colors; } public void setContinueButton(SocializeButton continueButton) { this.continueButton = continueButton; } public void setCancelButton(SocializeButton cancelButton) { this.cancelButton = cancelButton; } public void setShareDialogListener(ShareDialogListener shareDialogListener) { this.shareDialogListener = shareDialogListener; } public void setEmailCellFactory(IBeanFactory<EmailCell> emailCellFactory) { this.emailCellFactory = emailCellFactory; } public void setSmsCellFactory(IBeanFactory<SMSCell> smsCellFactory) { this.smsCellFactory = smsCellFactory; } public void setRememberCellFactory(IBeanFactory<RememberCell> rememberCellFactory) { this.rememberCellFactory = rememberCellFactory; } public void setGooglePlusCellFactory(IBeanFactory<GooglePlusCell> googlePlusCellFactory) { this.googlePlusCellFactory = googlePlusCellFactory; } public void setConfig(SocializeConfig config) { this.config = config; } public Entity getEntity() { return entity; } public void setEntity(Entity entity) { this.entity = entity; } public void setSocialNetworkListener(SocialNetworkListener socialNetworkListener) { this.socialNetworkListener = socialNetworkListener; } public void setDisplayOptions(int displayOptions) { this.displayOptions = displayOptions; } public void setLocalizationService(LocalizationService localizationService) { this.localizationService = localizationService; } public SocializeButton getContinueButton() { return continueButton; } public SocializeButton getCancelButton() { return cancelButton; } protected SocializeAuthListener getAuthClickListener(final ClickableSectionCell cell, final SocialNetwork network) { return new SocializeAuthListener() { @Override public void onError(SocializeException error) { SocializeLogger.e( error.getMessage(), error); showErrorToast(getContext(), error); if(socialNetworkListener != null) { socialNetworkListener.onNetworkError(getActivity(), network, error); } } @Override public void onAuthSuccess(SocializeSession session) { cell.setToggled(true); checkSupportedNetworkButtonState(); } @Override public void onAuthFail(SocializeException error) { SocializeLogger.e(error.getMessage(), error); showError(getContext(), error); if(socialNetworkListener != null) { socialNetworkListener.onNetworkError(getActivity(), network, error); } } @Override public void onCancel() {} }; } }