Skip to content
Snippets Groups Projects
Commit 35eba923 authored by Jawnnypoo's avatar Jawnnypoo
Browse files

Merge remote-tracking branch 'origin/develop'

parents 8675a0f4 8b71a5d0
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 408 additions and 71 deletions
package com.commit451.gitlab.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.v7.widget.Toolbar
import android.widget.ImageView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.model.api.Project
import com.github.chrisbanes.photoview.PhotoView
/**
* A full-screen activity that opens the clicked images
*/
class FullscreenImageActivity : BaseActivity() {
companion object {
private val KEY_URL = "url"
private val KEY_PROJECT = "project"
fun newIntent(context: Context, project: Project, url: String): Intent {
val intent = Intent(context, FullscreenImageActivity::class.java)
intent.putParcelParcelableExtra(KEY_PROJECT, project)
intent.putExtra(KEY_URL, url)
return intent
}
}
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
@BindView(R.id.photo_view) lateinit var photoView: PhotoView
lateinit var project: Project
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fullscreen_image)
ButterKnife.bind(this)
project = intent.getParcelerParcelable(KEY_PROJECT)!!
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
toolbar.setNavigationOnClickListener {
onBackPressed()
}
photoView.scaleType = ImageView.ScaleType.FIT_CENTER
var imageUrl: String = intent.getStringExtra(KEY_URL)
if (imageUrl.startsWith("/")) {
imageUrl = App.get().getAccount().serverUrl.toString() + project.pathWithNamespace + imageUrl
}
App.get().picasso
.load(imageUrl)
.into(photoView)
}
}
Loading
Loading
@@ -7,7 +7,6 @@ import android.content.Intent
import android.graphics.Color
import android.os.Build
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.CollapsingToolbarLayout
import android.support.design.widget.Snackbar
import android.support.design.widget.TabLayout
Loading
Loading
@@ -23,12 +22,13 @@ import com.commit451.easel.Easel
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.GroupPagerAdapter
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Group
import com.commit451.gitlab.model.api.GroupDetail
import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.transformation.PaletteTransformation
import org.parceler.Parcels
import timber.log.Timber
 
/**
Loading
Loading
@@ -43,7 +43,7 @@ class GroupActivity : BaseActivity() {
 
fun newIntent(context: Context, group: Group): Intent {
val intent = Intent(context, GroupActivity::class.java)
intent.putExtra(KEY_GROUP, Parcels.wrap(group))
intent.putParcelParcelableExtra(KEY_GROUP, group)
return intent
}
 
Loading
Loading
@@ -73,7 +73,7 @@ class GroupActivity : BaseActivity() {
toolbar.setNavigationOnClickListener { onBackPressed() }
 
if (intent.hasExtra(KEY_GROUP)) {
val group = Parcels.unwrap<Group>(intent.getParcelableExtra<Parcelable>(KEY_GROUP))
val group = intent.getParcelerParcelable<Group>(KEY_GROUP)!!
bind(group)
} else {
progress.visibility = View.VISIBLE
Loading
Loading
Loading
Loading
@@ -91,6 +91,14 @@ class GroupsActivity : BaseActivity() {
load()
}
 
override fun onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START)
} else {
super.onBackPressed()
}
}
override fun onDestroy() {
super.onDestroy()
App.bus().unregister(this)
Loading
Loading
Loading
Loading
@@ -5,7 +5,6 @@ import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.Snackbar
import android.support.v4.widget.SwipeRefreshLayout
import android.support.v7.widget.LinearLayoutManager
Loading
Loading
@@ -24,6 +23,8 @@ import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.IssueDetailsAdapter
import com.commit451.gitlab.event.IssueChangedEvent
import com.commit451.gitlab.event.IssueReloadEvent
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.FileUploadResponse
import com.commit451.gitlab.model.api.Issue
Loading
Loading
@@ -40,7 +41,6 @@ import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import org.greenrobot.eventbus.Subscribe
import org.parceler.Parcels
import retrofit2.Response
import timber.log.Timber
 
Loading
Loading
@@ -61,8 +61,8 @@ class IssueActivity : BaseActivity() {
 
fun newIntent(context: Context, project: Project, issue: Issue): Intent {
val intent = Intent(context, IssueActivity::class.java)
intent.putExtra(EXTRA_PROJECT, Parcels.wrap(project))
intent.putExtra(EXTRA_SELECTED_ISSUE, Parcels.wrap(issue))
intent.putParcelParcelableExtra(EXTRA_PROJECT, project)
intent.putParcelParcelableExtra(EXTRA_SELECTED_ISSUE, issue)
return intent
}
 
Loading
Loading
@@ -82,6 +82,8 @@ class IssueActivity : BaseActivity() {
@BindView(R.id.list) lateinit var listNotes: RecyclerView
@BindView(R.id.send_message_view) lateinit var sendMessageView: SendMessageView
@BindView(R.id.progress) lateinit var progress: View
@BindView(R.id.toolbar_title) lateinit var toolbarTitle: TextView
@BindView(R.id.toolbar_subtitle) lateinit var toolbarSubTitle: TextView
 
lateinit var menuItemOpenClose: MenuItem
lateinit var adapterIssueDetails: IssueDetailsAdapter
Loading
Loading
@@ -177,8 +179,8 @@ class IssueActivity : BaseActivity() {
swipeRefreshLayout.setOnRefreshListener { loadNotes() }
 
if (intent.hasExtra(EXTRA_SELECTED_ISSUE)) {
project = Parcels.unwrap<Project>(intent.getParcelableExtra<Parcelable>(EXTRA_PROJECT))
issue = Parcels.unwrap<Issue>(intent.getParcelableExtra<Parcelable>(EXTRA_SELECTED_ISSUE))
project = intent.getParcelerParcelable<Project>(EXTRA_PROJECT)
issue = intent.getParcelerParcelable<Issue>(EXTRA_SELECTED_ISSUE)
adapterIssueDetails = IssueDetailsAdapter(this@IssueActivity, issue, project!!)
listNotes.adapter = adapterIssueDetails
bindIssue()
Loading
Loading
@@ -227,14 +229,15 @@ class IssueActivity : BaseActivity() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
REQUEST_ATTACH -> if (resultCode == Activity.RESULT_OK) {
val response = Parcels.unwrap<FileUploadResponse>(data?.getParcelableExtra<Parcelable>(AttachActivity.KEY_FILE_UPLOAD_RESPONSE))
progress.visibility = View.GONE
sendMessageView.appendText(response.markdown)
} else {
Snackbar.make(root, R.string.failed_to_upload_file, Snackbar.LENGTH_LONG)
.show()
}
REQUEST_ATTACH ->
if (resultCode == Activity.RESULT_OK) {
val response = data?.getParcelerParcelable<FileUploadResponse>(AttachActivity.KEY_FILE_UPLOAD_RESPONSE)!!
progress.visibility = View.GONE
sendMessageView.appendText(response.markdown)
} else {
Snackbar.make(root, R.string.failed_to_upload_file, Snackbar.LENGTH_LONG)
.show()
}
}
}
 
Loading
Loading
@@ -244,13 +247,16 @@ class IssueActivity : BaseActivity() {
}
 
fun bindProject() {
toolbar.subtitle = project?.nameWithNamespace
toolbarSubTitle.text = project?.nameWithNamespace
}
 
fun bindIssue() {
toolbar.title = getString(R.string.issue_number) + issue?.iid
setOpenCloseMenuStatus()
textTitle.text = issue?.title
toolbarTitle.text = getString(R.string.issue_number, issue?.iid)
if (issue?.isConfidential!!) {
toolbarTitle.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_confidential_24dp, 0)
}
adapterIssueDetails.updateIssue(issue!!)
}
 
Loading
Loading
Loading
Loading
@@ -382,7 +382,7 @@ class LoginActivity : BaseActivity() {
val d = AlertDialog.Builder(this)
.setTitle(R.string.certificate_title)
.setMessage(String.format(resources.getString(R.string.certificate_message), finalFingerprint))
.setPositiveButton(R.string.ok_button) { dialog, which ->
.setPositiveButton(R.string.ok_button) { dialog, _ ->
if (finalFingerprint != null) {
account.trustedCertificate = finalFingerprint
login()
Loading
Loading
@@ -390,7 +390,7 @@ class LoginActivity : BaseActivity() {
 
dialog.dismiss()
}
.setNegativeButton(R.string.cancel_button) { dialog, which -> dialog.dismiss() }
.setNegativeButton(R.string.cancel_button) { dialog, _ -> dialog.dismiss() }
.show()
 
(d.findViewById(android.R.id.message) as TextView).movementMethod = LinkMovementMethod.getInstance()
Loading
Loading
@@ -400,7 +400,7 @@ class LoginActivity : BaseActivity() {
val d = AlertDialog.Builder(this)
.setTitle(R.string.hostname_title)
.setMessage(R.string.hostname_message)
.setPositiveButton(R.string.ok_button) { dialog, which ->
.setPositiveButton(R.string.ok_button) { dialog, _ ->
if (finalHostname != null) {
account.trustedHostname = finalHostname
login()
Loading
Loading
@@ -408,7 +408,7 @@ class LoginActivity : BaseActivity() {
 
dialog.dismiss()
}
.setNegativeButton(R.string.cancel_button) { dialog, which -> dialog.dismiss() }
.setNegativeButton(R.string.cancel_button) { dialog, _ -> dialog.dismiss() }
.show()
 
(d.findViewById(android.R.id.message) as TextView).movementMethod = LinkMovementMethod.getInstance()
Loading
Loading
@@ -434,7 +434,7 @@ class LoginActivity : BaseActivity() {
}
var errorMessage = getString(R.string.login_unauthorized)
try {
val message = LoganSquare.parse(response.errorBody().byteStream(), Message::class.java)
val message = LoganSquare.parse(response.errorBody()!!.byteStream(), Message::class.java)
if (message != null && message.message != null) {
errorMessage = message.message
}
Loading
Loading
@@ -457,7 +457,7 @@ class LoginActivity : BaseActivity() {
}
 
fun handleBasicAuthentication(response: Response<*>) {
val header = response.headers().get("WWW-Authenticate").trim { it <= ' ' }
val header = response.headers().get("WWW-Authenticate")!!.trim { it <= ' ' }
if (!header.startsWith("Basic")) {
Snackbar.make(root, getString(R.string.login_unsupported_authentication), Snackbar.LENGTH_LONG)
.show()
Loading
Loading
Loading
Loading
@@ -3,7 +3,6 @@ package com.commit451.gitlab.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.Snackbar
import android.support.design.widget.TabLayout
import android.support.v4.view.ViewPager
Loading
Loading
@@ -16,11 +15,12 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.MergeRequestSectionsPagerAdapter
import com.commit451.gitlab.event.MergeRequestChangedEvent
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.MergeRequest
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import org.parceler.Parcels
import retrofit2.HttpException
import timber.log.Timber
 
Loading
Loading
@@ -36,8 +36,8 @@ class MergeRequestActivity : BaseActivity() {
 
fun newIntent(context: Context, project: Project, mergeRequest: MergeRequest): Intent {
val intent = Intent(context, MergeRequestActivity::class.java)
intent.putExtra(KEY_PROJECT, Parcels.wrap(project))
intent.putExtra(KEY_MERGE_REQUEST, Parcels.wrap(mergeRequest))
intent.putParcelParcelableExtra(KEY_PROJECT, project)
intent.putParcelParcelableExtra(KEY_MERGE_REQUEST, mergeRequest)
return intent
}
}
Loading
Loading
@@ -56,8 +56,8 @@ class MergeRequestActivity : BaseActivity() {
setContentView(R.layout.activity_merge_request)
ButterKnife.bind(this)
 
project = Parcels.unwrap<Project>(intent.getParcelableExtra<Parcelable>(KEY_PROJECT))
mergeRequest = Parcels.unwrap<MergeRequest>(intent.getParcelableExtra<Parcelable>(KEY_MERGE_REQUEST))
project = intent.getParcelerParcelable<Project>(KEY_PROJECT)!!
mergeRequest = intent.getParcelerParcelable<MergeRequest>(KEY_MERGE_REQUEST)!!
 
toolbar.title = getString(R.string.merge_request_number) + mergeRequest.iid
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
Loading
Loading
Loading
Loading
@@ -5,7 +5,6 @@ import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.Snackbar
import android.support.v4.widget.SwipeRefreshLayout
import android.support.v7.widget.LinearLayoutManager
Loading
Loading
@@ -22,6 +21,8 @@ import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.DividerItemDecoration
import com.commit451.gitlab.adapter.MilestoneIssueAdapter
import com.commit451.gitlab.event.MilestoneChangedEvent
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Issue
import com.commit451.gitlab.model.api.Milestone
Loading
Loading
@@ -32,7 +33,6 @@ import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.util.LinkHeaderParser
import io.reactivex.Single
import org.greenrobot.eventbus.Subscribe
import org.parceler.Parcels
import timber.log.Timber
 
class MilestoneActivity : BaseActivity() {
Loading
Loading
@@ -44,8 +44,8 @@ class MilestoneActivity : BaseActivity() {
 
fun newIntent(context: Context, project: Project, milestone: Milestone): Intent {
val intent = Intent(context, MilestoneActivity::class.java)
intent.putExtra(EXTRA_PROJECT, Parcels.wrap(project))
intent.putExtra(EXTRA_MILESTONE, Parcels.wrap(milestone))
intent.putParcelParcelableExtra(EXTRA_PROJECT, project)
intent.putParcelParcelableExtra(EXTRA_MILESTONE, milestone)
return intent
}
}
Loading
Loading
@@ -94,8 +94,8 @@ class MilestoneActivity : BaseActivity() {
ButterKnife.bind(this)
App.bus().register(this)
 
project = Parcels.unwrap<Project>(intent.getParcelableExtra<Parcelable>(EXTRA_PROJECT))
milestone = Parcels.unwrap<Milestone>(intent.getParcelableExtra<Parcelable>(EXTRA_MILESTONE))
project = intent.getParcelerParcelable<Project>(EXTRA_PROJECT)!!
milestone = intent.getParcelerParcelable<Milestone>(EXTRA_MILESTONE)!!
 
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
toolbar.setNavigationOnClickListener { onBackPressed() }
Loading
Loading
Loading
Loading
@@ -6,7 +6,7 @@ import com.commit451.morphtransitions.FabTransform
 
/**
* Activity that morphs from a FAB. Make sure the view you want to morph has the view id R.id.root and
* call [.morph] when the content view is set
* call [.morph] when the content view is set. Does nothing if not on 21+
*/
open class MorphActivity : BaseActivity() {
 
Loading
Loading
@@ -14,7 +14,9 @@ open class MorphActivity : BaseActivity() {
if (root == null) {
throw IllegalStateException("Cannot pass an empty view")
}
FabTransform.setup(this, root)
if (Build.VERSION.SDK_INT >= 21) {
FabTransform.setup(this, root)
}
}
 
override fun onBackPressed() {
Loading
Loading
Loading
Loading
@@ -3,7 +3,6 @@ package com.commit451.gitlab.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.TabLayout
import android.support.v4.view.ViewPager
import android.support.v7.app.AppCompatActivity
Loading
Loading
@@ -12,8 +11,9 @@ import butterknife.ButterKnife
import butterknife.OnClick
import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.PickBranchOrTagPagerAdapter
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.model.Ref
import org.parceler.Parcels
 
 
/**
Loading
Loading
@@ -31,7 +31,7 @@ class PickBranchOrTagActivity : AppCompatActivity() {
fun newIntent(context: Context, projectId: Long, currentRef: Ref?): Intent {
val intent = Intent(context, PickBranchOrTagActivity::class.java)
intent.putExtra(EXTRA_PROJECT_ID, projectId)
intent.putExtra(EXTRA_CURRENT_REF, Parcels.wrap<Ref>(currentRef))
intent.putParcelParcelableExtra(EXTRA_CURRENT_REF, currentRef)
return intent
}
}
Loading
Loading
@@ -49,7 +49,7 @@ class PickBranchOrTagActivity : AppCompatActivity() {
setContentView(R.layout.activity_pick_branch_or_tag)
ButterKnife.bind(this)
val projectId = intent.getLongExtra(EXTRA_PROJECT_ID, -1)
val currentRef = Parcels.unwrap<Ref>(intent.getParcelableExtra<Parcelable>(EXTRA_CURRENT_REF))
val currentRef = intent.getParcelerParcelable<Ref>(EXTRA_CURRENT_REF)
viewPager.adapter = PickBranchOrTagPagerAdapter(this, supportFragmentManager, projectId, currentRef)
tabLayout.setupWithViewPager(viewPager)
if (currentRef != null) {
Loading
Loading
package com.commit451.gitlab.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.design.widget.TabLayout
import android.support.v4.view.ViewPager
import android.support.v7.widget.Toolbar
import android.view.View
import android.view.ViewGroup
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.PipelineSectionsPagerAdapter
import com.commit451.gitlab.event.PipelineChangedEvent
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.model.api.Pipeline
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.rx.CustomSingleObserver
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import timber.log.Timber
/**
* Shows the details of a pipeline
*/
class PipelineActivity : BaseActivity() {
companion object {
private val REQUEST_PERMISSION_WRITE_STORAGE = 1337
private val KEY_PROJECT = "key_project"
private val KEY_PIPELINE = "key_merge_request"
fun newIntent(context: Context, project: Project, pipeline: Pipeline): Intent {
val intent = Intent(context, PipelineActivity::class.java)
intent.putParcelParcelableExtra(KEY_PROJECT, project)
intent.putParcelParcelableExtra(KEY_PIPELINE, pipeline)
return intent
}
}
@BindView(R.id.root) lateinit var root: ViewGroup
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
@BindView(R.id.tabs) lateinit var tabLayout: TabLayout
@BindView(R.id.pager) lateinit var viewPager: ViewPager
@BindView(R.id.progress) lateinit var progress: View
lateinit var project: Project
lateinit var pipeline: Pipeline
private val onMenuItemClickListener = Toolbar.OnMenuItemClickListener { item ->
when (item.itemId) {
R.id.action_retry -> {
progress.visibility = View.VISIBLE
App.get().gitLab.retryPipeline(project.id, pipeline.id)
.compose(this@PipelineActivity.bindToLifecycle<Pipeline>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CustomSingleObserver<Pipeline>() {
override fun error(t: Throwable) {
Timber.e(t)
progress.visibility = View.GONE
Snackbar.make(root, R.string.unable_to_retry_pipeline, Snackbar.LENGTH_LONG)
.show()
}
override fun success(pipeline: Pipeline) {
progress.visibility = View.GONE
Snackbar.make(root, R.string.pipeline_started, Snackbar.LENGTH_LONG)
.show()
App.bus().post(PipelineChangedEvent(pipeline))
}
})
return@OnMenuItemClickListener true
}
R.id.action_cancel -> {
progress.visibility = View.VISIBLE
App.get().gitLab.cancelPipeline(project.id, pipeline.id)
.compose(this@PipelineActivity.bindToLifecycle<Pipeline>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CustomSingleObserver<Pipeline>() {
override fun error(t: Throwable) {
Timber.e(t)
progress.visibility = View.GONE
Snackbar.make(root, R.string.unable_to_cancel_pipeline, Snackbar.LENGTH_LONG)
.show()
}
override fun success(pipeline: Pipeline) {
progress.visibility = View.GONE
Snackbar.make(root, R.string.pipeline_canceled, Snackbar.LENGTH_LONG)
.show()
App.bus().post(PipelineChangedEvent(pipeline))
}
})
return@OnMenuItemClickListener true
}
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pipeline)
ButterKnife.bind(this)
project = intent.getParcelerParcelable<Project>(KEY_PROJECT)!!
pipeline = intent.getParcelerParcelable<Pipeline>(KEY_PIPELINE)!!
toolbar.title = String.format(getString(R.string.pipeline_number), pipeline.id)
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
toolbar.setNavigationOnClickListener { onBackPressed() }
toolbar.subtitle = project.nameWithNamespace
toolbar.inflateMenu(R.menu.retry)
toolbar.inflateMenu(R.menu.cancel)
toolbar.setOnMenuItemClickListener(onMenuItemClickListener)
setupTabs()
}
private fun setupTabs() {
val sectionsPagerAdapter = PipelineSectionsPagerAdapter(
this,
supportFragmentManager,
project,
pipeline)
viewPager.adapter = sectionsPagerAdapter
tabLayout.setupWithViewPager(viewPager)
}
}
Loading
Loading
@@ -6,7 +6,6 @@ import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.Snackbar
import android.support.design.widget.TabLayout
import android.support.v4.view.ViewPager
Loading
Loading
@@ -23,6 +22,7 @@ import com.commit451.gitlab.adapter.ProjectSectionsPagerAdapter
import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.event.ProjectReloadEvent
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.fragment.BaseFragment
import com.commit451.gitlab.model.Ref
Loading
Loading
@@ -31,7 +31,6 @@ import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.util.IntentUtil
import io.reactivex.Single
import org.parceler.Parcels
import timber.log.Timber
 
class ProjectActivity : BaseActivity() {
Loading
Loading
@@ -50,7 +49,7 @@ class ProjectActivity : BaseActivity() {
 
fun newIntent(context: Context, project: Project): Intent {
val intent = Intent(context, ProjectActivity::class.java)
intent.putExtra(EXTRA_PROJECT, Parcels.wrap(project))
intent.putParcelParcelableExtra(EXTRA_PROJECT, project)
return intent
}
 
Loading
Loading
@@ -123,8 +122,8 @@ class ProjectActivity : BaseActivity() {
var project: Project? = intent.getParcelerParcelable(EXTRA_PROJECT)
 
if (savedInstanceState != null) {
project = Parcels.unwrap<Project>(savedInstanceState.getParcelable<Parcelable>(STATE_PROJECT))
ref = Parcels.unwrap<Ref>(savedInstanceState.getParcelable<Parcelable>(STATE_REF))
project = savedInstanceState.getParcelerParcelable<Project>(STATE_PROJECT)
ref = savedInstanceState.getParcelerParcelable<Ref>(STATE_REF)
}
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
toolbar.setNavigationOnClickListener { finish() }
Loading
Loading
@@ -151,7 +150,7 @@ class ProjectActivity : BaseActivity() {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
REQUEST_BRANCH_OR_TAG -> if (resultCode == Activity.RESULT_OK) {
ref = Parcels.unwrap<Ref>(data?.getParcelableExtra<Parcelable>(PickBranchOrTagActivity.EXTRA_REF))
ref = data?.getParcelerParcelable<Ref>(PickBranchOrTagActivity.EXTRA_REF)
broadcastLoad()
}
}
Loading
Loading
@@ -159,8 +158,8 @@ class ProjectActivity : BaseActivity() {
 
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putParcelable(STATE_REF, Parcels.wrap<Ref>(ref))
outState.putParcelable(STATE_PROJECT, Parcels.wrap<Project>(project))
outState.putParcelParcelableExtra(STATE_REF, ref)
outState.putParcelParcelableExtra(STATE_PROJECT, project)
}
 
override fun onBackPressed() {
Loading
Loading
Loading
Loading
@@ -66,6 +66,14 @@ class ProjectsActivity : BaseActivity() {
App.bus().unregister(this)
}
 
override fun onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START)
} else {
super.onBackPressed()
}
}
@Subscribe
fun onEvent(event: CloseDrawerEvent) {
drawerLayout.closeDrawers()
Loading
Loading
Loading
Loading
@@ -4,7 +4,6 @@ import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.widget.Toast
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.navigation.DeepLinker
Loading
Loading
@@ -98,7 +97,7 @@ class RoutingActivity : BaseActivity() {
 
//okay so last thing, if the user has followed a link, but the user
//is not actually signed in, we want to direct them to signin
if (App.get().getAccount() == null && Account.getAccounts().isEmpty()) {
if (Account.getAccounts().isEmpty()) {
Navigator.navigateToLogin(this)
finish()
return
Loading
Loading
Loading
Loading
@@ -49,6 +49,14 @@ class TodosActivity : BaseActivity() {
tabLayout.setupWithViewPager(viewPager)
}
 
override fun onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START)
} else {
super.onBackPressed()
}
}
override fun onDestroy() {
super.onDestroy()
App.bus().unregister(this)
Loading
Loading
Loading
Loading
@@ -7,7 +7,6 @@ import android.content.Intent
import android.graphics.Color
import android.os.Build
import android.os.Bundle
import android.os.Parcelable
import android.support.design.widget.CollapsingToolbarLayout
import android.support.v7.graphics.Palette
import android.support.v7.widget.Toolbar
Loading
Loading
@@ -18,11 +17,12 @@ import com.commit451.alakazam.Alakazam
import com.commit451.easel.Easel
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.putParcelParcelableExtra
import com.commit451.gitlab.fragment.FeedFragment
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.transformation.PaletteTransformation
import com.commit451.gitlab.util.ImageUtil
import org.parceler.Parcels
 
/**
* User activity, which shows the user!
Loading
Loading
@@ -35,7 +35,7 @@ class UserActivity : BaseActivity() {
 
fun newIntent(context: Context, user: UserBasic): Intent {
val intent = Intent(context, UserActivity::class.java)
intent.putExtra(KEY_USER, Parcels.wrap(user))
intent.putParcelParcelableExtra(KEY_USER, user)
return intent
}
}
Loading
Loading
@@ -50,7 +50,7 @@ class UserActivity : BaseActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_user)
ButterKnife.bind(this)
user = Parcels.unwrap<UserBasic>(intent.getParcelableExtra<Parcelable>(KEY_USER))
user = intent.getParcelerParcelable<UserBasic>(KEY_USER)!!
 
// Default content and scrim colors
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE)
Loading
Loading
Loading
Loading
@@ -47,6 +47,10 @@ class WebLoginActivity : BaseActivity() {
 
lateinit var url: String
 
val isExtracting: Boolean by lazy {
intent.getBooleanExtra(KEY_EXTRACTING_PRIVATE_TOKEN, false)
}
val webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView, newProgress: Int) {
super.onProgressChanged(view, newProgress)
Loading
Loading
@@ -83,25 +87,27 @@ class WebLoginActivity : BaseActivity() {
webView.clearFormData()
webView.clearHistory()
 
clearCookies()
webView.loadUrl(url + "/users/sign_in")
}
@Suppress("DEPRECATION")
fun clearCookies() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
CookieManager.getInstance().removeAllCookies(null)
CookieManager.getInstance().flush()
} else {
val cookieSyncMngr = CookieSyncManager.createInstance(this)
cookieSyncMngr.startSync()
val cookieSyncManager = CookieSyncManager.createInstance(this)
cookieSyncManager.startSync()
val cookieManager = CookieManager.getInstance()
cookieManager.removeAllCookie()
cookieManager.removeSessionCookie()
cookieSyncMngr.stopSync()
cookieSyncMngr.sync()
cookieSyncManager.stopSync()
cookieSyncManager.sync()
}
webView.loadUrl(url + "/users/sign_in")
}
 
val isExtracting: Boolean
get() = intent.getBooleanExtra(KEY_EXTRACTING_PRIVATE_TOKEN, false)
inner class ExtractionWebClient : WebViewClient() {
override fun onPageFinished(view: WebView, url: String) {
var modifiedUrl = url
Loading
Loading
Loading
Loading
@@ -28,7 +28,7 @@ class IssueAdapter(private val listener: IssueAdapter.Listener) : RecyclerView.A
when (viewType) {
TYPE_ITEM -> {
val holder = IssueViewHolder.inflate(parent)
holder.itemView.setOnClickListener { v ->
holder.itemView.setOnClickListener {
val position = holder.adapterPosition
listener.onIssueClicked(getValueAt(position))
}
Loading
Loading
Loading
Loading
@@ -7,6 +7,7 @@ import android.view.ViewGroup
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 +32,8 @@ 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 val bypass: Bypass = BypassFactory.create(context, project)
 
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if (viewType == TYPE_HEADER) {
Loading
Loading
@@ -48,7 +50,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
Loading
Loading
@@ -7,6 +7,7 @@ import android.view.ViewGroup
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 +30,8 @@ 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 val bypass: Bypass = BypassFactory.create(context, project)
 
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
if (viewType == TYPE_HEADER) {
Loading
Loading
package com.commit451.gitlab.adapter
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import com.commit451.gitlab.model.api.Pipeline
import com.commit451.gitlab.viewHolder.PipelineViewHolder
import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder
import java.util.*
/**
* Pipelines adapter
*/
class PipelineAdapter(private val listener: PipelineAdapter.Listener) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
companion object {
private val FOOTER_COUNT = 1
private val TYPE_ITEM = 0
private val TYPE_FOOTER = 1
}
private val values: ArrayList<Pipeline> = ArrayList()
private var loading = false
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
when (viewType) {
TYPE_ITEM -> {
val holder = PipelineViewHolder.inflate(parent)
holder.itemView.setOnClickListener {
val position = holder.adapterPosition
listener.onPipelinesClicked(getValueAt(position))
}
return holder
}
TYPE_FOOTER -> return LoadingFooterViewHolder.inflate(parent)
}
throw IllegalStateException("No holder for view type " + viewType)
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is PipelineViewHolder) {
val pipeline = getValueAt(position)
holder.bind(pipeline)
} else if (holder is LoadingFooterViewHolder) {
holder.bind(loading)
} else {
throw IllegalStateException("What is this holder?")
}
}
override fun getItemCount(): Int {
return values.size + FOOTER_COUNT
}
override fun getItemViewType(position: Int): Int {
if (position == values.size) {
return TYPE_FOOTER
} else {
return TYPE_ITEM
}
}
fun setValues(values: Collection<Pipeline>?) {
this.values.clear()
addValues(values)
}
fun addValues(values: Collection<Pipeline>?) {
if (values != null) {
this.values.addAll(values)
}
notifyDataSetChanged()
}
fun updatePipeline(pipeline: Pipeline) {
val indexToModify = values.indices.firstOrNull { values[it].id == pipeline.id }
if (indexToModify != null) {
values.removeAt(indexToModify)
values.add(indexToModify, pipeline)
notifyItemChanged(indexToModify)
}
}
fun getValueAt(position: Int): Pipeline {
return values[position]
}
fun setLoading(loading: Boolean) {
this.loading = loading
notifyItemChanged(values.size)
}
interface Listener {
fun onPipelinesClicked(pipeline: Pipeline)
}
}
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