wip: adding timeline view for issues/pr

This commit is contained in:
M M Arif 2022-09-02 22:55:34 +05:00
parent beac76e6c0
commit 2b225cd7ed
20 changed files with 880 additions and 94 deletions

View file

@ -482,8 +482,6 @@ public class IssueDetailActivity extends BaseActivity implements LabelsListAdapt
issueCommentsModel.getIssueCommentList(owner, repo, index, ctx).observe(this, issueCommentsMain -> {
assert issueCommentsMain != null;
Bundle bundle = new Bundle();
bundle.putString("repoOwner", repoOwner);
bundle.putString("repoName", repoName);

View file

@ -5,6 +5,8 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
@ -15,11 +17,14 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
import com.amulyakhare.textdrawable.TextDrawable;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.card.MaterialCardView;
import com.vdurmont.emoji.EmojiParser;
import org.gitnex.tea4j.v2.models.Comment;
import org.gitnex.tea4j.v2.models.TimelineComment;
import org.mian.gitnex.R;
import org.mian.gitnex.activities.BaseActivity;
import org.mian.gitnex.activities.ProfileActivity;
@ -27,7 +32,15 @@ import org.mian.gitnex.clients.PicassoService;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.fragments.BottomSheetReplyFragment;
import org.mian.gitnex.fragments.IssuesFragment;
import org.mian.gitnex.helpers.*;
import org.mian.gitnex.helpers.AlertDialogs;
import org.mian.gitnex.helpers.AppUtil;
import org.mian.gitnex.helpers.ColorInverter;
import org.mian.gitnex.helpers.LabelWidthCalculator;
import org.mian.gitnex.helpers.Markdown;
import org.mian.gitnex.helpers.RoundedTransformation;
import org.mian.gitnex.helpers.TimeHelper;
import org.mian.gitnex.helpers.TinyDB;
import org.mian.gitnex.helpers.Toasty;
import org.mian.gitnex.helpers.contexts.IssueContext;
import org.mian.gitnex.views.ReactionList;
import org.mian.gitnex.views.ReactionSpinner;
@ -46,13 +59,13 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
private final Context context;
private final TinyDB tinyDB;
private final Bundle bundle;
private final List<Comment> issuesComments;
private final List<TimelineComment> issuesComments;
private final FragmentManager fragmentManager;
private final Runnable onInteractedListener;
private final Locale locale;
private final IssueContext issue;
public IssueCommentsAdapter(Context ctx, Bundle bundle, List<Comment> issuesCommentsMain, FragmentManager fragmentManager, Runnable onInteractedListener, IssueContext issue) {
public IssueCommentsAdapter(Context ctx, Bundle bundle, List<TimelineComment> issuesCommentsMain, FragmentManager fragmentManager, Runnable onInteractedListener, IssueContext issue) {
this.context = ctx;
this.bundle = bundle;
@ -126,18 +139,12 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
public void onBindViewHolder(@NonNull IssueCommentsAdapter.IssueCommentViewHolder holder, int position) {
String timeFormat = tinyDB.getString("dateFormat", "pretty");
Comment issueComment = issuesComments.get(position);
TimelineComment issueComment = issuesComments.get(position);
int imgRadius = AppUtil.getPixelsFromDensity(context, 3);
holder.userLoginId = issueComment.getUser().getLogin();
holder.issueComment = issueComment;
holder.author.setText(issueComment.getUser().getLogin());
PicassoService.getInstance(context).get().load(issueComment.getUser().getAvatarUrl()).placeholder(R.drawable.loader_animated).transform(new RoundedTransformation(imgRadius, 0))
.resize(AppUtil.getPixelsFromDensity(context, 35), AppUtil.getPixelsFromDensity(context, 35)).centerCrop().into(holder.avatar);
Markdown.render(context, EmojiParser.parseToUnicode(issueComment.getBody()), holder.comment, issue.getRepository());
StringBuilder informationBuilder = null;
if(issueComment.getCreatedAt() != null) {
@ -157,27 +164,255 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
}
}
holder.information.setText(informationBuilder);
// label view in timeline
if(issueComment.getType().equalsIgnoreCase("label")) {
Bundle bundle1 = new Bundle();
bundle1.putAll(bundle);
bundle1.putInt("commentId", Math.toIntExact(issueComment.getId()));
holder.labelView.setVisibility(View.VISIBLE);
ReactionList reactionList = new ReactionList(context, bundle1);
int color = Color.parseColor("#" + issueComment.getLabel().getColor());
holder.commentReactionBadges.addView(reactionList);
reactionList.setOnReactionAddedListener(() -> {
ImageView labelsView = new ImageView(context);
if(holder.commentReactionBadges.getVisibility() != View.VISIBLE) {
holder.commentReactionBadges.post(() -> holder.commentReactionBadges.setVisibility(View.VISIBLE));
int height = AppUtil.getPixelsFromDensity(context, 20);
int textSize = AppUtil.getPixelsFromScaledDensity(context, 12);
TextDrawable drawable = TextDrawable.builder().beginConfig().useFont(Typeface.DEFAULT).textColor(new ColorInverter().getContrastColor(color)).fontSize(textSize)
.width(LabelWidthCalculator.calculateLabelWidth(issueComment.getLabel().getName(), Typeface.DEFAULT, textSize, AppUtil.getPixelsFromDensity(context, 10))).height(height).endConfig()
.buildRoundRect(issueComment.getLabel().getName(), color, AppUtil.getPixelsFromDensity(context, 18));
labelsView.setImageDrawable(drawable);
TextView start = new TextView(context);
TextView end = new TextView(context);
if(issueComment.getBody().equals("")){
start.setText(issueComment.getUser().getLogin() + " removed the ");
}
});
else {
start.setText(issueComment.getUser().getLogin() + " added the ");
}
end.setText(" label " + informationBuilder);
end.setTextSize(12);
start.setTextSize(12);
holder.labelData.addView(start);
holder.labelData.addView(labelsView);
holder.labelData.addView(end);
}
else {
holder.labelView.setVisibility(View.GONE);
}
// pull/push/commit data view in timeline
if(issueComment.getType().equalsIgnoreCase("pull_push")) {
holder.commitView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
start.setText(issueComment.getUser().getLogin() + " added commit " + informationBuilder);
start.setTextSize(12);
holder.commitData.addView(start);
}
else {
holder.commitView.setVisibility(View.GONE);
}
// assignees data view in timeline
if(issueComment.getType().equalsIgnoreCase("assignees")) {
holder.assigneesView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
if(issueComment.getUser().getLogin().equalsIgnoreCase(issueComment.getAssignee().getLogin())) {
start.setText(issueComment.getUser().getLogin() + " self-assigned this " + informationBuilder);
}
else if(issueComment.isRemovedAssignee()) {
if(issueComment.getUser().getLogin().equalsIgnoreCase(issueComment.getAssignee().getLogin())) {
start.setText(issueComment.getUser().getLogin() + " removed their assignment " + informationBuilder);
}
else {
start.setText(issueComment.getAssignee().getLogin() + " was unassigned by " + issueComment.getUser().getLogin() + " " + informationBuilder);
}
}
else {
start.setText(issueComment.getAssignee().getLogin() + " was assigned by " + issueComment.getUser().getLogin() + " " + informationBuilder);
}
start.setTextSize(12);
holder.assigneesData.addView(start);
}
else {
holder.assigneesView.setVisibility(View.GONE);
}
// milestone data view in timeline
if(issueComment.getType().equalsIgnoreCase("milestone")) {
holder.milestoneView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
if(issueComment.getMilestone() != null) {
start.setText(issueComment.getUser().getLogin() + " added this to the " + issueComment.getMilestone().getTitle() + " milestone " + informationBuilder);
}
else {
start.setText(issueComment.getUser().getLogin() + " removed this from the " + issueComment.getOldMilestone().getTitle() + " milestone " + informationBuilder);
}
start.setTextSize(12);
holder.milestoneData.addView(start);
}
else {
holder.milestoneView.setVisibility(View.GONE);
}
// status view in timeline
if(issueComment.getType().equalsIgnoreCase("close") || issueComment.getType().equalsIgnoreCase("reopen") || issueComment.getType().equalsIgnoreCase("merge_pull") || issueComment.getType().equalsIgnoreCase("commit_ref")) {
holder.statusView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
if(issue.getIssueType().equalsIgnoreCase("Issue")) {
if(issueComment.getType().equals("close")) {
start.setText(issueComment.getUser().getLogin() + " closed this issue " + informationBuilder);
holder.statusIcon.setColorFilter(context.getResources().getColor(R.color.iconIssuePrClosedColor, null));
}
else if(issueComment.getType().equalsIgnoreCase("reopen")) {
start.setText(issueComment.getUser().getLogin() + " reopened this issue " + informationBuilder);
}
}
else if(issue.getIssueType().equalsIgnoreCase("Pull")) {
if(issueComment.getType().equalsIgnoreCase("close")) {
start.setText(issueComment.getUser().getLogin() + " closed this pull request " + informationBuilder);
holder.statusIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_pull_request));
holder.statusIcon.setColorFilter(context.getResources().getColor(R.color.iconIssuePrClosedColor, null));
}
else if(issueComment.getType().equalsIgnoreCase("merge_pull")) {
start.setText(issueComment.getUser().getLogin() + " merged this pull request " + informationBuilder);
holder.statusIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_pull_request));
holder.statusIcon.setColorFilter(context.getResources().getColor(R.color.iconPrMergedColor, null));
}
else if(issueComment.getType().equalsIgnoreCase("commit_ref")) {
start.setText(issueComment.getUser().getLogin() + " referenced this issue from a commit " + issueComment.getRefCommitSha() + " " + informationBuilder);
holder.statusIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_bookmark));
}
else {
start.setText(issue.getIssueType() + " reopened this pull request " + informationBuilder);
holder.statusIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_pull_request));
}
}
start.setTextSize(12);
holder.statusData.addView(start);
}
else {
holder.statusView.setVisibility(View.GONE);
}
// review data view in timeline
if(issueComment.getType().equalsIgnoreCase("review") || issueComment.getType().equalsIgnoreCase("review_request")) {
holder.reviewView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
/*if(issueComment.getType().equalsIgnoreCase("review")) {
start.setText(issueComment.getUser().getLogin() + " approved these changes " + informationBuilder);
}
else*/ if(issueComment.getType().equalsIgnoreCase("review_request")) {
start.setText(issueComment.getUser().getLogin() + " requested review from " + issueComment.getAssignee().getLogin() + " " + informationBuilder);
holder.reviewIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_unwatch));
}
start.setTextSize(12);
holder.reviewData.addView(start);
}
else {
holder.reviewView.setVisibility(View.GONE);
}
// change title data view in timeline
if(issueComment.getType().equalsIgnoreCase("change_title")) {
holder.changeTitleView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
start.setText(issueComment.getUser().getLogin() + " changed title from " + issueComment.getOldTitle() + " to " + issueComment.getNewTitle() + " " + informationBuilder);
start.setTextSize(12);
holder.changeTitleData.addView(start);
}
else {
holder.changeTitleView.setVisibility(View.GONE);
}
// lock/unlock data view in timeline
if(issueComment.getType().equalsIgnoreCase("lock") || issueComment.getType().equalsIgnoreCase("unlock")) {
holder.lockView.setVisibility(View.VISIBLE);
TextView start = new TextView(context);
if(issueComment.getType().equalsIgnoreCase("lock")) {
start.setText(issueComment.getUser().getLogin() + " locked as " + issueComment.getBody() + " and limited conversation to collaborators " + informationBuilder);
}
else if(issueComment.getType().equalsIgnoreCase("unlock")) {
start.setText(issueComment.getUser().getLogin() + " unlocked this conversation " + informationBuilder);
holder.lockIcon.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_key));
}
start.setTextSize(12);
holder.lockData.addView(start);
}
else {
holder.lockView.setVisibility(View.GONE);
}
// comment data view in timeline
if(issueComment.getType().equalsIgnoreCase("comment")) {
holder.author.setText(issueComment.getUser().getLogin());
PicassoService.getInstance(context).get().load(issueComment.getUser().getAvatarUrl()).placeholder(R.drawable.loader_animated).transform(new RoundedTransformation(imgRadius, 0))
.resize(AppUtil.getPixelsFromDensity(context, 35), AppUtil.getPixelsFromDensity(context, 35)).centerCrop().into(holder.avatar);
Markdown.render(context, EmojiParser.parseToUnicode(issueComment.getBody()), holder.comment, issue.getRepository());
holder.information.setText(informationBuilder);
Bundle bundle1 = new Bundle();
bundle1.putAll(bundle);
bundle1.putInt("commentId", Math.toIntExact(issueComment.getId()));
ReactionList reactionList = new ReactionList(context, bundle1);
holder.commentReactionBadges.addView(reactionList);
reactionList.setOnReactionAddedListener(() -> {
if(holder.commentReactionBadges.getVisibility() != View.VISIBLE) {
holder.commentReactionBadges.post(() -> holder.commentReactionBadges.setVisibility(View.VISIBLE));
}
});
}
else {
holder.commentView.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return issuesComments.size();
if(issuesComments != null) {
return issuesComments.size();
}
else {
return 0;
}
}
class IssueCommentViewHolder extends RecyclerView.ViewHolder {
@ -188,7 +423,36 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
private final RecyclerView comment;
private final LinearLayout commentReactionBadges;
private String userLoginId;
private Comment issueComment;
private TimelineComment issueComment;
private final MaterialCardView commentView;
private final LinearLayout labelView;
private final LinearLayout labelData;
private final LinearLayout commitView;
private final LinearLayout commitData;
private final LinearLayout assigneesView;
private final LinearLayout assigneesData;
private final LinearLayout milestoneView;
private final LinearLayout milestoneData;
private final LinearLayout statusView;
private final LinearLayout statusData;
private final ImageView statusIcon;
private final LinearLayout reviewView;
private final LinearLayout reviewData;
private final ImageView reviewIcon;
private final LinearLayout changeTitleView;
private final LinearLayout changeTitleData;
private final LinearLayout lockView;
private final LinearLayout lockData;
private final ImageView lockIcon;
private IssueCommentViewHolder(View view) {
@ -201,6 +465,35 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
comment = view.findViewById(R.id.comment);
commentReactionBadges = view.findViewById(R.id.commentReactionBadges);
commentView = view.findViewById(R.id.comment_view);
labelView = view.findViewById(R.id.label_view);
labelData = view.findViewById(R.id.label_data);
commitView = view.findViewById(R.id.commit_view);
commitData = view.findViewById(R.id.commit_data);
assigneesView = view.findViewById(R.id.assignees_view);
assigneesData = view.findViewById(R.id.assignees_data);
milestoneView = view.findViewById(R.id.milestone_view);
milestoneData = view.findViewById(R.id.milestone_data);
statusView = view.findViewById(R.id.status_view);
statusData = view.findViewById(R.id.status_data);
statusIcon = view.findViewById(R.id.status_icon);
reviewView = view.findViewById(R.id.review_view);
reviewData = view.findViewById(R.id.review_data);
reviewIcon = view.findViewById(R.id.review_icon);
changeTitleView = view.findViewById(R.id.change_title_view);
changeTitleData = view.findViewById(R.id.change_title_data);
lockView = view.findViewById(R.id.lock_unlock_view);
lockData = view.findViewById(R.id.lock_unlock_data);
lockIcon = view.findViewById(R.id.lock_unlock_icon);
menu.setOnClickListener(v -> {
final String loginUid = ((BaseActivity) context).getAccount().getAccount().getUserName();

View file

@ -5,7 +5,7 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import org.gitnex.tea4j.v2.models.Comment;
import org.gitnex.tea4j.v2.models.TimelineComment;
import org.mian.gitnex.R;
import org.mian.gitnex.clients.RetrofitClient;
import org.mian.gitnex.helpers.Toasty;
@ -20,9 +20,9 @@ import retrofit2.Response;
public class IssueCommentsViewModel extends ViewModel {
private MutableLiveData<List<Comment>> issueComments;
private MutableLiveData<List<TimelineComment>> issueComments;
public LiveData<List<Comment>> getIssueCommentList(String owner, String repo, int index, Context ctx) {
public LiveData<List<TimelineComment>> getIssueCommentList(String owner, String repo, int index, Context ctx) {
issueComments = new MutableLiveData<>();
loadIssueComments(owner, repo, index, ctx);
@ -36,12 +36,12 @@ public class IssueCommentsViewModel extends ViewModel {
public void loadIssueComments(String owner, String repo, int index, Context ctx, Runnable onLoadingFinished) {
Call<List<Comment>> call = RetrofitClient.getApiInterface(ctx).issueGetComments(owner, repo, (long) index, null, null);
Call<List<TimelineComment>> call = RetrofitClient.getApiInterface(ctx).issueGetCommentsAndTimeline(owner, repo, (long) index, null, null, 25, null);
call.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<List<Comment>> call, @NonNull Response<List<Comment>> response) {
public void onResponse(@NonNull Call<List<TimelineComment>> call, @NonNull Response<List<TimelineComment>> response) {
if(response.isSuccessful()) {
issueComments.postValue(response.body());
@ -55,7 +55,7 @@ public class IssueCommentsViewModel extends ViewModel {
}
@Override
public void onFailure(@NonNull Call<List<Comment>> call, @NonNull Throwable t) {
public void onFailure(@NonNull Call<List<TimelineComment>> call, @NonNull Throwable t) {
Toasty.error(ctx, ctx.getString(R.string.genericServerResponseError));
}

View file

@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M9,4h6a2,2 0,0 1,2 2v14l-5,-3l-5,3v-14a2,2 0,0 1,2 -2"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -1,5 +1,27 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp"
android:height="24dp" android:viewportWidth="16" android:viewportHeight="16">
<path android:fillColor="?attr/iconsColor" android:fillType="evenOdd"
android:pathData="M6,3h1v1L6,4L6,3zM4,3h1v1L4,4L4,3zM2,3h1v1L2,4L2,3zM14,13L2,13L2,5h12v8zM14,4L8,4L8,3h6v1zM15,3c0,-0.55 -0.45,-1 -1,-1L2,2c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1L15,3z"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,4L19,4A1,1 0,0 1,20 5L20,19A1,1 0,0 1,19 20L5,20A1,1 0,0 1,4 19L4,5A1,1 0,0 1,5 4z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M4,8L20,8"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M8,4L8,8"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -3,8 +3,11 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/iconsColor"
android:fillType="evenOdd"
android:pathData="M3.75,4.5a0.25,0.25 0,0 0,-0.25 0.25v14.5c0,0.138 0.112,0.25 0.25,0.25h16.5a0.25,0.25 0,0 0,0.25 -0.25V7.687a0.25,0.25 0,0 0,-0.25 -0.25h-8.471a1.75,1.75 0,0 1,-1.447 -0.765L8.928,4.61a0.25,0.25 0,0 0,-0.208 -0.11H3.75zM2,4.75C2,3.784 2.784,3 3.75,3h4.971c0.58,0 1.12,0.286 1.447,0.765l1.404,2.063a0.25,0.25 0,0 0,0.207 0.11h8.471c0.966,0 1.75,0.783 1.75,1.75V19.25A1.75,1.75 0,0 1,20.25 21H3.75A1.75,1.75 0,0 1,2 19.25V4.75z"/>
<path
android:pathData="M5,4h4l3,3h7a2,2 0,0 1,2 2v8a2,2 0,0 1,-2 2h-14a2,2 0,0 1,-2 -2v-11a2,2 0,0 1,2 -2"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -4,7 +4,17 @@
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/iconsColor"
android:fillType="evenOdd"
android:pathData="M5,2.5a0.5,0.5 0,0 0,-0.5 0.5v18a0.5,0.5 0,0 0,0.5 0.5h14a0.5,0.5 0,0 0,0.5 -0.5L19.5,8.5h-4a2,2 0,0 1,-2 -2v-4L5,2.5zM15,2.5v4a0.5,0.5 0,0 0,0.5 0.5h4a0.5,0.5 0,0 0,-0.146 -0.336l-4.018,-4.018A0.5,0.5 0,0 0,15 2.5zM3,3a2,2 0,0 1,2 -2h9.982a2,2 0,0 1,1.414 0.586l4.018,4.018A2,2 0,0 1,21 7.018L21,21a2,2 0,0 1,-2 2L5,23a2,2 0,0 1,-2 -2L3,3z"/>
android:pathData="M14,3v4a1,1 0,0 0,1 1h4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M17,21h-10a2,2 0,0 1,-2 -2v-14a2,2 0,0 1,2 -2h7l5,5v11a2,2 0,0 1,-2 2z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8,15m-4,0a4,4 0,1 1,8 0a4,4 0,1 1,-8 0"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M10.85,12.15L19,4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M18,5L20,7"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M15,8L17,10"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -3,8 +3,25 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/iconsColor"
android:fillType="evenOdd"
android:pathData="M11.75,1a0.75,0.75 0,0 1,0.75 0.75L12.5,4h6.532c0.42,0 0.826,0.15 1.143,0.425l3.187,2.75a1.75,1.75 0,0 1,0 2.65l-3.187,2.75a1.75,1.75 0,0 1,-1.143 0.425L12.5,13v9.25a0.75,0.75 0,0 1,-1.5 0L11,13L3.75,13A1.75,1.75 0,0 1,2 11.25v-5.5C2,4.783 2.784,4 3.75,4L11,4L11,1.75a0.75,0.75 0,0 1,0.75 -0.75zM11.75,5.5h7.282a0.25,0.25 0,0 1,0.163 0.06l3.188,2.75a0.25,0.25 0,0 1,0 0.38l-3.188,2.75a0.25,0.25 0,0 1,-0.163 0.06L3.75,11.5a0.25,0.25 0,0 1,-0.25 -0.25v-5.5a0.25,0.25 0,0 1,0.25 -0.25h8z"/>
<path
android:pathData="M18,6H5a2,2 0,0 0,-2 2v3a2,2 0,0 0,2 2h13l4,-3.5L18,6Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M12,13v9"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M12,2v4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -3,11 +3,53 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/iconsColor"
android:pathData="M7.25,12a0.75,0.75 0,0 0,0 1.5h0.5a0.75,0.75 0,0 0,0 -1.5h-0.5zM6.5,9.25a0.75,0.75 0,0 1,0.75 -0.75h0.5a0.75,0.75 0,0 1,0 1.5h-0.5a0.75,0.75 0,0 1,-0.75 -0.75zM7.25,5a0.75,0.75 0,0 0,0 1.5h0.5a0.75,0.75 0,0 0,0 -1.5h-0.5zM10,12.75a0.75,0.75 0,0 1,0.75 -0.75h0.5a0.75,0.75 0,0 1,0 1.5h-0.5a0.75,0.75 0,0 1,-0.75 -0.75zM10.75,8.5a0.75,0.75 0,0 0,0 1.5h0.5a0.75,0.75 0,0 0,0 -1.5h-0.5zM10,5.75a0.75,0.75 0,0 1,0.75 -0.75h0.5a0.75,0.75 0,0 1,0 1.5h-0.5a0.75,0.75 0,0 1,-0.75 -0.75zM14.25,12a0.75,0.75 0,0 0,0 1.5h0.5a0.75,0.75 0,0 0,0 -1.5h-0.5zM13.5,9.25a0.75,0.75 0,0 1,0.75 -0.75h0.5a0.75,0.75 0,0 1,0 1.5h-0.5a0.75,0.75 0,0 1,-0.75 -0.75zM14.25,5a0.75,0.75 0,0 0,0 1.5h0.5a0.75,0.75 0,0 0,0 -1.5h-0.5z"/>
<path
android:fillColor="?attr/iconsColor"
android:fillType="evenOdd"
android:pathData="M3,20a2,2 0,0 0,2 2h3.75a0.75,0.75 0,0 0,0.75 -0.75L9.5,19h3v2.25c0,0.414 0.336,0.75 0.75,0.75L17,22c0.092,0 0.183,-0.006 0.272,-0.018a0.758,0.758 0,0 0,0.166 0.018L21.5,22a2,2 0,0 0,2 -2v-7.625a2,2 0,0 0,-0.8 -1.6l-1,-0.75a0.75,0.75 0,1 0,-0.9 1.2l1,0.75a0.5,0.5 0,0 1,0.2 0.4L22,20a0.5,0.5 0,0 1,-0.5 0.5h-2.563c0.041,-0.16 0.063,-0.327 0.063,-0.5L19,3a2,2 0,0 0,-2 -2L5,1a2,2 0,0 0,-2 2v17zM5,20.5a0.5,0.5 0,0 1,-0.5 -0.5L4.5,3a0.5,0.5 0,0 1,0.5 -0.5h12a0.5,0.5 0,0 1,0.5 0.5v17a0.5,0.5 0,0 1,-0.5 0.5h-3v-2.25a0.75,0.75 0,0 0,-0.75 -0.75h-4.5a0.75,0.75 0,0 0,-0.75 0.75v2.25L5,20.5z"/>
<path
android:pathData="M6,22V4c0,-0.27 0,-0.55 0.07,-0.82a1.477,1.477 0,0 1,1.1 -1.11C7.46,2 8.73,2 9,2h7c0.27,0 0.55,0 0.82,0.07a1.477,1.477 0,0 1,1.11 1.1c0.07,0.28 0.07,0.56 0.07,0.83v18H6Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M2,14v6c0,1.1 0.9,2 2,2h2V12H4c-0.27,0 -0.55,0 -0.82,0.07 -0.27,0.07 -0.52,0.2 -0.72,0.4 -0.19,0.19 -0.32,0.44 -0.39,0.71A3.4,3.4 0,0 0,2 14Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M20.82,9.07A3.4,3.4 0,0 0,20 9h-2v13h2a2,2 0,0 0,2 -2v-9c0,-0.28 0,-0.55 -0.07,-0.82 -0.07,-0.27 -0.2,-0.52 -0.4,-0.72 -0.19,-0.19 -0.44,-0.32 -0.71,-0.39Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M10,6h4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M10,10h4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M10,14h4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M10,18h4"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -3,32 +3,46 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#00000000"
android:pathData="M18,18m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
android:strokeWidth="2"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"
android:strokeLineJoin="round"/>
<path
android:fillColor="#00000000"
android:pathData="M6,6m-3,0a3,3 0,1 1,6 0a3,3 0,1 1,-6 0"
android:strokeWidth="2"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"
android:strokeLineJoin="round"/>
<path
android:fillColor="#00000000"
android:pathData="M13,6h3a2,2 0,0 1,2 2v7"
android:strokeWidth="2"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"
android:strokeLineJoin="round"/>
<path
android:fillColor="#00000000"
android:pathData="M6,9L6,21"
android:strokeWidth="2"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"
android:strokeLineJoin="round"/>
<path
android:pathData="M6,18m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M6,6m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M18,18m-2,0a2,2 0,1 1,4 0a2,2 0,1 1,-4 0"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M6,8L6,16"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M11,6h5a2,2 0,0 1,2 2v8"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M14,9l-3,-3l3,-3"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -3,11 +3,18 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/iconsColor"
android:fillType="evenOdd"
android:pathData="M3,2.75A2.75,2.75 0,0 1,5.75 0h14.5a0.75,0.75 0,0 1,0.75 0.75v20.5a0.75,0.75 0,0 1,-0.75 0.75h-6a0.75,0.75 0,0 1,0 -1.5h5.25v-4H6A1.5,1.5 0,0 0,4.5 18v0.75c0,0.716 0.43,1.334 1.05,1.605a0.75,0.75 0,0 1,-0.6 1.374A3.25,3.25 0,0 1,3 18.75v-16zM19.5,1.5V15H6c-0.546,0 -1.059,0.146 -1.5,0.401V2.75c0,-0.69 0.56,-1.25 1.25,-1.25H19.5z"/>
<path
android:fillColor="?attr/iconsColor"
android:pathData="M7,18.25a0.25,0.25 0,0 1,0.25 -0.25h5a0.25,0.25 0,0 1,0.25 0.25v5.01a0.25,0.25 0,0 1,-0.397 0.201l-2.206,-1.604a0.25,0.25 0,0 0,-0.294 0L7.397,23.46a0.25,0.25 0,0 1,-0.397 -0.2v-5.01z"/>
<path
android:pathData="M4,19.5A2.5,2.5 0,0 1,6.5 17H20"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M6.5,2H20v20H6.5A2.5,2.5 0,0 1,4 19.5v-15A2.5,2.5 0,0 1,6.5 2z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.5,8.5m-1,0a1,1 0,1 1,2 0a1,1 0,1 1,-2 0"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
<path
android:pathData="M4,7v3.859c0,0.537 0.213,1.052 0.593,1.432l8.116,8.116a2.025,2.025 0,0 0,2.864 0l4.834,-4.834a2.025,2.025 0,0 0,0 -2.864l-8.117,-8.116a2.025,2.025 0,0 0,-1.431 -0.593h-3.859a3,3 0,0 0,-3 3z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="?attr/iconsColor"
android:strokeLineCap="round"/>
</vector>

View file

@ -82,7 +82,7 @@
android:text="@string/label"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp"
app:drawableTopCompat="@drawable/ic_label"
app:drawableTopCompat="@drawable/ic_tag"
app:layout_alignSelf="flex_start"/>
</com.google.android.flexbox.FlexboxLayout>

View file

@ -69,7 +69,7 @@
android:text="@string/tags"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp"
app:drawableTopCompat="@drawable/ic_label"
app:drawableTopCompat="@drawable/ic_tag"
app:layout_alignSelf="flex_start"/>
</com.google.android.flexbox.FlexboxLayout>

View file

@ -82,7 +82,7 @@
android:text="@string/label"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp"
app:drawableTopCompat="@drawable/ic_label"
app:drawableTopCompat="@drawable/ic_tag"
app:layout_alignSelf="flex_start"/>
<TextView

View file

@ -152,7 +152,7 @@
android:text="@string/newIssueLabelsTitle"
android:textColor="?attr/primaryTextColor"
android:textSize="16sp"
app:drawableTopCompat="@drawable/ic_label"
app:drawableTopCompat="@drawable/ic_tag"
app:layout_alignSelf="flex_start"/>
<TextView

View file

@ -9,6 +9,7 @@
android:paddingBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/comment_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?attr/materialCardViewFilledStyle"
@ -109,4 +110,316 @@
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/label_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/label"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_tag"
tools:srcCompat="@drawable/ic_tag"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/label_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/commit_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/commit_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_commit"
tools:srcCompat="@drawable/ic_commit"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/commit_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/assignees_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/assignees_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_person"
tools:srcCompat="@drawable/ic_person"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/assignees_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/milestone_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/milestone_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_milestone"
tools:srcCompat="@drawable/ic_milestone"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/milestone_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/status_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/status_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_issue"
tools:srcCompat="@drawable/ic_issue"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/status_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/review_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/review_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_issue_closed"
tools:srcCompat="@drawable/ic_issue_closed"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/review_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/change_title_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/change_title_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_edit"
tools:srcCompat="@drawable/ic_edit"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/change_title_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/lock_unlock_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:layout_marginTop="@dimen/dimen4dp"
android:layout_marginBottom="@dimen/dimen4dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dimen24dp"
android:layout_height="@dimen/dimen24dp"
style="?attr/materialCardViewFilledStyle"
app:cardElevation="@dimen/dimen0dp"
app:cardCornerRadius="@dimen/dimen12dp"
android:backgroundTint="?attr/materialCardBackgroundColor">
<ImageView
android:id="@+id/lock_unlock_icon"
android:layout_width="@dimen/dimen16dp"
android:layout_height="@dimen/dimen16dp"
android:contentDescription="@string/generalImgContentText"
android:layout_gravity="center"
android:src="@drawable/ic_lock"
tools:srcCompat="@drawable/ic_lock"/>
</com.google.android.material.card.MaterialCardView>
<LinearLayout
android:id="@+id/lock_unlock_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:layout_marginStart="@dimen/dimen4dp"
android:layout_marginEnd="@dimen/dimen4dp" />
</LinearLayout>
</LinearLayout>

View file

@ -50,7 +50,7 @@
android:layout_weight="0"
android:contentDescription="@string/generalImgContentText"
app:tint="@color/colorWhite"
app:srcCompat="@drawable/ic_label"/>
app:srcCompat="@drawable/ic_tag"/>
<TextView
android:id="@+id/labelName"

View file

@ -130,7 +130,7 @@
android:layout_width="@dimen/dimen18dp"
android:layout_height="wrap_content"
android:contentDescription="@string/generalImgContentText"
app:srcCompat="@drawable/ic_label" />
app:srcCompat="@drawable/ic_tag" />
<TextView
android:id="@+id/releaseTag"