From 45fe2381ad351aabe555dfffdd35052a41f6a70d Mon Sep 17 00:00:00 2001 From: Umberto Furno Date: Tue, 31 Dec 2019 14:53:08 +0100 Subject: [PATCH] Update UI board view --- app/src/main/AndroidManifest.xml | 4 +- .../wedroid/app/view/BoardViewActivity.java | 141 +++++++++++- app/src/main/res/drawable/rounded_shape.xml | 12 + .../main/res/layout/activity_board_view.xml | 205 ++++++++++++++++-- app/src/main/res/values/dimens.xml | 1 + app/src/main/res/values/strings.xml | 9 + app/src/main/res/values/styles.xml | 5 +- 7 files changed, 344 insertions(+), 33 deletions(-) create mode 100644 app/src/main/res/drawable/rounded_shape.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b493584..c334f33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,11 +17,11 @@ - - + diff --git a/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/BoardViewActivity.java b/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/BoardViewActivity.java index a25cdc5..2eb4d6f 100644 --- a/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/BoardViewActivity.java +++ b/app/src/main/java/it/unisannio/ding/ids/wedroid/app/view/BoardViewActivity.java @@ -1,45 +1,71 @@ 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 { - TextView boardTitle; - Button getLists; + 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(); - final String idBoard= i.getStringExtra("idBoard"); - boardTitle = findViewById(R.id.title_board); - getLists = findViewById(R.id.getLists); + 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); - getLists.setOnClickListener(new View.OnClickListener() { + getListsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent i = new Intent(getApplicationContext(), WListsListActivity.class); @@ -53,13 +79,110 @@ public class BoardViewActivity extends AppCompatActivity { service = new ServicesFactory(sp); service.getBoardService().getBoard(idBoard).enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { - boardTitle.setText(boardTitle.getText().toString() + response.body().getTitle()); + public void onResponse(@NotNull Call call, @NotNull Response 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 labelsTitle = new ArrayList<>(); + for (int i=0; i adapter = new ArrayAdapter<>(getApplicationContext(), + android.R.layout.simple_list_item_1, labelsTitle); + listView.setAdapter(adapter); } @Override public void onFailure(Call call, Throwable t) { - boardTitle.setText(t.toString()); + //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() { + @Override + public void onResponse(@NotNull Call call, @NotNull Response 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 call, Throwable t) { + //TODO } }); } diff --git a/app/src/main/res/drawable/rounded_shape.xml b/app/src/main/res/drawable/rounded_shape.xml new file mode 100644 index 0000000..66a45a2 --- /dev/null +++ b/app/src/main/res/drawable/rounded_shape.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_board_view.xml b/app/src/main/res/layout/activity_board_view.xml index 8d379e7..60678e1 100644 --- a/app/src/main/res/layout/activity_board_view.xml +++ b/app/src/main/res/layout/activity_board_view.xml @@ -1,35 +1,198 @@ - - - - + android:scrollIndicators="right" + android:scrollbarStyle="insideOverlay" + android:scrollbars="vertical"> - + + + android:orientation="vertical"> - + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_height="match_parent"> -