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 100 additions and 135 deletions
Loading
Loading
@@ -106,7 +106,7 @@ ext {
adapterLayout = '1.1.1'
materialDialogsVersion = '0.9.4.5'
leakCanaryVersion = '1.5'
addendumVersion = '1.3.1'
addendumVersion = '1.4.0'
alakazamVersion = '1.0.1'
moshiVersion = '1.5.0'
}
Loading
Loading
Loading
Loading
@@ -83,7 +83,7 @@ class AddIssueActivity : MorphActivity() {
 
lateinit var project: Project
var issue: Issue? = null
lateinit var members: HashSet<Member>
lateinit var members: HashSet<User>
 
@OnClick(R.id.text_add_labels)
fun onAddLabelClicked() {
Loading
Loading
@@ -99,7 +99,7 @@ class AddIssueActivity : MorphActivity() {
 
project = intent.getParcelerParcelableExtra<Project>(KEY_PROJECT)!!
issue = intent.getParcelerParcelableExtra<Issue>(KEY_ISSUE)
members = HashSet<Member>()
members = HashSet<User>()
adapterLabels = AddIssueLabelAdapter(object : AddIssueLabelAdapter.Listener {
override fun onLabelClicked(label: Label) {
AlertDialog.Builder(this@AddIssueActivity)
Loading
Loading
@@ -157,10 +157,10 @@ class AddIssueActivity : MorphActivity() {
}
})
App.get().gitLab.getProjectMembers(project.id)
.compose(this.bindToLifecycle<Response<List<Member>>>())
.compose(this.bindToLifecycle<Response<List<User>>>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CustomResponseSingleObserver<List<Member>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(t: Throwable) {
Timber.e(t)
Loading
Loading
@@ -168,13 +168,13 @@ class AddIssueActivity : MorphActivity() {
progressAssignee.visibility = View.GONE
}
 
override fun responseNonNullSuccess(members: List<Member>) {
override fun responseNonNullSuccess(members: List<User>) {
this@AddIssueActivity.members.addAll(members)
if (project.belongsToGroup()) {
Timber.d("Project belongs to a group, loading those users too")
App.get().gitLab.getGroupMembers(project.namespace.id)
.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<List<Member>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(t: Throwable) {
Timber.e(t)
Loading
Loading
@@ -182,7 +182,7 @@ class AddIssueActivity : MorphActivity() {
progressAssignee.visibility = View.GONE
}
 
override fun responseNonNullSuccess(members: List<Member>) {
override fun responseNonNullSuccess(members: List<User>) {
this@AddIssueActivity.members.addAll(members)
setAssignees()
}
Loading
Loading
@@ -285,7 +285,7 @@ class AddIssueActivity : MorphActivity() {
var assigneeId: Long? = null
if (spinnerAssignee.adapter != null) {
//the user did make a selection of some sort. So update it
val member = spinnerAssignee.selectedItem as? Member?
val member = spinnerAssignee.selectedItem as? User?
if (member == null) {
//Removes the assignment
assigneeId = 0L
Loading
Loading
Loading
Loading
@@ -23,8 +23,7 @@ import com.commit451.gitlab.dialog.AccessDialog
import com.commit451.gitlab.event.MemberAddedEvent
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Group
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.util.LinkHeaderParser
import com.commit451.gitlab.viewHolder.UserViewHolder
Loading
Loading
@@ -74,7 +73,7 @@ class AddUserActivity : MorphActivity() {
var query: String? = null
var nextPageUrl: Uri? = null
var loading = false
var selectedUser: UserBasic? = null
var selectedUser: User? = null
 
@OnClick(R.id.clear)
fun onClearClick() {
Loading
Loading
@@ -127,7 +126,7 @@ class AddUserActivity : MorphActivity() {
toolbar.setNavigationOnClickListener { onBackPressed() }
 
adapter = UserAdapter(object : UserAdapter.Listener {
override fun onUserClicked(user: UserBasic, userViewHolder: UserViewHolder) {
override fun onUserClicked(user: User, userViewHolder: UserViewHolder) {
selectedUser = user
dialogAccess.show()
}
Loading
Loading
@@ -158,7 +157,7 @@ class AddUserActivity : MorphActivity() {
loading = true
App.get().gitLab.searchUsers(query!!)
.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<List<UserBasic>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(t: Throwable) {
Timber.e(t)
Loading
Loading
@@ -168,7 +167,7 @@ class AddUserActivity : MorphActivity() {
.show()
}
 
override fun responseNonNullSuccess(users: List<UserBasic>) {
override fun responseNonNullSuccess(users: List<User>) {
swipeRefreshLayout.isRefreshing = false
loading = false
adapter.setData(users)
Loading
Loading
@@ -184,14 +183,14 @@ class AddUserActivity : MorphActivity() {
Timber.d("loadMore " + nextPageUrl!!.toString() + " " + query)
App.get().gitLab.searchUsers(nextPageUrl!!.toString(), query!!)
.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<List<UserBasic>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(t: Throwable) {
Timber.e(t)
adapter.setLoading(false)
}
 
override fun responseNonNullSuccess(users: List<UserBasic>) {
override fun responseNonNullSuccess(users: List<User>) {
loading = false
adapter.setLoading(false)
adapter.addData(users)
Loading
Loading
@@ -200,9 +199,9 @@ class AddUserActivity : MorphActivity() {
})
}
 
private fun add(observable: Single<Response<Member>>) {
private fun add(observable: Single<Response<User>>) {
observable.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<Member>() {
.subscribe(object : CustomResponseSingleObserver<User>() {
 
override fun error(t: Throwable) {
Timber.e(t)
Loading
Loading
@@ -216,7 +215,7 @@ class AddUserActivity : MorphActivity() {
.show()
}
 
override fun responseNonNullSuccess(member: Member) {
override fun responseNonNullSuccess(member: User) {
Snackbar.make(root, R.string.user_added_successfully, Snackbar.LENGTH_SHORT)
.show()
dialogAccess.dismiss()
Loading
Loading
Loading
Loading
@@ -26,7 +26,6 @@ import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.GroupPagerAdapter
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 timber.log.Timber
Loading
Loading
@@ -80,7 +79,7 @@ class GroupActivity : BaseActivity() {
val groupId = intent.getLongExtra(KEY_GROUP_ID, -1)
App.get().gitLab.getGroup(groupId)
.setup(bindToLifecycle())
.subscribe(object : CustomSingleObserver<GroupDetail>() {
.subscribe(object : CustomSingleObserver<Group>() {
 
override fun error(t: Throwable) {
Timber.e(t)
Loading
Loading
@@ -88,7 +87,7 @@ class GroupActivity : BaseActivity() {
showError()
}
 
override fun success(groupDetail: GroupDetail) {
override fun success(groupDetail: Group) {
progress.visibility = View.GONE
bind(groupDetail)
}
Loading
Loading
Loading
Loading
@@ -36,8 +36,7 @@ import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.extension.text
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.model.api.Message
import com.commit451.gitlab.model.api.UserFull
import com.commit451.gitlab.model.api.UserLogin
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.ssl.CustomHostnameVerifier
Loading
Loading
@@ -245,7 +244,7 @@ class LoginActivity : BaseActivity() {
 
gitLab!!.login(request)
.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<UserLogin>() {
.subscribe(object : CustomResponseSingleObserver<User>() {
 
override fun error(e: Throwable) {
Timber.e(e)
Loading
Loading
@@ -256,7 +255,7 @@ class LoginActivity : BaseActivity() {
}
}
 
override fun responseNonNullSuccess(userLogin: UserLogin) {
override fun responseNonNullSuccess(userLogin: User) {
account.privateToken = userLogin.privateToken
loadUser()
}
Loading
Loading
@@ -345,7 +344,7 @@ class LoginActivity : BaseActivity() {
val gitLab = GitLabFactory.create(account, gitlabClientBuilder.build())
gitLab.getThisUser()
.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<UserFull>() {
.subscribe(object : CustomResponseSingleObserver<User>() {
 
override fun error(e: Throwable) {
Timber.e(e)
Loading
Loading
@@ -356,7 +355,7 @@ class LoginActivity : BaseActivity() {
}
}
 
override fun responseNonNullSuccess(userFull: UserFull) {
override fun responseNonNullSuccess(userFull: User) {
progress.visibility = View.GONE
account.user = userFull
account.lastUsed = Date()
Loading
Loading
Loading
Loading
@@ -21,7 +21,7 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.extension.feedUrl
import com.commit451.gitlab.fragment.FeedFragment
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.transformation.PaletteTransformation
import com.commit451.gitlab.util.ImageUtil
 
Loading
Loading
@@ -34,7 +34,7 @@ class UserActivity : BaseActivity() {
 
private val KEY_USER = "user"
 
fun newIntent(context: Context, user: UserBasic): Intent {
fun newIntent(context: Context, user: User): Intent {
val intent = Intent(context, UserActivity::class.java)
intent.putParcelerParcelableExtra(KEY_USER, user)
return intent
Loading
Loading
@@ -45,13 +45,13 @@ class UserActivity : BaseActivity() {
@BindView(R.id.collapsing_toolbar) lateinit var collapsingToolbarLayout: CollapsingToolbarLayout
@BindView(R.id.backdrop) lateinit var backdrop: ImageView
 
lateinit var user: UserBasic
lateinit var user: User
 
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_user)
ButterKnife.bind(this)
user = intent.getParcelerParcelableExtra<UserBasic>(KEY_USER)!!
user = intent.getParcelerParcelableExtra<User>(KEY_USER)!!
 
// Default content and scrim colors
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE)
Loading
Loading
Loading
Loading
@@ -4,23 +4,21 @@ import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.viewHolder.AssigneeSpinnerViewHolder
 
/**
* Adapter to show assignees in a spinner
*/
class AssigneeSpinnerAdapter(context: Context, members: MutableList<Member?>) : ArrayAdapter<Member?>(context, 0, members) {
class AssigneeSpinnerAdapter(context: Context, members: MutableList<User?>) : ArrayAdapter<User?>(context, 0, members) {
 
init {
members.add(0, null)
notifyDataSetChanged()
}
 
fun getSelectedItemPosition(userBasic: UserBasic?): Int {
fun getSelectedItemPosition(userBasic: User?): Int {
if (userBasic == null) {
return 0
}
Loading
Loading
Loading
Loading
@@ -4,7 +4,7 @@ import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import android.widget.PopupMenu
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder
import com.commit451.gitlab.viewHolder.ProjectMemberViewHolder
import java.util.*
Loading
Loading
@@ -22,7 +22,7 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
private val FOOTER_COUNT = 1
}
 
val values: ArrayList<Member> = ArrayList()
val values: ArrayList<User> = ArrayList()
 
var isLoading = false
set(loading) {
Loading
Loading
@@ -82,24 +82,24 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
return values.size + FOOTER_COUNT
}
 
fun setData(members: Collection<Member>?) {
fun setData(members: Collection<User>?) {
values.clear()
addData(members)
}
 
fun addData(members: Collection<Member>?) {
fun addData(members: Collection<User>?) {
if (members != null) {
values.addAll(members)
}
notifyDataSetChanged()
}
 
fun addMember(member: Member) {
fun addMember(member: User) {
values.add(0, member)
notifyItemInserted(0)
}
 
fun removeMember(member: Member) {
fun removeMember(member: User) {
val index = values.indexOf(member)
values.removeAt(index)
notifyItemRemoved(index)
Loading
Loading
@@ -113,13 +113,13 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
return false
}
 
private fun getMember(position: Int): Member {
private fun getMember(position: Int): User {
return values[position]
}
 
interface Listener {
fun onUserClicked(member: Member, userViewHolder: ProjectMemberViewHolder)
fun onUserRemoveClicked(member: Member)
fun onUserChangeAccessClicked(member: Member)
fun onUserClicked(member: User, userViewHolder: ProjectMemberViewHolder)
fun onUserRemoveClicked(member: User)
fun onUserChangeAccessClicked(member: User)
}
}
Loading
Loading
@@ -6,8 +6,8 @@ import android.view.View
import android.view.ViewGroup
import android.widget.PopupMenu
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.ProjectNamespace
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.viewHolder.ProjectMemberFooterViewHolder
import com.commit451.gitlab.viewHolder.ProjectMemberViewHolder
import java.util.*
Loading
Loading
@@ -25,7 +25,7 @@ class ProjectMembersAdapter(private val listener: ProjectMembersAdapter.Listener
val FOOTER_COUNT = 1
}
 
private val members: ArrayList<Member> = ArrayList()
private val members: ArrayList<User> = ArrayList()
private var namespace: ProjectNamespace? = null
 
val spanSizeLookup: GridLayoutManager.SpanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
Loading
Loading
@@ -100,12 +100,12 @@ class ProjectMembersAdapter(private val listener: ProjectMembersAdapter.Listener
}
}
 
fun setProjectMembers(data: Collection<Member>?) {
fun setProjectMembers(data: Collection<User>?) {
members.clear()
addProjectMembers(data)
}
 
fun addProjectMembers(data: Collection<Member>?) {
fun addProjectMembers(data: Collection<User>?) {
if (data != null) {
members.addAll(data)
}
Loading
Loading
@@ -117,25 +117,25 @@ class ProjectMembersAdapter(private val listener: ProjectMembersAdapter.Listener
notifyDataSetChanged()
}
 
fun getProjectMember(position: Int): Member {
fun getProjectMember(position: Int): User {
return members[position]
}
 
fun addMember(member: Member) {
fun addMember(member: User) {
members.add(0, member)
notifyItemInserted(0)
}
 
fun removeMember(member: Member) {
fun removeMember(member: User) {
val position = members.indexOf(member)
members.remove(member)
notifyItemRemoved(position)
}
 
interface Listener {
fun onProjectMemberClicked(member: Member, memberGroupViewHolder: ProjectMemberViewHolder)
fun onRemoveMember(member: Member)
fun onChangeAccess(member: Member)
fun onProjectMemberClicked(member: User, memberGroupViewHolder: ProjectMemberViewHolder)
fun onRemoveMember(member: User)
fun onChangeAccess(member: User)
fun onSeeGroupClicked()
}
}
Loading
Loading
@@ -4,7 +4,7 @@ import android.support.v7.widget.GridLayoutManager
import android.support.v7.widget.RecyclerView
import android.view.ViewGroup
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder
import com.commit451.gitlab.viewHolder.UserViewHolder
import java.util.*
Loading
Loading
@@ -22,7 +22,7 @@ class UserAdapter(private val listener: UserAdapter.Listener) : RecyclerView.Ada
private val TYPE_FOOTER = 1
}
 
private val values: ArrayList<UserBasic> = ArrayList()
private val values: ArrayList<User> = ArrayList()
private var loading: Boolean = false
 
val spanSizeLookup: GridLayoutManager.SpanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
Loading
Loading
@@ -74,12 +74,12 @@ class UserAdapter(private val listener: UserAdapter.Listener) : RecyclerView.Ada
return values.size + FOOTER_COUNT
}
 
fun setData(users: Collection<UserBasic>?) {
fun setData(users: Collection<User>?) {
values.clear()
addData(users)
}
 
fun addData(users: Collection<UserBasic>?) {
fun addData(users: Collection<User>?) {
if (users != null) {
values.addAll(users)
}
Loading
Loading
@@ -96,11 +96,11 @@ class UserAdapter(private val listener: UserAdapter.Listener) : RecyclerView.Ada
notifyItemChanged(values.size)
}
 
private fun getUser(position: Int): UserBasic {
private fun getUser(position: Int): User {
return values[position]
}
 
interface Listener {
fun onUserClicked(user: UserBasic, userViewHolder: UserViewHolder)
fun onUserClicked(user: User, userViewHolder: UserViewHolder)
}
}
Loading
Loading
@@ -13,7 +13,7 @@ import retrofit2.converter.simplexml.SimpleXmlConverterFactory
object GitLabRssFactory {
 
fun create(account: Account, client: OkHttpClient): GitLabRss {
val persister = SimpleXmlPersisterFactory.createPersister(account)
val persister = SimpleXmlPersisterFactory.createPersister()
val restAdapter = Retrofit.Builder()
.baseUrl(account.serverUrl.toString())
.client(client)
Loading
Loading
Loading
Loading
@@ -22,7 +22,7 @@ interface GitLabService {
/* --- LOGIN --- */
 
@POST(API_VERSION + "/session")
fun login(@Body request: SessionRequest): Single<Response<UserLogin>>
fun login(@Body request: SessionRequest): Single<Response<User>>
 
/* --- USERS --- */
 
Loading
Loading
@@ -30,19 +30,19 @@ interface GitLabService {
* Get currently authenticated user
*/
@GET(API_VERSION + "/user")
fun getThisUser(): Single<Response<UserFull>>
fun getThisUser(): Single<Response<User>>
 
@GET(API_VERSION + "/users")
fun getUsers(): Single<List<UserBasic>>
fun getUsers(): Single<List<User>>
 
@GET
fun getUsers(@Url url: String): Single<List<UserBasic>>
fun getUsers(@Url url: String): Single<List<User>>
 
@GET(API_VERSION + "/users")
fun searchUsers(@Query("search") query: String): Single<Response<List<UserBasic>>>
fun searchUsers(@Query("search") query: String): Single<Response<List<User>>>
 
@GET
fun searchUsers(@Url url: String, @Query("search") query: String): Single<Response<List<UserBasic>>>
fun searchUsers(@Url url: String, @Query("search") query: String): Single<Response<List<User>>>
 
@GET(API_VERSION + "/users/{id}")
fun getUser(@Path("id") userId: Long): Single<User>
Loading
Loading
@@ -55,25 +55,25 @@ interface GitLabService {
fun getGroups(@Url url: String): Single<Response<List<Group>>>
 
@GET(API_VERSION + "/groups/{id}")
fun getGroup(@Path("id") id: Long): Single<GroupDetail>
fun getGroup(@Path("id") id: Long): Single<Group>
 
@GET(API_VERSION + "/groups/{id}/projects?order_by=last_activity_at")
fun getGroupProjects(@Path("id") id: Long): Single<Response<List<Project>>>
 
@GET(API_VERSION + "/groups/{id}/members")
fun getGroupMembers(@Path("id") groupId: Long): Single<Response<List<Member>>>
fun getGroupMembers(@Path("id") groupId: Long): Single<Response<List<User>>>
 
@FormUrlEncoded
@POST(API_VERSION + "/groups/{id}/members")
fun addGroupMember(@Path("id") groupId: Long,
@Field("user_id") userId: Long,
@Field("access_level") accessLevel: Int): Single<Response<Member>>
@Field("access_level") accessLevel: Int): Single<Response<User>>
 
@FormUrlEncoded
@PUT(API_VERSION + "/groups/{id}/members/{user_id}")
fun editGroupMember(@Path("id") groupId: Long,
@Path("user_id") userId: Long,
@Field("access_level") accessLevel: Int): Single<Member>
@Field("access_level") accessLevel: Int): Single<User>
 
@DELETE(API_VERSION + "/groups/{id}/members/{user_id}")
fun removeGroupMember(@Path("id") groupId: Long,
Loading
Loading
@@ -105,22 +105,22 @@ interface GitLabService {
fun searchAllProjects(@Query("search") query: String): Single<Response<List<Project>>>
 
@GET(API_VERSION + "/projects/{id}/members")
fun getProjectMembers(@Path("id") projectId: Long): Single<Response<List<Member>>>
fun getProjectMembers(@Path("id") projectId: Long): Single<Response<List<User>>>
 
@GET
fun getProjectMembers(@Url url: String): Single<Response<List<Member>>>
fun getProjectMembers(@Url url: String): Single<Response<List<User>>>
 
@FormUrlEncoded
@POST(API_VERSION + "/projects/{id}/members")
fun addProjectMember(@Path("id") projectId: Long,
@Field("user_id") userId: Long,
@Field("access_level") accessLevel: Int): Single<Response<Member>>
@Field("access_level") accessLevel: Int): Single<Response<User>>
 
@FormUrlEncoded
@PUT(API_VERSION + "/projects/{id}/members/{user_id}")
fun editProjectMember(@Path("id") projectId: Long,
@Path("user_id") userId: Long,
@Field("access_level") accessLevel: Int): Single<Member>
@Field("access_level") accessLevel: Int): Single<User>
 
@DELETE(API_VERSION + "/projects/{id}/members/{user_id}")
fun removeProjectMember(@Path("id") projectId: Long,
Loading
Loading
Loading
Loading
@@ -7,8 +7,8 @@ import org.parceler.Parcel
/**
* Response when a file is uploaded
*/
@Parcel
class FileUploadResponse {
@Parcel(Parcel.Serialization.BEAN)
open class FileUploadResponse {
 
@field:Json(name = "alt")
var alt: String? = null
Loading
Loading
Loading
Loading
@@ -10,12 +10,10 @@ import java.util.*
*/
class DateTransform : Transform<Date> {
 
@Throws(Exception::class)
override fun read(value: String): Date? {
return Date(Instant.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(value)).toEpochMilli())
}
 
@Throws(Exception::class)
override fun write(value: Date): String {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(Instant.ofEpochMilli(value.time))
}
Loading
Loading
package com.commit451.gitlab.api.rss
 
import android.net.Uri
import com.commit451.gitlab.model.Account
import org.simpleframework.xml.core.Persister
import org.simpleframework.xml.transform.Matcher
import java.util.*
 
object SimpleXmlPersisterFactory {
 
fun createPersister(account: Account): Persister {
fun createPersister(): Persister {
return Persister(Matcher { type ->
if (Date::class.java.isAssignableFrom(type)) {
return@Matcher DateTransform()
} else if (Uri::class.java.isAssignableFrom(type)) {
return@Matcher UriTransform(account)
}
 
null
Loading
Loading
package com.commit451.gitlab.api.rss
import android.net.Uri
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.util.ConversionUtil
import org.simpleframework.xml.transform.Transform
/**
* Uri Transformer
*/
class UriTransform(private val account: Account) : Transform<Uri> {
@Throws(Exception::class)
override fun read(value: String): Uri? {
return ConversionUtil.toUri(account, value)
}
@Throws(Exception::class)
override fun write(value: Uri): String? {
return ConversionUtil.fromUri(value)
}
}
Loading
Loading
@@ -8,7 +8,7 @@ import com.afollestad.materialdialogs.Theme
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Group
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.rx.CustomSingleObserver
import io.reactivex.Single
import io.reactivex.android.schedulers.AndroidSchedulers
Loading
Loading
@@ -19,7 +19,7 @@ import java.util.*
/**
* Change a users access level, either for a group or for a project
*/
class AccessDialog private constructor(context: Context, internal var member: Member?, internal var group: Group?, projectId: Long) : MaterialDialog(MaterialDialog.Builder(context)
class AccessDialog private constructor(context: Context, internal var member: User?, internal var group: Group?, projectId: Long) : MaterialDialog(MaterialDialog.Builder(context)
.items(if (group == null) R.array.project_role_names else R.array.group_role_names)
.itemsCallbackSingleChoice(-1) { _, _, _, _ -> true }
.theme(Theme.DARK)
Loading
Loading
@@ -40,9 +40,9 @@ class AccessDialog private constructor(context: Context, internal var member: Me
listener = accessAppliedListener
}
 
constructor(context: Context, member: Member, group: Group) : this(context, member, group, -1)
constructor(context: Context, member: User, group: Group) : this(context, member, group, -1)
 
constructor(context: Context, member: Member, projectId: Long) : this(context, member, null, projectId)
constructor(context: Context, member: User, projectId: Long) : this(context, member, null, projectId)
 
init {
getActionButton(DialogAction.POSITIVE).setOnClickListener { onApply() }
Loading
Loading
@@ -50,7 +50,7 @@ class AccessDialog private constructor(context: Context, internal var member: Me
this.projectId = projectId
if (this.member != null) {
selectedIndex = Arrays.asList(*roleNames).indexOf(
Member.getAccessLevel(this.member!!.accessLevel))
User.getAccessLevel(this.member!!.accessLevel))
}
}
 
Loading
Loading
@@ -69,18 +69,18 @@ class AccessDialog private constructor(context: Context, internal var member: Me
}
}
 
fun editGroupOrProjectMember(observable: Single<Member>) {
fun editGroupOrProjectMember(observable: Single<User>) {
observable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CustomSingleObserver<Member>() {
.subscribe(object : CustomSingleObserver<User>() {
 
override fun error(t: Throwable) {
Timber.e(t)
this@AccessDialog.onError()
}
 
override fun success(member: Member) {
override fun success(member: User) {
if (onAccessChangedListener != null) {
onAccessChangedListener!!.onAccessChanged(this@AccessDialog.member!!, roleNames[selectedIndex])
}
Loading
Loading
@@ -109,7 +109,7 @@ class AccessDialog private constructor(context: Context, internal var member: Me
return
}
val accessLevel = roleNames[selectedIndex]
changeAccess(Member.getAccessLevel(accessLevel))
changeAccess(User.getAccessLevel(accessLevel))
}
 
fun onCancel() {
Loading
Loading
@@ -117,7 +117,7 @@ class AccessDialog private constructor(context: Context, internal var member: Me
}
 
interface OnAccessChangedListener {
fun onAccessChanged(member: Member, accessLevel: String)
fun onAccessChanged(member: User, accessLevel: String)
}
 
interface Listener {
Loading
Loading
package com.commit451.gitlab.event
 
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.User
 
/**
* Indicates that a user was added
*/
class MemberAddedEvent(val member: Member)
class MemberAddedEvent(val member: User)
package com.commit451.gitlab.extension
 
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
 
val UserBasic.feedUrl: String get() {
val User.feedUrl: String get() {
return webUrl + ".atom"
}
\ No newline at end of file
Loading
Loading
@@ -22,7 +22,7 @@ import com.commit451.gitlab.dialog.AccessDialog
import com.commit451.gitlab.event.MemberAddedEvent
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Group
import com.commit451.gitlab.model.api.Member
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
@@ -59,7 +59,7 @@ class GroupMembersFragment : ButterKnifeFragment() {
lateinit var adapterGroupMembers: GroupMembersAdapter
lateinit var layoutManagerGroupMembers: DynamicGridLayoutManager
 
var member: Member? = null
var member: User? = null
lateinit var group: Group
var nextPageUrl: Uri? = null
 
Loading
Loading
@@ -76,11 +76,11 @@ class GroupMembersFragment : ButterKnifeFragment() {
}
 
private val listener = object : GroupMembersAdapter.Listener {
override fun onUserClicked(member: Member, holder: ProjectMemberViewHolder) {
override fun onUserClicked(member: User, holder: ProjectMemberViewHolder) {
Navigator.navigateToUser(activity, holder.image, member)
}
 
override fun onUserRemoveClicked(member: Member) {
override fun onUserRemoveClicked(member: User) {
this@GroupMembersFragment.member = member
App.get().gitLab.removeGroupMember(group.id, member.id)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
Loading
Loading
@@ -98,10 +98,10 @@ class GroupMembersFragment : ButterKnifeFragment() {
})
}
 
override fun onUserChangeAccessClicked(member: Member) {
override fun onUserChangeAccessClicked(member: User) {
val accessDialog = AccessDialog(activity, member, group)
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 GroupMembersFragment : ButterKnifeFragment() {
loadGroupMembers(App.get().gitLab.getProjectMembers(nextPageUrl!!.toString()))
}
 
private fun loadGroupMembers(observable: Single<Response<List<Member>>>) {
private fun loadGroupMembers(observable: Single<Response<List<User>>>) {
observable
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomResponseSingleObserver<List<Member>>() {
.subscribe(object : CustomResponseSingleObserver<List<User>>() {
 
override fun error(e: Throwable) {
Timber.e(e)
Loading
Loading
@@ -192,7 +192,7 @@ class GroupMembersFragment : ButterKnifeFragment() {
adapterGroupMembers.setData(null)
}
 
override fun responseNonNullSuccess(members: List<Member>) {
override fun responseNonNullSuccess(members: List<User>) {
swipeRefreshLayout.isRefreshing = false
if (members.isEmpty()) {
textMessage.visibility = View.VISIBLE
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