Skip to content
Snippets Groups Projects
Commit 22e86f78 authored by adi.bk's avatar adi.bk
Browse files

- A factory to create bypass

- Refactor code to use factory instead of directly instantiating
- Open images in fullscreen when clicked
parent 0b750b0b
No related branches found
No related tags found
1 merge request!24Issue #231 - Open images in full screen when clicked
package com.commit451.gitlab.adapter
 
import `in`.uncod.android.bypass.Bypass
import `in`.uncod.android.bypass.ImageSpanClickListener
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import com.commit451.gitlab.activity.FullscreenImageActivity
import com.commit451.gitlab.model.api.Issue
import com.commit451.gitlab.model.api.Note
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.util.BypassFactory
import com.commit451.gitlab.viewHolder.IssueHeaderViewHolder
import com.commit451.gitlab.viewHolder.IssueLabelsViewHolder
import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder
Loading
Loading
@@ -31,7 +34,13 @@ class IssueDetailsAdapter(context: Context, private var issue: Issue?, private v
 
private val notes: LinkedList<Note> = LinkedList()
private var loading = false
private val bypass: Bypass = Bypass(context)
private var imageClickListener = ImageSpanClickListener { view, imageSpan,
imageUrl ->
val intent = FullscreenImageActivity.newIntent(view.context, project)
intent.putExtra(FullscreenImageActivity.IMAGE_URL, imageUrl)
context.startActivity(intent)
}
private val bypass: Bypass = BypassFactory.create(context, imageClickListener)
 
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if (viewType == TYPE_HEADER) {
Loading
Loading
@@ -48,7 +57,7 @@ class IssueDetailsAdapter(context: Context, private var issue: Issue?, private v
 
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is IssueHeaderViewHolder) {
holder.bind(issue!!, project)
holder.bind(issue!!, bypass, project)
} else if (holder is IssueLabelsViewHolder) {
holder.bind(issue!!.labels)
} else if (holder is NoteViewHolder) {
Loading
Loading
package com.commit451.gitlab.adapter
 
import `in`.uncod.android.bypass.Bypass
import `in`.uncod.android.bypass.ImageSpanClickListener
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import com.commit451.gitlab.activity.FullscreenImageActivity
import com.commit451.gitlab.model.api.MergeRequest
import com.commit451.gitlab.model.api.Note
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.util.BypassFactory
import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder
import com.commit451.gitlab.viewHolder.MergeRequestHeaderViewHolder
import com.commit451.gitlab.viewHolder.NoteViewHolder
Loading
Loading
@@ -29,7 +32,13 @@ class MergeRequestDetailAdapter(context: Context, private val mergeRequest: Merg
 
private val notes: LinkedList<Note> = LinkedList()
private var loading = false
private val bypass: Bypass = Bypass(context)
private var imageClickListener = ImageSpanClickListener { view, imageSpan,
imageUrl ->
val intent = FullscreenImageActivity.newIntent(view.context, project)
intent.putExtra(FullscreenImageActivity.IMAGE_URL, imageUrl)
context.startActivity(intent)
}
private val bypass: Bypass = BypassFactory.create(context, imageClickListener)
 
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if (viewType == TYPE_HEADER) {
Loading
Loading
Loading
Loading
@@ -15,6 +15,7 @@ import butterknife.BindView
import butterknife.OnClick
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.FullscreenImageActivity
import com.commit451.gitlab.activity.ProjectActivity
import com.commit451.gitlab.event.ProjectReloadEvent
import com.commit451.gitlab.extension.setup
Loading
Loading
@@ -24,6 +25,7 @@ import com.commit451.gitlab.model.api.RepositoryTreeObject
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.rx.DecodeObservableFactory
import com.commit451.gitlab.util.BypassFactory
import com.commit451.gitlab.util.BypassImageGetterFactory
import com.commit451.gitlab.util.InternalLinkMovementMethod
import com.commit451.reptar.Result
Loading
Loading
@@ -133,10 +135,11 @@ class ProjectFragment : ButterKnifeFragment() {
 
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
bypass = Bypass(activity)
bypass.setImageSpanClickListener { view, imageSpan, s ->
Snackbar.make(swipeRefreshLayout, s, Snackbar.LENGTH_LONG)
.show()
bypass = BypassFactory.create(context)
bypass.setImageSpanClickListener { view, imageSpan, imageUrl ->
val intent = FullscreenImageActivity.newIntent(view.context, project!!)
intent.putExtra(FullscreenImageActivity.IMAGE_URL, imageUrl)
context.startActivity(intent)
}
}
 
Loading
Loading
package com.commit451.gitlab.util
import `in`.uncod.android.bypass.Bypass
import `in`.uncod.android.bypass.ImageSpanClickListener
import android.content.Context
/**
* Created by adibk on 4/15/17.
*/
object BypassFactory {
fun create(context: Context): Bypass {
return Bypass(context)
}
fun create(context: Context, clickListener: ImageSpanClickListener): Bypass {
val bypass = Bypass(context)
bypass.setImageSpanClickListener (clickListener)
return bypass
}
}
\ No newline at end of file
Loading
Loading
@@ -41,13 +41,11 @@ class IssueHeaderViewHolder(view: View) : RecyclerView.ViewHolder(view) {
@BindView(R.id.milestone_root) lateinit var rootMilestone: ViewGroup
@BindView(R.id.milestone_text) lateinit var textMilestone: TextView
 
val bypass: Bypass = Bypass(view.context)
init {
ButterKnife.bind(this, view)
}
 
fun bind(issue: Issue, project: Project) {
fun bind(issue: Issue, bypass: Bypass, project: Project) {
 
if (TextUtils.isEmpty(issue.description)) {
textDescription.visibility = View.GONE
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment