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 61 additions and 89 deletions
package com.commit451.gitlab.model.rss;
import org.parceler.Parcel;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;
import java.util.List;
@Parcel
@Root(strict = false)
public class Feed {
@Element(name = "title", required = false)
String title;
@ElementList(name = "entry", required = false, inline = true)
List<Entry> entryList;
public Feed() {}
public String getTitle() {
return title;
}
public List<Entry> getEntries() {
return entryList;
}
}
package com.commit451.gitlab.model.rss
import org.parceler.Parcel
import org.simpleframework.xml.Element
import org.simpleframework.xml.ElementList
import org.simpleframework.xml.Root
@Parcel(Parcel.Serialization.BEAN)
@Root(strict = false)
class Feed {
@Element(name = "title", required = false)
lateinit var title: String
@ElementList(name = "entry", required = false, inline = true)
lateinit var entries: List<Entry>
}
package com.commit451.gitlab.model.rss;
import android.net.Uri;
import org.parceler.Parcel;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
@Parcel
@Root(strict = false)
public class Link {
@Attribute(name = "href", required = true)
Uri href;
public Link() {}
public Uri getHref() {
return href;
}
}
package com.commit451.gitlab.model.rss
import org.parceler.Parcel
import org.simpleframework.xml.Attribute
import org.simpleframework.xml.Root
@Parcel(Parcel.Serialization.BEAN)
@Root(strict = false)
class Link {
@Attribute(name = "href", required = true)
lateinit var href: String
}
package com.commit451.gitlab.model.rss;
import android.net.Uri;
import org.parceler.Parcel;
import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
@Parcel
@Root(strict = false)
public class Thumbnail {
@Attribute(name = "url", required = true)
Uri url;
public Thumbnail() {}
public Uri getUrl() {
return url;
}
}
package com.commit451.gitlab.model.rss
import org.parceler.Parcel
import org.simpleframework.xml.Attribute
import org.simpleframework.xml.Root
@Parcel(Parcel.Serialization.BEAN)
@Root(strict = false)
class Thumbnail {
@Attribute(name = "url", required = true)
lateinit var url: String
}
Loading
Loading
@@ -95,11 +95,11 @@ object Navigator {
activity.startActivity(SearchActivity.newIntent(activity))
}
 
fun navigateToUser(activity: Activity, user: UserBasic) {
fun navigateToUser(activity: Activity, user: User) {
navigateToUser(activity, null, user)
}
 
fun navigateToUser(activity: Activity, profileImage: ImageView?, user: UserBasic) {
fun navigateToUser(activity: Activity, profileImage: ImageView?, user: User) {
val intent = UserActivity.newIntent(activity, user)
if (Build.VERSION.SDK_INT >= 21 && profileImage != null) {
val options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, profileImage, activity.getString(R.string.transition_user))
Loading
Loading
@@ -219,8 +219,9 @@ object Navigator {
}
}
 
fun navigateToUrl(activity: Activity, uri: Uri, account: Account) {
Timber.d("navigateToUrl: %s", uri)
fun navigateToUrl(activity: Activity, url: String, account: Account) {
Timber.d("navigateToUrl: $url")
val uri = Uri.parse(url)
val serverUri = Uri.parse(account.serverUrl)
if (serverUri.host == uri.host) {
activity.startActivity(DeepLinker.generateDeeplinkIntentFromUri(activity, uri))
Loading
Loading
package com.commit451.gitlab.util
 
import android.net.Uri
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.UserFull
import com.commit451.gitlab.model.api.User
 
/**
* Utility for doing various image related things
*/
object ImageUtil {
fun getAvatarUrl(user: UserBasic?, size: Int): Uri {
fun getAvatarUrl(user: User?, size: Int): Uri {
if (user != null) {
val avatarUrl = Uri.parse(user.avatarUrl)
if (avatarUrl != null && avatarUrl != Uri.EMPTY) {
Loading
Loading
@@ -18,8 +16,9 @@ object ImageUtil {
.build()
}
 
if (user is UserFull) {
return getAvatarUrl(user.email, size)
val email = user.email
if (email != null) {
return getAvatarUrl(email, size)
}
}
 
Loading
Loading
Loading
Loading
@@ -26,7 +26,7 @@ import com.commit451.gitlab.event.CloseDrawerEvent
import com.commit451.gitlab.event.LoginEvent
import com.commit451.gitlab.event.ReloadDataEvent
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.model.api.UserFull
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.transformation.CircleTransformation
Loading
Loading
@@ -215,13 +215,13 @@ class LabCoatNavigationView : NavigationView {
App.get().gitLab.getThisUser()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CustomResponseSingleObserver<UserFull>() {
.subscribe(object : CustomResponseSingleObserver<User>() {
 
override fun error(e: Throwable) {
Timber.e(e)
}
 
override fun responseNonNullSuccess(userFull: UserFull) {
override fun responseNonNullSuccess(userFull: User) {
//Store the newly retrieved user to the account so that it stays up to date
// in local storage
val account = App.get().getAccount()
Loading
Loading
@@ -232,7 +232,7 @@ class LabCoatNavigationView : NavigationView {
})
}
 
fun bindUser(user: UserFull) {
fun bindUser(user: User) {
if (context == null) {
return
}
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.transformation.CircleTransformation
import com.commit451.gitlab.util.ImageUtil
 
Loading
Loading
@@ -35,7 +35,7 @@ class AssigneeSpinnerViewHolder(view: View) : RecyclerView.ViewHolder(view) {
ButterKnife.bind(this, view)
}
 
fun bind(user: Member?) {
fun bind(user: User?) {
if (user == null) {
textUsername.setText(R.string.no_assignee)
image.setImageResource(R.drawable.ic_assign_24dp)
Loading
Loading
Loading
Loading
@@ -11,7 +11,7 @@ import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.util.ImageUtil
 
/**
Loading
Loading
@@ -44,9 +44,9 @@ class ProjectMemberViewHolder(view: View) : RecyclerView.ViewHolder(view) {
buttonOverflow.setOnClickListener { popupMenu.show() }
}
 
fun bind(member: Member) {
fun bind(member: User) {
textUsername.text = member.username
textAccess.text = Member.getAccessLevel(member.accessLevel)
textAccess.text = User.getAccessLevel(member.accessLevel)
 
App.get().picasso
.load(ImageUtil.getAvatarUrl(member, itemView.resources.getDimensionPixelSize(R.dimen.user_header_image_size)))
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.util.ImageUtil
 
/**
Loading
Loading
@@ -34,7 +34,7 @@ class UserViewHolder(view: View) : RecyclerView.ViewHolder(view) {
ButterKnife.bind(this, view)
}
 
fun bind(user: UserBasic) {
fun bind(user: User) {
textUsername.text = user.username
App.get().picasso
.load(ImageUtil.getAvatarUrl(user, itemView.resources.getDimensionPixelSize(R.dimen.user_list_image_size)))
Loading
Loading
Loading
Loading
@@ -75,7 +75,7 @@ class FeedRemoteViewsFactory(private val context: Context, intent: Intent, accou
// Next, we set a fill-intent which will be used to fill-in the pending intent template
// which is set on the collection view in UserFeedWidgetProvider.
val fillInIntent = Intent()
fillInIntent.putExtra(UserFeedWidgetProvider.EXTRA_LINK, entry.link.href.toString())
fillInIntent.putExtra(UserFeedWidgetProvider.EXTRA_LINK, entry.link.href)
rv.setOnClickFillInIntent(R.id.root, fillInIntent)
 
try {
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