feature_board_view #28
@ -1,16 +1,23 @@
|
|||||||
package it.unisannio.ding.ids.wedroid.app.view;
|
package it.unisannio.ding.ids.wedroid.app.view;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.res.ColorStateList;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -26,7 +33,8 @@ public class WListsListActivity extends AppCompatActivity {
|
|||||||
int barColor;
|
int barColor;
|
||||||
WListsListViewModel viewModel;
|
WListsListViewModel viewModel;
|
||||||
RecyclerView recyclerView;
|
RecyclerView recyclerView;
|
||||||
|
//SwipeRefreshLayout swipeRefreshLayout;
|
||||||
|
SharedPreferenceHelper sp;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
@ -34,6 +42,8 @@ public class WListsListActivity extends AppCompatActivity {
|
|||||||
setContentView(R.layout.activity_wlists_view);
|
setContentView(R.layout.activity_wlists_view);
|
||||||
myToolbar = findViewById(R.id.my_toolbar);
|
myToolbar = findViewById(R.id.my_toolbar);
|
||||||
setSupportActionBar(myToolbar);
|
setSupportActionBar(myToolbar);
|
||||||
|
//swipeRefreshLayout = findViewById(R.id.pullToRefresh);
|
||||||
|
sp = new SharedPreferenceHelper(this);
|
||||||
|
|
||||||
Intent i = getIntent();
|
Intent i = getIntent();
|
||||||
String boardTitle = i.getStringExtra("barTitle");
|
String boardTitle = i.getStringExtra("barTitle");
|
||||||
@ -44,10 +54,19 @@ public class WListsListActivity extends AppCompatActivity {
|
|||||||
myToolbar.setBackgroundColor(barColor);
|
myToolbar.setBackgroundColor(barColor);
|
||||||
|
|
||||||
recyclerView = findViewById(R.id.recyclerviewWList);
|
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);
|
final WListsAdapter adapter = new WListsAdapter(this);
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
recyclerView.setLayoutManager(new LinearLayoutManager(this,
|
recyclerView.setLayoutManager(new LinearLayoutManager(this,
|
||||||
@ -62,5 +81,37 @@ public class WListsListActivity extends AppCompatActivity {
|
|||||||
adapter.setWLists(wLists);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ import retrofit2.Response;
|
|||||||
public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewHolder> {
|
public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewHolder> {
|
||||||
|
|
||||||
private final LayoutInflater mInflater;
|
private final LayoutInflater mInflater;
|
||||||
private List<WList> mWLists; // Cached copy of words
|
private List<WList> mWLists; // Cached copy of lists
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private ServicesFactory service;
|
private ServicesFactory service;
|
||||||
private SharedPreferenceHelper sp;
|
private SharedPreferenceHelper sp;
|
||||||
@ -119,7 +119,8 @@ public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewH
|
|||||||
|
|
||||||
private void showInputDialog(final String current) {
|
private void showInputDialog(final String current) {
|
||||||
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
|
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
|
||||||
@SuppressLint("InflateParams") View promptView = layoutInflater.inflate(R.layout.alert_new_card, null);
|
@SuppressLint("InflateParams") View promptView = layoutInflater.inflate(
|
||||||
|
R.layout.alert_new_card, null);
|
||||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
|
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
|
||||||
alertDialogBuilder.setView(promptView);
|
alertDialogBuilder.setView(promptView);
|
||||||
|
|
||||||
@ -130,9 +131,11 @@ public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewH
|
|||||||
|
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
if(!editText.getText().toString().matches("")) {
|
if(!editText.getText().toString().matches("")) {
|
||||||
service.getSwimlanesService().getAllSwimlanes(sp.getBoardId()).enqueue(new Callback<List<Swimlane>>() {
|
service.getSwimlanesService().getAllSwimlanes(sp.getBoardId())
|
||||||
|
.enqueue(new Callback<List<Swimlane>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(@NotNull Call<List<Swimlane>> call, @NotNull Response<List<Swimlane>> response) {
|
public void onResponse(@NotNull Call<List<Swimlane>> call,
|
||||||
|
@NotNull Response<List<Swimlane>> response) {
|
||||||
String idDefaultSwimlane = null;
|
String idDefaultSwimlane = null;
|
||||||
assert response.body() != null;
|
assert response.body() != null;
|
||||||
for(Swimlane swim: response.body()){
|
for(Swimlane swim: response.body()){
|
||||||
@ -155,7 +158,7 @@ public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewH
|
|||||||
Toast.makeText(mContext, "card posted" ,
|
Toast.makeText(mContext, "card posted" ,
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
else
|
else
|
||||||
Toast.makeText(mContext, "card unposted" ,
|
Toast.makeText(mContext, "card doesn't posted" ,
|
||||||
Toast.LENGTH_LONG).show();
|
Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
|
@ -13,11 +13,14 @@
|
|||||||
android:background="?attr/colorPrimary"
|
android:background="?attr/colorPrimary"
|
||||||
android:elevation="4dp"
|
android:elevation="4dp"
|
||||||
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
|
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
|
||||||
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
|
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/recyclerviewWList"
|
android:id="@+id/recyclerviewWList"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@ -30,4 +33,15 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@+id/my_toolbar"
|
app:layout_constraintTop_toBottomOf="@+id/my_toolbar"
|
||||||
tools:listitem="@layout/wlist_recyclerview_item" />
|
tools:listitem="@layout/wlist_recyclerview_item" />
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/synchronize"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="@dimen/fab_margin"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
app:srcCompat="@android:drawable/ic_popup_sync" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue
Block a user