diff --git a/app/src/main/java/com/commit451/gitlab/activity/AddIssueActivity.kt b/app/src/main/java/com/commit451/gitlab/activity/AddIssueActivity.kt index a76d5f8a9a58a12a9950b9c6ad73df25ef8676e3..0795b42f855fc3d4311f71bf937fa11723533eea 100644 --- a/app/src/main/java/com/commit451/gitlab/activity/AddIssueActivity.kt +++ b/app/src/main/java/com/commit451/gitlab/activity/AddIssueActivity.kt @@ -8,6 +8,7 @@ import android.os.Parcelable import android.support.design.widget.Snackbar import android.support.design.widget.TextInputLayout import android.support.v7.app.AlertDialog +import android.support.v7.widget.SwitchCompat import android.support.v7.widget.Toolbar import android.text.TextUtils import android.view.View @@ -87,6 +88,8 @@ class AddIssueActivity : MorphActivity() { lateinit var rootAddLabels: ViewGroup @BindView(R.id.list_labels) lateinit var listLabels: AdapterFlowLayout + @BindView(R.id.confidential_switch) + lateinit var switchConfidential: SwitchCompat lateinit var adapterLabels: AddIssueLabelAdapter lateinit var teleprinter: Teleprinter @@ -239,6 +242,7 @@ class AddIssueActivity : MorphActivity() { if (!TextUtils.isEmpty(issue!!.description)) { textDescription.setText(issue!!.description) } + switchConfidential.isChecked = issue!!.isConfidential } private fun setAssignees() { @@ -324,14 +328,15 @@ class AddIssueActivity : MorphActivity() { textDescription.text.toString(), assigneeId, milestoneId, - labelsCommaSeperated) + labelsCommaSeperated, + switchConfidential.isChecked) } else { textInputLayoutTitle.error = getString(R.string.required_field) } } private fun createOrSaveIssue(title: String, description: String, assigneeId: Long?, - milestoneId: Long?, labels: String?) { + milestoneId: Long?, labels: String?, isConfidential: Boolean) { if (issue == null) { observeUpdate(App.get().gitLab.createIssue( project.id, @@ -339,7 +344,8 @@ class AddIssueActivity : MorphActivity() { description, assigneeId, milestoneId, - labels)) + labels, + isConfidential)) } else { observeUpdate(App.get().gitLab.updateIssue(project.id, issue!!.id, @@ -347,7 +353,8 @@ class AddIssueActivity : MorphActivity() { description, assigneeId, milestoneId, - labels)) + labels, + isConfidential)) } } diff --git a/app/src/main/java/com/commit451/gitlab/api/GitLab.kt b/app/src/main/java/com/commit451/gitlab/api/GitLab.kt index 5292736c0bb57337570d661f15e474a42ff64c07..98b00664b366072c26a22ca10181bd4f2cab7476 100644 --- a/app/src/main/java/com/commit451/gitlab/api/GitLab.kt +++ b/app/src/main/java/com/commit451/gitlab/api/GitLab.kt @@ -252,7 +252,8 @@ interface GitLab { @Field("description") description: String, @Field("assignee_id") assigneeId: Long?, @Field("milestone_id") milestoneId: Long?, - @Field("labels") commaSeparatedLabelNames: String?): Single + @Field("labels") commaSeparatedLabelNames: String?, + @Field("confidential") isConfidential: Boolean): Single @PUT(API_VERSION + "/projects/{id}/issues/{issue_id}") fun updateIssue(@Path("id") projectId: Long, @@ -261,7 +262,8 @@ interface GitLab { @Query("description") description: String, @Query("assignee_id") assigneeId: Long?, @Query("milestone_id") milestoneId: Long?, - @Query("labels") commaSeparatedLabelNames: String?): Single + @Query("labels") commaSeparatedLabelNames: String?, + @Query("confidential") isConfidential: Boolean): Single @PUT(API_VERSION + "/projects/{id}/issues/{issue_id}") fun updateIssueStatus(@Path("id") projectId: Long, diff --git a/app/src/main/java/com/commit451/gitlab/model/api/Issue.java b/app/src/main/java/com/commit451/gitlab/model/api/Issue.java index 19de3d1c606bd05503f44ac386d90a927e726cff..6f6e9dec3e8ed0e59a56ebee6cb3ba9336f2fe0f 100644 --- a/app/src/main/java/com/commit451/gitlab/model/api/Issue.java +++ b/app/src/main/java/com/commit451/gitlab/model/api/Issue.java @@ -58,6 +58,8 @@ public class Issue { UserBasic assignee; @JsonField(name = "author") UserBasic author; + @JsonField(name = "confidential") + boolean confidential; public Issue() { } @@ -117,6 +119,10 @@ public class Issue { .build(); } + public boolean isConfidential() { + return confidential; + } + @Override public boolean equals(Object o) { if (!(o instanceof Issue)) { diff --git a/app/src/main/res/layout/activity_add_issue.xml b/app/src/main/res/layout/activity_add_issue.xml index 9a7c025a12c03d0b0837560f36881b27f2e3c2d8..abb4ef3b2eeffe102b13d3feb16da0fc17b126f2 100644 --- a/app/src/main/res/layout/activity_add_issue.xml +++ b/app/src/main/res/layout/activity_add_issue.xml @@ -155,6 +155,13 @@ + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1eea63543d2711a5ef2ca773e248c676bbffd60e..7a05e765516001db3ab97e83cf2eff2772a2e343 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -220,6 +220,7 @@ Label already added Failed to delete issue Issue deleted + Confidential Labels