package com.ijoomer.components.jomsocial; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import android.content.Intent; import android.location.Address; import android.text.Html; import android.text.method.LinkMovementMethod; import android.text.method.ScrollingMovementMethod; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioGroup; import android.widget.SeekBar; import android.widget.Spinner; import android.widget.TextView.BufferType; import com.androidquery.AQuery; import com.ijoomer.common.classes.IjoomerShareActivity; import com.ijoomer.common.classes.IjoomerUtilities; import com.ijoomer.common.classes.ViewHolder; import com.ijoomer.common.configuration.IjoomerApplicationConfiguration; import com.ijoomer.custom.interfaces.ReportListner; import com.ijoomer.customviews.IjoomerAudioPlayer.AudioListener; import com.ijoomer.customviews.IjoomerButton; import com.ijoomer.customviews.IjoomerEditText; import com.ijoomer.customviews.IjoomerTextView; import com.ijoomer.customviews.IjoomerVoiceAndTextMessager; import com.ijoomer.customviews.IjoomerVoiceAndTextMessager.MessageHandler; import com.ijoomer.customviews.IjoomerVoiceButton; import com.ijoomer.library.jomsocial.JomGalleryDataProvider; import com.ijoomer.media.player.IjoomerMediaPlayer; import com.ijoomer.src.R; import com.ijoomer.weservice.WebCallListener; import com.smart.framework.CustomAlertMagnatic; import com.smart.framework.CustomAlertNeutral; import com.smart.framework.ItemView; import com.smart.framework.SmartListAdapterWithHolder; import com.smart.framework.SmartListItem; /** * This Class Contains All Method Related To JomVideoDetailsActivity. * * @author tasol * */ public class JomVideoDetailsActivity extends JomMasterActivity { private LinearLayout listFooter; private LinearLayout lnrHeader; private LinearLayout lnrCreateVideo; private LinearLayout lnrVideo; private LinearLayout lnrPlayRecordComment; private ListView lstVideoComment; private IjoomerTextView txtVideoEdit; private IjoomerTextView txtVideoRemove; private IjoomerTextView txtVideoSetAsProfileVideo; private IjoomerTextView txtVideoTitle; private IjoomerTextView txtVideoBy; private IjoomerTextView txtVideoCategorie; private IjoomerTextView txtVideoPriavcy; private IjoomerTextView txtVideoDateLocation; private IjoomerTextView txtVideoLikeCount; private IjoomerTextView txtVideoDislikeCount; private IjoomerTextView txtVideoCommentCount; private IjoomerTextView txtVideoDesciption; private IjoomerTextView txtVideoShare; private IjoomerTextView txtVideoReport; private IjoomerTextView txtVideoTag; private IjoomerTextView txtTotalRecordComment; private IjoomerTextView txtRecordUser; private IjoomerEditText edtVideoTitle; private IjoomerEditText edtVideoDescription; private IjoomerEditText edtVideoLocation; private ImageView imgVideoAvatar; private Spinner spnVideoCategory; private Spinner spnWhoCanSee; private IjoomerButton btnCancle; private IjoomerButton btnSave; private IjoomerVoiceButton btnPlayAll; private IjoomerVoiceAndTextMessager voiceMessager; private ViewGroup videoDetailsHeaderLayout; private AQuery androidQuery; private ArrayList<SmartListItem> listData = new ArrayList<SmartListItem>(); private ArrayList<HashMap<String, String>> CATEGORY_LIST; private ArrayList<String> CATEGORY_ARRAY; private HashMap<String, String> IN_VIDEO_DETAILS; private SmartListAdapterWithHolder commentAdapter; private JomGalleryDataProvider providerComment; private JomGalleryDataProvider provider; private final int VIDEO_TAG=1; public static int videoTagCount=0; private String IN_USERID; private String IN_GROUPID; private int recordCommentCounter; private int recordCommentTotal; private int recordCommentLast; /** * Overrides methods */ @Override public int setLayoutId() { return R.layout.jom_video_details; } @Override public void initComponents() { videoDetailsHeaderLayout = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.jom_video_detail_header, null); listFooter = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.ijoomer_list_footer, null); lstVideoComment = (ListView) findViewById(R.id.lstVideoComment); lstVideoComment.addHeaderView(videoDetailsHeaderLayout); lstVideoComment.addFooterView(listFooter, null, false); lstVideoComment.setAdapter(null); lnrHeader = (LinearLayout) findViewById(R.id.lnrHeader); lnrPlayRecordComment = (LinearLayout) videoDetailsHeaderLayout.findViewById(R.id.lnrPlayRecordComment); lnrCreateVideo = (LinearLayout) videoDetailsHeaderLayout.findViewById(R.id.lnrCreateVideo); lnrVideo = (LinearLayout) videoDetailsHeaderLayout.findViewById(R.id.lnrVideo); txtVideoEdit = (IjoomerTextView) findViewById(R.id.txtVideoEdit); txtVideoRemove = (IjoomerTextView) findViewById(R.id.txtVideoRemove); txtVideoSetAsProfileVideo = (IjoomerTextView) findViewById(R.id.txtVideoSetAsProfileVideo); txtVideoTitle = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoTitle); txtVideoLikeCount = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoLikeCount); txtVideoDislikeCount = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoDislikeCount); txtVideoCommentCount = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoCommentCount); txtVideoBy = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoBy); txtVideoDateLocation = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoDateLocation); txtVideoDesciption = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoDesciption); txtVideoCategorie = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoCategorie); txtVideoPriavcy = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoPriavcy); txtVideoShare = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoShare); txtVideoReport = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoReport); txtVideoTag = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtVideoTag); txtTotalRecordComment = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtTotalRecordComment); txtRecordUser = (IjoomerTextView) videoDetailsHeaderLayout.findViewById(R.id.txtRecordUser); edtVideoTitle = (IjoomerEditText) videoDetailsHeaderLayout.findViewById(R.id.edtVideoTitle); edtVideoLocation = (IjoomerEditText) videoDetailsHeaderLayout.findViewById(R.id.edtVideoLocation); edtVideoDescription = (IjoomerEditText) videoDetailsHeaderLayout.findViewById(R.id.edtVideoDescription); imgVideoAvatar = (ImageView) videoDetailsHeaderLayout.findViewById(R.id.imgVideoAvatar); btnCancle = (IjoomerButton) videoDetailsHeaderLayout.findViewById(R.id.btnCancle); btnSave = (IjoomerButton) videoDetailsHeaderLayout.findViewById(R.id.btnSave); btnPlayAll = (IjoomerVoiceButton) videoDetailsHeaderLayout.findViewById(R.id.btnPlayAll); btnPlayAll.setReportVoice(false); voiceMessager = (IjoomerVoiceAndTextMessager) findViewById(R.id.voiceMessager); spnWhoCanSee = (Spinner) videoDetailsHeaderLayout.findViewById(R.id.spnWhoCanSee); spnVideoCategory = (Spinner) videoDetailsHeaderLayout.findViewById(R.id.spnVideoCategory); androidQuery = new AQuery(this); provider = new JomGalleryDataProvider(this); providerComment = new JomGalleryDataProvider(this); getIntentData(); getComment(false); } @Override public void prepareViews() { videoTagCount=0; CATEGORY_ARRAY = new ArrayList<String>(); getVideoCategory(); spnWhoCanSee.setAdapter(new IjoomerUtilities.MyCustomAdapter(this, new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.wall_post_type))))); } @Override public void setActionListeners() { btnPlayAll.setAudioListener(new AudioListener() { @Override public void onReportClicked() { } @Override public void onPrepared() { } @SuppressWarnings("unchecked") @Override public void onPlayClicked(boolean isplaying) { if (!isplaying) { txtRecordUser.setVisibility(View.VISIBLE); recordCommentCounter = 0; recordCommentLast = 0; recordCommentCounter += 1; txtTotalRecordComment.setText("(" + recordCommentCounter + "/" + recordCommentTotal + ")"); for (int i = 0; i < listData.size(); i++) { if (getAudio(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(COMMENT)) != null) { btnPlayAll.setAudioPath(getAudio(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(COMMENT)), false); btnPlayAll.setText(getAudioLength(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(COMMENT))); txtRecordUser.setText(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(USER_NAME)); recordCommentLast = i; break; } } } else { btnPlayAll.setCustomText(getString(R.string.play_all)); txtTotalRecordComment.setText("(" + recordCommentTotal + ")"); txtRecordUser.setVisibility(View.GONE); recordCommentCounter = recordCommentTotal; } } @SuppressWarnings("unchecked") @Override public void onComplete() { if (recordCommentCounter == recordCommentTotal) { btnPlayAll.setCustomText(getString(R.string.play_all)); txtTotalRecordComment.setText("(" + recordCommentTotal + ")"); txtRecordUser.setVisibility(View.GONE); } else { recordCommentCounter += 1; txtTotalRecordComment.setText("(" + recordCommentCounter + "/" + recordCommentTotal + ")"); for (int i = recordCommentLast + 1; i < listData.size(); i++) { if (getAudio(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(COMMENT)) != null) { btnPlayAll.setAudioPath(getAudio(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(COMMENT)), true); btnPlayAll.setText(getAudioLength(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(COMMENT))); txtRecordUser.setText(((HashMap<String, String>) listData.get(i).getValues().get(0)).get(USER_NAME)); recordCommentLast = i; break; } } } } }); lstVideoComment.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if ((firstVisibleItem + visibleItemCount) >= totalItemCount && totalItemCount > 2) { if (!providerComment.isCalling() && providerComment.hasNextPage()) { listFooterVisible(); providerComment.getVideoCommentList(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { listFooterInvisible(); if (responseCode == 200) { updateHeader(providerComment.getNotificationData()); prepareList(data1, true); } } }); } } } }); txtVideoSetAsProfileVideo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { provider.setAsProfileVideo(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(R.string.photo_set_as_profile_video_successfully), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { } }); } else { responseErrorMessageHandler(responseCode, false); } } }); } }); imgVideoAvatar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { Intent lVideoIntent = new Intent(null,getVideoPlayURI(IN_VIDEO_DETAILS.get(URL).toString()), JomVideoDetailsActivity.this, IjoomerMediaPlayer.class); startActivity(lVideoIntent); } catch (Exception e) { e.printStackTrace(); } } }); btnSave.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (edtVideoTitle.getText().toString().trim().length() > 0) { if (isVideoDataChanged()) { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); Address address = IjoomerUtilities.getLatLongFromAddress(edtVideoLocation.getText().toString().trim()); provider.editVideo(IN_VIDEO_DETAILS.get(ID), IN_GROUPID, edtVideoTitle.getText().toString().trim(), edtVideoDescription.getText().toString().trim(), address != null ? address.getLatitude() : 0, address != null ? address.getLongitude() : 0, getCategoryId(spnVideoCategory.getSelectedItemPosition()), getPrivacyCode(spnWhoCanSee.getSelectedItem().toString().trim()).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(R.string.video_edited_successfully), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { IjoomerApplicationConfiguration.setReloadRequired(true); lnrCreateVideo.setVisibility(View.GONE); lnrVideo.setVisibility(View.VISIBLE); IN_VIDEO_DETAILS.put(CAPTION, edtVideoTitle.getText().toString().trim()); IN_VIDEO_DETAILS.put(DESCRIPTION, edtVideoDescription.getText().toString().trim()); IN_VIDEO_DETAILS.put(LOCATION, edtVideoLocation.getText().toString().trim()); IN_VIDEO_DETAILS.put(PERMISSION, getPrivacyCode(spnWhoCanSee.getSelectedItem().toString().trim())); IN_VIDEO_DETAILS.put(CATEGORYID, getCategoryId(spnVideoCategory.getSelectedItemPosition())); setVideoDetails(); } }); } else { IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(getResources().getIdentifier("code" + responseCode, "string", getPackageName())), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { lnrVideo.setVisibility(View.VISIBLE); lnrCreateVideo.setVisibility(View.GONE); } }); } } }); } else { lnrCreateVideo.setVisibility(View.GONE); lnrVideo.setVisibility(View.VISIBLE); } } else { edtVideoTitle.setError(getString(R.string.validation_value_required)); } } }); txtVideoTag.setOnClickListener(new OnClickListener() { @Override public void onClick(View paramView) { try { loadNewResult(JomTagPhotoVideoAddRemoveActivity.class,JomVideoDetailsActivity.this,VIDEO_TAG,"IN_TYPE",VIDEO,"IN_VIDEO_ID",IN_VIDEO_DETAILS.get(ID).toString()); } catch (Throwable e) { e.printStackTrace(); } } }); txtVideoEdit.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (lnrCreateVideo.getVisibility() == View.VISIBLE) { lnrVideo.setVisibility(View.VISIBLE); lnrCreateVideo.setVisibility(View.GONE); } else { lnrVideo.setVisibility(View.GONE); lnrCreateVideo.setVisibility(View.VISIBLE); setVideoDetailsForEdit(); } } }); btnCancle.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { lnrVideo.setVisibility(View.VISIBLE); lnrCreateVideo.setVisibility(View.GONE); } }); txtVideoRemove.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { IjoomerUtilities.getCustomConfirmDialog(getString(R.string.video_title_remove), getString(R.string.are_you_sure), getString(R.string.yes), getString(R.string.no), new CustomAlertMagnatic() { @Override public void PositiveMethod() { provider.removeVideo(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); finish(); } else { IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(getResources().getIdentifier("code" + responseCode, "string", getPackageName())), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { } }); } } }); } @Override public void NegativeMethod() { } }); } }); voiceMessager.setMessageHandler(new MessageHandler() { @Override public void onVoiceMessageRecordingComplete(String message, String voiceMessagePath) { provider.addVideoComment(IN_VIDEO_DETAILS.get(ID).toString(), message, voiceMessagePath, new WebCallListener() { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); IN_VIDEO_DETAILS.put(COMMENTCOUNT, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()) + 1)); txtVideoCommentCount.setText(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()); getComment(true); } else { IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(getResources().getIdentifier("code" + responseCode, "string", getPackageName())), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { } }); } } }); } @Override public void onButtonSend(String message) { provider.addVideoComment(IN_VIDEO_DETAILS.get(ID).toString(), message, null, new WebCallListener() { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); IN_VIDEO_DETAILS.put(COMMENTCOUNT, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()) + 1)); txtVideoCommentCount.setText(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()); getComment(true); } else { IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(getResources().getIdentifier("code" + responseCode, "string", getPackageName())), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { } }); } } }); } @Override public void onToggle(int messager) { } }); txtVideoLikeCount.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (IN_VIDEO_DETAILS.get(LIKED).equals("1")) { txtVideoLikeCount.setClickable(false); provider.unlikeVideo(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); IN_VIDEO_DETAILS.put(LIKED, "0"); IN_VIDEO_DETAILS.put(LIKES, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(LIKES).toString()) - 1)); txtVideoLikeCount.setText(IN_VIDEO_DETAILS.get(LIKES).toString()); } else { responseErrorMessageHandler(responseCode, false); } txtVideoLikeCount.setClickable(true); } }); } else { txtVideoLikeCount.setClickable(false); provider.likeVideo(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); IN_VIDEO_DETAILS.put(LIKED, "1"); IN_VIDEO_DETAILS.put(LIKES, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(LIKES).toString()) + 1)); txtVideoLikeCount.setText(IN_VIDEO_DETAILS.get(LIKES).toString()); if (IN_VIDEO_DETAILS.get(DISLIKED).equals("1")) { IN_VIDEO_DETAILS.put(DISLIKES, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(DISLIKES).toString()) - 1)); IN_VIDEO_DETAILS.put(DISLIKED, "0"); txtVideoDislikeCount.setText(IN_VIDEO_DETAILS.get(DISLIKES).toString()); } } else { responseErrorMessageHandler(responseCode, false); } txtVideoLikeCount.setClickable(true); } }); } } }); txtVideoDislikeCount.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (IN_VIDEO_DETAILS.get(DISLIKED).equals("1")) { txtVideoDislikeCount.setClickable(false); provider.unlikeVideo(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); IN_VIDEO_DETAILS.put(DISLIKED, "0"); IN_VIDEO_DETAILS.put(DISLIKES, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(DISLIKES).toString()) - 1)); txtVideoDislikeCount.setText(IN_VIDEO_DETAILS.get(DISLIKES).toString()); } else { responseErrorMessageHandler(responseCode, false); } txtVideoDislikeCount.setClickable(true); } }); } else { txtVideoDislikeCount.setClickable(false); provider.dislikeVideo(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); IN_VIDEO_DETAILS.put(DISLIKED, "1"); IN_VIDEO_DETAILS.put(DISLIKES, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(DISLIKES).toString()) + 1)); txtVideoDislikeCount.setText(IN_VIDEO_DETAILS.get(DISLIKES).toString()); if (IN_VIDEO_DETAILS.get(LIKED).equals("1")) { IN_VIDEO_DETAILS.put(LIKES, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(LIKES).toString()) - 1)); IN_VIDEO_DETAILS.put(LIKED, "0"); txtVideoLikeCount.setText(IN_VIDEO_DETAILS.get(LIKES).toString()); } } else { responseErrorMessageHandler(responseCode, false); } txtVideoDislikeCount.setClickable(true); } }); } } }); txtVideoShare.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { try { loadNew(IjoomerShareActivity.class, JomVideoDetailsActivity.this, false, "IN_SHARE_CAPTION", IN_VIDEO_DETAILS.get(CAPTION).toString(), "IN_SHARE_DESCRIPTION", IN_VIDEO_DETAILS.get(DESCRIPTION).toString(), "IN_SHARE_THUMB", IN_VIDEO_DETAILS.get(THUMB).toString(), "IN_SHARE_SHARELINK", IN_VIDEO_DETAILS.get(SHARELINK).toString()); } catch (Throwable e) { e.printStackTrace(); } } }); txtVideoReport.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { IjoomerUtilities.getReportDialog(new ReportListner() { @Override public void onClick(String repotType, String message) { provider.reportVideo(IN_USERID, IN_VIDEO_DETAILS.get(ID).toString(), repotType + " " + message, new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(R.string.report_successfully), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { } }); } else { responseErrorMessageHandler(responseCode, false); } } }); } }); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==VIDEO_TAG){ txtVideoTag.setText(String.valueOf(videoTagCount)); } } @Override public void onCheckedChanged(RadioGroup arg0, int arg1) { } /** * Class methods */ /** * This method used to get video category. */ private void getVideoCategory() { provider.getVideoCategoryList(new WebCallListener() { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); CATEGORY_LIST = data1; for (HashMap<String, String> hashMap : CATEGORY_LIST) { CATEGORY_ARRAY.add(hashMap.get(NAME)); } setVideoDetails(); spnVideoCategory.setAdapter(new IjoomerUtilities.MyCustomAdapter(JomVideoDetailsActivity.this, CATEGORY_ARRAY)); } else { responseErrorMessageHandler(responseCode, true); } } }); } /** * This method used to get intent data. */ @SuppressWarnings("unchecked") private void getIntentData() { IN_USERID = getIntent().getStringExtra("IN_USERID") == null ? "0" : getIntent().getStringExtra("IN_USERID"); IN_VIDEO_DETAILS = (HashMap<String, String>) getIntent().getSerializableExtra("IN_VIDEO_DETAILS") == null ? new HashMap<String, String>() : (HashMap<String, String>) getIntent().getSerializableExtra("IN_VIDEO_DETAILS"); IN_GROUPID = getIntent().getStringExtra("IN_GROUPID") == null ? "0" : getIntent().getStringExtra("IN_GROUPID"); if (IN_VIDEO_DETAILS.containsKey(DELETEALLOWED) && IN_VIDEO_DETAILS.get(DELETEALLOWED).equals("1")) { lnrHeader.setVisibility(View.VISIBLE); if (IN_VIDEO_DETAILS.get(USER_ID).equals("0")) { txtVideoSetAsProfileVideo.setVisibility(View.VISIBLE); } else { txtVideoSetAsProfileVideo.setVisibility(View.GONE); } } androidQuery.id(imgVideoAvatar).image(IN_VIDEO_DETAILS.get(THUMB), true, true, getDeviceWidth(), 0); } /** * This method used to shown response message. * * @param responseCode * represented response code * @param finishActivityOnConnectionProblem * represented finish activity on connection problem */ private void responseErrorMessageHandler(final int responseCode, final boolean finishActivityOnConnectionProblem) { IjoomerUtilities.getCustomOkDialog(getString(R.string.video), getString(getResources().getIdentifier("code" + responseCode, "string", getPackageName())), getString(R.string.ok), R.layout.ijoomer_ok_dialog, new CustomAlertNeutral() { @Override public void NeutralMethod() { } }); } /** * This method used to set video details. */ private void setVideoDetails() { txtVideoTitle.setText(IN_VIDEO_DETAILS.get(CAPTION).toString()); txtVideoTitle.setMovementMethod(new ScrollingMovementMethod()); txtVideoBy.setText(IN_VIDEO_DETAILS.get(USER_NAME).toString()); txtVideoLikeCount.setText(IN_VIDEO_DETAILS.get(LIKES).toString()); txtVideoDislikeCount.setText(IN_VIDEO_DETAILS.get(DISLIKES).toString()); txtVideoCommentCount.setText(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()); videoTagCount+=Integer.parseInt(IN_VIDEO_DETAILS.get(TAGS).toString()); txtVideoTag.setText(String.valueOf(videoTagCount)); txtVideoPriavcy.setText(getPrivacyString(IN_VIDEO_DETAILS.get(PERMISSIONS).toString())); int size = CATEGORY_LIST.size(); for (int i = 0; i < size; i++) { if (CATEGORY_LIST.get(i).get(ID).equals(IN_VIDEO_DETAILS.get(CATEGORYID).toString())) { txtVideoCategorie.setText(CATEGORY_LIST.get(i).get(NAME)); break; } } txtVideoBy.setMovementMethod(LinkMovementMethod.getInstance()); txtVideoBy.setText(addClickablePart(Html.fromHtml(IN_VIDEO_DETAILS.get(USER_NAME)), IN_VIDEO_DETAILS), BufferType.SPANNABLE); txtVideoDesciption.setText(IN_VIDEO_DETAILS.get(DESCRIPTION).toString()); if (IN_VIDEO_DETAILS.get(LOCATION).toString().trim().length() <= 0) { txtVideoDateLocation.setText(IN_VIDEO_DETAILS.get(DATE).toString()); } else { txtVideoDateLocation.setText(IN_VIDEO_DETAILS.get(DATE).toString() + " @ " + IN_VIDEO_DETAILS.get(LOCATION).toString()); } if (IN_VIDEO_DETAILS.get(DELETEALLOWED).equals("1")) { lnrHeader.setVisibility(View.VISIBLE); } } /** * This method used to get video comment. * * @param isNextPage * represented is next page */ public void getComment(boolean isNextPage) { if (isNextPage) { providerComment.restorePagingSettings(); } if (IN_VIDEO_DETAILS.containsKey(COMMENTCOUNT) && Integer.parseInt(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()) > 0) { providerComment.getVideoCommentList(IN_VIDEO_DETAILS.get(ID).toString(), new WebCallListener() { @Override public void onProgressUpdate(int progressCount) { } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(providerComment.getNotificationData()); prepareList(data1, false); commentAdapter = getListAdapter(); lstVideoComment.setAdapter(commentAdapter); } else { lstVideoComment.setAdapter(null); responseErrorMessageHandler(responseCode, false); } } }); } else { lstVideoComment.setAdapter(null); } } /** * This method used to visible list footer */ public void listFooterVisible() { listFooter.setVisibility(View.VISIBLE); } /** * This method used to gone list footer */ public void listFooterInvisible() { listFooter.setVisibility(View.GONE); } /** * This method used to set edit video details */ private void setVideoDetailsForEdit() { edtVideoTitle.setText(IN_VIDEO_DETAILS.get(CAPTION).toString()); edtVideoDescription.setText(IN_VIDEO_DETAILS.get(DESCRIPTION).toString()); edtVideoLocation.setText(IN_VIDEO_DETAILS.get(LOCATION).toString()); spnWhoCanSee.setSelection(getPrivacyIndex(IN_VIDEO_DETAILS.get(PERMISSIONS).toString())); int size = CATEGORY_LIST.size(); for (int i = 0; i < size; i++) { if (CATEGORY_LIST.get(i).get(ID).equals(IN_VIDEO_DETAILS.get(CATEGORYID))) { spnVideoCategory.setSelection(i); break; } } } /** * This method used to is video details changed. * * @return represented {@link Boolean} */ private boolean isVideoDataChanged() { boolean isChanged = false; if (!(edtVideoTitle.getText().toString().equals(IN_VIDEO_DETAILS.get(CAPTION)) && edtVideoDescription.getText().toString().equals(IN_VIDEO_DETAILS.get(DESCRIPTION)) && edtVideoLocation.getText().toString().equals(IN_VIDEO_DETAILS.get(LOCATION)) && getPrivacyCode(spnWhoCanSee.getSelectedItem().toString()).equals(IN_VIDEO_DETAILS.get(PERMISSION)) && getCategoryId(spnVideoCategory.getSelectedItemPosition()) .equals(IN_VIDEO_DETAILS.get(CATEGORYID)))) { isChanged = true; } return isChanged; } /** * This method used to get category id. * * @param categoryIndex * represented category index * @return represented {@link String} */ private String getCategoryId(int categoryIndex) { return CATEGORY_LIST.get(categoryIndex).get(ID); } /** * This method used to prepare list video comment. * * @param data * represented video comment data * @param append * represented data append */ public void prepareList(ArrayList<HashMap<String, String>> data, boolean append) { if (data != null) { if (!append) { listData.clear(); recordCommentTotal = 0; } for (HashMap<String, String> hashMap : data) { if (getAudio(hashMap.get(COMMENT)) != null) { recordCommentTotal += 1; } SmartListItem item = new SmartListItem(); item.setItemLayout(R.layout.jom_comment_list_item); ArrayList<Object> obj = new ArrayList<Object>(); obj.add(hashMap); item.setValues(obj); if (append) { commentAdapter.add(item); } else { listData.add(item); } } if (recordCommentTotal > 1) { lnrPlayRecordComment.setVisibility(View.VISIBLE); btnPlayAll.setCustomText(getString(R.string.play_all)); txtTotalRecordComment.setText("(" + recordCommentTotal + ")"); } } } /** * List adapter for video comment. */ private SmartListAdapterWithHolder getListAdapter() { SmartListAdapterWithHolder adapterWithHolder = new SmartListAdapterWithHolder(JomVideoDetailsActivity.this, R.layout.jom_comment_list_item, listData, new ItemView() { @Override public View setItemView(final int position, View v, SmartListItem item, final ViewHolder holder) { holder.imgCommentUserAvatar = (ImageView) v.findViewById(R.id.imgCommentUserAvatar); holder.txtCommentUserName = (IjoomerTextView) v.findViewById(R.id.txtCommentUserName); holder.txtCommentDate = (IjoomerTextView) v.findViewById(R.id.txtCommentDate); holder.txtCommentTitle = (IjoomerTextView) v.findViewById(R.id.txtCommentTitle); holder.btnCommentRemove = (IjoomerButton) v.findViewById(R.id.btnCommentRemove); holder.btnPlayStopVoice = (IjoomerVoiceButton) v.findViewById(R.id.btnPlayStopVoice); holder.btnPlayStopVoice.setVisibility(View.GONE); holder.btnCommentRemove.setVisibility(View.GONE); @SuppressWarnings("unchecked") final HashMap<String, String> row = (HashMap<String, String>) item.getValues().get(0); androidQuery.id(holder.imgCommentUserAvatar).image(row.get(USER_AVATAR), true, true, getDeviceWidth(), 0); holder.txtCommentTitle.setText(getPlainText(row.get(COMMENT))); holder.txtCommentUserName.setText(row.get(USER_NAME)); holder.txtCommentDate.setText(row.get(DATE)); if (row.containsKey(DELETEALLOWED) && row.get(DELETEALLOWED).equals("1")) { holder.btnCommentRemove.setVisibility(View.VISIBLE); } if (getAudio(row.get(COMMENT)) != null) { holder.btnPlayStopVoice.setVisibility(View.VISIBLE); holder.btnPlayStopVoice.setText(getAudioLength(row.get(COMMENT))); holder.btnPlayStopVoice.setAudioPath(getAudio(row.get(COMMENT)), false); holder.btnPlayStopVoice.setAudioListener(new AudioListener() { @Override public void onReportClicked() { reportVoice(getAudio(row.get(COMMENT))); } @Override public void onPrepared() { } @Override public void onPlayClicked(boolean isplaying) { btnPlayAll.setCustomText(getString(R.string.play_all)); txtTotalRecordComment.setText("(" + recordCommentTotal + ")"); txtRecordUser.setVisibility(View.GONE); recordCommentCounter = recordCommentTotal; } @Override public void onComplete() { } }); } holder.btnCommentRemove.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { IjoomerUtilities.getCustomConfirmDialog(getString(R.string.video), getString(R.string.are_you_sure), getString(R.string.yes), getString(R.string.no), new CustomAlertMagnatic() { @Override public void PositiveMethod() { provider.removeVideoComment(row.get(ID), new WebCallListener() { final SeekBar proSeekBar = IjoomerUtilities.getLoadingDialog(getString(R.string.dialog_loading_sending_request)); @Override public void onProgressUpdate(int progressCount) { proSeekBar.setProgress(progressCount); } @Override public void onCallComplete(int responseCode, String errorMessage, ArrayList<HashMap<String, String>> data1, Object data2) { if (responseCode == 200) { updateHeader(provider.getNotificationData()); IjoomerApplicationConfiguration.setReloadRequired(true); commentAdapter.remove(commentAdapter.getItem(position)); if (getAudio(row.get(COMMENT)) != null) { recordCommentTotal -= 1; txtTotalRecordComment.setText("(" + recordCommentTotal + ")"); if (recordCommentTotal == 1) { lnrPlayRecordComment.setVisibility(View.GONE); } } IN_VIDEO_DETAILS.put(COMMENTCOUNT, String.valueOf(Integer.parseInt(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()) - 1)); txtVideoCommentCount.setText(IN_VIDEO_DETAILS.get(COMMENTCOUNT).toString()); } else { responseErrorMessageHandler(responseCode, false); } } }); } @Override public void NegativeMethod() { } }); } }); holder.imgCommentUserAvatar.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (row.get(USER_PROFILE).equals("1")) { gotoProfile(row.get(USER_ID)); } } }); return v; } @Override public View setItemView(int position, View v, SmartListItem item) { return null; } }); return adapterWithHolder; } }