Skip to content
Snippets Groups Projects
Commit d2814d34 authored by John Carlson's avatar John Carlson
Browse files

Fix Parceler to not use reflection

parent 8dd2b815
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 56 additions and 126 deletions
Loading
Loading
@@ -22,8 +22,8 @@ import com.commit451.gitlab.event.MemberAddedEvent
import com.commit451.gitlab.event.ProjectReloadEvent
import com.commit451.gitlab.extension.belongsToGroup
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.rx.CustomSingleObserver
Loading
Loading
@@ -54,7 +54,7 @@ class ProjectMembersFragment : ButterKnifeFragment() {
lateinit var layoutManagerMembers: GridLayoutManager
 
var project: Project? = null
var member: Member? = null
var member: User? = null
var nextPageUrl: Uri? = null
var loading = false
 
Loading
Loading
@@ -85,11 +85,11 @@ class ProjectMembersFragment : ButterKnifeFragment() {
App.bus().register(this)
 
adapterProjectMembers = ProjectMembersAdapter(object : ProjectMembersAdapter.Listener {
override fun onProjectMemberClicked(member: Member, memberGroupViewHolder: ProjectMemberViewHolder) {
override fun onProjectMemberClicked(member: User, memberGroupViewHolder: ProjectMemberViewHolder) {
Navigator.navigateToUser(activity, memberGroupViewHolder.image, member)
}
 
override fun onRemoveMember(member: Member) {
override fun onRemoveMember(member: User) {
this@ProjectMembersFragment.member = member
App.get().gitLab.removeProjectMember(project!!.id, member.id)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
Loading
Loading
@@ -107,10 +107,10 @@ class ProjectMembersFragment : ButterKnifeFragment() {
})
}
 
override fun onChangeAccess(member: Member) {
override fun onChangeAccess(member: User) {
val accessDialog = AccessDialog(activity, member, project!!.id)
accessDialog.setOnAccessChangedListener(object : AccessDialog.OnAccessChangedListener {
override fun onAccessChanged(member: Member, accessLevel: String) {
override fun onAccessChanged(member: User, accessLevel: String) {
loadData()
}
})
Loading
Loading
@@ -178,10 +178,10 @@ class ProjectMembersFragment : ButterKnifeFragment() {
load(App.get().gitLab.getProjectMembers(nextPageUrl!!.toString()))
}
 
fun load(observable: Single<Response<List<Member>>>) {
fun load(observable: Single<Response<List<User>>>) {
observable
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomResponseSingleObserver<List<Member>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(t: Throwable) {
loading = false
Loading
Loading
@@ -194,7 +194,7 @@ class ProjectMembersFragment : ButterKnifeFragment() {
nextPageUrl = null
}
 
override fun responseNonNullSuccess(members: List<Member>) {
override fun responseNonNullSuccess(members: List<User>) {
loading = false
swipeRefreshLayout.isRefreshing = false
if (!members.isEmpty()) {
Loading
Loading
Loading
Loading
@@ -2,6 +2,7 @@ package com.commit451.gitlab.fragment
 
import android.net.Uri
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.v4.widget.SwipeRefreshLayout
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
Loading
Loading
@@ -79,7 +80,12 @@ class TodoFragment : ButterKnifeFragment() {
 
adapterTodos = TodoAdapter(object : TodoAdapter.Listener {
override fun onTodoClicked(todo: Todo) {
Navigator.navigateToUrl(activity, Uri.parse(todo.targetUrl), App.get().getAccount())
val targetUrl = todo.targetUrl
if (targetUrl != null) {
Navigator.navigateToUrl(activity, targetUrl, App.get().getAccount())
} else {
Snackbar.make(swipeRefreshLayout, R.string.not_a_valid_url, Snackbar.LENGTH_SHORT)
}
}
})
layoutManagerTodos = LinearLayoutManager(activity)
Loading
Loading
Loading
Loading
@@ -14,7 +14,7 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.UserAdapter
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.util.LinkHeaderParser
Loading
Loading
@@ -78,7 +78,7 @@ class UsersFragment : ButterKnifeFragment() {
super.onViewCreated(view, savedInstanceState)
 
adapterUser = UserAdapter(object : UserAdapter.Listener {
override fun onUserClicked(user: UserBasic, userViewHolder: UserViewHolder) {
override fun onUserClicked(user: User, userViewHolder: UserViewHolder) {
Navigator.navigateToUser(activity, userViewHolder.image, user)
}
})
Loading
Loading
@@ -109,7 +109,7 @@ class UsersFragment : ButterKnifeFragment() {
 
App.get().gitLab.searchUsers(query!!)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomResponseSingleObserver<List<UserBasic>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(e: Throwable) {
Timber.e(e)
Loading
Loading
@@ -120,7 +120,7 @@ class UsersFragment : ButterKnifeFragment() {
adapterUser.setData(null)
}
 
override fun responseNonNullSuccess(users: List<UserBasic>) {
override fun responseNonNullSuccess(users: List<User>) {
swipeRefreshLayout.isRefreshing = false
loading = false
if (users.isEmpty()) {
Loading
Loading
@@ -139,7 +139,7 @@ class UsersFragment : ButterKnifeFragment() {
Timber.d("loadMore called for %s %s", nextPageUrl!!.toString(), query)
App.get().gitLab.searchUsers(nextPageUrl!!.toString(), query!!)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomResponseSingleObserver<List<UserBasic>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(e: Throwable) {
Timber.e(e)
Loading
Loading
@@ -148,7 +148,7 @@ class UsersFragment : ButterKnifeFragment() {
adapterUser.setLoading(false)
}
 
override fun responseNonNullSuccess(users: List<UserBasic>) {
override fun responseNonNullSuccess(users: List<User>) {
loading = false
swipeRefreshLayout.isRefreshing = false
adapterUser.addData(users)
Loading
Loading
package com.commit451.gitlab.model
 
import com.commit451.gitlab.model.api.UserFull
import com.commit451.gitlab.model.api.User
import com.squareup.moshi.Json
import org.parceler.Parcel
import java.util.*
Loading
Loading
@@ -8,8 +8,8 @@ import java.util.*
/**
* An account, stored locally, which references the needed info to connect to a server
*/
@Parcel
class Account : Comparable<Account> {
@Parcel(Parcel.Serialization.BEAN)
open class Account : Comparable<Account> {
 
@field:Json(name = "server_url")
var serverUrl: String? = null
Loading
Loading
@@ -24,7 +24,7 @@ class Account : Comparable<Account> {
@field:Json(name = "private_key_alias")
var privateKeyAlias: String? = null
@field:Json(name = "user")
var user: UserFull? = null
var user: User? = null
@field:Json(name = "last_used")
var lastUsed: Date? = null
 
Loading
Loading
Loading
Loading
@@ -6,8 +6,8 @@ import org.parceler.Parcel
/**
* Local only model that references either a branch or a tag, and holds its type
*/
@Parcel
class Ref {
@Parcel(Parcel.Serialization.BEAN)
open class Ref {
 
companion object {
const val TYPE_BRANCH = 0
Loading
Loading
Loading
Loading
@@ -4,8 +4,8 @@ import com.squareup.moshi.Json
 
import org.parceler.Parcel
 
@Parcel
class ArtifactsFile {
@Parcel(Parcel.Serialization.BEAN)
open class ArtifactsFile {
 
@field:Json(name = "filename")
lateinit var fileName: String
Loading
Loading
Loading
Loading
@@ -7,15 +7,15 @@ import java.util.*
/**
* http://docs.gitlab.com/ce/api/award_emoji.html
*/
@Parcel
class AwardEmoji {
@Parcel(Parcel.Serialization.BEAN)
open class AwardEmoji {
 
@field:Json(name = "id")
var id: String? = null
@field:Json(name = "name")
var name: String? = null
@field:Json(name = "user")
var user: UserBasic? = null
var user: User? = null
@field:Json(name = "created_at")
var createdAt: Date? = null
@field:Json(name = "updated_at")
Loading
Loading
package com.commit451.gitlab.model.api
 
import com.commit451.gitlab.util.ObjectUtil
import com.squareup.moshi.Json
import org.parceler.Parcel
 
@Parcel
class Branch {
@Parcel(Parcel.Serialization.BEAN)
open class Branch {
 
@field:Json(name = "name")
var name: String? = null
@field:Json(name = "protected")
var isProtected: Boolean = false
override fun equals(o: Any?): Boolean {
if (o !is Branch) {
return false
}
val branch = o as Branch?
return ObjectUtil.equals(name, branch!!.name)
}
override fun hashCode(): Int {
return ObjectUtil.hash(name!!)
}
}
Loading
Loading
@@ -7,8 +7,8 @@ import java.util.*
/**
* Represents a build
*/
@Parcel
class Build {
@Parcel(Parcel.Serialization.BEAN)
open class Build {
 
@field:Json(name = "commit")
var commit: RepositoryCommit? = null
Loading
Loading
Loading
Loading
@@ -5,8 +5,8 @@ import com.squareup.moshi.Json
 
import org.parceler.Parcel
 
@Parcel
class CommitUser {
@Parcel(Parcel.Serialization.BEAN)
open class CommitUser {
@field:Json(name = "id")
var id: String? = null
@field:Json(name = "name")
Loading
Loading
Loading
Loading
@@ -4,8 +4,8 @@ import com.squareup.moshi.Json
 
import org.parceler.Parcel
 
@Parcel
class Contributor {
@Parcel(Parcel.Serialization.BEAN)
open class Contributor {
 
@field:Json(name = "name")
var name: String? = null
Loading
Loading
Loading
Loading
@@ -4,8 +4,8 @@ import com.squareup.moshi.Json
 
import org.parceler.Parcel
 
@Parcel
class Diff {
@Parcel(Parcel.Serialization.BEAN)
open class Diff {
@field:Json(name = "old_path")
var oldPath: String? = null
@field:Json(name = "new_path")
Loading
Loading
package com.commit451.gitlab.model.api
import com.squareup.moshi.Json
import org.parceler.Parcel
@Parcel
class Email {
@field:Json(name = "id")
var id: Long = 0
@field:Json(name = "email")
var email: String? = null
}
Loading
Loading
@@ -4,8 +4,8 @@ import com.squareup.moshi.Json
 
import org.parceler.Parcel
 
@Parcel
class ForkedFromProject {
@Parcel(Parcel.Serialization.BEAN)
open class ForkedFromProject {
@field:Json(name = "id")
var id: Long = 0
@field:Json(name = "name")
Loading
Loading
Loading
Loading
@@ -3,7 +3,7 @@ package com.commit451.gitlab.model.api
import com.squareup.moshi.Json
import org.parceler.Parcel
 
@Parcel
@Parcel(Parcel.Serialization.BEAN)
open class Group {
@field:Json(name = "id")
var id: Long = 0
Loading
Loading
@@ -17,4 +17,6 @@ open class Group {
var avatarUrl: String? = null
@field:Json(name = "web_url")
lateinit var webUrl: String
@field:Json(name = "projects")
var projects: MutableList<Project>? = null
}
package com.commit451.gitlab.model.api
import com.squareup.moshi.Json
import org.parceler.Parcel
@Parcel
class GroupDetail : Group() {
@field:Json(name = "projects")
var projects: List<Project>? = null
}
Loading
Loading
@@ -4,8 +4,8 @@ import com.squareup.moshi.Json
 
import org.parceler.Parcel
 
@Parcel
class Identity {
@Parcel(Parcel.Serialization.BEAN)
open class Identity {
@field:Json(name = "provider")
var provider: String? = null
@field:Json(name = "extern_uid")
Loading
Loading
Loading
Loading
@@ -5,8 +5,8 @@ import com.squareup.moshi.Json
import org.parceler.Parcel
import java.util.*
 
@Parcel
class Issue {
@Parcel(Parcel.Serialization.BEAN)
open class Issue {
 
companion object {
const val STATE_REOPEN = "reopen"
Loading
Loading
@@ -47,9 +47,9 @@ class Issue {
@field:Json(name = "milestone")
var milestone: Milestone? = null
@field:Json(name = "assignee")
var assignee: UserBasic? = null
var assignee: User? = null
@field:Json(name = "author")
var author: UserBasic? = null
var author: User? = null
@field:Json(name = "confidential")
var isConfidential: Boolean = false
}
Loading
Loading
@@ -7,8 +7,8 @@ import org.parceler.Parcel
/**
* A label
*/
@Parcel
class Label {
@Parcel(Parcel.Serialization.BEAN)
open class Label {
 
@field:Json(name = "color")
var color: String? = null
Loading
Loading
package com.commit451.gitlab.model.api
import com.squareup.moshi.Json
import org.parceler.Parcel
@Parcel
class Member : UserBasic() {
companion object {
fun getAccessLevel(accessLevel: String): Int {
when (accessLevel.toLowerCase()) {
"guest" -> return 10
"reporter" -> return 20
"developer" -> return 30
"master" -> return 40
"owner" -> return 50
}
throw IllegalStateException("No known code for this access level")
}
fun getAccessLevel(accessLevel: Int): String {
when (accessLevel) {
10 -> return "Guest"
20 -> return "Reporter"
30 -> return "Developer"
40 -> return "Master"
50 -> return "Owner"
}
return "Unknown"
}
}
@field:Json(name = "access_level")
var accessLevel: Int = 0
}
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