Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
See what's new at GitLab
4
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Switch to GitLab Next
Sign in / Register
Toggle navigation
GitFox
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Test Cases
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yamko
GitFox
Commits
c22a4e22
Commit
c22a4e22
authored
Jun 03, 2019
by
Konstantin Tskhovrebov
🤖
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change OffsetDateTime to ZonedDateTime for powerful time calculation.
parent
e7250d5e
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
72 additions
and
68 deletions
+72
-68
app/build.gradle.kts
app/build.gradle.kts
+1
-1
app/src/main/java/ru/terrakok/gitlabclient/di/provider/GsonProvider.kt
...java/ru/terrakok/gitlabclient/di/provider/GsonProvider.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/entity/Commit.kt
app/src/main/java/ru/terrakok/gitlabclient/entity/Commit.kt
+4
-4
app/src/main/java/ru/terrakok/gitlabclient/entity/Note.kt
app/src/main/java/ru/terrakok/gitlabclient/entity/Note.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/entity/Owner.kt
app/src/main/java/ru/terrakok/gitlabclient/entity/Owner.kt
+2
-2
app/src/main/java/ru/terrakok/gitlabclient/entity/Project.kt
app/src/main/java/ru/terrakok/gitlabclient/entity/Project.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/entity/User.kt
app/src/main/java/ru/terrakok/gitlabclient/entity/User.kt
+5
-5
app/src/main/java/ru/terrakok/gitlabclient/entity/app/target/TargetHeader.kt
...u/terrakok/gitlabclient/entity/app/target/TargetHeader.kt
+2
-2
app/src/main/java/ru/terrakok/gitlabclient/entity/event/Event.kt
.../main/java/ru/terrakok/gitlabclient/entity/event/Event.kt
+2
-2
app/src/main/java/ru/terrakok/gitlabclient/entity/issue/Issue.kt
.../main/java/ru/terrakok/gitlabclient/entity/issue/Issue.kt
+4
-4
app/src/main/java/ru/terrakok/gitlabclient/entity/mergerequest/MergeRequest.kt
...terrakok/gitlabclient/entity/mergerequest/MergeRequest.kt
+5
-5
app/src/main/java/ru/terrakok/gitlabclient/entity/milestone/Milestone.kt
...va/ru/terrakok/gitlabclient/entity/milestone/Milestone.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/entity/target/Target.kt
...ain/java/ru/terrakok/gitlabclient/entity/target/Target.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/entity/todo/Todo.kt
...rc/main/java/ru/terrakok/gitlabclient/entity/todo/Todo.kt
+2
-2
app/src/main/java/ru/terrakok/gitlabclient/extension/HumanView.kt
...main/java/ru/terrakok/gitlabclient/extension/HumanView.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/GitlabApi.kt
...a/ru/terrakok/gitlabclient/model/data/server/GitlabApi.kt
+5
-5
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/deserializer/TodoDeserializer.kt
...client/model/data/server/deserializer/TodoDeserializer.kt
+5
-2
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/deserializer/ZonedDateTimeDeserializer.kt
...del/data/server/deserializer/ZonedDateTimeDeserializer.kt
+3
-3
app/src/main/java/ru/terrakok/gitlabclient/model/repository/event/EventRepository.kt
...ok/gitlabclient/model/repository/event/EventRepository.kt
+5
-5
app/src/main/java/ru/terrakok/gitlabclient/model/repository/mergerequest/MergeRequestRepository.kt
...t/model/repository/mergerequest/MergeRequestRepository.kt
+5
-5
app/src/test/java/ru/terrakok/gitlabclient/model/repository/profile/ProfileRepositoryTest.kt
...bclient/model/repository/profile/ProfileRepositoryTest.kt
+3
-2
build.gradle.kts
build.gradle.kts
+1
-1
No files found.
app/build.gradle.kts
View file @
c22a4e22
...
...
@@ -135,7 +135,7 @@ dependencies {
//Lottie
implementation
(
"com.airbnb.android:lottie:2.5.1"
)
//Date
implementation
(
"com.jakewharton.threetenabp:threetenabp:1.2.
0
"
)
implementation
(
"com.jakewharton.threetenabp:threetenabp:1.2.
1
"
)
//FlexBox Layout
implementation
(
"com.google.android:flexbox:1.0.0"
)
//Firebase
...
...
app/src/main/java/ru/terrakok/gitlabclient/di/provider/GsonProvider.kt
View file @
c22a4e22
...
...
@@ -3,13 +3,13 @@ package ru.terrakok.gitlabclient.di.provider
import
com.google.gson.Gson
import
com.google.gson.GsonBuilder
import
org.threeten.bp.LocalDate
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.Color
import
ru.terrakok.gitlabclient.entity.todo.Todo
import
ru.terrakok.gitlabclient.model.data.server.deserializer.ColorDeserializer
import
ru.terrakok.gitlabclient.model.data.server.deserializer.LocalDateDeserializer
import
ru.terrakok.gitlabclient.model.data.server.deserializer.OffsetDateTimeDeserializer
import
ru.terrakok.gitlabclient.model.data.server.deserializer.TodoDeserializer
import
ru.terrakok.gitlabclient.model.data.server.deserializer.ZonedDateTimeDeserializer
import
javax.inject.Inject
import
javax.inject.Provider
...
...
@@ -23,6 +23,6 @@ class GsonProvider @Inject constructor() : Provider<Gson> {
.
registerTypeAdapter
(
Todo
::
class
.
java
,
TodoDeserializer
())
.
registerTypeAdapter
(
Color
::
class
.
java
,
ColorDeserializer
())
.
registerTypeAdapter
(
LocalDate
::
class
.
java
,
LocalDateDeserializer
())
.
registerTypeAdapter
(
OffsetDateTime
::
class
.
java
,
Offset
DateTimeDeserializer
())
.
registerTypeAdapter
(
ZonedDateTime
::
class
.
java
,
Zoned
DateTimeDeserializer
())
.
create
()
}
\ No newline at end of file
app/src/main/java/ru/terrakok/gitlabclient/entity/Commit.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
/**
* Created by Eugene Shapovalov (@CraggyHaggy) on 20.10.18.
...
...
@@ -12,11 +12,11 @@ data class Commit(
@SerializedName
(
"title"
)
val
title
:
String
,
@SerializedName
(
"author_name"
)
val
authorName
:
String
,
@SerializedName
(
"author_email"
)
val
authorEmail
:
String
?,
@SerializedName
(
"authored_date"
)
val
authoredDate
:
Offset
DateTime
,
@SerializedName
(
"authored_date"
)
val
authoredDate
:
Zoned
DateTime
,
@SerializedName
(
"commiter_name"
)
val
commiterName
:
String
?,
@SerializedName
(
"commiter_email"
)
val
commiterEmail
:
String
?,
@SerializedName
(
"commited_date"
)
val
commitedDate
:
Offset
DateTime
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
,
@SerializedName
(
"commited_date"
)
val
commitedDate
:
Zoned
DateTime
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
,
@SerializedName
(
"message"
)
val
message
:
String
,
@SerializedName
(
"parent_ids"
)
val
parentIds
:
List
<
String
>
)
\ No newline at end of file
app/src/main/java/ru/terrakok/gitlabclient/entity/Note.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.event.EventTargetType
data class
Note
(
@SerializedName
(
"id"
)
val
id
:
Long
,
@SerializedName
(
"body"
)
val
body
:
String
,
@SerializedName
(
"author"
)
val
author
:
ShortUser
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Offset
DateTime
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Zoned
DateTime
?,
@SerializedName
(
"system"
)
val
isSystem
:
Boolean
,
@SerializedName
(
"noteable_id"
)
val
noteableId
:
Long
,
@SerializedName
(
"noteable_type"
)
val
noteableType
:
EventTargetType
?,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/Owner.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
data class
Owner
(
@SerializedName
(
"id"
)
val
id
:
Long
,
@SerializedName
(
"name"
)
val
name
:
String
,
@SerializedName
(
"username"
)
val
username
:
String
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
?
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
?
)
app/src/main/java/ru/terrakok/gitlabclient/entity/Project.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
data class
Project
(
@SerializedName
(
"id"
)
val
id
:
Long
,
...
...
@@ -24,8 +24,8 @@ data class Project(
@SerializedName
(
"wiki_enabled"
)
val
wikiEnabled
:
Boolean
,
@SerializedName
(
"snippets_enabled"
)
val
snippetsEnabled
:
Boolean
,
@SerializedName
(
"container_registry_enabled"
)
val
containerRegistryEnabled
:
Boolean
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
?,
@SerializedName
(
"last_activity_at"
)
val
lastActivityAt
:
Offset
DateTime
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
?,
@SerializedName
(
"last_activity_at"
)
val
lastActivityAt
:
Zoned
DateTime
?,
@SerializedName
(
"creator_id"
)
val
creatorId
:
Long
,
@SerializedName
(
"namespace"
)
val
namespace
:
Namespace
?,
@SerializedName
(
"permissions"
)
val
permissions
:
Permissions
?,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/User.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
data class
User
(
@SerializedName
(
"id"
)
val
id
:
Long
,
...
...
@@ -11,7 +11,7 @@ data class User(
@SerializedName
(
"state"
)
val
state
:
String
?,
@SerializedName
(
"avatar_url"
)
val
avatarUrl
:
String
?,
@SerializedName
(
"web_url"
)
val
webUrl
:
String
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
,
@SerializedName
(
"is_admin"
)
val
isAdmin
:
Boolean
,
@SerializedName
(
"bio"
)
val
bio
:
String
?,
@SerializedName
(
"location"
)
val
location
:
String
?,
...
...
@@ -20,11 +20,11 @@ data class User(
@SerializedName
(
"twitter"
)
val
twitter
:
String
?,
@SerializedName
(
"website_url"
)
val
websiteUrl
:
String
?,
@SerializedName
(
"organization"
)
val
organization
:
String
?,
@SerializedName
(
"last_sign_in_at"
)
val
lastSignInAt
:
Offset
DateTime
,
@SerializedName
(
"confirmed_at"
)
val
confirmedAt
:
Offset
DateTime
,
@SerializedName
(
"last_sign_in_at"
)
val
lastSignInAt
:
Zoned
DateTime
,
@SerializedName
(
"confirmed_at"
)
val
confirmedAt
:
Zoned
DateTime
,
@SerializedName
(
"color_scheme_id"
)
val
colorSchemeId
:
Long
,
@SerializedName
(
"projects_limit"
)
val
projectsLimit
:
Long
,
@SerializedName
(
"current_sign_in_at"
)
val
currentSignInAt
:
Offset
DateTime
,
@SerializedName
(
"current_sign_in_at"
)
val
currentSignInAt
:
Zoned
DateTime
,
@SerializedName
(
"identities"
)
val
identities
:
List
<
Identity
>?,
@SerializedName
(
"can_create_group"
)
val
canCreateGroup
:
Boolean
,
@SerializedName
(
"can_create_project"
)
val
canCreateProject
:
Boolean
,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/app/target/TargetHeader.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity.app.target
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.ShortUser
/**
...
...
@@ -12,7 +12,7 @@ sealed class TargetHeader {
val
icon
:
TargetHeaderIcon
,
val
title
:
TargetHeaderTitle
,
val
body
:
CharSequence
,
val
date
:
Offset
DateTime
,
val
date
:
Zoned
DateTime
,
val
target
:
AppTarget
,
val
targetId
:
Long
,
val
internal
:
TargetInternal
?,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/event/Event.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity.event
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.Note
import
ru.terrakok.gitlabclient.entity.PushData
import
ru.terrakok.gitlabclient.entity.ShortUser
...
...
@@ -17,7 +17,7 @@ data class Event(
@SerializedName
(
"target_type"
)
val
targetType
:
EventTargetType
?,
@SerializedName
(
"author_id"
)
val
authorId
:
Long
,
@SerializedName
(
"target_title"
)
val
targetTitle
:
String
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
,
@SerializedName
(
"author"
)
val
author
:
ShortUser
,
@SerializedName
(
"author_username"
)
val
authorUsername
:
String
,
@SerializedName
(
"push_data"
)
val
pushData
:
PushData
?,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/issue/Issue.kt
View file @
c22a4e22
...
...
@@ -2,7 +2,7 @@ package ru.terrakok.gitlabclient.entity.issue
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.LocalDate
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.ShortUser
import
ru.terrakok.gitlabclient.entity.TimeStats
import
ru.terrakok.gitlabclient.entity.milestone.Milestone
...
...
@@ -16,9 +16,9 @@ data class Issue(
@SerializedName
(
"milestone"
)
val
milestone
:
Milestone
?,
@SerializedName
(
"project_id"
)
val
projectId
:
Long
,
@SerializedName
(
"assignees"
)
val
assignees
:
List
<
ShortUser
>,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Offset
DateTime
?,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Zoned
DateTime
?,
@SerializedName
(
"title"
)
val
title
:
String
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
,
@SerializedName
(
"labels"
)
val
labels
:
List
<
String
>,
@SerializedName
(
"user_notes_count"
)
val
userNotesCount
:
Int
,
@SerializedName
(
"due_date"
)
val
dueDate
:
LocalDate
?,
...
...
@@ -30,7 +30,7 @@ data class Issue(
// This value will only be present for issues which were closed after GitLab 10.6 and
// when the user account that closed the issue still exists.
@SerializedName
(
"closed_by"
)
val
closedBy
:
ShortUser
?,
@SerializedName
(
"closed_at"
)
val
closedAt
:
Offset
DateTime
?,
@SerializedName
(
"closed_at"
)
val
closedAt
:
Zoned
DateTime
?,
// The merge_requests_count attribute was introduced in GitLab 11.9.
@SerializedName
(
"merge_requests_count"
)
val
relatedMergeRequestCount
:
Int
,
@SerializedName
(
"time_stats"
)
val
timeStats
:
TimeStats
,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/mergerequest/MergeRequest.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity.mergerequest
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.ShortUser
import
ru.terrakok.gitlabclient.entity.TimeStats
import
ru.terrakok.gitlabclient.entity.milestone.Milestone
...
...
@@ -9,8 +9,8 @@ import ru.terrakok.gitlabclient.entity.milestone.Milestone
data class
MergeRequest
(
@SerializedName
(
"id"
)
val
id
:
Long
,
@SerializedName
(
"iid"
)
val
iid
:
Long
,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Offset
DateTime
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Zoned
DateTime
?,
@SerializedName
(
"target_branch"
)
val
targetBranch
:
String
,
@SerializedName
(
"source_branch"
)
val
sourceBranch
:
String
,
@SerializedName
(
"project_id"
)
val
projectId
:
Long
,
...
...
@@ -38,9 +38,9 @@ data class MergeRequest(
// This value will only be present for merge requests which were closed/merged after GitLab 10.6
// and when the user account that closed/merged the issue still exists.
@SerializedName
(
"closed_by"
)
val
closedBy
:
ShortUser
?,
@SerializedName
(
"closed_at"
)
val
closedAt
:
Offset
DateTime
?,
@SerializedName
(
"closed_at"
)
val
closedAt
:
Zoned
DateTime
?,
@SerializedName
(
"merged_by"
)
val
mergedBy
:
ShortUser
?,
@SerializedName
(
"merged_at"
)
val
mergedAt
:
Offset
DateTime
?,
@SerializedName
(
"merged_at"
)
val
mergedAt
:
Zoned
DateTime
?,
@SerializedName
(
"changes"
)
val
changes
:
List
<
MergeRequestChange
>?,
@SerializedName
(
"assignees"
)
val
assignees
:
List
<
ShortUser
>,
@SerializedName
(
"time_stats"
)
val
timeStats
:
TimeStats
,
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/milestone/Milestone.kt
View file @
c22a4e22
...
...
@@ -2,7 +2,7 @@ package ru.terrakok.gitlabclient.entity.milestone
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.LocalDate
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
data class
Milestone
(
@SerializedName
(
"id"
)
val
id
:
Long
,
...
...
@@ -12,8 +12,8 @@ data class Milestone(
@SerializedName
(
"state"
)
val
state
:
MilestoneState
,
@SerializedName
(
"due_date"
)
val
dueDate
:
LocalDate
?,
@SerializedName
(
"start_date"
)
val
startDate
:
LocalDate
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
?,
@SerializedName
(
"created_at"
)
val
createdAt
:
Zoned
DateTime
?,
@SerializedName
(
"title"
)
val
title
:
String
?,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Offset
DateTime
?,
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Zoned
DateTime
?,
@SerializedName
(
"web_url"
)
val
webUrl
:
String
?
)
app/src/main/java/ru/terrakok/gitlabclient/entity/target/Target.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity.target
import
com.google.gson.annotations.SerializedName
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.ShortUser
import
ru.terrakok.gitlabclient.entity.TimeStats
import
ru.terrakok.gitlabclient.entity.milestone.Milestone
...
...
@@ -21,9 +21,9 @@ abstract class Target {
@SerializedName
(
"state"
)
private
val
_state
:
TargetState
?
=
null
@SerializedName
(
"updated_at"
)
val
updatedAt
:
Offset
DateTime
?
=
null
val
updatedAt
:
Zoned
DateTime
?
=
null
@SerializedName
(
"created_at"
)
val
createdAt
:
Offset
DateTime
?
=
null
val
createdAt
:
Zoned
DateTime
?
=
null
@SerializedName
(
"labels"
)
private
val
_labels
:
List
<
String
>?
=
null
@SerializedName
(
"milestone"
)
...
...
app/src/main/java/ru/terrakok/gitlabclient/entity/todo/Todo.kt
View file @
c22a4e22
package
ru.terrakok.gitlabclient.entity.todo
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.Project
import
ru.terrakok.gitlabclient.entity.ShortUser
import
ru.terrakok.gitlabclient.entity.target.Target
...
...
@@ -19,5 +19,5 @@ data class Todo(
val
targetUrl
:
String
,
val
body
:
String
,
val
state
:
TodoState
,
val
createdAt
:
Offset
DateTime
val
createdAt
:
Zoned
DateTime
)
\ No newline at end of file
app/src/main/java/ru/terrakok/gitlabclient/extension/HumanView.kt
View file @
c22a4e22
...
...
@@ -5,7 +5,7 @@ import android.content.res.Resources
import
androidx.annotation.DrawableRes
import
org.threeten.bp.Duration
import
org.threeten.bp.LocalDate
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
org.threeten.bp.format.DateTimeFormatter
import
retrofit2.HttpException
import
ru.terrakok.gitlabclient.R
...
...
@@ -42,8 +42,8 @@ fun Throwable.userMessage(resourceManager: ResourceManager) = when (this) {
}
private
val
DATE_FORMAT
=
DateTimeFormatter
.
ofPattern
(
"dd MMM yyyy"
)
fun
Offset
DateTime
.
humanTime
(
resources
:
Resources
):
String
{
val
delta
=
Duration
.
between
(
this
,
Offset
DateTime
.
now
())
fun
Zoned
DateTime
.
humanTime
(
resources
:
Resources
):
String
{
val
delta
=
Duration
.
between
(
this
,
Zoned
DateTime
.
now
())
.
seconds
.
let
{
maxOf
(
0
,
it
)
}
...
...
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/GitlabApi.kt
View file @
c22a4e22
...
...
@@ -3,7 +3,7 @@ package ru.terrakok.gitlabclient.model.data.server
import
io.reactivex.Completable
import
io.reactivex.Single
import
org.threeten.bp.LocalDate
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
retrofit2.adapter.rxjava2.Result
import
retrofit2.http.*
import
ru.terrakok.gitlabclient.entity.*
...
...
@@ -164,8 +164,8 @@ interface GitlabApi {
@Query
(
"milestone"
)
milestone
:
String
?,
@Query
(
"view"
)
viewType
:
MergeRequestViewType
?,
@Query
(
"labels"
)
labels
:
String
?,
@Query
(
"created_before"
)
createdBefore
:
Offset
DateTime
?,
@Query
(
"created_after"
)
createdAfter
:
Offset
DateTime
?,
@Query
(
"created_before"
)
createdBefore
:
Zoned
DateTime
?,
@Query
(
"created_after"
)
createdAfter
:
Zoned
DateTime
?,
@Query
(
"scope"
)
scope
:
MergeRequestScope
?,
@Query
(
"author_id"
)
authorId
:
Int
?,
@Query
(
"assignee_id"
)
assigneeId
:
Int
?,
...
...
@@ -183,8 +183,8 @@ interface GitlabApi {
@Query
(
"milestone"
)
milestone
:
String
?,
@Query
(
"view"
)
viewType
:
MergeRequestViewType
?,
@Query
(
"labels"
)
labels
:
String
?,
@Query
(
"created_before"
)
createdBefore
:
Offset
DateTime
?,
@Query
(
"created_after"
)
createdAfter
:
Offset
DateTime
?,
@Query
(
"created_before"
)
createdBefore
:
Zoned
DateTime
?,
@Query
(
"created_after"
)
createdAfter
:
Zoned
DateTime
?,
@Query
(
"scope"
)
scope
:
MergeRequestScope
?,
@Query
(
"author_id"
)
authorId
:
Int
?,
@Query
(
"assignee_id"
)
assigneeId
:
Int
?,
...
...
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/deserializer/TodoDeserializer.kt
View file @
c22a4e22
...
...
@@ -4,7 +4,7 @@ import com.google.gson.JsonDeserializationContext
import
com.google.gson.JsonDeserializer
import
com.google.gson.JsonElement
import
com.google.gson.JsonParseException
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.entity.Project
import
ru.terrakok.gitlabclient.entity.ShortUser
import
ru.terrakok.gitlabclient.entity.target.Target
...
...
@@ -51,7 +51,10 @@ class TodoDeserializer : JsonDeserializer<Todo> {
jsonObject
.
get
(
"target_url"
).
asString
,
jsonObject
.
get
(
"body"
).
asString
,
context
.
deserialize
<
TodoState
>(
jsonObject
.
get
(
"state"
),
TodoState
::
class
.
java
),
context
.
deserialize
<
OffsetDateTime
>(
jsonObject
.
get
(
"created_at"
),
OffsetDateTime
::
class
.
java
)
context
.
deserialize
<
ZonedDateTime
>(
jsonObject
.
get
(
"created_at"
),
ZonedDateTime
::
class
.
java
)
)
}
else
{
throw
JsonParseException
(
"Configure Gson in GsonProvider."
)
...
...
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/deserializer/
Offset
DateTimeDeserializer.kt
→
app/src/main/java/ru/terrakok/gitlabclient/model/data/server/deserializer/
Zoned
DateTimeDeserializer.kt
View file @
c22a4e22
...
...
@@ -3,14 +3,14 @@ package ru.terrakok.gitlabclient.model.data.server.deserializer
import
com.google.gson.JsonDeserializationContext
import
com.google.gson.JsonDeserializer
import
com.google.gson.JsonElement
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
java.lang.reflect.Type
class
OffsetDateTimeDeserializer
:
JsonDeserializer
<
Offset
DateTime
>
{
class
ZonedDateTimeDeserializer
:
JsonDeserializer
<
Zoned
DateTime
>
{
override
fun
deserialize
(
json
:
JsonElement
,
typeOfT
:
Type
,
context
:
JsonDeserializationContext
?
):
OffsetDateTime
=
Offset
DateTime
.
parse
(
json
.
asJsonPrimitive
.
asString
)
):
ZonedDateTime
=
Zoned
DateTime
.
parse
(
json
.
asJsonPrimitive
.
asString
)
}
\ No newline at end of file
app/src/main/java/ru/terrakok/gitlabclient/model/repository/event/EventRepository.kt
View file @
c22a4e22
...
...
@@ -3,7 +3,7 @@ package ru.terrakok.gitlabclient.model.repository.event
import
io.reactivex.Observable
import
io.reactivex.Single
import
io.reactivex.functions.BiFunction
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.di.DefaultPageSize
import
ru.terrakok.gitlabclient.di.PrimitiveWrapper
import
ru.terrakok.gitlabclient.entity.OrderBy
...
...
@@ -34,8 +34,8 @@ class EventRepository @Inject constructor(
fun
getEvents
(
action
:
EventAction
?
=
null
,
targetType
:
EventTarget
?
=
null
,
beforeDay
:
Offset
DateTime
?
=
null
,
afterDay
:
Offset
DateTime
?
=
null
,
beforeDay
:
Zoned
DateTime
?
=
null
,
afterDay
:
Zoned
DateTime
?
=
null
,
sort
:
Sort
?
=
Sort
.
DESC
,
orderBy
:
OrderBy
=
OrderBy
.
UPDATED_AT
,
page
:
Int
,
...
...
@@ -68,8 +68,8 @@ class EventRepository @Inject constructor(
projectId
:
Long
,
action
:
EventAction
?
=
null
,
targetType
:
EventTarget
?
=
null
,
beforeDay
:
Offset
DateTime
?
=
null
,
afterDay
:
Offset
DateTime
?
=
null
,
beforeDay
:
Zoned
DateTime
?
=
null
,
afterDay
:
Zoned
DateTime
?
=
null
,
sort
:
Sort
?
=
Sort
.
DESC
,
orderBy
:
OrderBy
=
OrderBy
.
UPDATED_AT
,
page
:
Int
,
...
...
app/src/main/java/ru/terrakok/gitlabclient/model/repository/mergerequest/MergeRequestRepository.kt
View file @
c22a4e22
...
...
@@ -3,7 +3,7 @@ package ru.terrakok.gitlabclient.model.repository.mergerequest
import
io.reactivex.Observable
import
io.reactivex.Single
import
io.reactivex.functions.BiFunction
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.di.DefaultPageSize
import
ru.terrakok.gitlabclient.di.PrimitiveWrapper
import
ru.terrakok.gitlabclient.entity.*
...
...
@@ -36,8 +36,8 @@ class MergeRequestRepository @Inject constructor(
milestone
:
String
?
=
null
,
viewType
:
MergeRequestViewType
?
=
null
,
labels
:
String
?
=
null
,
createdBefore
:
Offset
DateTime
?
=
null
,
createdAfter
:
Offset
DateTime
?
=
null
,
createdBefore
:
Zoned
DateTime
?
=
null
,
createdAfter
:
Zoned
DateTime
?
=
null
,
scope
:
MergeRequestScope
?
=
null
,
authorId
:
Int
?
=
null
,
assigneeId
:
Int
?
=
null
,
...
...
@@ -69,8 +69,8 @@ class MergeRequestRepository @Inject constructor(
milestone
:
String
?
=
null
,
viewType
:
MergeRequestViewType
?
=
null
,
labels
:
String
?
=
null
,
createdBefore
:
Offset
DateTime
?
=
null
,
createdAfter
:
Offset
DateTime
?
=
null
,
createdBefore
:
Zoned
DateTime
?
=
null
,
createdAfter
:
Zoned
DateTime
?
=
null
,
scope
:
MergeRequestScope
?
=
null
,
authorId
:
Int
?
=
null
,
assigneeId
:
Int
?
=
null
,
...
...
app/src/test/java/ru/terrakok/gitlabclient/model/repository/profile/ProfileRepositoryTest.kt
View file @
c22a4e22
...
...
@@ -8,7 +8,7 @@ import org.junit.Test
import
org.mockito.Mockito.`when`
import
org.mockito.Mockito.verify
import
org.threeten.bp.LocalDateTime
import
org.threeten.bp.
Offset
DateTime
import
org.threeten.bp.
Zoned
DateTime
import
ru.terrakok.gitlabclient.TestSchedulers
import
ru.terrakok.gitlabclient.entity.User
import
ru.terrakok.gitlabclient.model.data.server.GitlabApi
...
...
@@ -24,7 +24,8 @@ class ProfileRepositoryTest {
private
val
testServer
=
"Test server"
private
val
testError
=
RuntimeException
(
"test error"
)
private
val
testDate
=
OffsetDateTime
.
of
(
LocalDateTime
.
of
(
2018
,
1
,
1
,
0
,
0
),
OffsetDateTime
.
now
().
offset
)
private
val
testDate
=
ZonedDateTime
.
of
(
LocalDateTime
.
of
(
2018
,
1
,
1
,
0
,
0
),
ZonedDateTime
.
now
().
offset
)
private
val
testUser
=
User
(
id
=
1L
,
username
=
""
,
...
...
build.gradle.kts
View file @
c22a4e22
...
...
@@ -5,7 +5,7 @@ buildscript {
maven
{
url
=
uri
(
"https://maven.fabric.io/public"
)
}
}
dependencies
{
classpath
(
"com.android.tools.build:gradle:3.4.
0
"
)
classpath
(
"com.android.tools.build:gradle:3.4.
1
"
)
classpath
(
"org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31"
)
classpath
(
"com.google.gms:google-services:4.2.0"
)
classpath
(
"io.fabric.tools:gradle:1.29.0"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment