package com.jdroid.android.about;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import com.google.android.gms.plus.PlusOneButton;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.android.facebook.FacebookHelper;
import com.jdroid.android.firebase.invites.AppInviteHelper;
import com.jdroid.android.firebase.invites.AppInviteSender;
import com.jdroid.android.fragment.AbstractFragment;
import com.jdroid.android.google.GooglePlayServicesUtils;
import com.jdroid.android.google.GooglePlayUtils;
import com.jdroid.android.google.plus.GooglePlusHelperFragment;
import com.jdroid.android.google.plus.GooglePlusOneButtonHelper;
import com.jdroid.android.share.GooglePlusSharingItem;
import com.jdroid.android.share.HangoutsSharingItem;
import com.jdroid.android.share.MoreSharingItem;
import com.jdroid.android.share.ShareUtils;
import com.jdroid.android.share.ShareView;
import com.jdroid.android.share.SharingItem;
import com.jdroid.android.share.SmsSharingItem;
import com.jdroid.android.share.TelegramSharingItem;
import com.jdroid.android.share.TwitterSharingItem;
import com.jdroid.android.share.WhatsAppSharingItem;
import com.jdroid.android.social.twitter.TwitterHelper;
import com.jdroid.java.collections.Lists;
import java.util.List;
public abstract class SpreadTheLoveFragment extends AbstractFragment {
private GooglePlusOneButtonHelper googlePlusOneButtonHelper;
@Override
public Integer getContentFragmentLayout() {
return R.layout.jdroid_spread_the_love_fragment;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Boolean followUsVisible = false;
View facebook = findView(R.id.facebook);
if (getFacebookPageId() != null) {
facebook.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
FacebookHelper.openPage(getFacebookPageId());
}
});
followUsVisible = true;
} else {
facebook.setVisibility(View.GONE);
}
View googlePlus = findView(R.id.googlePlus);
if (getGooglePlusCommunityId() != null) {
googlePlus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
GooglePlusHelperFragment.openCommunity(getGooglePlusCommunityId());
}
});
followUsVisible = true;
} else {
googlePlus.setVisibility(View.GONE);
}
View twitter = findView(R.id.twitter);
if (getTwitterAccount() != null) {
twitter.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TwitterHelper.openProfile(getTwitterAccount());
}
});
followUsVisible = true;
} else {
twitter.setVisibility(View.GONE);
}
findView(R.id.followUs).setVisibility(followUsVisible ? View.VISIBLE : View.GONE);
List<SharingItem> sharingItems = Lists.newArrayList();
sharingItems.add(new TwitterSharingItem() {
@Override
public String getShareKey() {
return SpreadTheLoveFragment.this.getShareKey();
}
@Override
public String getShareText() {
return SpreadTheLoveFragment.this.getTwitterShareText();
}
});
sharingItems.add(new GooglePlusSharingItem() {
@Override
public String getShareKey() {
return SpreadTheLoveFragment.this.getShareKey();
}
@Override
public String getShareText() {
return SpreadTheLoveFragment.this.getGooglePlusShareText();
}
});
sharingItems.add(new WhatsAppSharingItem() {
@Override
public String getShareKey() {
return SpreadTheLoveFragment.this.getShareKey();
}
@Override
public String getShareText() {
return SpreadTheLoveFragment.this.getWhatsAppShareText();
}
});
sharingItems.add(new TelegramSharingItem() {
@Override
public String getShareKey() {
return SpreadTheLoveFragment.this.getShareKey();
}
@Override
public String getShareText() {
return SpreadTheLoveFragment.this.getTelegramShareText();
}
});
sharingItems.add(new HangoutsSharingItem() {
@Override
public String getShareKey() {
return SpreadTheLoveFragment.this.getShareKey();
}
@Override
public String getShareText() {
return SpreadTheLoveFragment.this.getHangoutsShareText();
}
});
sharingItems.add(new SmsSharingItem() {
@Override
public String getShareKey() {
return SpreadTheLoveFragment.this.getShareKey();
}
@Override
public String getShareText() {
return SpreadTheLoveFragment.this.getSmsShareText();
}
});
Boolean initialized = ShareView.initShareSection(getActivity(), sharingItems, new MoreSharingItem() {
@Override
public void share() {
ShareUtils.shareTextContent(SpreadTheLoveFragment.this.getShareKey(), getString(R.string.jdroid_share),
getShareTitle(), SpreadTheLoveFragment.this.getDefaultShareText());
}
});
if (!initialized) {
findView(R.id.shareSectionTitle).setVisibility(View.GONE);
}
View appInvite = findView(R.id.appInvite);
if (displayAppInviteButton() && GooglePlayServicesUtils.isGooglePlayServicesAvailable(getActivity())) {
appInvite.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
createAppInviteSender().sendInvitation();
}
});
} else {
appInvite.setVisibility(View.GONE);
}
if (displayGooglePlusOneButton()) {
PlusOneButton plusOneButton = findView(R.id.plusOneButton);
googlePlusOneButtonHelper = new GooglePlusOneButtonHelper(this, plusOneButton);
if (!GooglePlayServicesUtils.isGooglePlayServicesAvailable(getActivity())) {
findView(R.id.plusOneSection).setVisibility(View.GONE);
}
} else {
findView(R.id.plusOneSection).setVisibility(View.GONE);
}
}
protected String getShareTitle() {
return getString(R.string.jdroid_appName);
}
protected String getFacebookPageId() {
return AbstractApplication.get().getAppContext().getFacebookPageId();
}
protected String getGooglePlusCommunityId() {
return AbstractApplication.get().getAppContext().getGooglePlusCommunityId();
}
protected String getTwitterAccount() {
return AbstractApplication.get().getAppContext().getTwitterAccount();
}
protected Boolean displayAppInviteButton() {
return false;
}
protected AppInviteSender createAppInviteSender() {
return new AppInviteSender();
}
protected Boolean displayGooglePlusOneButton() {
return true;
}
public String getShareKey() {
return GooglePlayUtils.getGooglePlayLink();
}
protected abstract String getDefaultShareText();
protected String getTwitterShareText() {
return getDefaultShareText();
}
protected String getGooglePlusShareText() {
return getDefaultShareText();
}
protected String getWhatsAppShareText() {
return getDefaultShareText();
}
protected String getTelegramShareText() {
return getDefaultShareText();
}
protected String getHangoutsShareText() {
return getDefaultShareText();
}
protected String getSmsShareText() {
return getDefaultShareText();
}
@Override
public void onResume() {
super.onResume();
if (googlePlusOneButtonHelper != null) {
googlePlusOneButtonHelper.onResume();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
AppInviteHelper.onActivityResult(requestCode, resultCode, data);
if (googlePlusOneButtonHelper != null) {
googlePlusOneButtonHelper.onActivityResult(requestCode, resultCode, data);
}
}
}