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

190 lines
6.9 KiB
Java

package it.unisannio.ding.ids.wedroid.app.view;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Objects;
import it.unisannio.ding.ids.wedroid.app.R;
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.Board;
import it.unisannio.ding.ids.wedroid.wrapper.entity.User;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class BoardViewActivity extends AppCompatActivity {
String idBoard, username;
TextView description, members, permission, creationDate, lastModificationDate;
View divider1, divider2, divider3;
ListView listView;
Button getListsButton;
SharedPreferenceHelper sp;
ServicesFactory service;
Toolbar myToolbar;
Board board;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_board_view);
myToolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);
Intent i = getIntent();
idBoard= i.getStringExtra("idBoard");
getListsButton = findViewById(R.id.getLists);
description = findViewById(R.id.descriptionTxt);
members = findViewById(R.id.membersTxt);
permission = findViewById(R.id.permissionTxt);
creationDate = findViewById(R.id.createdDate);
lastModificationDate = findViewById(R.id.modifiedDate);
divider1 = findViewById(R.id.divider1);
divider2 = findViewById(R.id.divider2);
divider3= findViewById(R.id.divider3);
listView = findViewById(R.id.listViewID);
sp = new SharedPreferenceHelper(this);
sp.setBoardId(idBoard);
initializeUI(idBoard);
getListsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), WListsListActivity.class);
i.putExtra("idBoard", idBoard);
startActivity(i);
}
});
}
private void initializeUI(String idBoard) {
service = new ServicesFactory(sp);
service.getBoardService().getBoard(idBoard).enqueue(new Callback<Board>() {
@Override
public void onResponse(@NotNull Call<Board> call, @NotNull Response<Board> response) {
board = response.body();
Objects.requireNonNull(getSupportActionBar()).setTitle(board.getTitle());
myToolbar.setBackgroundColor(Color.parseColor(encodeColor(
board.getBackgroundColor().toString())));
Drawable background = getListsButton.getBackground();
background.setTint(Color.parseColor(encodeColor(
board.getBackgroundColor().toString())));
getListsButton.setBackgroundDrawable(background);
description.setText(board.getDescription());
permission.setText(board.getPermission().toString());
members.setText("");
for(int i =0; i<board.getMembers().size(); i++){
replaceIDUserToUsername(board.getMembers().get(i).getUserId());
}
creationDate.append("\n" + board.getCreatedAt());
lastModificationDate.append("\n" + board.getModifiedAt());
divider1.setBackgroundColor(Color.parseColor(encodeColor(
board.getBackgroundColor().toString())));
divider2.setBackgroundColor(Color.parseColor(encodeColor(
board.getBackgroundColor().toString())));
divider3.setBackgroundColor(Color.parseColor(encodeColor(
board.getBackgroundColor().toString())));
ArrayList<String> labelsTitle = new ArrayList<>();
for (int i=0; i<board.getLabels().size(); i++){
labelsTitle.add(board.getLabels().get(i).getName());
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(),
android.R.layout.simple_list_item_1, labelsTitle);
listView.setAdapter(adapter);
}
@Override
public void onFailure(Call<Board> call, Throwable t) {
//boardTitle.setText(t.toString());
//TODO
}
});
}
private String encodeColor(String color){
String encodedColor;
if(color.equalsIgnoreCase("belize")){
encodedColor="#2980B9";
}
else if(color.equalsIgnoreCase("nephritis")){
encodedColor="#27AE60";
}
else if(color.equalsIgnoreCase("pomegranate")){
encodedColor="#C0392B";
}
else if(color.equalsIgnoreCase("pumpkin")){
encodedColor="#E67E22";
}
else if(color.equalsIgnoreCase("wisteria")){
encodedColor="#8E44AD";
}
else if(color.equalsIgnoreCase("moderatepink")){
encodedColor="#CD5A91";
}
else if(color.equalsIgnoreCase("strongcyan")){
encodedColor="#00AECC";
}
else if(color.equalsIgnoreCase("dark")){
encodedColor="#2C3E51";
}
else if(color.equalsIgnoreCase("midnight")){
encodedColor="#2C3E50";
}
else if(color.equalsIgnoreCase("relax")){
encodedColor="#27AE61";
}
else if(color.equalsIgnoreCase("corteza")){
encodedColor="#568BA2";
}
else
encodedColor = "#38DF87";
return encodedColor;
}
private void replaceIDUserToUsername(String idUser){
service = new ServicesFactory(sp);
service.getUserService().getUser(idUser).enqueue(new Callback<User>() {
@Override
public void onResponse(@NotNull Call<User> call, @NotNull Response<User> response) {
User u = response.body();
assert u != null;
username = u.getUsername();
if(u.isAdmin()){
members.append("Admin: " + username + ";\n");
}
else
members.append("Other member: " + username + ";\n");
}
@Override
public void onFailure(Call<User> call, Throwable t) {
//TODO
}
});
}
}