package com.ijoomer.common.classes;
import android.content.Intent;
import android.text.Html;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import com.ijoomer.custom.interfaces.ShareListner;
import com.ijoomer.customviews.IjoomerButton;
import com.ijoomer.customviews.IjoomerEditText;
import com.ijoomer.customviews.IjoomerRadioButton;
import com.ijoomer.src.R;
import com.ijoomer.theme.ThemeManager;
import java.util.ArrayList;
import java.util.HashMap;
/**
* This Class Contains All Method Related To IjoomerShareActivity.
*
* @author tasol
*
*/
public class IjoomerShareActivity extends IjoomerSuperMaster {
private LinearLayout lnrSayAboutStory;
private LinearLayout lnrEmailShare;
private IjoomerEditText edtShareEmail;
private IjoomerEditText edtStory;
private IjoomerEditText edtShareEmailMessage;
private IjoomerButton btnSend;
private IjoomerButton btnCancel;
private IjoomerButton btnShareStory;
private RadioGroup rdgShare;
private IjoomerRadioButton rdbFacebookShare;
private ImageView imgShareAddEmail;
private ImageView imgShareClose;
private ArrayList<HashMap<String, Object>> selectedData;
private String IN_SHARE_CAPTION;
private String IN_SHARE_DESCRIPTION;
private String IN_SHARE_SHARELINK;
private String IN_SHARE_THUMB;
private String currentSharing="facebook";
/**
* Overrides methods
*/
@Override
public int setLayoutId() {
return ThemeManager.getInstance().getShare();
}
@Override
public void initComponents() {
lnrSayAboutStory = (LinearLayout) findViewById(R.id.lnrSayAboutStory);
lnrEmailShare = (LinearLayout) findViewById(R.id.lnrEmailShare);
rdgShare = (RadioGroup) findViewById(R.id.rdgShare);
rdbFacebookShare = (IjoomerRadioButton) findViewById(R.id.rdbFacebookShare);
imgShareAddEmail = (ImageView) findViewById(R.id.imgShareAddEmail);
imgShareClose = (ImageView) findViewById(R.id.imgShareClose);
edtShareEmail = (IjoomerEditText) findViewById(R.id.edtShareEmail);
edtStory = (IjoomerEditText) findViewById(R.id.edtStory);
edtShareEmailMessage = (IjoomerEditText) findViewById(R.id.edtShareEmailMessage);
btnSend = (IjoomerButton) findViewById(R.id.btnSend);
btnCancel = (IjoomerButton) findViewById(R.id.btnCancel);
btnShareStory = (IjoomerButton) findViewById(R.id.btnShareStory);
selectedData = new ArrayList<HashMap<String, Object>>();
getIntentData();
}
@Override
public void setActionListeners() {
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
});
btnSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (edtShareEmail.getText().toString().trim().length() > 0) {
onEmail(edtShareEmail.getText().toString(), edtShareEmailMessage.getText().toString().trim());
} else {
ting(getString(R.string.email) + " " + getString(R.string.validation_value_required));
}
}
});
rdgShare.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int id) {
switch (id) {
case R.id.rdbFacebookShare:
edtStory.requestFocus();
currentSharing = "facebook";
lnrSayAboutStory.setVisibility(View.VISIBLE);
lnrEmailShare.setVisibility(View.GONE);
break;
case R.id.rdbTwitterShare:
edtStory.requestFocus();
currentSharing = "twitter";
lnrSayAboutStory.setVisibility(View.VISIBLE);
lnrEmailShare.setVisibility(View.GONE);
break;
case R.id.rdbGooglePlusShare:
edtStory.requestFocus();
currentSharing = "googleplus";
lnrSayAboutStory.setVisibility(View.VISIBLE);
lnrEmailShare.setVisibility(View.GONE);
break;
case R.id.rdbEmailShare:
currentSharing = "facebook";
lnrSayAboutStory.setVisibility(View.GONE);
lnrEmailShare.setVisibility(View.VISIBLE);
break;
default:
break;
}
}
});
btnShareStory.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (currentSharing.equals("facebook")) {
onFacebook(edtStory.getText().toString().trim());
} else if (currentSharing.equals("twitter")) {
onTwitter(edtStory.getText().toString().trim());
} else {
onGoolePlus(edtStory.getText().toString().trim());
}
}
});
imgShareAddEmail.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
IjoomerUtilities.getContactDialog(selectedData, new ShareListner() {
@SuppressWarnings("unchecked")
@Override
public void onClick(String shareOn, Object value, String message) {
selectedData.clear();
selectedData.addAll((ArrayList<HashMap<String, Object>>) value);
edtShareEmail.setText(message);
}
});
}
});
imgShareClose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
});
}
@Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
}
@Override
public View setLayoutView() {
return null;
}
@Override
public int setHeaderLayoutId() {
return 0;
}
@Override
public int setFooterLayoutId() {
return 0;
}
@Override
public void prepareViews() {
rdbFacebookShare.setChecked(true);
}
@Override
public String[] setTabItemNames() {
return null;
}
@Override
public int setTabBarDividerResId() {
return 0;
}
@Override
public int setTabItemLayoutId() {
return 0;
}
@Override
public int[] setTabItemOnDrawables() {
return null;
}
@Override
public int[] setTabItemOffDrawables() {
return null;
}
@Override
public int[] setTabItemPressDrawables() {
return null;
}
/**
* Class methods
*/
/**
* This method used to get Intent data.
*/
private void getIntentData() {
IN_SHARE_CAPTION = getIntent().getStringExtra("IN_SHARE_CAPTION") != null ? getIntent().getStringExtra("IN_SHARE_CAPTION") : "";
IN_SHARE_DESCRIPTION = getIntent().getStringExtra("IN_SHARE_DESCRIPTION") != null ? getIntent().getStringExtra("IN_SHARE_DESCRIPTION") : "";
IN_SHARE_THUMB = getIntent().getStringExtra("IN_SHARE_THUMB") != null ? getIntent().getStringExtra("IN_SHARE_THUMB") : "";
IN_SHARE_SHARELINK = getIntent().getStringExtra("IN_SHARE_SHARELINK") != null ? getIntent().getStringExtra("IN_SHARE_SHARELINK") : "";
System.out.println("IN_SHARE_CAPTION"+IN_SHARE_CAPTION);
System.out.println("IN_SHARE_DESCRIPTION"+IN_SHARE_DESCRIPTION);
System.out.println("IN_SHARE_THUMB"+IN_SHARE_THUMB);
System.out.println("IN_SHARE_SHARELINK"+IN_SHARE_SHARELINK);
}
/**
* This method used to share data on mail.
*
* @param value
* represented sender id with (,) separated
* @param message
* represented message share
*/
private void onEmail(String value, String message) {
String[] to = value.toString().split(",");
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/html");
i.putExtra(Intent.EXTRA_EMAIL, to);
i.putExtra(Intent.EXTRA_SUBJECT, String.format(getString(R.string.share_email_subject), IN_SHARE_CAPTION));
i.putExtra(
Intent.EXTRA_TEXT,
Html.fromHtml(IjoomerUtilities.prepareEmailBody(message == null ? "" : message, getSmartApplication().readSharedPreferences().getString(SP_USERNAME, "") + " " + getString(R.string.saw_this_story_on_the) + " "
+ getString(R.string.app_name) + " " + getString(R.string.thought_you_should_see_it), IN_SHARE_CAPTION, IN_SHARE_DESCRIPTION, IN_SHARE_SHARELINK, getString(R.string.try_ijoomeradvance), getString(R.string.site_url))));
try {
startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
ting(getString(R.string.share_email_no_client));
}
}
/**
* This method used to share data on facebook.
*
* @param message
* represented message share
*/
private void onFacebook(String message) {
try {
loadNew(IjoomerFacebookSharingActivity.class, IjoomerShareActivity.this, false, "IN_CAPTION", IN_SHARE_CAPTION, "IN_NAME", IN_SHARE_CAPTION, "IN_DESCRIPTION", IN_SHARE_DESCRIPTION, "IN_LINK", IN_SHARE_SHARELINK,
"IN_PICTURE", IN_SHARE_THUMB, "IN_MESSAGE", message == null ? "" : message);
} catch (Throwable e) {
e.printStackTrace();
}
}
/**
* This method used to share data on twitter.
*
* @param message
* represented message share
*/
private void onTwitter(String message) {
try {
loadNew(IJoomerTwitterShareActivity.class, IjoomerShareActivity.this, false, "IN_TWIT_MESSAGE", message == null ? "" : message + " \n " + IN_SHARE_SHARELINK, "IN_TWIT_IMAGE", IN_SHARE_THUMB);
} catch (Throwable e) {
e.printStackTrace();
}
}
/**
* This method used to share data on Google Plus.
*
* @param message
* represented message share
*/
private void onGoolePlus(String message) {
try {
loadNew(IJoomerGooglePlusShareActivity.class, IjoomerShareActivity.this, false, "IN_SHARE_LINK", IN_SHARE_SHARELINK, "IN_SHARE_MESSAGE", message);
} catch (Throwable e) {
e.printStackTrace();
}
}
}