Skip to content
Snippets Groups Projects
Commit 6c452ada authored by Geoffrey Métais's avatar Geoffrey Métais
Browse files

Fill playlist later & prevent race conditions

parent 98d016e0
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,7 @@ import android.content.SharedPreferences;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresPermission;
......@@ -78,7 +79,6 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
private boolean mPreviewingSeek = false;
private PlaylistAdapter mPlaylistAdapter;
private Handler mHandler = new Handler();
private boolean mAdvFuncVisible;
private boolean mPlaylistSwitchVisible;
......@@ -91,25 +91,20 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
private static final String PREF_PLAYLIST_TIPS_SHOWN = "playlist_tips_shown";
private static final String PREF_AUDIOPLAYER_TIPS_SHOWN = "audioplayer_tips_shown";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPlaylistAdapter = new PlaylistAdapter(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mBinding = AudioPlayerBinding.inflate(inflater);
mBinding.songsList.setLayoutManager(new LinearLayoutManager(mBinding.getRoot().getContext()));
mBinding.songsList.setAdapter(mPlaylistAdapter);
mBinding.audioMediaSwitcher.setAudioMediaSwitcherListener(mHeaderMediaSwitcherListener);
mBinding.coverMediaSwitcher.setAudioMediaSwitcherListener(mCoverMediaSwitcherListener);
return mBinding.getRoot();
}
@Override
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mPlaylistAdapter = new PlaylistAdapter(this);
mBinding.songsList.setLayoutManager(new LinearLayoutManager(mBinding.getRoot().getContext()));
mBinding.songsList.setAdapter(mPlaylistAdapter);
mBinding.audioMediaSwitcher.setAudioMediaSwitcherListener(mHeaderMediaSwitcherListener);
mBinding.coverMediaSwitcher.setAudioMediaSwitcherListener(mCoverMediaSwitcherListener);
mBinding.playlistSearchText.getEditText().addTextChangedListener(this);
ItemTouchHelper.Callback callback = new SwipeDragItemTouchHelperCallback(mPlaylistAdapter);
......@@ -175,6 +170,11 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
}
public void update() {
mHandler.removeMessages(UPDATE);
mHandler.sendEmptyMessageDelayed(UPDATE, 50);
}
public void doUpdate() {
if (mService == null || getActivity() == null)
return;
......@@ -660,4 +660,18 @@ public class AudioPlayer extends PlaybackServiceFragment implements PlaybackServ
if (getFragmentManager() != null)
super.setUserVisibleHint(isVisibleToUser);
}
private static final int UPDATE = 0;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE:
doUpdate();
break;
default:
super.handleMessage(msg);
}
}
};
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment