diff --git a/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/WListsListActivity.java b/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/WListsListActivity.java index 8a2053d..83a13b1 100644 --- a/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/WListsListActivity.java +++ b/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/WListsListActivity.java @@ -1,16 +1,23 @@ package it.unisannio.ding.ids.wedroid.app.view; import android.content.Intent; +import android.content.res.ColorStateList; import android.os.Bundle; +import android.view.View; +import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.floatingactionbutton.FloatingActionButton; + import java.util.List; import java.util.Objects; @@ -26,7 +33,8 @@ public class WListsListActivity extends AppCompatActivity { int barColor; WListsListViewModel viewModel; RecyclerView recyclerView; - + //SwipeRefreshLayout swipeRefreshLayout; + SharedPreferenceHelper sp; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -34,6 +42,8 @@ public class WListsListActivity extends AppCompatActivity { setContentView(R.layout.activity_wlists_view); myToolbar = findViewById(R.id.my_toolbar); setSupportActionBar(myToolbar); + //swipeRefreshLayout = findViewById(R.id.pullToRefresh); + sp = new SharedPreferenceHelper(this); Intent i = getIntent(); String boardTitle = i.getStringExtra("barTitle"); @@ -44,10 +54,19 @@ public class WListsListActivity extends AppCompatActivity { myToolbar.setBackgroundColor(barColor); recyclerView = findViewById(R.id.recyclerviewWList); - initializeUi(); + 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(); + } + }); } - private void initializeUi() { + private void initializeUi(final String idBoard) { final WListsAdapter adapter = new WListsAdapter(this); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(this, @@ -62,5 +81,37 @@ public class WListsListActivity extends AppCompatActivity { adapter.setWLists(wLists); } }); + + 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); } } diff --git a/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/adapter/WListsAdapter.java b/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/adapter/WListsAdapter.java index 9645128..5b4ebe0 100644 --- a/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/adapter/WListsAdapter.java +++ b/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/adapter/WListsAdapter.java @@ -35,7 +35,7 @@ import retrofit2.Response; public class WListsAdapter extends RecyclerView.Adapter { private final LayoutInflater mInflater; - private List mWLists; // Cached copy of words + private List mWLists; // Cached copy of lists private Context mContext; private ServicesFactory service; private SharedPreferenceHelper sp; @@ -119,7 +119,8 @@ public class WListsAdapter extends RecyclerView.Adapter>() { + service.getSwimlanesService().getAllSwimlanes(sp.getBoardId()) + .enqueue(new Callback>() { @Override - public void onResponse(@NotNull Call> call, @NotNull Response> response) { + public void onResponse(@NotNull Call> call, + @NotNull Response> response) { String idDefaultSwimlane = null; assert response.body() != null; for(Swimlane swim: response.body()){ @@ -155,7 +158,7 @@ public class WListsAdapter extends RecyclerView.Adapter - + + + app:srcCompat="@android:drawable/ic_popup_sync" /> \ No newline at end of file