aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-01-21 16:56:15 +0100
committerChristian Schneppe <christian@pix-art.de>2018-01-21 16:56:15 +0100
commit1fde63fc5406d2b92ee5412e9c7f2955d3776cf9 (patch)
treeaa8d812140a3221a2fd87cf56f83ebf0e170d7f6 /src/main
parent681290fdebef0ee97a40b7dfdde3787795943c6e (diff)
reworked audioPlayer screenOn/Off a bit
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/pixart/messenger/services/AudioPlayer.java31
-rw-r--r--src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java11
2 files changed, 18 insertions, 24 deletions
diff --git a/src/main/java/de/pixart/messenger/services/AudioPlayer.java b/src/main/java/de/pixart/messenger/services/AudioPlayer.java
index f419c6584..e2600c100 100644
--- a/src/main/java/de/pixart/messenger/services/AudioPlayer.java
+++ b/src/main/java/de/pixart/messenger/services/AudioPlayer.java
@@ -5,9 +5,7 @@ import android.media.MediaPlayer;
import android.os.Build;
import android.os.Handler;
import android.support.v4.content.ContextCompat;
-import android.util.Log;
import android.view.View;
-import android.view.WindowManager;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
@@ -19,7 +17,6 @@ import java.util.Locale;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
import de.pixart.messenger.entities.Message;
-import de.pixart.messenger.ui.ConversationActivity;
import de.pixart.messenger.ui.adapter.MessageAdapter;
import de.pixart.messenger.utils.WeakReferenceSet;
@@ -30,14 +27,12 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
public static MediaPlayer player = null;
private static Message currentlyPlayingMessage = null;
private final MessageAdapter messageAdapter;
- private ConversationActivity activity;
private final WeakReferenceSet<RelativeLayout> audioPlayerLayouts = new WeakReferenceSet<>();
private final Handler handler = new Handler();
- public AudioPlayer(MessageAdapter adapter, ConversationActivity activity) {
+ public AudioPlayer(MessageAdapter adapter) {
this.messageAdapter = adapter;
- this.activity = activity;
synchronized (AudioPlayer.LOCK) {
if (AudioPlayer.player != null) {
AudioPlayer.player.setOnCompletionListener(this);
@@ -85,7 +80,7 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
viewHolder.runtime.setText(formatTime(message.getFileParams().runtime));
viewHolder.progress.setProgress(0);
viewHolder.progress.setEnabled(false);
- ScreenOff();
+ messageAdapter.flagScreenOff();
return false;
}
}
@@ -115,12 +110,12 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
if (player.isPlaying()) {
viewHolder.progress.setEnabled(false);
player.pause();
+ messageAdapter.flagScreenOff();
viewHolder.playPause.setImageResource(viewHolder.darkBackground ? R.drawable.ic_play_arrow_white_36dp : R.drawable.ic_play_arrow_black_36dp);
- ScreenOff();
} else {
- ScreenOn();
viewHolder.progress.setEnabled(true);
player.start();
+ messageAdapter.flagScreenOn();
this.stopRefresher(true);
viewHolder.playPause.setImageResource(viewHolder.darkBackground ? R.drawable.ic_pause_white_36dp : R.drawable.ic_pause_black_36dp);
}
@@ -130,17 +125,17 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
private boolean play(ViewHolder viewHolder, Message message) {
AudioPlayer.player = new MediaPlayer();
try {
- ScreenOn();
AudioPlayer.currentlyPlayingMessage = message;
AudioPlayer.player.setDataSource(messageAdapter.getFileBackend().getFile(message).getAbsolutePath());
AudioPlayer.player.setOnCompletionListener(this);
AudioPlayer.player.prepare();
AudioPlayer.player.start();
+ messageAdapter.flagScreenOn();
viewHolder.progress.setEnabled(true);
viewHolder.playPause.setImageResource(viewHolder.darkBackground ? R.drawable.ic_pause_white_36dp : R.drawable.ic_pause_black_36dp);
return true;
} catch (Exception e) {
- ScreenOff();
+ messageAdapter.flagScreenOff();
AudioPlayer.currentlyPlayingMessage = null;
return false;
}
@@ -161,8 +156,8 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
AudioPlayer.player.stop();
}
AudioPlayer.player.release();
+ messageAdapter.flagScreenOff();
AudioPlayer.player = null;
- ScreenOff();
resetPlayerUi();
}
@@ -184,7 +179,6 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
}
viewHolder.progress.setProgress(0);
viewHolder.progress.setEnabled(false);
- ScreenOff();
}
@Override
@@ -196,6 +190,7 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
AudioPlayer.player = null;
}
mediaPlayer.release();
+ messageAdapter.flagScreenOff();
resetPlayerUi();
}
}
@@ -290,14 +285,4 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti
this.darkBackground = darkBackground;
}
}
-
- private void ScreenOn() {
- Log.d(Config.LOGTAG, "Audio Player is keeping screen on");
- activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- }
-
- private void ScreenOff() {
- Log.d(Config.LOGTAG, "Audio Player finished keeping screen on");
- activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- }
} \ No newline at end of file
diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
index 1d139702c..a332ac967 100644
--- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
+++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
@@ -33,6 +33,7 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
+import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
@@ -144,12 +145,20 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
public MessageAdapter(ConversationActivity activity, List<Message> messages) {
super(activity, 0, messages);
- this.audioPlayer = new AudioPlayer(this, activity);
+ this.audioPlayer = new AudioPlayer(this);
this.activity = activity;
metrics = getContext().getResources().getDisplayMetrics();
updatePreferences();
}
+ public void flagScreenOn() {
+ activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ }
+
+ public void flagScreenOff() {
+ activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ }
+
public void setOnContactPictureClicked(OnContactPictureClicked listener) {
this.mOnContactPictureClickedListener = listener;
}