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

API models to Kotlin

parent e31b881c
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 126 additions and 206 deletions
package com.commit451.gitlab.extension
import com.commit451.gitlab.model.api.Diff
val Diff.fileName: String
get() {
if (newPath!!.contains("/")) {
val paths = newPath!!.split("/".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
return paths[paths.size - 1]
} else {
return newPath!!
}
}
\ No newline at end of file
package com.commit451.gitlab.extension
import com.commit451.gitlab.model.api.Group
val Group.feedUrl: String
get() = webUrl + ".atom"
package com.commit451.gitlab.extension
import android.graphics.Color
import android.support.annotation.ColorInt
import com.commit451.gitlab.model.api.Label
@ColorInt
fun Label.getColor(): Int {
try {
return Color.parseColor(color)
} catch (e: Exception) {
return Color.TRANSPARENT
}
}
\ No newline at end of file
package com.commit451.gitlab.extension
 
import com.commit451.gitlab.model.api.Project
import android.net.Uri
 
/**
* Created by johncarlson on 7/28/17.
*/
fun Project.getFeedUrl(): Uri? {
if (webUrl == null) {
return null
}
return Uri.parse(webUrl + ".atom")
val Project.feedUrl: String get() = webUrl + ".atom"
fun Project.belongsToGroup(): Boolean {
//If there is an owner, then there is no group
return owner == null
}
\ No newline at end of file
Loading
Loading
@@ -5,7 +5,6 @@ import android.support.annotation.DrawableRes
import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.model.api.RepositoryTreeObject
import com.commit451.gitlab.model.api.RepositoryTreeObject.*
 
@DrawableRes
fun RepositoryTreeObject.getDrawableForType(): Int {
Loading
Loading
@@ -13,9 +12,9 @@ fun RepositoryTreeObject.getDrawableForType(): Int {
return R.drawable.ic_unknown_24dp
}
when (type) {
TYPE_FILE -> return R.drawable.ic_file_24dp
TYPE_FOLDER -> return R.drawable.ic_folder_24dp
TYPE_REPO -> return R.drawable.ic_repo_24dp
RepositoryTreeObject.TYPE_FILE -> return R.drawable.ic_file_24dp
RepositoryTreeObject.TYPE_FOLDER -> return R.drawable.ic_folder_24dp
RepositoryTreeObject.TYPE_REPO -> return R.drawable.ic_repo_24dp
}
 
return R.drawable.ic_unknown_24dp
Loading
Loading
Loading
Loading
@@ -20,6 +20,6 @@ fun TextView.setMarkdownText(text:String, project: Project? = null) {
//I don't like this too much for its global-ness
val picasso = App.get().picasso
val baseUrl = App.get().currentAccount.serverUrl
val getter = ImageGetterFactory.create(this, picasso, baseUrl, project)
val getter = ImageGetterFactory.create(this, picasso, baseUrl!!, project)
this.text = emojiParsedHtml.formatAsHtml(getter)
}
package com.commit451.gitlab.extension
import com.commit451.gitlab.model.api.UserBasic
val UserBasic.feedUrl: String get() {
return webUrl + ".atom"
}
\ No newline at end of file
Loading
Loading
@@ -113,8 +113,8 @@ class BuildDescriptionFragment : ButterKnifeFragment() {
}
val name = String.format(getString(R.string.build_name), build.name)
textName.text = name
val pipeline = String.format(getString(R.string.build_pipeline), build.pipeline)
textPipeline.text = pipeline
val pipelineText = String.format(getString(R.string.build_pipeline), build.pipeline)
textPipeline.text = pipelineText
val stage = String.format(getString(R.string.build_stage), build.stage)
textStage.text = stage
val status = String.format(getString(R.string.build_status), build.status)
Loading
Loading
@@ -126,21 +126,25 @@ class BuildDescriptionFragment : ButterKnifeFragment() {
textCreated.text = created
val ref = String.format(getString(R.string.build_ref), build.ref)
textRef.text = ref
if (build.finishedAt != null) {
val finished = String.format(getString(R.string.build_finished), DateUtil.getRelativeTimeSpanString(activity, build.finishedAt))
val finishedAt = build.finishedAt
if (finishedAt != null) {
val finished = String.format(getString(R.string.build_finished), DateUtil.getRelativeTimeSpanString(activity, finishedAt))
textFinished.text = finished
textFinished.visibility = View.VISIBLE
} else {
textFinished.visibility = View.GONE
}
if (build.runner != null) {
bindRunner(build.runner)
val runner = build.runner
if (runner != null) {
bindRunner(runner)
}
if (build.pipeline != null) {
bindPipeline(build.pipeline)
val pipeline = build.pipeline
if (pipeline != null) {
bindPipeline(pipeline)
}
if (build.commit != null) {
bindCommit(build.commit)
val commit = build.commit
if (commit != null) {
bindCommit(commit)
}
}
 
Loading
Loading
Loading
Loading
@@ -78,7 +78,7 @@ class BuildLogFragment : ButterKnifeFragment() {
 
swipeRefreshLayout.isRefreshing = true
 
val url = build.getRawBuildUrl(App.get().getAccount().serverUrl, project)
val url = build.getRawBuildUrl(App.get().getAccount().serverUrl!!, project)
 
App.get().gitLab.getRaw(url)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
Loading
Loading
Loading
Loading
@@ -32,9 +32,9 @@ class FeedFragment : ButterKnifeFragment() {
 
private val EXTRA_FEED_URL = "extra_feed_url"
 
fun newInstance(feedUrl: Uri?): FeedFragment {
fun newInstance(feedUrl: String): FeedFragment {
val args = Bundle()
args.putParcelable(EXTRA_FEED_URL, feedUrl)
args.putString(EXTRA_FEED_URL, feedUrl)
 
val fragment = FeedFragment()
fragment.arguments = args
Loading
Loading
@@ -52,7 +52,7 @@ class FeedFragment : ButterKnifeFragment() {
 
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
feedUrl = arguments.getParcelable<Uri>(EXTRA_FEED_URL)
feedUrl = Uri.parse(arguments.getString(EXTRA_FEED_URL))
}
 
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
Loading
Loading
Loading
Loading
@@ -19,6 +19,7 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.AttachActivity
import com.commit451.gitlab.adapter.MergeRequestDetailAdapter
import com.commit451.gitlab.api.response.FileUploadResponse
import com.commit451.gitlab.event.MergeRequestChangedEvent
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.*
Loading
Loading
Loading
Loading
@@ -21,7 +21,7 @@ import com.commit451.gitlab.activity.AttachActivity
import com.commit451.gitlab.adapter.MergeRequestDetailAdapter
import com.commit451.gitlab.event.MergeRequestChangedEvent
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.FileUploadResponse
import com.commit451.gitlab.api.response.FileUploadResponse
import com.commit451.gitlab.model.api.MergeRequest
import com.commit451.gitlab.model.api.Note
import com.commit451.gitlab.model.api.Project
Loading
Loading
Loading
Loading
@@ -145,7 +145,7 @@ class PipelineDescriptionFragment : ButterKnifeFragment() {
textFinished.visibility = View.GONE
}
if (pipeline.user != null) {
bindUser(pipeline.user)
bindUser(pipeline.user!!)
}
}
 
Loading
Loading
Loading
Loading
@@ -13,7 +13,9 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.event.PipelineChangedEvent
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.*
import com.commit451.gitlab.model.api.CommitUser
import com.commit451.gitlab.model.api.Pipeline
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.util.DateUtil
import com.trello.rxlifecycle2.android.FragmentEvent
Loading
Loading
@@ -139,8 +141,9 @@ class PipelineJobsFragment : ButterKnifeFragment() {
} else {
textFinished.visibility = View.GONE
}
if (pipeline.user != null) {
bindUser(pipeline.user)
val user = pipeline.user
if (user != null) {
bindUser(user)
}
}
 
Loading
Loading
@@ -149,6 +152,7 @@ class PipelineJobsFragment : ButterKnifeFragment() {
textAuthor.text = authorText
}
 
@Suppress("unused")
@Subscribe
fun onPipelineChangedEvent(event: PipelineChangedEvent) {
if (pipeline.id == event.pipeline.id) {
Loading
Loading
Loading
Loading
@@ -14,10 +14,7 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.ProjectActivity
import com.commit451.gitlab.event.ProjectReloadEvent
import com.commit451.gitlab.extension.base64Decode
import com.commit451.gitlab.extension.formatAsHtml
import com.commit451.gitlab.extension.setMarkdownText
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.extension.*
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.model.api.RepositoryFile
import com.commit451.gitlab.model.api.RepositoryTreeObject
Loading
Loading
@@ -62,11 +59,13 @@ class ProjectFragment : ButterKnifeFragment() {
 
@OnClick(R.id.creator)
fun onCreatorClick() {
val project = project
if (project != null) {
if (project!!.belongsToGroup()) {
Navigator.navigateToGroup(activity, project!!.namespace.id)
val owner = project.owner
if (owner != null) {
Navigator.navigateToUser(activity, owner)
} else {
Navigator.navigateToUser(activity, project!!.owner)
Navigator.navigateToGroup(activity, project.namespace.id)
}
}
}
Loading
Loading
@@ -137,7 +136,7 @@ class ProjectFragment : ButterKnifeFragment() {
 
App.bus().register(this)
 
textOverview.movementMethod = InternalLinkMovementMethod(App.get().getAccount().serverUrl)
textOverview.movementMethod = InternalLinkMovementMethod(App.get().getAccount().serverUrl!!)
 
swipeRefreshLayout.setOnRefreshListener { loadData() }
 
Loading
Loading
@@ -172,7 +171,7 @@ class ProjectFragment : ButterKnifeFragment() {
App.get().gitLab.getTree(project!!.id, branchName!!, null)
.flatMap(Function<List<RepositoryTreeObject>, SingleSource<Optional<RepositoryTreeObject>>> { repositoryTreeObjects ->
for (treeItem in repositoryTreeObjects) {
if (getReadmeType(treeItem.name) != README_TYPE_UNKNOWN) {
if (getReadmeType(treeItem.name!!) != README_TYPE_UNKNOWN) {
return@Function Single.just(Optional(treeItem))
}
}
Loading
Loading
@@ -180,7 +179,7 @@ class ProjectFragment : ButterKnifeFragment() {
})
.flatMap(Function<Optional<RepositoryTreeObject>, SingleSource<Optional<RepositoryFile>>> { repositoryTreeObjectResult ->
if (repositoryTreeObjectResult.isPresent) {
val repositoryFile = App.get().gitLab.getFile(project!!.id, repositoryTreeObjectResult.get().name, branchName!!)
val repositoryFile = App.get().gitLab.getFile(project!!.id, repositoryTreeObjectResult.get().name!!, branchName!!)
.blockingGet()
result.repositoryFile = repositoryFile
return@Function Single.just(Optional(repositoryFile))
Loading
Loading
@@ -208,7 +207,7 @@ class ProjectFragment : ButterKnifeFragment() {
swipeRefreshLayout.isRefreshing = false
if (result.repositoryFile != null && result.bytes != null) {
val text = String(result.bytes!!)
when (getReadmeType(result.repositoryFile!!.fileName)) {
when (getReadmeType(result.repositoryFile!!.fileName!!)) {
README_TYPE_MARKDOWN -> {
textOverview.setMarkdownText(text, project)
}
Loading
Loading
@@ -231,7 +230,7 @@ class ProjectFragment : ButterKnifeFragment() {
if (project.belongsToGroup()) {
textCreator.text = String.format(getString(R.string.created_by), project.namespace.name)
} else {
textCreator.text = String.format(getString(R.string.created_by), project.owner.username)
textCreator.text = String.format(getString(R.string.created_by), project.owner!!.username)
}
textStarCount.text = project.starCount.toString()
textForksCount.text = project.forksCount.toString()
Loading
Loading
Loading
Loading
@@ -20,6 +20,7 @@ import com.commit451.gitlab.adapter.ProjectMembersAdapter
import com.commit451.gitlab.dialog.AccessDialog
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
Loading
Loading
package com.commit451.gitlab.model;
import android.support.annotation.NonNull;
import com.commit451.gitlab.data.Prefs;
import com.commit451.gitlab.model.api.UserFull;
import com.commit451.gitlab.util.ObjectUtil;
import com.squareup.moshi.Json;
import org.parceler.Parcel;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* An account, stored locally, which references the needed info to connect to a server
*/
@Parcel
public class Account implements Comparable<Account>{
@NonNull
public static List<Account> getAccounts() {
List<Account> accounts = new ArrayList<>(Prefs.INSTANCE.getAccounts());
Collections.sort(accounts);
Collections.reverse(accounts);
return accounts;
}
@Json(name = "server_url")
String serverUrl;
@Json(name = "authorization_header")
String authorizationHeader;
@Json(name = "private_token")
String privateToken;
@Json(name = "trusted_certificate")
String trustedCertificate;
@Json(name = "trusted_hostname")
String trustedHostname;
@Json(name = "private_key_alias")
String privateKeyAlias;
@Json(name = "user")
UserFull user;
@Json(name = "last_used")
Date lastUsed;
public Account() {}
public String getServerUrl() {
return serverUrl;
}
public void setServerUrl(String url) {
serverUrl = url;
}
public String getAuthorizationHeader() {
return authorizationHeader;
}
public void setAuthorizationHeader(String authorizationHeader) {
this.authorizationHeader = authorizationHeader;
}
public String getPrivateToken() {
return privateToken;
}
public void setPrivateToken(String privateToken) {
this.privateToken = privateToken;
}
public String getTrustedCertificate() {
return trustedCertificate;
}
public void setTrustedCertificate(String trustedCertificate) {
this.trustedCertificate = trustedCertificate;
}
public String getTrustedHostname() {
return trustedHostname;
}
public void setTrustedHostname(String trustedHostname) {
this.trustedHostname = trustedHostname;
}
public String getPrivateKeyAlias() {
return privateKeyAlias;
}
public void setPrivateKeyAlias(String privateKeyAlias) {
this.privateKeyAlias = privateKeyAlias;
}
public UserFull getUser() {
return user;
}
public void setUser(UserFull user) {
this.user = user;
}
public Date getLastUsed() {
return lastUsed;
}
public void setLastUsed(Date lastUsed) {
this.lastUsed = lastUsed;
}
@Override
public int compareTo(@NonNull Account another) {
return lastUsed.compareTo(another.getLastUsed());
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Account)) {
return false;
}
Account account = (Account) o;
return ObjectUtil.INSTANCE.equals(serverUrl, account.serverUrl)
&& ObjectUtil.INSTANCE.equals(user, account.user);
}
@Override
public int hashCode() {
return ObjectUtil.INSTANCE.hash(serverUrl, user);
}
}
package com.commit451.gitlab.model
import com.commit451.gitlab.model.api.UserFull
import com.squareup.moshi.Json
import org.parceler.Parcel
import java.util.*
/**
* An account, stored locally, which references the needed info to connect to a server
*/
@Parcel
class Account : Comparable<Account> {
@Json(name = "server_url")
var serverUrl: String? = null
@Json(name = "authorization_header")
var authorizationHeader: String? = null
@Json(name = "private_token")
var privateToken: String? = null
@Json(name = "trusted_certificate")
var trustedCertificate: String? = null
@Json(name = "trusted_hostname")
var trustedHostname: String? = null
@Json(name = "private_key_alias")
var privateKeyAlias: String? = null
@Json(name = "user")
var user: UserFull? = null
@Json(name = "last_used")
var lastUsed: Date? = null
override fun compareTo(another: Account): Int {
return lastUsed!!.compareTo(another.lastUsed)
}
}
package com.commit451.gitlab.model
 
import android.support.annotation.IntDef
import org.parceler.Parcel
 
/**
Loading
Loading
@@ -22,11 +21,9 @@ class Ref {
var type: Int = 0
var ref: String? = null
 
constructor() {
}
constructor()
 
constructor(@Type type: Int, ref: String) {
constructor(@Type type: Int, ref: String?) {
this.type = type
this.ref = ref
}
Loading
Loading
package com.commit451.gitlab.model.api;
import com.squareup.moshi.Json;
import org.parceler.Parcel;
@Parcel
public class ArtifactsFile {
@Json(name = "filename")
String fileName;
@Json(name = "size")
long size;
public String getFileName() {
return fileName;
}
public long getSize() {
return size;
}
}
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