Skip to content
Snippets Groups Projects
Commit a547c5d7 authored by Jawnnypoo's avatar Jawnnypoo
Browse files

LoganSquare -> Moshi

parent ad4cafdd
No related branches found
No related tags found
No related merge requests found
Showing
with 178 additions and 176 deletions
Loading
Loading
@@ -97,7 +97,6 @@ ext {
retrofitVersion = '2.3.0'
okHttpVersion = '3.8.1'
butterknifeVersion = '8.7.0'
loganSquareVersion = '1.3.7'
parcelerVersion = '1.1.9'
reptarVersion = '2.5.0'
adapterLayout = '1.1.1'
Loading
Loading
@@ -119,7 +118,7 @@ dependencies {
implementation "com.android.support:cardview-v7:$supportLibVersion"
implementation "com.android.support:palette-v7:$supportLibVersion"
implementation "com.android.support:customtabs:$supportLibVersion"
implementation 'com.android.support:multidex:1.0.1'
implementation 'com.android.support:multidex:1.0.2'
 
implementation 'com.google.code.findbugs:jsr305:3.0.2'
 
Loading
Loading
@@ -131,14 +130,11 @@ dependencies {
}
implementation "com.squareup.retrofit2:converter-scalars:$retrofitVersion"
implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion"
implementation "com.squareup.retrofit2:converter-moshi:$retrofitVersion"
implementation "com.squareup.okhttp3:okhttp:$okHttpVersion"
implementation "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.github.aurae.retrofit2:converter-logansquare:1.4.1'
implementation "com.bluelinelabs:logansquare:$loganSquareVersion"
kapt "com.bluelinelabs:logansquare-compiler:$loganSquareVersion"
implementation 'com.squareup.moshi:moshi:1.5.0'
 
implementation 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
implementation "com.jakewharton:butterknife:$butterknifeVersion"
Loading
Loading
@@ -185,7 +181,7 @@ dependencies {
implementation "com.github.Commit451.Addendum:addendum:$addendumVersion"
implementation "com.github.Commit451.Addendum:addendum-parceler:$addendumVersion"
 
implementation 'com.github.chrisbanes:PhotoView:2.1.2'
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
 
implementation 'me.zhanghai.android.materialprogressbar:library:1.4.1'
 
Loading
Loading
@@ -223,7 +219,7 @@ dependencies {
testImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion"
 
testImplementation 'junit:junit:4.12'
testImplementation 'org.robolectric:robolectric:3.3.2'
testImplementation 'org.robolectric:robolectric:3.4'
testImplementation('org.threeten:threetenbp:1.3.6') {
exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
}
Loading
Loading
Loading
Loading
@@ -18,6 +18,7 @@ import com.commit451.addendum.parceler.putParcelerParcelableExtra
import com.commit451.easel.Easel
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.api.converter.DashDateAdapter
import com.commit451.gitlab.event.MilestoneChangedEvent
import com.commit451.gitlab.event.MilestoneCreatedEvent
import com.commit451.gitlab.extension.checkValid
Loading
Loading
@@ -122,7 +123,7 @@ class AddMilestoneActivity : MorphActivity() {
progress.visibility = View.VISIBLE
var dueDate: String? = null
if (currentDate != null) {
dueDate = Milestone.DUE_DATE_FORMAT.format(currentDate)
dueDate = DashDateAdapter.format.format(currentDate)
}
 
if (milestone == null) {
Loading
Loading
@@ -168,7 +169,7 @@ class AddMilestoneActivity : MorphActivity() {
}
 
fun bind(date: Date) {
buttonDueDate.text = Milestone.DUE_DATE_FORMAT.format(date)
buttonDueDate.text = DashDateAdapter.format.format(date)
}
 
fun bind(milestone: Milestone) {
Loading
Loading
Loading
Loading
@@ -19,12 +19,12 @@ import butterknife.BindView
import butterknife.ButterKnife
import butterknife.OnClick
import butterknife.OnEditorAction
import com.bluelinelabs.logansquare.LoganSquare
import com.commit451.gitlab.App
import com.commit451.gitlab.BuildConfig
import com.commit451.gitlab.R
import com.commit451.gitlab.api.GitLab
import com.commit451.gitlab.api.GitLabFactory
import com.commit451.gitlab.api.MoshiProvider
import com.commit451.gitlab.api.OkHttpClientFactory
import com.commit451.gitlab.api.request.SessionRequest
import com.commit451.gitlab.data.Prefs
Loading
Loading
@@ -225,12 +225,12 @@ class LoginActivity : BaseActivity() {
 
fun connectByAuth() {
val request = SessionRequest()
request.setPassword(textInputLayoutPassword.text())
request.password = textInputLayoutPassword.text()
val usernameOrEmail = textInputLayoutUser.text()
if (emailPattern.matcher(usernameOrEmail).matches()) {
request.setEmail(usernameOrEmail)
request.email = usernameOrEmail
} else {
request.setLogin(usernameOrEmail)
request.login = usernameOrEmail
}
attemptLogin(request)
}
Loading
Loading
@@ -433,7 +433,9 @@ class LoginActivity : BaseActivity() {
}
var errorMessage = getString(R.string.login_unauthorized)
try {
val message = LoganSquare.parse(response.errorBody()!!.byteStream(), Message::class.java)
val adapter = MoshiProvider.moshi.adapter<Message>(Message::class.java)
val message = adapter.fromJson(response.errorBody()!!.string())
if (message != null && message.message != null) {
errorMessage = message.message
}
Loading
Loading
Loading
Loading
@@ -219,7 +219,7 @@ class ProjectActivity : BaseActivity() {
}
 
fun broadcastLoad() {
App.bus().post(ProjectReloadEvent(project!!, ref!!.ref))
App.bus().post(ProjectReloadEvent(project!!, ref!!.ref!!))
}
 
fun getRefRef(): String? {
Loading
Loading
package com.commit451.gitlab.api
 
import com.commit451.gitlab.model.Account
import com.squareup.moshi.Moshi
import okhttp3.OkHttpClient
 
/**
Loading
Loading
@@ -10,6 +11,8 @@ import okhttp3.OkHttpClient
class GitLab private constructor(val account: Account, val client: OkHttpClient, gitLabService: GitLabService, gitLabRss: GitLabRss): GitLabService by gitLabService,
GitLabRss by gitLabRss {
 
lateinit var moshi: Moshi
class Builder(private val account: Account) {
 
private var clientBuilder: OkHttpClient.Builder? = null
Loading
Loading
package com.commit451.gitlab.api
 
import com.commit451.gitlab.model.Account
import com.github.aurae.retrofit2.LoganSquareConverterFactory
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.moshi.MoshiConverterFactory
import retrofit2.converter.scalars.ScalarsConverterFactory
 
/**
Loading
Loading
@@ -30,7 +30,7 @@ object GitLabFactory {
.client(client)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(LoganSquareConverterFactory.create())
.addConverterFactory(MoshiConverterFactory.create(MoshiProvider.moshi))
 
return retrofitBuilder.build().create(GitLabService::class.java)
}
Loading
Loading
package com.commit451.gitlab.api
import com.commit451.gitlab.api.converter.DashDateAdapter
import com.squareup.moshi.Moshi
object MoshiProvider {
val moshi: Moshi by lazy {
Moshi.Builder()
.add(DashDateAdapter())
.build()
}
}
\ No newline at end of file
package com.commit451.gitlab.api.converter
import com.commit451.gitlab.model.api.Milestone
import com.squareup.moshi.FromJson
import com.squareup.moshi.JsonQualifier
import com.squareup.moshi.ToJson
import java.text.DateFormat
import java.text.SimpleDateFormat
import java.util.*
/**
* Converts due dates
*/
class DashDateAdapter {
companion object {
val format by lazy {
SimpleDateFormat("yyyy-MM-d", Locale.US)
}
}
@Retention(AnnotationRetention.RUNTIME)
@JsonQualifier
annotation class DueDate
@ToJson
fun toJson(@DueDate date: Date): String {
return format.format(date)
}
@FromJson
@DueDate
fun fromJson(json: String): Date {
return format.parse(json)
}
}
\ No newline at end of file
package com.commit451.gitlab.api.converter
import com.bluelinelabs.logansquare.typeconverters.DateTypeConverter
import com.commit451.gitlab.model.api.Milestone
import java.text.DateFormat
/**
* Converts due dates
*/
class DueDateTypeConverter : DateTypeConverter() {
override fun getDateFormat(): DateFormat {
return Milestone.DUE_DATE_FORMAT
}
}
\ No newline at end of file
package com.commit451.gitlab.api.request;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
/**
* Start a session
*/
@JsonObject
public class SessionRequest {
@JsonField(name = "email")
String email;
@JsonField(name = "login")
String login;
@JsonField(name = "password")
String password;
public SessionRequest setEmail(String email) {
this.email = email;
return this;
}
public SessionRequest setLogin(String login) {
this.login = login;
return this;
}
public SessionRequest setPassword(String password) {
this.password = password;
return this;
}
}
package com.commit451.gitlab.api.request
import com.squareup.moshi.Json
/**
* Start a session
*/
class SessionRequest {
@Json(name = "email")
var email: String? = null
@Json(name = "login")
var login: String? = null
@Json(name = "password")
var password: String? = null
}
Loading
Loading
@@ -5,10 +5,16 @@ import android.content.Context
import android.content.SharedPreferences
import android.preference.PreferenceManager
import android.support.annotation.IntDef
import com.bluelinelabs.logansquare.LoganSquare
import com.commit451.gitlab.api.MoshiProvider
import com.commit451.gitlab.model.Account
import java.io.IOException
import java.util.*
import com.squareup.moshi.Moshi
import com.squareup.moshi.JsonAdapter
import com.squareup.moshi.Types.newParameterizedType
import com.squareup.moshi.Types
 
/**
* Shared prefs things
Loading
Loading
@@ -40,12 +46,9 @@ object Prefs {
fun getAccounts(): MutableList<Account> {
val accountsJson = prefs.getString(KEY_ACCOUNTS, null)
if (!accountsJson.isNullOrEmpty()) {
try {
return LoganSquare.parseList(accountsJson, Account::class.java)
} catch (e: IOException) {
prefs.edit().remove(KEY_ACCOUNTS).apply()
}
return ArrayList()
val type = Types.newParameterizedType(List::class.java, Account::class.java)
val adapter = MoshiProvider.moshi.adapter<List<Account>>(type)
return adapter.fromJson(accountsJson)!!.toMutableList()
} else {
return ArrayList()
}
Loading
Loading
@@ -53,7 +56,9 @@ object Prefs {
 
fun setAccounts(accounts: List<Account>) {
try {
val json = LoganSquare.serialize<List<Account>>(accounts)
val type = Types.newParameterizedType(List::class.java, Account::class.java)
val adapter = MoshiProvider.moshi.adapter<List<Account>>(type)
val json = adapter.toJson(accounts)
prefs.edit()
.putString(KEY_ACCOUNTS, json)
.apply()
Loading
Loading
Loading
Loading
@@ -2,11 +2,10 @@ package com.commit451.gitlab.model;
 
import android.support.annotation.NonNull;
 
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
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;
 
Loading
Loading
@@ -19,7 +18,6 @@ import java.util.List;
* An account, stored locally, which references the needed info to connect to a server
*/
@Parcel
@JsonObject
public class Account implements Comparable<Account>{
 
@NonNull
Loading
Loading
@@ -30,21 +28,21 @@ public class Account implements Comparable<Account>{
return accounts;
}
 
@JsonField(name = "server_url")
@Json(name = "server_url")
String serverUrl;
@JsonField(name = "authorization_header")
@Json(name = "authorization_header")
String authorizationHeader;
@JsonField(name = "private_token")
@Json(name = "private_token")
String privateToken;
@JsonField(name = "trusted_certificate")
@Json(name = "trusted_certificate")
String trustedCertificate;
@JsonField(name = "trusted_hostname")
@Json(name = "trusted_hostname")
String trustedHostname;
@JsonField(name = "private_key_alias")
@Json(name = "private_key_alias")
String privateKeyAlias;
@JsonField(name = "user")
@Json(name = "user")
UserFull user;
@JsonField(name = "last_used")
@Json(name = "last_used")
Date lastUsed;
 
public Account() {}
Loading
Loading
package com.commit451.gitlab.model;
import android.support.annotation.IntDef;
import org.parceler.Parcel;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Local only model that references either a branch or a tag, and holds its type
*/
@Parcel
public class Ref {
@Retention(RetentionPolicy.SOURCE)
@IntDef({TYPE_BRANCH, TYPE_TAG})
public @interface Type {}
public static final int TYPE_BRANCH = 0;
public static final int TYPE_TAG = 1;
int type;
String ref;
protected Ref() {
}
public Ref(@Type int type, String ref) {
this.type = type;
this.ref = ref;
}
public int getType() {
return type;
}
public String getRef() {
return ref;
}
}
package com.commit451.gitlab.model
import android.support.annotation.IntDef
import org.parceler.Parcel
/**
* Local only model that references either a branch or a tag, and holds its type
*/
@Parcel
class Ref {
companion object {
const val TYPE_BRANCH = 0
const val TYPE_TAG = 1
}
@Retention(AnnotationRetention.SOURCE)
@IntDef(TYPE_BRANCH.toLong(), TYPE_TAG.toLong())
annotation class Type
var type: Int = 0
var ref: String? = null
constructor() {
}
constructor(@Type type: Int, ref: String) {
this.type = type
this.ref = ref
}
}
package com.commit451.gitlab.model.api;
 
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.squareup.moshi.Json;
 
import org.parceler.Parcel;
 
@JsonObject
@Parcel
public class ArtifactsFile {
 
@JsonField(name = "filename")
@Json(name = "filename")
String fileName;
@JsonField(name = "size")
@Json(name = "size")
long size;
 
public String getFileName() {
Loading
Loading
package com.commit451.gitlab.model.api;
 
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.squareup.moshi.Json;
 
import org.parceler.Parcel;
 
Loading
Loading
@@ -10,23 +9,22 @@ import java.util.Date;
/**
* http://docs.gitlab.com/ce/api/award_emoji.html
*/
@JsonObject
@Parcel
public class AwardEmoji {
 
@JsonField(name = "id")
@Json(name = "id")
String id;
@JsonField(name = "name")
@Json(name = "name")
String name;
@JsonField(name = "user")
@Json(name = "user")
UserBasic user;
@JsonField(name = "created_at")
@Json(name = "created_at")
Date createdAt;
@JsonField(name = "updated_at")
@Json(name = "updated_at")
Date updatedAt;
@JsonField(name = "awardable_id")
@Json(name = "awardable_id")
int awardableId;
@JsonField(name = "awardable_type")
@Json(name = "awardable_type")
String awardableType;
 
public String getId() {
Loading
Loading
package com.commit451.gitlab.model.api;
 
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.commit451.gitlab.util.ObjectUtil;
import com.squareup.moshi.Json;
 
import org.parceler.Parcel;
 
@Parcel
@JsonObject
public class Branch {
@JsonField(name = "name")
@Json(name = "name")
String name;
@JsonField(name = "protected")
@Json(name = "protected")
boolean isProtected;
 
public Branch() {}
Loading
Loading
package com.commit451.gitlab.model.api;
 
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.squareup.moshi.Json;
 
import org.parceler.Parcel;
 
Loading
Loading
@@ -11,38 +10,37 @@ import java.util.Date;
* Represents a build
*/
@Parcel
@JsonObject
public class Build {
 
@JsonField(name = "commit")
@Json(name = "commit")
RepositoryCommit commit;
@JsonField(name = "coverage")
@Json(name = "coverage")
String coverage;
@JsonField(name = "created_at")
@Json(name = "created_at")
Date createdAt;
@JsonField(name = "artifacts_file")
@Json(name = "artifacts_file")
ArtifactsFile artifactsFile;
@JsonField(name = "finished_at")
@Json(name = "finished_at")
Date finishedAt;
@JsonField(name = "id")
@Json(name = "id")
long id;
@JsonField(name = "name")
@Json(name = "name")
String name;
@JsonField(name = "ref")
@Json(name = "ref")
String ref;
@JsonField(name = "runner")
@Json(name = "runner")
Runner runner;
@JsonField(name = "pipeline")
@Json(name = "pipeline")
Pipeline pipeline;
@JsonField(name = "stage")
@Json(name = "stage")
String stage;
@JsonField(name = "started_at")
@Json(name = "started_at")
Date startedAt;
@JsonField(name = "status")
@Json(name = "status")
String status;
@JsonField(name = "tag")
@Json(name = "tag")
boolean tag;
@JsonField(name = "user")
@Json(name = "user")
User user;
 
public RepositoryCommit getCommit() {
Loading
Loading
package com.commit451.gitlab.model.api;
 
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.commit451.gitlab.util.ObjectUtil;
import com.squareup.moshi.Json;
 
import org.parceler.Parcel;
 
import java.util.Date;
@Parcel
@JsonObject
public class CommitUser {
@JsonField(name = "id")
@Json(name = "id")
String id;
@JsonField(name = "name")
@Json(name = "name")
String name;
@JsonField(name = "username")
@Json(name = "username")
String username;
@JsonField(name = "state")
@Json(name = "state")
String state;
@JsonField(name = "avatar_url")
@Json(name = "avatar_url")
String avatarUrl;
@JsonField(name = "web_url")
@Json(name = "web_url")
String webUrl;
 
public CommitUser() {}
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