wedroid/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/WListsListActivity.java

119 lines
4.3 KiB
Java
Raw Normal View History

2019-12-29 18:06:12 +00:00
package it.unisannio.ding.ids.wedroid.app.view;
2020-01-02 19:03:26 +00:00
import android.content.Intent;
2020-01-06 00:57:44 +00:00
import android.content.res.ColorStateList;
2019-12-29 18:06:12 +00:00
import android.os.Bundle;
2020-01-06 00:57:44 +00:00
import android.view.View;
import android.widget.Toast;
2019-12-29 18:06:12 +00:00
2020-01-06 00:57:44 +00:00
import androidx.annotation.NonNull;
2019-12-29 18:06:12 +00:00
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
2020-01-02 19:03:26 +00:00
import androidx.appcompat.widget.Toolbar;
2019-12-29 18:06:12 +00:00
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
2020-01-06 00:57:44 +00:00
import androidx.recyclerview.widget.ItemTouchHelper;
2019-12-29 18:06:12 +00:00
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
2020-01-06 00:57:44 +00:00
import com.google.android.material.floatingactionbutton.FloatingActionButton;
2019-12-29 18:06:12 +00:00
import java.util.List;
2020-01-02 19:03:26 +00:00
import java.util.Objects;
2019-12-29 18:06:12 +00:00
import it.unisannio.ding.ids.wedroid.app.R;
2020-01-06 21:47:04 +00:00
2019-12-29 18:06:12 +00:00
import it.unisannio.ding.ids.wedroid.app.data.entity.WList;
import it.unisannio.ding.ids.wedroid.app.util.SharedPreferenceHelper;
import it.unisannio.ding.ids.wedroid.app.view.adapter.WListsAdapter;
2020-01-11 13:49:43 +00:00
import it.unisannio.ding.ids.wedroid.app.viewmodel.WListsListViewModel;
2019-12-29 18:06:12 +00:00
public class WListsListActivity extends AppCompatActivity {
2020-01-02 19:03:26 +00:00
Toolbar myToolbar;
2020-01-03 22:23:48 +00:00
int barColor;
2020-01-05 18:53:43 +00:00
WListsListViewModel viewModel;
RecyclerView recyclerView;
2020-01-06 00:57:44 +00:00
//SwipeRefreshLayout swipeRefreshLayout;
SharedPreferenceHelper sp;
2019-12-29 18:06:12 +00:00
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wlists_view);
2020-01-02 19:03:26 +00:00
myToolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
2020-01-06 00:57:44 +00:00
//swipeRefreshLayout = findViewById(R.id.pullToRefresh);
sp = new SharedPreferenceHelper(this);
2020-01-02 19:03:26 +00:00
2020-01-05 18:53:43 +00:00
Intent i = getIntent();
String boardTitle = i.getStringExtra("barTitle");
2020-01-02 19:03:26 +00:00
Objects.requireNonNull(getSupportActionBar()).setTitle(boardTitle);
2020-01-03 22:23:48 +00:00
barColor = i.getIntExtra("barColor", 0);
setResult(WListsListActivity.RESULT_OK, i);
2020-01-05 18:53:43 +00:00
2020-01-02 19:03:26 +00:00
myToolbar.setBackgroundColor(barColor);
2019-12-29 18:06:12 +00:00
2020-01-05 18:53:43 +00:00
recyclerView = findViewById(R.id.recyclerviewWList);
2020-01-06 00:57:44 +00:00
initializeUi(sp.getBoardId());
FloatingActionButton fab = findViewById(R.id.synchronize);
fab.setBackgroundTintList(ColorStateList.valueOf(barColor));
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
viewModel.refresh();
}
});
2020-01-05 18:53:43 +00:00
}
2019-12-29 18:06:12 +00:00
2020-01-06 00:57:44 +00:00
private void initializeUi(final String idBoard) {
2019-12-29 18:06:12 +00:00
final WListsAdapter adapter = new WListsAdapter(this);
recyclerView.setAdapter(adapter);
2020-01-02 19:03:26 +00:00
recyclerView.setLayoutManager(new LinearLayoutManager(this,
LinearLayoutManager.HORIZONTAL, false));
2019-12-29 18:06:12 +00:00
//recyclerView.setHasFixedSize(true);
2020-01-05 18:53:43 +00:00
viewModel = new ViewModelProvider(this).get(WListsListViewModel.class);
2019-12-29 18:06:12 +00:00
viewModel.getAllWLists().observe(this, new Observer<List<WList>>() {
@Override
public void onChanged(List<WList> wLists) {
adapter.setWLists(wLists);
}
});
2020-01-06 00:57:44 +00:00
swipeBottomToDelete(idBoard);
/* BUG REPORT: Refresh of page enter in conflict with swipe down for delete list
* swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
viewModel.refresh();
}
});*/
}
private void swipeBottomToDelete(final String idBoard) {
ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(0,
ItemTouchHelper.DOWN) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView,
@NonNull RecyclerView.ViewHolder viewHolder,
@NonNull RecyclerView.ViewHolder target) {
return true;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
int pos = viewHolder.getAdapterPosition();
viewModel.deleteWList(pos, idBoard);
Toast.makeText(getApplicationContext(), "List deleted", Toast.LENGTH_LONG).show();
}
};
new ItemTouchHelper(simpleCallback).attachToRecyclerView(recyclerView);
2019-12-29 18:06:12 +00:00
}
}