diff --git a/app/src/main/java/com/fastaccess/github/ui/modules/issue/fragment/IssueFragment.kt b/app/src/main/java/com/fastaccess/github/ui/modules/issue/fragment/IssueFragment.kt index 14fc7303..018f1976 100644 --- a/app/src/main/java/com/fastaccess/github/ui/modules/issue/fragment/IssueFragment.kt +++ b/app/src/main/java/com/fastaccess/github/ui/modules/issue/fragment/IssueFragment.kt @@ -185,7 +185,10 @@ class IssueFragment : BaseFragment(), LockUnlockFragment.OnLockReasonSelected, } } - private fun menuClick(model: IssueModel) { + private fun menuClick( + model: IssueModel, + isOwner: Boolean + ) { toolbar.setOnMenuItemClickListener { item -> when (item.itemId) { R.id.scrollTop -> { @@ -218,7 +221,7 @@ class IssueFragment : BaseFragment(), LockUnlockFragment.OnLockReasonSelected, ) R.id.edit -> EditIssuePrActivity.startForResult( this, EditIssuePrBundleModel( - login, repo, number, model.title, model.body, false + login, repo, number, model.title, model.body, false, isOwner = isOwner ), EDIT_ISSUE_REQUEST_CODE ) } @@ -291,15 +294,15 @@ class IssueFragment : BaseFragment(), LockUnlockFragment.OnLockReasonSelected, initReactions(model) } } - menuClick(model) + val isAuthor = login == me?.login || model.authorAssociation?.equals(CommentAuthorAssociation.OWNER.rawValue(), true) == true || + model.authorAssociation?.equals(CommentAuthorAssociation.COLLABORATOR.rawValue(), true) == true + menuClick(model, isAuthor) initReactions(model) initLabels(model.labels) initAssignees(model.assignees) initMilestone(model.milestone) toolbar.menu.let { - val isAuthor = login == me?.login || model.authorAssociation?.equals(CommentAuthorAssociation.OWNER.rawValue(), true) == true || - model.authorAssociation?.equals(CommentAuthorAssociation.COLLABORATOR.rawValue(), true) == true - it.findItem(R.id.edit).isVisible = model.viewerDidAuthor == true + it.findItem(R.id.edit).isVisible = model.viewerDidAuthor == true || isAuthor it.findItem(R.id.assignees).isVisible = isAuthor it.findItem(R.id.milestone).isVisible = isAuthor it.findItem(R.id.labels).isVisible = isAuthor diff --git a/app/src/main/java/com/fastaccess/github/ui/modules/issuesprs/edit/EditIssuePrFragment.kt b/app/src/main/java/com/fastaccess/github/ui/modules/issuesprs/edit/EditIssuePrFragment.kt index fc0621d2..bbfb6441 100644 --- a/app/src/main/java/com/fastaccess/github/ui/modules/issuesprs/edit/EditIssuePrFragment.kt +++ b/app/src/main/java/com/fastaccess/github/ui/modules/issuesprs/edit/EditIssuePrFragment.kt @@ -6,6 +6,7 @@ import android.os.Bundle import android.view.MotionEvent import android.view.View import androidx.core.os.bundleOf +import androidx.core.view.isVisible import com.fastaccess.data.model.parcelable.EditIssuePrBundleModel import com.fastaccess.github.R import com.fastaccess.github.base.BaseFragment @@ -37,6 +38,10 @@ class EditIssuePrFragment : BaseFragment() { savedInstanceState: Bundle? ) { + assigneesLayout.isVisible = model.isOwner + labelsLayout.isVisible = model.isOwner + milestoneLayout.isVisible = model.isOwner + toolbar.title = if (model.isCreate) getString(R.string.create_issue) else getString(R.string.edit) toolbar.subtitle = "${model.login}/${model.repo}/${getString(R.string.issue)}${if (model.isCreate) "" else "#${model.number}"}" setToolbarNavigationIcon(R.drawable.ic_clear) @@ -49,7 +54,7 @@ class EditIssuePrFragment : BaseFragment() { descriptionEditText.post { markwon.setMarkdown(descriptionEditText, description) } } } - descriptionEditText.setOnTouchListener { v, event -> + descriptionEditText.setOnTouchListener { _, event -> if (event.action == MotionEvent.ACTION_UP) { routeForResult(EDITOR_DEEPLINK, COMMENT_REQUEST_CODE, bundleOf(EXTRA to model.description)) return@setOnTouchListener true @@ -67,7 +72,8 @@ class EditIssuePrFragment : BaseFragment() { if (resultCode == Activity.RESULT_OK) { when (requestCode) { COMMENT_REQUEST_CODE -> { - descriptionEditText.post { markwon.setMarkdown(descriptionEditText, data?.getStringExtra(EXTRA) ?: model.description ?: "") } + model.description = data?.getStringExtra(EXTRA) + descriptionEditText.post { markwon.setMarkdown(descriptionEditText, model.description ?: "") } } else -> Timber.e("nothing yet for requestCode($requestCode)") } diff --git a/data/src/main/java/com/fastaccess/data/model/parcelable/EditIssuePrBundleModel.kt b/data/src/main/java/com/fastaccess/data/model/parcelable/EditIssuePrBundleModel.kt index 3134f4ba..f22dfdc2 100644 --- a/data/src/main/java/com/fastaccess/data/model/parcelable/EditIssuePrBundleModel.kt +++ b/data/src/main/java/com/fastaccess/data/model/parcelable/EditIssuePrBundleModel.kt @@ -10,11 +10,11 @@ data class EditIssuePrBundleModel( val login: String, val repo: String, val number: Int, - val title: String? = null, - val description: String? = null, + var title: String? = null, + var description: String? = null, val isCreate: Boolean = true, val isPr: Boolean = false, - val IsOwner: Boolean = false + val isOwner: Boolean = false ) : Parcelable { constructor(parcel: Parcel) : this( parcel.readString() ?: "", @@ -38,7 +38,7 @@ data class EditIssuePrBundleModel( parcel.writeString(description) parcel.writeByte(if (isCreate) 1 else 0) parcel.writeByte(if (isPr) 1 else 0) - parcel.writeByte(if (IsOwner) 1 else 0) + parcel.writeByte(if (isOwner) 1 else 0) } override fun describeContents(): Int {