List of usage examples for android.widget SeekBar setOnSeekBarChangeListener
public void setOnSeekBarChangeListener(OnSeekBarChangeListener l)
From source file:com.serenegiant.autoparrot.BaseAutoPilotFragment.java
private void initPreprocess2(final View rootView) { Switch sw;/*from w ww . j av a2 s .c om*/ Spinner spinner; SeekBar sb; mMaxThinningLoopFormat = getString(R.string.trace_max_thinning_loop); // OpenGL|ES?? // mGLESSmoothType = getInt(mPref, KEY_SMOOTH_TYPE, DEFAULT_SMOOTH_TYPE); // spinner = (Spinner)rootView.findViewById(R.id.use_smooth_spinner); // spinner.setAdapter(new SmoothTypeAdapter(getActivity())); // spinner.setOnItemSelectedListener(mOnItemSelectedListener); // // OpenGL|ES?????? // mEnableGLESCanny = mPref.getBoolean(KEY_ENABLE_EDGE_DETECTION, DEFAULT_ENABLE_EDGE_DETECTION); // sw = (Switch)rootView.findViewById(R.id.use_canny_sw); // sw.setChecked(mEnableGLESCanny); // sw.setOnCheckedChangeListener(mOnCheckedChangeListener); // ??????? mFillContour = mPref.getBoolean(KEY_FILL_INNER_CONTOUR, DEFAULT_FILL_INNER_CONTOUR); sw = (Switch) rootView.findViewById(R.id.use_fill_contour_sw); sw.setChecked(mFillContour); sw.setOnCheckedChangeListener(mOnCheckedChangeListener); // // Native??Canny????? // mEnableNativeCanny = mPref.getBoolean(KEY_ENABLE_NATIVE_EDGE_DETECTION, DEFAULT_ENABLE_NATIVE_EDGE_DETECTION); // sw = (Switch)rootView.findViewById(R.id.use_native_canny_sw); // sw.setChecked(mEnableNativeCanny); // sw.setOnCheckedChangeListener(mOnCheckedChangeListener); // native??? mNativeSmoothType = getInt(mPref, KEY_NATIVE_SMOOTH_TYPE, DEFAULT_NATIVE_SMOOTH_TYPE); spinner = (Spinner) rootView.findViewById(R.id.use_native_smooth_spinner); spinner.setAdapter(new SmoothTypeAdapter(getActivity())); spinner.setOnItemSelectedListener(mOnItemSelectedListener); // native??? mMaxThinningLoop = getInt(mPref, KEY_NATIVE_MAX_THINNING_LOOP, DEFAULT_NATIVE_MAX_THINNING_LOOP); mMaxThinningLoopLabel = (TextView) rootView.findViewById(R.id.max_thinning_loop_textview); sb = (SeekBar) rootView.findViewById(R.id.max_thinning_loop_seekbar); sb.setMax(20); sb.setProgress(mMaxThinningLoop); sb.setOnSeekBarChangeListener(mOnSeekBarChangeListener); updateMaxThinningLoop(mMaxThinningLoop); }
From source file:babybear.akbquiz.ConfigActivity.java
/** * ?/*from w w w . ja v a 2 s .c o m*/ */ private void init() { ToggleButton bgm_toggle = (ToggleButton) findViewById(R.id.bgm_switch); ToggleButton sound_toggle = (ToggleButton) findViewById(R.id.sound_switch); ToggleButton vibration_toggle = (ToggleButton) findViewById(R.id.config_vibration_switch); SeekBar bgm_vol = (SeekBar) findViewById(R.id.bgm_volume); SeekBar sound_vol = (SeekBar) findViewById(R.id.sound_volume); Button config_playlist = (Button) findViewById(R.id.config_playlist); bgm_toggle.setChecked(sp_cfg.getBoolean(Database.KEY_switch_bg, true)); sound_toggle.setChecked(sp_cfg.getBoolean(Database.KEY_switch_sound, true)); vibration_toggle.setChecked(sp_cfg.getBoolean(Database.KEY_switch_vibration, true)); bgm_vol.setProgress(sp_cfg.getInt(Database.KEY_vol_bg, 10)); sound_vol.setProgress(sp_cfg.getInt(Database.KEY_vol_sound, 10)); // ? loopmode = sp_cfg.getInt(Database.KEY_bgm_loopmode, BgMusic.MODE_LOOP); switch (loopmode) { case BgMusic.MODE_LOOP: ((Button) findViewById(R.id.config_loopmode)).setText(R.string.config_loop); case BgMusic.MODE_RANDOM: ((Button) findViewById(R.id.config_loopmode)).setText(R.string.config_random); case BgMusic.MODE_SINGLE: ((Button) findViewById(R.id.config_loopmode)).setText(R.string.config_single); } // ? if (sp_cfg.getBoolean(Database.KEY_use_custom_background, false)) { cfgflipper.setBackgroundDrawable(Drawable.createFromPath(customBgImage.getPath())); } OnClickListener clickListener = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.bgm_switch: boolean isBgOn = ((ToggleButton) v).isChecked(); cfgEditor.putBoolean(Database.KEY_switch_bg, isBgOn); Message msg = new Message(); msg.what = isBgOn ? 1 : 0; msg.arg1 = BgMusic.BGHandler.SWITCH_CHANGE; BgMusic.bgHandler.sendMessage(msg); break; case R.id.sound_switch: boolean isSoundOn = ((ToggleButton) v).isChecked(); cfgEditor.putBoolean(Database.KEY_switch_sound, isSoundOn); MainMenu.se.setSwitch(isSoundOn); break; case R.id.config_vibration_switch: boolean isVibOn = ((ToggleButton) v).isChecked(); cfgEditor.putBoolean(Database.KEY_switch_vibration, isVibOn); break; case R.id.config_playlist: if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { if (!isPlaylistChanged) { loadPlaylistEditor(); } cfgflipper.showNext(); } else { Toast.makeText(ConfigActivity.this, R.string.sdcard_unavailable, Toast.LENGTH_SHORT).show(); } break; case R.id.config_ranking: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("market://details?id=" + getPackageName())); startActivity(intent); break; case R.id.config_back: cfgEditor.commit(); finish(); break; case R.id.config_musiclist_back: case R.id.config_playlist_back: cfgflipper.showPrevious(); break; case R.id.config_update: verCode = getVerCode(ConfigActivity.this); verName = getVerName(ConfigActivity.this); if (getServerVer()) { if (newVerCode > verCode) { doNewVersionUpdate(); // } else { notNewVersionShow(); // ??? } } break; case R.id.config_loopmode: changeLoopMode(); break; case R.id.config_quiz_submit: Intent intent1 = new Intent(ConfigActivity.this, CollectQuiz.class); startActivity(intent1); break; case R.id.config_change_bgimage: customBgImage(); break; case R.id.config_restore_bgimage: restoreBgImage(); break; case R.id.call_calendar_editor: Intent calendar = new Intent(ConfigActivity.this, CalendarEditor.class); startActivity(calendar); break; case R.id.who_are_we: if (aboutFHS == null) { aboutFHS = (new AlertDialog.Builder(ConfigActivity.this)).setTitle(R.string.who_are_we) .setMessage(R.string.about_fhs).setIcon(R.drawable.fhs_logo_48) .setPositiveButton(android.R.string.ok, null).create(); } aboutFHS.show(); break; case R.id.licence: if (license == null) { license = (new AlertDialog.Builder(ConfigActivity.this)).setTitle(R.string.license_title) .setIcon(android.R.drawable.stat_sys_warning).setMessage(R.string.license) .setPositiveButton(android.R.string.ok, null).create(); } license.show(); break; } } }; bgm_toggle.setOnClickListener(clickListener); sound_toggle.setOnClickListener(clickListener); vibration_toggle.setOnClickListener(clickListener); config_playlist.setOnClickListener(clickListener); ((Button) findViewById(R.id.config_back)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_musiclist_back)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_playlist_back)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_update)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_quiz_submit)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_ranking)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_loopmode)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_change_bgimage)).setOnClickListener(clickListener); ((Button) findViewById(R.id.config_restore_bgimage)).setOnClickListener(clickListener); ((Button) findViewById(R.id.call_calendar_editor)).setOnClickListener(clickListener); ((Button) findViewById(R.id.who_are_we)).setOnClickListener(clickListener); ((Button) findViewById(R.id.licence)).setOnClickListener(clickListener); OnSeekBarChangeListener l_seekbar = new OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { switch (arg0.getId()) { case R.id.bgm_volume: cfgEditor.putInt(Database.KEY_vol_bg, arg1); Message msg = new Message(); msg.what = arg1; msg.arg1 = BgMusic.BGHandler.VOL_CHANGE; BgMusic.bgHandler.sendMessage(msg); break; case R.id.sound_volume: cfgEditor.putInt(Database.KEY_vol_sound, arg1); MainMenu.se.setVolume(arg1); break; } } @Override public void onStartTrackingTouch(SeekBar arg0) { } @Override public void onStopTrackingTouch(SeekBar arg0) { } }; bgm_vol.setOnSeekBarChangeListener(l_seekbar); sound_vol.setOnSeekBarChangeListener(l_seekbar); }
From source file:com.cw.litenote.note.NoteUi.java
/** * Set picture view listeners/*from www . j a va2 s .c o m*/ * @param act * @param pager * @param strPicture * @param linkUri * @param viewGroup */ private void setPictureView_listeners(final AppCompatActivity act, final ViewPager pager, final String strPicture, final String linkUri, ViewGroup viewGroup) { System.out.println("NoteUi / setPictureView_listeners"); Button picView_back_button = (Button) (viewGroup.findViewById(R.id.image_view_back)); Button picView_viewMode_button = (Button) (viewGroup.findViewById(R.id.image_view_mode)); Button picView_previous_button = (Button) (viewGroup.findViewById(R.id.image_view_previous)); Button picView_next_button = (Button) (viewGroup.findViewById(R.id.image_view_next)); Button mVideoPlayButton = (Button) (viewGroup.findViewById(R.id.video_view_play_video)); final TextView videoView_currPosition = (TextView) (viewGroup.findViewById(R.id.video_current_pos)); SeekBar videoView_seekBar = (SeekBar) (viewGroup.findViewById(R.id.video_seek_bar)); // Set video play button listener if (UtilVideo.hasVideoExtension(strPicture, act)) { mVideoPlayButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { System.out.println("NoteUi / setPictureView_listeners / mVideoPlayButton / getVideoState() = " + UtilVideo.getVideoState()); if ((BackgroundAudioService.mMediaPlayer != null) && (Audio_manager.getPlayerState() != Audio_manager.PLAYER_AT_STOP) && (UtilVideo.getVideoState() != UtilVideo.VIDEO_AT_PLAY)) { // Dialog: confirm to disable audio or not AlertDialog.Builder builder = new AlertDialog.Builder(act); builder.setTitle(R.string.title_playing_audio).setMessage(R.string.message_continue_or_stop) .setPositiveButton(R.string.btn_Stop, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Audio_manager.stopAudioPlayer(); UtilVideo.changeVideoState(); UtilVideo.playOrPauseVideo(pager, strPicture); } }).setNegativeButton(R.string.btn_Continue, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { UtilVideo.changeVideoState(); UtilVideo.playOrPauseVideo(pager, strPicture); } }).show(); } else { UtilVideo.changeVideoState(); UtilVideo.playOrPauseVideo(pager, strPicture); updateVideoPlayButtonState(pager, getFocus_notePos()); } } }); } else if (Util.isYouTubeLink(linkUri)) { mVideoPlayButton.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_media_play, 0, 0, 0); mVideoPlayButton.setVisibility(View.VISIBLE); // set listener for running YouTube mVideoPlayButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { System.out.println( "NoteUi / _setPictureView_listeners / onClick to play YouTube / linkUri = " + linkUri); // apply native YouTube // Util.openLink_YouTube(act, linkUri); // apply YouTube DATA API for note view Intent intent = new Intent(act, YouTubePlayerAct.class); act.startActivityForResult(intent, Util.YOUTUBE_LINK_INTENT); } }); } else if (Util.isEmptyString(strPicture) && linkUri.startsWith("http") && !UtilImage.hasImageExtension(linkUri, act) && //filter: some link has image extension Note.isViewAllMode()) { // set listener for running browser if (viewGroup != null) { CustomWebView linkWebView = ((CustomWebView) viewGroup.findViewById(R.id.link_web_view)); linkWebView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(linkUri)); act.startActivity(i); } return true; } }); } } // view mode // picture only if (Note.isPictureMode()) { // image: view back picView_back_button.setCompoundDrawablesWithIntrinsicBounds( R.drawable.ic_menu_back /*android.R.drawable.ic_menu_revert*/, 0, 0, 0); // click to finish Note_view_pager picView_back_button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // remove current link web view int position = getFocus_notePos(); String tagPictureStr = "current" + position + "pictureView"; ViewGroup pictureGroup = (ViewGroup) pager.findViewWithTag(tagPictureStr); if (pictureGroup != null) { CustomWebView linkWebView = ((CustomWebView) pictureGroup.findViewById(R.id.link_web_view)); CustomWebView.pauseWebView(linkWebView); CustomWebView.blankWebView(linkWebView); } // set not full screen Util.setFullScreen_noImmersive(act); // back to view all mode Note.setViewAllMode(); Note.setOutline(act); } }); // image: view mode picView_viewMode_button.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_menu_view, 0, 0, 0); // click to select view mode picView_viewMode_button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { TextView audio_title_text_view = (TextView) act.findViewById(R.id.pager_audio_title); audio_title_text_view.setSelected(false); //Creating the instance of PopupMenu popup = new PopupMenu(act, view); //Inflating the Popup using xml file popup.getMenuInflater().inflate(R.menu.pop_up_menu, popup.getMenu()); //registering popup with OnMenuItemClickListener popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.view_all: Note.setViewAllMode(); Note.setOutline(act); break; case R.id.view_picture: Note.setPictureMode(); Note.setOutline(act); break; case R.id.view_text: Note.setTextMode(); Note.setOutline(act); break; } return true; } }); popup.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { TextView audio_title_text_view = (TextView) act.findViewById(R.id.pager_audio_title); if (BackgroundAudioService.mMediaPlayer != null) { if (BackgroundAudioService.mMediaPlayer.isPlaying()) { AudioUi_note.showAudioName(act); audio_title_text_view.setSelected(true); } } else audio_title_text_view.setSelected(false); } }); popup.show();//showing pop up menu, will show status bar // for transient popup cancel_UI_callbacks(); Note_adapter.picUI_primary = new NoteUi(act, pager, pager.getCurrentItem()); Note_adapter.picUI_primary.tempShow_picViewUI(5005, strPicture); } }); // image: previous button picView_previous_button.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_media_previous, 0, 0, 0); // click to previous picView_previous_button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { setFocus_notePos(getFocus_notePos() - 1); pager.setCurrentItem(pager.getCurrentItem() - 1); } }); // image: next button picView_next_button.setCompoundDrawablesWithIntrinsicBounds(android.R.drawable.ic_media_next, 0, 0, 0); // click to next picView_next_button.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { setFocus_notePos(getFocus_notePos() + 1); pager.setCurrentItem(pager.getCurrentItem() + 1); } }); } // video view: apply media control customization or not if (Note.isPictureMode() || Note.isViewAllMode()) { if (!UtilVideo.hasMediaControlWidget) { // set video seek bar listener videoView_seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { // onStartTrackingTouch @Override public void onStartTrackingTouch(SeekBar seekBar) { System.out.println("NoteUi / _onStartTrackingTouch"); if ((UtilVideo.mVideoPlayer == null) && (UtilVideo.mVideoView != null)) { if (Build.VERSION.SDK_INT >= 16) UtilVideo.mVideoView.setBackground(null); else UtilVideo.mVideoView.setBackgroundDrawable(null); UtilVideo.mVideoView.setVisibility(View.VISIBLE); UtilVideo.mVideoPlayer = new VideoPlayer(act, pager, strPicture); UtilVideo.mVideoView.seekTo(UtilVideo.mPlayVideoPosition); } } // onProgressChanged @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { System.out.println("NoteUi / _onProgressChanged"); if (fromUser) { // show progress change int currentPos = videoFileLength_inMilliSeconds * progress / (seekBar.getMax() + 1); // update current play time videoView_currPosition.setText(Util.getTimeFormatString(currentPos)); //add below to keep showing seek bar if (Note.isPictureMode()) show_picViewUI_previous_next(true, mPosition); showSeekBarProgress = true; if (handler != null) handler.removeCallbacks(runnableHideUi); tempShow_picViewUI(3001, strPicture); // for 3 seconds, _onProgressChanged } } // onStopTrackingTouch @Override public void onStopTrackingTouch(SeekBar seekBar) { System.out.println("NoteUi / _onStopTrackingTouch"); if (UtilVideo.mVideoView != null) { int mPlayVideoPosition = (int) (((float) (videoFileLength_inMilliSeconds / 100)) * seekBar.getProgress()); if (UtilVideo.mVideoPlayer != null) UtilVideo.mVideoView.seekTo(mPlayVideoPosition); if (handler != null) handler.removeCallbacks(runnableHideUi); tempShow_picViewUI(3002, strPicture); // for 3 seconds, _onProgressChanged } } }); } } }
From source file:me.ububble.speakall.fragment.ConversationChatFragment.java
public void showMensajeAudio(int position, Context context, final Message message, View rowView, TextView icnMessageArrow) {// ww w . j a v a 2 s. com final TextView prevMessages = (TextView) rowView.findViewById(R.id.showprev_messages); TextView messageTime = (TextView) rowView.findViewById(R.id.message_time); final TextView icnMesajeTempo = (TextView) rowView.findViewById(R.id.icn_message_tempo); final View icnMensajeTempoDivider = (View) rowView.findViewById(R.id.icn_message_tempo_divider); final TextView icnMesajeCopy = (TextView) rowView.findViewById(R.id.icn_message_copy); final TextView icnMesajeBack = (TextView) rowView.findViewById(R.id.icn_message_back); TextView messageStatus = (TextView) rowView.findViewById(R.id.message_status); final LinearLayout messageMenu = (LinearLayout) rowView.findViewById(R.id.messages_menu_layout); final LinearLayout mensajeLayout = (LinearLayout) rowView.findViewById(R.id.mensaje_layout); TextView messageDate = (TextView) rowView.findViewById(R.id.message_date); final TextView audioTime = (TextView) rowView.findViewById(R.id.message_audio_time); final SeekBar audioSeekBar = (SeekBar) rowView.findViewById(R.id.audio_seekbar); final TextView playAudio = (TextView) rowView.findViewById(R.id.play_audio); final ProgressBar progressBar = (ProgressBar) rowView.findViewById(R.id.progress_bar); final RelativeLayout progressLayout = (RelativeLayout) rowView.findViewById(R.id.progress_layout); final TextView progressText = (TextView) rowView.findViewById(R.id.progress_message); TFCache.apply(context, messageTime, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, icnMesajeTempo, TFCache.TF_SPEAKALL); TFCache.apply(context, icnMesajeCopy, TFCache.TF_SPEAKALL); TFCache.apply(context, icnMesajeBack, TFCache.TF_SPEAKALL); TFCache.apply(context, messageStatus, TFCache.TF_SPEAKALL); TFCache.apply(context, prevMessages, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, messageDate, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, audioTime, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, playAudio, TFCache.TF_SPEAKON); if (position == 0) { if (mensajesTotal > mensajesOffset) { prevMessages.setVisibility(View.VISIBLE); prevMessages.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { prevMessages.setVisibility(View.GONE); if (mensajesTotal - mensajesOffset >= 10) { mensajesLimit = 10; mensajesOffset += mensajesLimit; showPreviousMessages(mensajesOffset); } else { mensajesLimit = mensajesTotal - mensajesOffset; mensajesOffset += mensajesLimit; showPreviousMessages(mensajesOffset); } } }); } } DateFormat dateDay = new SimpleDateFormat("d"); DateFormat dateDayText = new SimpleDateFormat("EEEE"); DateFormat dateMonth = new SimpleDateFormat("MMMM"); DateFormat dateYear = new SimpleDateFormat("yyyy"); DateFormat timeFormat = new SimpleDateFormat("h:mm a"); Calendar fechamsj = Calendar.getInstance(); fechamsj.setTimeInMillis(message.emitedAt); String time = timeFormat.format(fechamsj.getTime()); String dayMessage = dateDay.format(fechamsj.getTime()); String monthMessage = dateMonth.format(fechamsj.getTime()); String yearMessage = dateYear.format(fechamsj.getTime()); String dayMessageText = dateDayText.format(fechamsj.getTime()); char[] caracteres = dayMessageText.toCharArray(); caracteres[0] = Character.toUpperCase(caracteres[0]); dayMessageText = new String(caracteres); Calendar fechaActual = Calendar.getInstance(); String dayActual = dateDay.format(fechaActual.getTime()); String monthActual = dateMonth.format(fechaActual.getTime()); String yearActual = dateYear.format(fechaActual.getTime()); String fechaMostrar = ""; if (dayMessage.equals(dayActual) && monthMessage.equals(monthActual) && yearMessage.equals(yearActual)) { fechaMostrar = getString(R.string.messages_today); } else if (monthMessage.equals(monthActual) && yearMessage.equals(yearActual)) { int days = Integer.parseInt(dayActual) - Integer.parseInt(dayMessage); if (days < 7) { switch (days) { case 1: fechaMostrar = getString(R.string.messages_yesterday); break; default: fechaMostrar = dayMessageText; break; } } else { fechaMostrar = (dayMessage + " " + monthMessage + " " + yearMessage).toUpperCase(); } } else { fechaMostrar = (dayMessage + " " + monthMessage + " " + yearMessage).toUpperCase(); } messageDate.setText(fechaMostrar); if (position != -1) { if (itemAnterior != null) { if (!fechaMostrar.equals(fechaAnterior)) { itemAnterior.findViewById(R.id.message_date).setVisibility(View.VISIBLE); } else { itemAnterior.findViewById(R.id.message_date).setVisibility(View.GONE); } } itemAnterior = rowView; fechaAnterior = fechaMostrar; } else { View v = messagesList.getChildAt(messagesList.getChildCount() - 1); if (v != null) { TextView tv = (TextView) v.findViewById(R.id.message_date); if (tv.getText().toString().equals(fechaMostrar)) { messageDate.setVisibility(View.GONE); } else { messageDate.setVisibility(View.VISIBLE); } } } messageTime.setText(time); if (message.emisor.equals(u.id)) { mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable1 = (GradientDrawable) mensajeLayout.getBackground(); drawable1.setCornerRadius(radius); drawable1.setColor(BalloonFragment.getBackgroundColor(activity)); progressBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.speak_all_red), PorterDuff.Mode.SRC_IN); if (message.status != -1) { rowView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } }); } else { messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } } }); } Vibrator x = (Vibrator) activity.getApplicationContext() .getSystemService(Context.VIBRATOR_SERVICE); x.vibrate(30); Message mensaje = new Select().from(Message.class).where("mensajeId = ?", message.mensajeId) .executeSingle(); if (mensaje.status != 4) { icnMesajeTempo.setVisibility(View.VISIBLE); icnMensajeTempoDivider.setVisibility(View.VISIBLE); icnMesajeCopy.setVisibility(View.VISIBLE); icnMesajeBack.setVisibility(View.VISIBLE); messageMenu.setVisibility(View.VISIBLE); AnimatorSet set = new AnimatorSet(); set.playTogether(ObjectAnimator.ofFloat(icnMesajeTempo, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeCopy, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeBack, "alpha", 0, 1), ObjectAnimator.ofFloat(messageMenu, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeTempo, "translationX", 150, 0), ObjectAnimator.ofFloat(icnMesajeCopy, "translationX", 100, 0), ObjectAnimator.ofFloat(icnMesajeBack, "translationX", 50, 0)); set.setDuration(200).start(); } else { icnMesajeCopy.setVisibility(View.VISIBLE); icnMesajeBack.setVisibility(View.VISIBLE); messageMenu.setVisibility(View.VISIBLE); AnimatorSet set = new AnimatorSet(); set.playTogether(ObjectAnimator.ofFloat(icnMesajeCopy, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeBack, "alpha", 0, 1), ObjectAnimator.ofFloat(messageMenu, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeCopy, "translationX", 100, 0), ObjectAnimator.ofFloat(icnMesajeBack, "translationX", 50, 0)); set.setDuration(200).start(); } return false; } }); } if (message.status == 1) { messageStatus.setTextSize(16); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable = (GradientDrawable) mensajeLayout.getBackground(); drawable.setCornerRadius(radius); drawable.setColor(BalloonFragment.getBackgroundColor(activity)); icnMessageArrow.setTextColor(BalloonFragment.getBackgroundColor(activity)); messageStatus.setTextColor(getResources().getColor(R.color.speak_all_ligh_gray)); messageStatus.setText(Finder.STRING.ICN_MSJ_SENDING.toString()); ValueAnimator colorAnim = ObjectAnimator.ofFloat(messageStatus, "alpha", 1, 0); colorAnim.setRepeatCount(ValueAnimator.INFINITE); colorAnim.setRepeatMode(ValueAnimator.REVERSE); colorAnim.setDuration(1000).start(); animaciones.put(message.mensajeId, colorAnim); final JSONObject data = new JSONObject(); try { data.put("message_id", message.mensajeId); data.put("source", message.emisor); data.put("source_email", message.emisorEmail); data.put("target_email", message.receptorEmail); data.put("target", message.receptor); data.put("type", message.tipo); if (!message.fileUploaded) { progressLayout.setVisibility(View.VISIBLE); new Thread(new Runnable() { @Override public void run() { activity.runOnUiThread(new Runnable() { @Override public void run() { uploadAudioToServer(message.audioName, message, data, progressBar, progressLayout, progressText); } }); } }).start(); } else { data.put("videos", message.fileName); if (SpeakSocket.mSocket != null) if (SpeakSocket.mSocket.connected()) { message.status = 1; SpeakSocket.mSocket.emit("message", data); } else { message.status = -1; } message.save(); changeStatus(message.mensajeId, message.status); } } catch (JSONException e) { e.printStackTrace(); } } if (message.status == -1) { messageStatus.setTextSize(11); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable = (GradientDrawable) mensajeLayout.getBackground(); drawable.setCornerRadius(radius); drawable.setColor(BalloonFragment.getBackgroundColor(activity)); icnMessageArrow.setTextColor(BalloonFragment.getBackgroundColor(activity)); messageStatus.setText(Finder.STRING.ICN_MSJ_ERROR.toString()); } if (message.status == 3) { messageStatus.setTextSize(11); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable = (GradientDrawable) mensajeLayout.getBackground(); drawable.setCornerRadius(radius); drawable.setColor(BalloonFragment.getBackgroundColor(activity)); icnMessageArrow.setTextColor(BalloonFragment.getBackgroundColor(activity)); messageStatus.setText(Finder.STRING.ICN_MSJ_CLOSED.toString()); } if (message.status == 2) { messageStatus.setTextSize(16); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable = (GradientDrawable) mensajeLayout.getBackground(); drawable.setCornerRadius(radius); drawable.setColor(BalloonFragment.getBackgroundColor(activity)); icnMessageArrow.setTextColor(BalloonFragment.getBackgroundColor(activity)); messageStatus.setText(Finder.STRING.ICN_MSJ_SEND.toString()); } if (message.status == 4) { messageStatus.setTextSize(11); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable = (GradientDrawable) mensajeLayout.getBackground(); drawable.setCornerRadius(radius); drawable.setColor(BalloonFragment.getBackgroundColor(activity)); icnMessageArrow.setTextColor(BalloonFragment.getBackgroundColor(activity)); messageStatus.setText(Finder.STRING.ICN_MSJ_OPENED.toString()); icnMensajeTempoDivider.setVisibility(View.GONE); icnMesajeTempo.setVisibility(View.GONE); } else { icnMensajeTempoDivider.setVisibility(View.INVISIBLE); icnMesajeTempo.setVisibility(View.INVISIBLE); } icnMesajeTempo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { JSONObject notifyMessage = new JSONObject(); try { Message mensaje = new Select().from(Message.class).where("mensajeId = ?", message.mensajeId) .executeSingle(); Log.w("mensaje detail", mensaje.status + " : " + mensaje.receptorEmail + " : " + mensaje.tipo); if (mensaje.status != 4) { notifyMessage.put("type", mensaje.tipo); notifyMessage.put("message_id", mensaje.mensajeId); notifyMessage.put("source", mensaje.emisor); notifyMessage.put("target", mensaje.receptor); notifyMessage.put("status", 5); if (SpeakSocket.mSocket != null) if (SpeakSocket.mSocket.connected()) SpeakSocket.mSocket.emit("message-status", notifyMessage); } } catch (JSONException e) { e.printStackTrace(); } } }); } else { mensajeLayout.setBackgroundResource(R.drawable.message_out_background); GradientDrawable drawable = (GradientDrawable) mensajeLayout.getBackground(); drawable.setCornerRadius(radius); drawable.setColor(BalloonFragment.getFriendBalloon(activity)); if (message.tipo == Integer.parseInt(getString(R.string.MSG_TYPE_BROADCAST_AUDIO))) { messageStatus.setTextSize(15); messageStatus.setText(Finder.STRING.ICN_BROADCAST_FILL.toString()); } rowView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } }); } else { messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } }); } Vibrator x = (Vibrator) activity.getApplicationContext() .getSystemService(Context.VIBRATOR_SERVICE); x.vibrate(20); icnMesajeTempo.setVisibility(View.GONE); icnMensajeTempoDivider.setVisibility(View.GONE); icnMesajeCopy.setVisibility(View.VISIBLE); icnMesajeBack.setVisibility(View.VISIBLE); messageMenu.setVisibility(View.VISIBLE); AnimatorSet set = new AnimatorSet(); set.playTogether(ObjectAnimator.ofFloat(icnMesajeCopy, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeBack, "alpha", 0, 1), ObjectAnimator.ofFloat(messageMenu, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeCopy, "translationX", -100, 0), ObjectAnimator.ofFloat(icnMesajeBack, "translationX", -150, 0)); set.setDuration(200).start(); return false; } }); } /*icnMesajeCopy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ClipData clip = ClipData.newPlainText("text", messageContent.getText().toString()); ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); clipboard.setPrimaryClip(clip); Toast.makeText(activity, "Copiado", Toast.LENGTH_SHORT).show(); } });*/ icnMesajeBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (message.emisor.equals(u.id)) { getFragmentManager().beginTransaction() .replace(R.id.container2, ForwarForFragment.newInstance(message.mensaje)) .addToBackStack(null).commit(); ((MainActivity) activity).setOnBackPressedListener(null); } else { getFragmentManager().beginTransaction() .replace(R.id.container2, ForwarForFragment.newInstance(message.mensajeTrad)) .addToBackStack(null).commit(); ((MainActivity) activity).setOnBackPressedListener(null); } } }); rowView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); if (!messageSelected.equals(message.mensajeId)) { vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } } final Message mensaje = new Select().from(Message.class).where("mensajeId = ?", message.mensajeId) .executeSingle(); if (mensaje.status == -1) { final JSONObject data = new JSONObject(); try { data.put("message_id", mensaje.mensajeId); data.put("source", mensaje.emisor); data.put("source_email", mensaje.emisorEmail); data.put("target_email", mensaje.receptorEmail); data.put("target", mensaje.receptor); data.put("type", mensaje.tipo); if (!mensaje.fileUploaded) { progressLayout.setVisibility(View.VISIBLE); new Thread(new Runnable() { @Override public void run() { activity.runOnUiThread(new Runnable() { @Override public void run() { uploadAudioToServer(mensaje.audioName, mensaje, data, progressBar, progressLayout, progressText); } }); } }).start(); } else { data.put("audios", mensaje.fileName); if (SpeakSocket.mSocket != null) if (SpeakSocket.mSocket.connected()) { mensaje.status = 1; SpeakSocket.mSocket.emit("message", data); } else { mensaje.status = -1; } mensaje.save(); changeStatus(mensaje.mensajeId, mensaje.status); } } catch (JSONException e) { e.printStackTrace(); } } } }); File audioFile = null; final MediaPlayer mediaPlayer1 = new MediaPlayer(); audioFile = new File(message.audioName); try { mediaPlayer1.setDataSource(audioFile.getAbsolutePath()); mediaPlayer1.prepare(); long timePlayer = mediaPlayer1.getDuration(); long days, hours, minutes, seconds; long secondsTotal = timePlayer / 1000; days = (Math.round(secondsTotal) / 86400); hours = (Math.round(secondsTotal) / 3600) - (days * 24); minutes = (Math.round(secondsTotal) / 60) - (days * 1440) - (hours * 60); seconds = Math.round(secondsTotal) % 60; audioTime.setText(String.format("%02d", minutes) + " : " + String.format("%02d", seconds)); audioSeekBar.setMax(mediaPlayer1.getDuration()); audioSeekBar.setTag(message.mensajeId); mediaPlayer1.release(); } catch (IOException e) { e.printStackTrace(); } final File finalAudioFile = audioFile; playAudio.setOnClickListener(new View.OnClickListener() { boolean isplayAudio = false; @Override public void onClick(View v) { if (activeAudioSeekBarr != null) { if (!activeAudioSeekBarr.getTag().equals(audioSeekBar.getTag())) { isplayAudio = false; } } if (!isplayAudio) { try { if (activeAudioSeekBarr != null) { if (activeAudioSeekBarr.getTag().equals(audioSeekBar.getTag())) { seekHandler.postDelayed(runAudio, 1000); playAudio.setText(Finder.STRING.ICN_PAUSE.toString()); mediaPlayer.start(); } else { if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } if (activeAudioSeekBarr != null) { activeAudioSeekBarr.setProgress(0); activeAudioSeekBarr.setOnSeekBarChangeListener(null); } if (activeAudioTime != null) { activeAudioTime.setText(activeAudioDuration); } if (!activeAudioDuration.equals("")) { activeAudioDuration = ""; } if (activePlayer != null) { activePlayer.setText(Finder.STRING.ICN_PLAY.toString()); } seekHandler.removeCallbacks(runAudio); mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(finalAudioFile.getAbsolutePath()); mediaPlayer.prepare(); activeAudioDuration = audioTime.getText().toString(); audioSeekBar.setProgress(mediaPlayer.getCurrentPosition()); audioSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { mediaPlayer.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); activeAudioSeekBarr = audioSeekBar; activePlayer = playAudio; activeAudioTime = audioTime; seekHandler.postDelayed(runAudio, 1000); mediaPlayer.start(); playAudio.setText(Finder.STRING.ICN_PAUSE.toString()); } } else { if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } if (activeAudioSeekBarr != null) { activeAudioSeekBarr.setProgress(0); activeAudioSeekBarr.setOnSeekBarChangeListener(null); } if (activeAudioTime != null) { activeAudioTime.setText(activeAudioDuration); } if (!activeAudioDuration.equals("")) { activeAudioDuration = ""; } seekHandler.removeCallbacks(runAudio); mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(finalAudioFile.getAbsolutePath()); mediaPlayer.prepare(); activeAudioDuration = audioTime.getText().toString(); audioSeekBar.setProgress(mediaPlayer.getCurrentPosition()); audioSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { mediaPlayer.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); activeAudioSeekBarr = audioSeekBar; activePlayer = playAudio; activeAudioTime = audioTime; seekHandler.postDelayed(runAudio, 1000); mediaPlayer.start(); playAudio.setText(Finder.STRING.ICN_PAUSE.toString()); } //file2.delete(); } catch (IOException e) { e.printStackTrace(); } isplayAudio = true; } else { playAudio.setText(Finder.STRING.ICN_PLAY.toString()); mediaPlayer.pause(); seekHandler.removeCallbacks(runAudio); isplayAudio = false; } } }); }
From source file:me.ububble.speakall.fragment.ConversationGroupFragment.java
public void showMensajeAudio(int position, Context context, final MsgGroups message, View rowView, TextView icnMessageArrow) {/* w w w . j av a 2 s . com*/ final TextView prevMessages = (TextView) rowView.findViewById(R.id.showprev_messages); TextView messageTime = (TextView) rowView.findViewById(R.id.message_time); final TextView icnMesajeTempo = (TextView) rowView.findViewById(R.id.icn_message_tempo); final View icnMensajeTempoDivider = (View) rowView.findViewById(R.id.icn_message_tempo_divider); final TextView icnMesajeCopy = (TextView) rowView.findViewById(R.id.icn_message_copy); final TextView icnMesajeBack = (TextView) rowView.findViewById(R.id.icn_message_back); TextView messageStatus = (TextView) rowView.findViewById(R.id.message_status); final LinearLayout messageMenu = (LinearLayout) rowView.findViewById(R.id.messages_menu_layout); final LinearLayout mensajeLayout = (LinearLayout) rowView.findViewById(R.id.mensaje_layout); TextView messageDate = (TextView) rowView.findViewById(R.id.message_date); final TextView audioTime = (TextView) rowView.findViewById(R.id.message_audio_time); final SeekBar audioSeekBar = (SeekBar) rowView.findViewById(R.id.audio_seekbar); final TextView playAudio = (TextView) rowView.findViewById(R.id.play_audio); final ProgressBar progressBar = (ProgressBar) rowView.findViewById(R.id.progress_bar); final RelativeLayout progressLayout = (RelativeLayout) rowView.findViewById(R.id.progress_layout); final TextView progressText = (TextView) rowView.findViewById(R.id.progress_message); final CircleImageView imageUser = (CircleImageView) rowView.findViewById(R.id.chat_row_user_pic); final TextView userName = (TextView) rowView.findViewById(R.id.username_text); TFCache.apply(context, messageTime, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, icnMesajeTempo, TFCache.TF_SPEAKALL); TFCache.apply(context, icnMesajeCopy, TFCache.TF_SPEAKALL); TFCache.apply(context, icnMesajeBack, TFCache.TF_SPEAKALL); TFCache.apply(context, messageStatus, TFCache.TF_SPEAKALL); TFCache.apply(context, prevMessages, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, messageDate, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, audioTime, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, userName, TFCache.TF_WHITNEY_MEDIUM); TFCache.apply(context, playAudio, TFCache.TF_SPEAKON); if (position == 0) { if (mensajesTotal > mensajesOffset) { prevMessages.setVisibility(View.VISIBLE); prevMessages.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { prevMessages.setVisibility(View.GONE); if (mensajesTotal - mensajesOffset >= 10) { mensajesLimit = 10; mensajesOffset += mensajesLimit; showPreviousMessages(mensajesOffset); } else { mensajesLimit = mensajesTotal - mensajesOffset; mensajesOffset += mensajesLimit; showPreviousMessages(mensajesOffset); } } }); } } DateFormat dateDay = new SimpleDateFormat("d"); DateFormat dateDayText = new SimpleDateFormat("EEEE"); DateFormat dateMonth = new SimpleDateFormat("MMMM"); DateFormat dateYear = new SimpleDateFormat("yyyy"); DateFormat timeFormat = new SimpleDateFormat("h:mm a"); Calendar fechamsj = Calendar.getInstance(); fechamsj.setTimeInMillis(message.emitedAt); String time = timeFormat.format(fechamsj.getTime()); String dayMessage = dateDay.format(fechamsj.getTime()); String monthMessage = dateMonth.format(fechamsj.getTime()); String yearMessage = dateYear.format(fechamsj.getTime()); String dayMessageText = dateDayText.format(fechamsj.getTime()); char[] caracteres = dayMessageText.toCharArray(); caracteres[0] = Character.toUpperCase(caracteres[0]); dayMessageText = new String(caracteres); Calendar fechaActual = Calendar.getInstance(); String dayActual = dateDay.format(fechaActual.getTime()); String monthActual = dateMonth.format(fechaActual.getTime()); String yearActual = dateYear.format(fechaActual.getTime()); String fechaMostrar = ""; if (dayMessage.equals(dayActual) && monthMessage.equals(monthActual) && yearMessage.equals(yearActual)) { fechaMostrar = getString(R.string.messages_today); } else if (monthMessage.equals(monthActual) && yearMessage.equals(yearActual)) { int days = Integer.parseInt(dayActual) - Integer.parseInt(dayMessage); if (days < 7) { switch (days) { case 1: fechaMostrar = getString(R.string.messages_yesterday); break; default: fechaMostrar = dayMessageText; break; } } else { fechaMostrar = (dayMessage + " " + monthMessage + " " + yearMessage).toUpperCase(); } } else { fechaMostrar = (dayMessage + " " + monthMessage + " " + yearMessage).toUpperCase(); } messageDate.setText(fechaMostrar); if (position != -1) { if (itemAnterior != null) { if (!fechaMostrar.equals(fechaAnterior)) { itemAnterior.findViewById(R.id.message_date).setVisibility(View.VISIBLE); } else { itemAnterior.findViewById(R.id.message_date).setVisibility(View.GONE); } } itemAnterior = rowView; fechaAnterior = fechaMostrar; } else { View v = messagesList.getChildAt(messagesList.getChildCount() - 1); if (v != null) { TextView tv = (TextView) v.findViewById(R.id.message_date); if (tv.getText().toString().equals(fechaMostrar)) { messageDate.setVisibility(View.GONE); } else { messageDate.setVisibility(View.VISIBLE); } } } messageTime.setText(time); if (message.emisor.equals(u.id)) { progressBar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.speak_all_red), PorterDuff.Mode.SRC_IN); int status = 0; try { JSONArray contactos = new JSONArray(message.receptores); for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); Log.w("STATUS", contacto.getInt("status") + contacto.getString("name")); if (status == 0 || contacto.getInt("status") <= status) { status = contacto.getInt("status"); } } } catch (JSONException e) { e.printStackTrace(); } if (status != -1) { rowView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } }); } else { messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } } }); } Vibrator x = (Vibrator) activity.getApplicationContext() .getSystemService(Context.VIBRATOR_SERVICE); x.vibrate(30); MsgGroups mensaje = new Select().from(MsgGroups.class) .where("mensajeId = ?", message.mensajeId).executeSingle(); int status = 0; try { JSONArray contactos = new JSONArray(mensaje.receptores); for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); if (status == 0 || contacto.getInt("status") <= status) { status = contacto.getInt("status"); } } } catch (JSONException e) { e.printStackTrace(); } if (status != 4) { icnMesajeCopy.setVisibility(View.VISIBLE); icnMesajeBack.setVisibility(View.VISIBLE); messageMenu.setVisibility(View.VISIBLE); AnimatorSet set = new AnimatorSet(); set.playTogether(ObjectAnimator.ofFloat(icnMesajeCopy, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeBack, "alpha", 0, 1), ObjectAnimator.ofFloat(messageMenu, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeCopy, "translationX", 100, 0), ObjectAnimator.ofFloat(icnMesajeBack, "translationX", 50, 0)); set.setDuration(200).start(); } else { icnMesajeCopy.setVisibility(View.VISIBLE); icnMesajeBack.setVisibility(View.VISIBLE); messageMenu.setVisibility(View.VISIBLE); AnimatorSet set = new AnimatorSet(); set.playTogether(ObjectAnimator.ofFloat(icnMesajeCopy, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeBack, "alpha", 0, 1), ObjectAnimator.ofFloat(messageMenu, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeCopy, "translationX", 100, 0), ObjectAnimator.ofFloat(icnMesajeBack, "translationX", 50, 0)); set.setDuration(200).start(); } return false; } }); } if (status == 1) { messageStatus.setTextSize(16); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); icnMessageArrow.setTextColor(BalloonFragment.getBackgroundColor(activity)); messageStatus.setTextColor(getResources().getColor(R.color.speak_all_ligh_gray)); messageStatus.setText(Finder.STRING.ICN_MSJ_SENDING.toString()); ValueAnimator colorAnim = ObjectAnimator.ofFloat(messageStatus, "alpha", 1, 0); colorAnim.setRepeatCount(ValueAnimator.INFINITE); colorAnim.setRepeatMode(ValueAnimator.REVERSE); colorAnim.setDuration(1000).start(); animaciones.put(message.mensajeId, colorAnim); final JSONObject data = new JSONObject(); try { data.put("type", message.tipo); data.put("group_id", message.grupoId); data.put("group_name", grupo.nombreGrupo); data.put("source", message.emisor); data.put("source_lang", message.emisorLang); data.put("source_email", message.emisorEmail); data.put("message", message.mensaje); data.put("translation_required", message.translation); data.put("message_id", message.mensajeId); data.put("targets", new JSONArray(message.receptores)); data.put("delay", message.delay); if (!message.fileUploaded) { progressLayout.setVisibility(View.VISIBLE); new Thread(new Runnable() { @Override public void run() { activity.runOnUiThread(new Runnable() { @Override public void run() { uploadAudioToServer(message.audioName, message, data, progressBar, progressLayout, progressText); } }); } }).start(); } else { data.put("audios", message.fileName); JSONArray targets = new JSONArray(); JSONArray contactos = new JSONArray(grupo.targets); if (SpeakSocket.mSocket != null) { if (SpeakSocket.mSocket.connected()) { for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); JSONObject newContact = new JSONObject(); Contact contact = new Select().from(Contact.class) .where("id_contact = ?", contacto.getString("name")).executeSingle(); if (contact != null) { if (!contact.idContacto.equals(u.id)) { if (message.translation) newContact.put("lang", contact.lang); else newContact.put("lang", u.lang); newContact.put("name", contact.idContacto); newContact.put("screen_name", contact.screenName); newContact.put("status", 1); targets.put(targets.length(), newContact); } } } data.put("targets", targets); message.receptores = targets.toString(); message.save(); SpeakSocket.mSocket.emit("message", data); } else { for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); JSONObject newContact = new JSONObject(); Contact contact = new Select().from(Contact.class) .where("id_contact = ?", contacto.getString("name")).executeSingle(); if (contact != null) { if (!contact.idContacto.equals(u.id)) { if (message.translation) newContact.put("lang", contact.lang); else newContact.put("lang", u.lang); newContact.put("name", contact.idContacto); newContact.put("screen_name", contact.screenName); newContact.put("status", -1); targets.put(targets.length(), newContact); } } } message.receptores = targets.toString(); message.save(); } } changeStatus(message.mensajeId); } } catch (JSONException e) { e.printStackTrace(); } } if (status == -1) { messageStatus.setTextSize(11); mensajeLayout.setBackgroundResource(R.drawable.message_errorout_background); icnMessageArrow.setTextColor(getResources().getColor(R.color.speak_all_disable_red)); messageStatus.setText(Finder.STRING.ICN_MSJ_ERROR.toString()); } if (status == 3) { messageStatus.setTextSize(11); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); icnMessageArrow.setTextColor(getResources().getColor(R.color.speak_all_disable_red)); messageStatus.setText(Finder.STRING.ICN_MSJ_CLOSED.toString()); } if (status == 2) { messageStatus.setTextSize(16); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); icnMessageArrow.setTextColor(getResources().getColor(R.color.speak_all_disable_red)); messageStatus.setText(Finder.STRING.ICN_MSJ_SEND.toString()); } if (status == 4) { messageStatus.setTextSize(11); mensajeLayout.setBackgroundResource(R.drawable.message_out_background); icnMessageArrow.setTextColor(getResources().getColor(R.color.speak_all_disable_red)); messageStatus.setText(Finder.STRING.ICN_MSJ_OPENED.toString()); } } else { final Contact contacto = new Select().from(Contact.class).where(" id_contact= ?", message.emisor) .executeSingle(); if (contacto != null) { new Thread(new Runnable() { @Override public void run() { activity.runOnUiThread(new Runnable() { @Override public void run() { if (contacto.photo != null) { Bitmap bmp = BitmapFactory.decodeByteArray(contacto.photo, 0, contacto.photo.length); imageUser.setImageBitmap(bmp); userName.setText(contacto.fullName); } } }); } }).start(); } rowView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } }); } else { messageSelected = message.mensajeId; ((MainActivity) activity).setOnBackPressedListener(new BackPressedListener(activity) { @Override public void doBack() { View vista = messagesList.findViewWithTag(messageSelected); vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } }); } Vibrator x = (Vibrator) activity.getApplicationContext() .getSystemService(Context.VIBRATOR_SERVICE); x.vibrate(20); icnMesajeCopy.setVisibility(View.VISIBLE); icnMesajeBack.setVisibility(View.VISIBLE); messageMenu.setVisibility(View.VISIBLE); AnimatorSet set = new AnimatorSet(); set.playTogether(ObjectAnimator.ofFloat(icnMesajeCopy, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeBack, "alpha", 0, 1), ObjectAnimator.ofFloat(messageMenu, "alpha", 0, 1), ObjectAnimator.ofFloat(icnMesajeCopy, "translationX", -100, 0), ObjectAnimator.ofFloat(icnMesajeBack, "translationX", -150, 0)); set.setDuration(200).start(); return false; } }); } icnMesajeBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (message.emisor.equals(u.id)) { getFragmentManager().beginTransaction() .replace(R.id.container2, ForwarForFragment.newInstance(message.mensaje)) .addToBackStack(null).commit(); ((MainActivity) activity).setOnBackPressedListener(null); } else { getFragmentManager().beginTransaction() .replace(R.id.container2, ForwarForFragment.newInstance(message.mensajeTrad)) .addToBackStack(null).commit(); ((MainActivity) activity).setOnBackPressedListener(null); } } }); rowView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (messageSelected != null) { View vista = messagesList.findViewWithTag(messageSelected); if (!messageSelected.equals(message.mensajeId)) { vista.findViewById(messageMenu.getId()).setVisibility(View.INVISIBLE); ((MainActivity) activity).setOnBackPressedListener(null); messageSelected = null; } } final MsgGroups mensaje = new Select().from(MsgGroups.class) .where("mensajeId = ?", message.mensajeId).executeSingle(); int status = 0; try { JSONArray contactos = new JSONArray(mensaje.receptores); for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); if (status == 0 || contacto.getInt("status") <= status) { status = contacto.getInt("status"); } } } catch (JSONException e) { e.printStackTrace(); } if (status == -1) { final JSONObject data = new JSONObject(); try { data.put("type", mensaje.tipo); data.put("group_id", mensaje.grupoId); data.put("group_name", grupo.nombreGrupo); data.put("source", mensaje.emisor); data.put("source_lang", mensaje.emisorLang); data.put("source_email", mensaje.emisorEmail); data.put("message", mensaje.mensaje); data.put("translation_required", mensaje.translation); data.put("message_id", mensaje.mensajeId); data.put("targets", new JSONArray(mensaje.receptores)); data.put("delay", mensaje.delay); if (!mensaje.fileUploaded) { progressLayout.setVisibility(View.VISIBLE); new Thread(new Runnable() { @Override public void run() { activity.runOnUiThread(new Runnable() { @Override public void run() { uploadAudioToServer(mensaje.audioName, mensaje, data, progressBar, progressLayout, progressText); } }); } }).start(); } else { data.put("audios", mensaje.fileName); JSONArray targets = new JSONArray(); JSONArray contactos = new JSONArray(grupo.targets); if (SpeakSocket.mSocket != null) { if (SpeakSocket.mSocket.connected()) { for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); JSONObject newContact = new JSONObject(); Contact contact = new Select().from(Contact.class) .where("id_contact = ?", contacto.getString("name")) .executeSingle(); if (contact != null) { if (!contact.idContacto.equals(u.id)) { if (mensaje.translation) newContact.put("lang", contact.lang); else newContact.put("lang", u.lang); newContact.put("name", contact.idContacto); newContact.put("screen_name", contact.screenName); newContact.put("status", 1); targets.put(targets.length(), newContact); } } } data.put("targets", targets); mensaje.receptores = targets.toString(); mensaje.save(); SpeakSocket.mSocket.emit("message", data); } else { for (int i = 0; i < contactos.length(); i++) { JSONObject contacto = contactos.getJSONObject(i); JSONObject newContact = new JSONObject(); Contact contact = new Select().from(Contact.class) .where("id_contact = ?", contacto.getString("name")) .executeSingle(); if (contact != null) { if (!contact.idContacto.equals(u.id)) { if (mensaje.translation) newContact.put("lang", contact.lang); else newContact.put("lang", u.lang); newContact.put("name", contact.idContacto); newContact.put("screen_name", contact.screenName); newContact.put("status", -1); targets.put(targets.length(), newContact); } } } mensaje.receptores = targets.toString(); mensaje.save(); } } changeStatus(mensaje.mensajeId); } } catch (JSONException e) { e.printStackTrace(); } } } }); File audioFile = null; final MediaPlayer mediaPlayer1 = new MediaPlayer(); audioFile = new File(message.audioName); try { mediaPlayer1.setDataSource(audioFile.getAbsolutePath()); mediaPlayer1.prepare(); long timePlayer = mediaPlayer1.getDuration(); long days, hours, minutes, seconds; long secondsTotal = timePlayer / 1000; days = (Math.round(secondsTotal) / 86400); hours = (Math.round(secondsTotal) / 3600) - (days * 24); minutes = (Math.round(secondsTotal) / 60) - (days * 1440) - (hours * 60); seconds = Math.round(secondsTotal) % 60; audioTime.setText(String.format("%02d", minutes) + " : " + String.format("%02d", seconds)); audioSeekBar.setMax(mediaPlayer1.getDuration()); audioSeekBar.setTag(message.mensajeId); mediaPlayer1.release(); } catch (IOException e) { e.printStackTrace(); } final File finalAudioFile = audioFile; playAudio.setOnClickListener(new View.OnClickListener() { boolean isplayAudio = false; @Override public void onClick(View v) { if (activeAudioSeekBarr != null) { if (!activeAudioSeekBarr.getTag().equals(audioSeekBar.getTag())) { isplayAudio = false; } } if (!isplayAudio) { try { if (activeAudioSeekBarr != null) { if (activeAudioSeekBarr.getTag().equals(audioSeekBar.getTag())) { seekHandler.postDelayed(runAudio, 1000); playAudio.setText(Finder.STRING.ICN_PAUSE.toString()); mediaPlayer.start(); } else { if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } if (activeAudioSeekBarr != null) { activeAudioSeekBarr.setProgress(0); activeAudioSeekBarr.setOnSeekBarChangeListener(null); } if (activeAudioTime != null) { activeAudioTime.setText(activeAudioDuration); } if (!activeAudioDuration.equals("")) { activeAudioDuration = ""; } if (activePlayer != null) { activePlayer.setText(Finder.STRING.ICN_PLAY.toString()); } seekHandler.removeCallbacks(runAudio); mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(finalAudioFile.getAbsolutePath()); mediaPlayer.prepare(); activeAudioDuration = audioTime.getText().toString(); audioSeekBar.setProgress(mediaPlayer.getCurrentPosition()); audioSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { mediaPlayer.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); activeAudioSeekBarr = audioSeekBar; activePlayer = playAudio; activeAudioTime = audioTime; seekHandler.postDelayed(runAudio, 1000); mediaPlayer.start(); playAudio.setText(Finder.STRING.ICN_PAUSE.toString()); } } else { if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } if (activeAudioSeekBarr != null) { activeAudioSeekBarr.setProgress(0); activeAudioSeekBarr.setOnSeekBarChangeListener(null); } if (activeAudioTime != null) { activeAudioTime.setText(activeAudioDuration); } if (!activeAudioDuration.equals("")) { activeAudioDuration = ""; } seekHandler.removeCallbacks(runAudio); mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(finalAudioFile.getAbsolutePath()); mediaPlayer.prepare(); activeAudioDuration = audioTime.getText().toString(); audioSeekBar.setProgress(mediaPlayer.getCurrentPosition()); audioSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { mediaPlayer.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); activeAudioSeekBarr = audioSeekBar; activePlayer = playAudio; activeAudioTime = audioTime; seekHandler.postDelayed(runAudio, 1000); mediaPlayer.start(); playAudio.setText(Finder.STRING.ICN_PAUSE.toString()); } //file2.delete(); } catch (IOException e) { e.printStackTrace(); } isplayAudio = true; } else { playAudio.setText(Finder.STRING.ICN_PLAY.toString()); mediaPlayer.pause(); seekHandler.removeCallbacks(runAudio); isplayAudio = false; } } }); }