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

ViewHolders to Kotlin

parent 1ec22a3e
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 359 additions and 375 deletions
Loading
Loading
@@ -51,7 +51,7 @@ class AccountAdapter(context: Context, private val listener: AccountAdapter.List
val account = getItemAtPosition(position)
holder.bind(account, account == App.get().account, colorControlHighlight)
holder.itemView.setTag(R.id.list_position, position)
holder.mPopupMenu.setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener { item ->
holder.popupMenu.setOnMenuItemClickListener(PopupMenu.OnMenuItemClickListener { item ->
when (item.itemId) {
R.id.action_sign_out -> {
val itemPosition = accounts.indexOf(account)
Loading
Loading
Loading
Loading
@@ -48,7 +48,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!!, project)
} else if (holder is IssueLabelsViewHolder) {
holder.bind(issue!!.labels)
} else if (holder is NoteViewHolder) {
Loading
Loading
Loading
Loading
@@ -42,7 +42,7 @@ class MilestoneIssueAdapter(private val listener: MilestoneIssueAdapter.Listener
 
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is MilestoneHeaderViewHolder) {
holder.bind(milestone)
holder.bind(milestone!!)
}
if (holder is IssueViewHolder) {
val issue = getValueAt(position)
Loading
Loading
Loading
Loading
@@ -65,7 +65,7 @@ class ProjectMembersAdapter(private val listener: ProjectMembersAdapter.Listener
holder.itemView.visibility = View.GONE
} else {
holder.itemView.visibility = View.VISIBLE
holder.bind(namespace)
holder.bind(namespace!!)
}
} else if (holder is ProjectMemberViewHolder) {
val member = getProjectMember(position)
Loading
Loading
package com.commit451.gitlab.viewHolder;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.commit451.gitlab.R;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Shows an access level
*/
public class AccessViewHolder extends RecyclerView.ViewHolder {
public static AccessViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_access, parent, false);
return new AccessViewHolder(view);
}
@BindView(R.id.access) TextView textTitle;
public AccessViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(String access, int colorSelected, boolean isSelected) {
textTitle.setText(access);
((FrameLayout) itemView).setForeground(isSelected ? new ColorDrawable(colorSelected) : null);
}
}
package com.commit451.gitlab.viewHolder
import android.graphics.drawable.ColorDrawable
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.R
/**
* Shows an access level
*/
class AccessViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): AccessViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_access, parent, false)
return AccessViewHolder(view)
}
}
@BindView(R.id.access) lateinit var textTitle: TextView
init {
ButterKnife.bind(this, view)
}
fun bind(access: String, colorSelected: Int, isSelected: Boolean) {
textTitle.text = access
(itemView as FrameLayout).foreground = if (isSelected) ColorDrawable(colorSelected) else null
}
}
package com.commit451.gitlab.viewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.commit451.gitlab.R;
import butterknife.ButterKnife;
/**
* Shows the "add account" button
*/
public class AccountFooterViewHolder extends RecyclerView.ViewHolder {
public static AccountFooterViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.footer_account, parent, false);
return new AccountFooterViewHolder(view);
}
public AccountFooterViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import butterknife.ButterKnife
import com.commit451.gitlab.R
/**
* Shows the "add account" button
*/
class AccountFooterViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): AccountFooterViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.footer_account, parent, false)
return AccountFooterViewHolder(view)
}
}
init {
ButterKnife.bind(this, view)
}
}
package com.commit451.gitlab.viewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.PopupMenu;
import android.widget.TextView;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.Account;
import com.commit451.gitlab.transformation.CircleTransformation;
import com.commit451.gitlab.util.ImageUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* A signed in account
*/
public class AccountViewHolder extends RecyclerView.ViewHolder{
public static AccountViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_account, parent, false);
return new AccountViewHolder(view);
}
@BindView(R.id.account_image) ImageView image;
@BindView(R.id.account_username) TextView textUsername;
@BindView(R.id.account_server) TextView textServer;
@BindView(R.id.account_more) View buttonMore;
public final PopupMenu mPopupMenu;
public AccountViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
mPopupMenu = new PopupMenu(itemView.getContext(), buttonMore);
mPopupMenu.getMenuInflater().inflate(R.menu.item_menu_account, mPopupMenu.getMenu());
buttonMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mPopupMenu.show();
}
});
}
public void bind(Account account, boolean isActive, int colorSelected) {
textServer.setText(account.getServerUrl().toString());
textUsername.setText(account.getUser().getUsername());
if (isActive) {
itemView.setBackgroundColor(colorSelected);
} else {
itemView.setBackground(null);
}
App.get().getPicasso()
.load(ImageUtil.getAvatarUrl(account.getUser(), itemView.getResources().getDimensionPixelSize(R.dimen.user_list_image_size)))
.transform(new CircleTransformation())
.into(image);
}
}
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.PopupMenu
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.transformation.CircleTransformation
import com.commit451.gitlab.util.ImageUtil
/**
* A signed in account
*/
class AccountViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): AccountViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_account, parent, false)
return AccountViewHolder(view)
}
}
@BindView(R.id.account_image) lateinit var image: ImageView
@BindView(R.id.account_username) lateinit var textUsername: TextView
@BindView(R.id.account_server) lateinit var textServer: TextView
@BindView(R.id.account_more) lateinit var buttonMore: View
val popupMenu: PopupMenu
init {
ButterKnife.bind(this, view)
popupMenu = PopupMenu(itemView.context, buttonMore)
popupMenu.menuInflater.inflate(R.menu.item_menu_account, popupMenu.menu)
buttonMore.setOnClickListener { popupMenu.show() }
}
fun bind(account: Account, isActive: Boolean, colorSelected: Int) {
textServer.text = account.serverUrl.toString()
textUsername.text = account.user.username
if (isActive) {
itemView.setBackgroundColor(colorSelected)
} else {
itemView.background = null
}
App.get().picasso
.load(ImageUtil.getAvatarUrl(account.user, itemView.resources.getDimensionPixelSize(R.dimen.user_list_image_size)))
.transform(CircleTransformation())
.into(image)
}
}
package com.commit451.gitlab.viewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.api.Label;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Shows the label on a screen where you can add labels
*/
public class AddLabelViewHolder extends RecyclerView.ViewHolder {
public static AddLabelViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_add_label, parent, false);
return new AddLabelViewHolder(view);
}
@BindView(R.id.title)
TextView textTitle;
public AddLabelViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(Label label) {
textTitle.setText(label.getName());
textTitle.setBackgroundColor(label.getColor());
}
}
\ No newline at end of file
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Label
/**
* Shows the label on a screen where you can add labels
*/
class AddLabelViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): AddLabelViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_add_label, parent, false)
return AddLabelViewHolder(view)
}
}
@BindView(R.id.title) lateinit var textTitle: TextView
init {
ButterKnife.bind(this, view)
}
fun bind(label: Label) {
textTitle.text = label.name
textTitle.setBackgroundColor(label.color)
}
}
\ No newline at end of file
package com.commit451.gitlab.viewHolder;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.commit451.gitlab.App;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.api.Member;
import com.commit451.gitlab.transformation.CircleTransformation;
import com.commit451.gitlab.util.ImageUtil;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Shows assignee in a spinner
*/
public class AssigneeSpinnerViewHolder extends RecyclerView.ViewHolder {
public static AssigneeSpinnerViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_assignee, parent, false);
return new AssigneeSpinnerViewHolder(view);
}
@BindView(R.id.user_image)
ImageView image;
@BindView(R.id.user_username)
TextView textUsername;
public AssigneeSpinnerViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(@Nullable Member user) {
if (user == null) {
textUsername.setText(R.string.no_assignee);
image.setImageResource(R.drawable.ic_assign_24dp);
} else {
textUsername.setText(user.getUsername());
App.get().getPicasso()
.load(ImageUtil.getAvatarUrl(user, itemView.getResources().getDimensionPixelSize(R.dimen.user_list_image_size)))
.transform(new CircleTransformation())
.into(image);
}
}
}
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
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.transformation.CircleTransformation
import com.commit451.gitlab.util.ImageUtil
/**
* Shows assignee in a spinner
*/
class AssigneeSpinnerViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): AssigneeSpinnerViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_assignee, parent, false)
return AssigneeSpinnerViewHolder(view)
}
}
@BindView(R.id.user_image) lateinit var image: ImageView
@BindView(R.id.user_username) lateinit var textUsername: TextView
init {
ButterKnife.bind(this, view)
}
fun bind(user: Member?) {
if (user == null) {
textUsername.setText(R.string.no_assignee)
image.setImageResource(R.drawable.ic_assign_24dp)
} else {
textUsername.text = user.username
App.get().picasso
.load(ImageUtil.getAvatarUrl(user, itemView.resources.getDimensionPixelSize(R.dimen.user_list_image_size)))
.transform(CircleTransformation())
.into(image)
}
}
}
package com.commit451.gitlab.viewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.commit451.easel.Easel;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.api.Branch;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Label
*/
public class BranchViewHolder extends RecyclerView.ViewHolder {
public static BranchViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_branch, parent, false);
return new BranchViewHolder(view);
}
@BindView(R.id.title)
public TextView textTitle;
int colorHighlighted;
public BranchViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
colorHighlighted = Easel.getThemeAttrColor(itemView.getContext(), R.attr.colorControlHighlight);
}
public void bind(Branch branch, boolean selected) {
textTitle.setText(branch.getName());
if (selected) {
itemView.setBackgroundColor(colorHighlighted);
} else {
itemView.setBackground(null);
}
}
}
\ No newline at end of file
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.easel.Easel
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Branch
/**
* Label
*/
class BranchViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): BranchViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_branch, parent, false)
return BranchViewHolder(view)
}
}
@BindView(R.id.title) lateinit var textTitle: TextView
var colorHighlighted: Int = 0
init {
ButterKnife.bind(this, view)
colorHighlighted = Easel.getThemeAttrColor(itemView.context, R.attr.colorControlHighlight)
}
fun bind(branch: Branch, selected: Boolean) {
textTitle.text = branch.name
if (selected) {
itemView.setBackgroundColor(colorHighlighted)
} else {
itemView.background = null
}
}
}
\ No newline at end of file
package com.commit451.gitlab.viewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.commit451.gitlab.R;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Breadcrumb view
*/
public class BreadcrumbViewHolder extends RecyclerView.ViewHolder {
public static BreadcrumbViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_breadcrumb, parent, false);
return new BreadcrumbViewHolder(view);
}
@BindView(R.id.breadcrumb_text)
TextView textBreadcrumb;
@BindView(R.id.breadcrumb_arrow)
ImageView buttonArrow;
public BreadcrumbViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(String breadcrumb, boolean showArrow) {
textBreadcrumb.setText(breadcrumb);
if (showArrow) {
buttonArrow.setVisibility(View.VISIBLE);
} else {
buttonArrow.setVisibility(View.GONE);
}
}
}
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.R
/**
* Breadcrumb view
*/
class BreadcrumbViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): BreadcrumbViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_breadcrumb, parent, false)
return BreadcrumbViewHolder(view)
}
}
@BindView(R.id.breadcrumb_text) lateinit var textBreadcrumb: TextView
@BindView(R.id.breadcrumb_arrow) lateinit var buttonArrow: ImageView
init {
ButterKnife.bind(this, view)
}
fun bind(breadcrumb: String, showArrow: Boolean) {
textBreadcrumb.text = breadcrumb
if (showArrow) {
buttonArrow.visibility = View.VISIBLE
} else {
buttonArrow.visibility = View.GONE
}
}
}
package com.commit451.gitlab.viewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.commit451.gitlab.R;
import com.commit451.gitlab.model.api.Build;
import com.commit451.gitlab.util.DateUtil;
import java.util.Date;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Builds, woot
*/
public class BuildViewHolder extends RecyclerView.ViewHolder {
public static BuildViewHolder inflate(ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_build, parent, false);
return new BuildViewHolder(view);
}
@BindView(R.id.number)
TextView textBuildNumber;
@BindView(R.id.status)
TextView textStatus;
@BindView(R.id.duration)
TextView textDuration;
public BuildViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
public void bind(Build build) {
textBuildNumber.setText(itemView.getResources().getString(R.string.build_number) + build.getId());
String statusText = String.format(itemView.getResources().getString(R.string.build_status), build.getStatus());
textStatus.setText(statusText);
Date finishedTime = build.getFinishedAt();
if (finishedTime == null) {
finishedTime = new Date();
}
Date startedAt = build.getStartedAt();
if (startedAt == null) {
startedAt = new Date();
}
String timeTaken = DateUtil.getTimeTaken(startedAt, finishedTime);
String durationStr = String.format(itemView.getResources().getString(R.string.build_duration), timeTaken);
textDuration.setText(durationStr);
}
}
package com.commit451.gitlab.viewHolder
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Build
import com.commit451.gitlab.util.DateUtil
import java.util.*
/**
* Builds, woot
*/
class BuildViewHolder(view: View) : RecyclerView.ViewHolder(view) {
companion object {
fun inflate(parent: ViewGroup): BuildViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_build, parent, false)
return BuildViewHolder(view)
}
}
@BindView(R.id.number) lateinit var textBuildNumber: TextView
@BindView(R.id.status) lateinit var textStatus: TextView
@BindView(R.id.duration) lateinit var textDuration: TextView
init {
ButterKnife.bind(this, view)
}
fun bind(build: Build) {
textBuildNumber.text = itemView.resources.getString(R.string.build_number) + build.id
val statusText = String.format(itemView.resources.getString(R.string.build_status), build.status)
textStatus.text = statusText
var finishedTime: Date? = build.finishedAt
if (finishedTime == null) {
finishedTime = Date()
}
var startedAt: Date? = build.startedAt
if (startedAt == null) {
startedAt = Date()
}
val timeTaken = DateUtil.getTimeTaken(startedAt, finishedTime)
val durationStr = String.format(itemView.resources.getString(R.string.build_duration), timeTaken)
textDuration.text = durationStr
}
}
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