package com.wm.remusic.activity;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.wm.remusic.R;
import com.wm.remusic.uitl.PreferencesUtility;
import com.wm.remusic.widget.DividerItemDecoration;
import com.wm.remusic.widget.DragSortRecycler;
import java.util.ArrayList;
/**
* Created by wm on 2016/5/13.
*/
//主页条目排序
public class NetItemChangeActivity extends AppCompatActivity {
SelectAdapter mAdapter;
ActionBar ab;
private RecyclerView recyclerView;
private LinearLayoutManager layoutManager;
private Toolbar toolbar;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.change_netmusic_item);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ab = getSupportActionBar();
ab.setHomeAsUpIndicator(R.drawable.actionbar_back);
ab.setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
TextView defaultPosition = (TextView) findViewById(R.id.default_item_position);
defaultPosition.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线
defaultPosition.getPaint().setAntiAlias(true);//抗锯齿
defaultPosition.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PreferencesUtility.getInstance(NetItemChangeActivity.this).setItemPostion("推荐歌单 最新专辑 主播电台");
}
});
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
String str = PreferencesUtility.getInstance(this).getItemPosition();
final String[] strs = str.split(" ");
ArrayList<String> list = new ArrayList<>();
for (String st : strs) {
list.add(st);
}
mAdapter = new SelectAdapter(list);
recyclerView.setAdapter(mAdapter);
DragSortRecycler dragSortRecycler = new DragSortRecycler();
dragSortRecycler.setViewHandleId(R.id.move);
dragSortRecycler.setOnItemMovedListener(new DragSortRecycler.OnItemMovedListener() {
@Override
public void onItemMoved(int from, int to) {
Log.d("queue", "onItemMoved " + from + " to " + to);
final String str = mAdapter.getMusicAt(from);
mAdapter.removeSongAt(from);
mAdapter.addStringTo(to, str);
mAdapter.notifyDataSetChanged();
String st = "";
for (int i = 0; i < mAdapter.strs.size(); i++) {
if (i == mAdapter.strs.size() - 1) {
st = st + mAdapter.strs.get(i);
continue;
}
st = st + mAdapter.strs.get(i) + " ";
}
PreferencesUtility.getInstance(NetItemChangeActivity.this).setItemPostion(st);
//MusicPlayer.moveQueueItem(from, to);
}
});
recyclerView.addItemDecoration(dragSortRecycler);
recyclerView.addOnItemTouchListener(dragSortRecycler);
recyclerView.addOnScrollListener(dragSortRecycler.getScrollListener());
recyclerView.setHasFixedSize(true);
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onStop() {
super.onStop();
}
public class SelectAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private ArrayList<String> strs = new ArrayList<>();
public SelectAdapter(ArrayList<String> strs) {
this.strs = strs;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.net_item_change_recyclerview_item, viewGroup, false);
return new ListItemViewHolder(itemView);
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int i) {
String str = strs.get(i);
//设置条目状态
((ListItemViewHolder) holder).mainTitle.setText(str);
}
public String getMusicAt(int i) {
return strs.get(i);
}
public void addStringTo(int i, String str) {
strs.add(i, str);
}
public void removeSongAt(int i) {
strs.remove(i);
}
@Override
public int getItemCount() {
return strs.size();
}
public class ListItemViewHolder extends RecyclerView.ViewHolder {
//ViewHolder
TextView mainTitle;
ImageView move;
ListItemViewHolder(View view) {
super(view);
this.mainTitle = (TextView) view.findViewById(R.id.text);
this.move = (ImageView) view.findViewById(R.id.move);
}
}
}
}