Update UI list view
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Umberto Furno 2020-01-02 20:03:26 +01:00
parent 45fe2381ad
commit 844a3710b4
7 changed files with 104 additions and 59 deletions

View File

@ -55,6 +55,8 @@ dependencies {
// UI // UI
implementation "com.google.android.material:material:$rootProject.materialVersion" implementation "com.google.android.material:material:$rootProject.materialVersion"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
//Card view
implementation 'androidx.cardview:cardview:1.0.0'
// TESTING // TESTING

View File

@ -11,4 +11,5 @@ class MainActivity : AppCompatActivity() {
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
val service : BoardService? = null val service : BoardService? = null
} }
} }

View File

@ -30,7 +30,8 @@ import retrofit2.Response;
public class BoardViewActivity extends AppCompatActivity { public class BoardViewActivity extends AppCompatActivity {
String idBoard, username; String idBoard, username, boardTitle;
int boardColor;
TextView description, members, permission, creationDate, lastModificationDate; TextView description, members, permission, creationDate, lastModificationDate;
View divider1, divider2, divider3; View divider1, divider2, divider3;
ListView listView; ListView listView;
@ -65,11 +66,14 @@ public class BoardViewActivity extends AppCompatActivity {
initializeUI(idBoard); initializeUI(idBoard);
getListsButton.setOnClickListener(new View.OnClickListener() { getListsButton.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), WListsListActivity.class); Intent i = new Intent(getApplicationContext(), WListsListActivity.class);
i.putExtra("idBoard", idBoard); i.putExtra("idBoard", idBoard);
i.putExtra("barTitle", boardTitle);
i.putExtra("barColor", boardColor);
startActivity(i); startActivity(i);
} }
}); });
@ -86,9 +90,13 @@ public class BoardViewActivity extends AppCompatActivity {
myToolbar.setBackgroundColor(Color.parseColor(encodeColor( myToolbar.setBackgroundColor(Color.parseColor(encodeColor(
board.getBackgroundColor().toString()))); board.getBackgroundColor().toString())));
boardTitle = board.getTitle();
boardColor= Color.parseColor(encodeColor(
board.getBackgroundColor().toString()));
Drawable background = getListsButton.getBackground(); Drawable background = getListsButton.getBackground();
background.setTint(Color.parseColor(encodeColor( background.setTint(boardColor);
board.getBackgroundColor().toString())));
getListsButton.setBackgroundDrawable(background); getListsButton.setBackgroundDrawable(background);
description.setText(board.getDescription()); description.setText(board.getDescription());
@ -100,12 +108,10 @@ public class BoardViewActivity extends AppCompatActivity {
creationDate.append("\n" + board.getCreatedAt()); creationDate.append("\n" + board.getCreatedAt());
lastModificationDate.append("\n" + board.getModifiedAt()); lastModificationDate.append("\n" + board.getModifiedAt());
divider1.setBackgroundColor(Color.parseColor(encodeColor( divider1.setBackgroundColor(boardColor);
board.getBackgroundColor().toString()))); divider2.setBackgroundColor(boardColor);
divider2.setBackgroundColor(Color.parseColor(encodeColor( divider3.setBackgroundColor(boardColor);
board.getBackgroundColor().toString())));
divider3.setBackgroundColor(Color.parseColor(encodeColor(
board.getBackgroundColor().toString())));
ArrayList<String> labelsTitle = new ArrayList<>(); ArrayList<String> labelsTitle = new ArrayList<>();
for (int i=0; i<board.getLabels().size(); i++){ for (int i=0; i<board.getLabels().size(); i++){

View File

@ -1,15 +1,18 @@
package it.unisannio.ding.ids.wedroid.app.view; package it.unisannio.ding.ids.wedroid.app.view;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
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.lifecycle.Observer; import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.List; import java.util.List;
import java.util.Objects;
import it.unisannio.ding.ids.wedroid.app.R; import it.unisannio.ding.ids.wedroid.app.R;
import it.unisannio.ding.ids.wedroid.app.data.entity.WList; import it.unisannio.ding.ids.wedroid.app.data.entity.WList;
@ -20,23 +23,32 @@ import it.unisannio.ding.ids.wedroid.app.viewModel.WListsListViewModel;
public class WListsListActivity extends AppCompatActivity { public class WListsListActivity extends AppCompatActivity {
private WListsListViewModel viewModel; Toolbar myToolbar;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wlists_view); setContentView(R.layout.activity_wlists_view);
myToolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
Intent i = getIntent();
String boardTitle = i.getStringExtra("barTitle");
Objects.requireNonNull(getSupportActionBar()).setTitle(boardTitle);
int barColor = i.getIntExtra("barColor", 0);
myToolbar.setBackgroundColor(barColor);
PreferenceReader reader =new SharedPreferenceHelper(this); PreferenceReader reader =new SharedPreferenceHelper(this);
RecyclerView recyclerView = findViewById(R.id.recyclerviewWList); RecyclerView recyclerView = findViewById(R.id.recyclerviewWList);
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,
LinearLayoutManager.HORIZONTAL, false));
//linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); //linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//recyclerView.setHasFixedSize(true); //recyclerView.setHasFixedSize(true);
viewModel = new ViewModelProvider(this).get(WListsListViewModel.class); WListsListViewModel viewModel = new ViewModelProvider(this).get(WListsListViewModel.class);
viewModel.getAllWLists().observe(this, new Observer<List<WList>>() { viewModel.getAllWLists().observe(this, new Observer<List<WList>>() {
@Override @Override

View File

@ -1,30 +1,47 @@
package it.unisannio.ding.ids.wedroid.app.view.adapter; package it.unisannio.ding.ids.wedroid.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.unisannio.ding.ids.wedroid.app.R; import it.unisannio.ding.ids.wedroid.app.R;
import it.unisannio.ding.ids.wedroid.app.data.entity.WList; import it.unisannio.ding.ids.wedroid.app.data.entity.WList;
import it.unisannio.ding.ids.wedroid.app.util.ServicesFactory;
import it.unisannio.ding.ids.wedroid.app.util.SharedPreferenceHelper;
import it.unisannio.ding.ids.wedroid.wrapper.entity.Card;
import retrofit2.Call;
import retrofit2.Callback;
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 words
public WListsAdapter(Context context) { mInflater = LayoutInflater.from(context); } private Context mContext;
public WListsAdapter(Context context){
mInflater = LayoutInflater.from(context);
mContext=context;
}
class WListViewHolder extends RecyclerView.ViewHolder{ class WListViewHolder extends RecyclerView.ViewHolder{
private final TextView wListItemView; private final TextView wListItemView;
ListView listView;
private WListViewHolder(View itemView){ private WListViewHolder(View itemView){
super(itemView); super(itemView);
wListItemView= itemView.findViewById(R.id.wListTitle); wListItemView= itemView.findViewById(R.id.wListTitle);
listView = itemView.findViewById(R.id.listViewCard);
} }
} }
@ -35,11 +52,33 @@ public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewH
return new WListViewHolder(itemView); return new WListViewHolder(itemView);
} }
@SuppressLint("SetTextI18n")
@Override @Override
public void onBindViewHolder(@NonNull WListViewHolder holder, int position) { public void onBindViewHolder(@NonNull final WListViewHolder holder, int position) {
if (mWLists != null) { if (mWLists != null) {
WList current = mWLists.get(position); final WList current = mWLists.get(position);
holder.wListItemView.setText(current.getTitle()); final List<String> cardTitle = new ArrayList<>();
SharedPreferenceHelper sp = new SharedPreferenceHelper(mContext);
ServicesFactory service = new ServicesFactory(sp);
service.getCardService().getAllCards(sp.getBoardId(), current.getId()).enqueue(
new Callback<List<Card>>() {
@Override
public void onResponse(Call<List<Card>> call, Response<List<Card>> response) {
for(int i=0; i<response.body().size(); i++){
cardTitle.add(response.body().get(i).getTitle());
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(mContext,
android.R.layout.simple_list_item_1, cardTitle);
holder.listView.setAdapter(adapter);
holder.wListItemView.setText(current.getTitle());
}
@Override
public void onFailure(Call<List<Card>> call, Throwable t) {
}
});
/*position of the old content holder**/
} else { } else {
// Covers the case of data not being ready yet. // Covers the case of data not being ready yet.
holder.wListItemView.setText("No wList"); holder.wListItemView.setText("No wList");
@ -57,43 +96,4 @@ public class WListsAdapter extends RecyclerView.Adapter<WListsAdapter.WListViewH
mWLists = wList; mWLists = wList;
notifyDataSetChanged(); notifyDataSetChanged();
} }
} }
/** Vecchia versione
private List<WList> wLists;
private Context context;
public WListsAdapter(Context context, List<WList> wLists){
this.wLists = wLists;
this.context = context;
}
public class WListViewHolder extends RecyclerView.ViewHolder {
private TextView title;
public WListViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.zWListTitle);
}
}
@NonNull
@Override
public WListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.z_wlist_recycle_item, parent, false);
return new WListViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull WListViewHolder holder, int position) {
WList wList = wLists.get(position);
holder.title.setText(wList.getTitle());
}
@Override
public int getItemCount() {
return 0;
}
**/

View File

@ -6,15 +6,28 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
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"
android:layout_height="0dp" android:layout_height="0dp"
android:background="@android:color/white" android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toBottomOf="@+id/my_toolbar"
tools:listitem="@layout/wlist_recyclerview_item" /> tools:listitem="@layout/wlist_recyclerview_item" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,12 +1,23 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent" android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:id="@+id/wListTitle" android:id="@+id/wListTitle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:background="@android:color/holo_blue_bright" /> android:background="#BBDEFB"
android:orientation="horizontal"
android:textAlignment="center"
android:textSize="24sp"
android:textStyle="bold" />
<ListView
android:id="@+id/listViewCard"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout> </LinearLayout>