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

Merge branch 'develop'

parents 17c2dbde 2cc0cbef
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 137 additions and 102 deletions
Loading
Loading
@@ -21,4 +21,4 @@ stages:
build:
stage: build
script:
- ./gradlew testFdroidDevDebug
\ No newline at end of file
- ./gradlew testFdroidDebug
\ No newline at end of file
Loading
Loading
@@ -18,8 +18,8 @@ apply plugin: 'io.fabric'
 
def versionMajor = 2
def versionMinor = 4
def versionPatch = 4
def versionBuild = 1 // bump for dogfood builds, public betas, etc.
def versionPatch = 5
def versionBuild = 0 // bump for dogfood builds, public betas, etc.
 
android {
compileSdkVersion 25
Loading
Loading
@@ -42,25 +42,12 @@ android {
multiDexEnabled true
}
 
flavorDimensions "TYPE", "API"
productFlavors {
 
// https://developer.android.com/tools/building/multidex.html#dev-build
dev {
dimension "API"
minSdkVersion 21
}
prod {
dimension "API"
}
normal {
dimension "TYPE"
}
 
fdroid {
dimension "TYPE"
}
}
 
Loading
Loading
@@ -86,15 +73,15 @@ android {
}
 
ext {
supportLibVersion = '25.1.1'
retrofitVersion = '2.1.0'
supportLibVersion = '25.3.0'
retrofitVersion = '2.2.0'
okHttpVersion = '3.6.0'
butterknifeVersion = '8.5.1'
loganSquareVersion = '1.3.7'
parcelerVersion = '1.1.6'
reptarVersion = '2.2.1'
reptarVersion = '2.4.1'
adapterLayout = '1.1.0'
materialDialogsVersion = '0.9.3.0'
materialDialogsVersion = '0.9.4.2'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
Loading
Loading
@@ -102,6 +89,7 @@ dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
 
compile "com.android.support:appcompat-v7:$supportLibVersion"
compile "com.android.support:support-v13:$supportLibVersion"
compile "com.android.support:design:$supportLibVersion"
compile "com.android.support:recyclerview-v7:$supportLibVersion"
compile "com.android.support:cardview-v7:$supportLibVersion"
Loading
Loading
@@ -116,6 +104,7 @@ dependencies {
exclude group: 'stax', module: 'stax'
}
compile "com.squareup.retrofit2:converter-scalars:$retrofitVersion"
compile "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion"
compile "com.squareup.okhttp3:okhttp:$okHttpVersion"
compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
compile 'com.squareup.picasso:picasso:2.5.2'
Loading
Loading
@@ -125,7 +114,6 @@ dependencies {
compile "com.bluelinelabs:logansquare:$loganSquareVersion"
kapt "com.bluelinelabs:logansquare-compiler:$loganSquareVersion"
 
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
compile "com.jakewharton:butterknife:$butterknifeVersion"
kapt "com.jakewharton:butterknife-compiler:$butterknifeVersion"
Loading
Loading
@@ -133,34 +121,34 @@ dependencies {
 
compile 'org.greenrobot:eventbus:3.0.0'
 
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
 
compile 'com.trello.rxlifecycle2:rxlifecycle-components:2.0.1'
 
compile 'net.danlew:android.joda:2.9.5.1'
compile 'net.danlew:android.joda:2.9.7'
 
compile "org.parceler:parceler-api:$parcelerVersion"
kapt "org.parceler:parceler:$parcelerVersion"
 
compile "com.github.Commit451.Reptar:reptar:$reptarVersion@aar"
compile "com.github.Commit451.Reptar:reptar-retrofit:$reptarVersion@aar"
compile "com.github.Commit451.Reptar:reptar-kotlin:$reptarVersion@aar"
compile 'com.github.Commit451:bypasses:1.0.4'
compile "com.github.Commit451.Reptar:reptar:$reptarVersion"
compile "com.github.Commit451.Reptar:reptar-retrofit:$reptarVersion"
compile "com.github.Commit451.Reptar:reptar-kotlin:$reptarVersion"
compile 'com.github.Commit451:bypasses:1.1.0'
compile 'com.github.Commit451:ElasticDragDismissLayout:1.0.4'
compile "com.github.Commit451.AdapterLayout:adapterlayout:$adapterLayout"
compile "com.github.Commit451.AdapterLayout:adapterflowlayout:$adapterLayout"
compile 'com.github.Commit451.Easel:easel:2.1.1@aar'
compile 'com.github.Commit451.Easel:easel:2.1.1'
compile 'com.github.Commit451:Gimbal:2.0.2'
compile 'com.github.Commit451:Teleprinter:1.0.2'
compile 'com.github.Commit451:BypassPicassoImageGetter:1.1.1'
compile 'com.github.Commit451:Jounce:1.0.1'
compile 'com.github.Commit451:Jounce:1.0.2'
compile 'com.github.Commit451:ForegroundViews:2.3.1'
compile 'com.github.Commit451:MorphTransitions:2.0.0'
compile 'com.github.Commit451.Alakazam:alakazam:1.0.1@aar'
compile 'com.github.Commit451.Alakazam:alakazam:1.0.1'
compile 'com.github.Commit451:Lift:1.2.0'
compile 'com.github.Commit451:OkioProGuardRules:1.11.0.0'
compile 'com.github.Commit451:RetrofitProguardRules:2.1.0.0'
compile 'com.github.Commit451:RetrofitProguardRules:2.2.0.0'
compile 'com.github.Commit451:LoganSquareProGuardRules:1.3.7.0'
compile 'com.github.Commit451:EventBusProGuardRules:3.0.0.0'
 
Loading
Loading
@@ -172,13 +160,11 @@ dependencies {
 
compile 'com.github.ivbaranov:materiallettericon:0.2.2'
 
compile 'com.github.johnkil.android-robototextview:robototextview:2.5.1'
compile 'com.github.johnkil.android-robototextview:robototextview:3.0.0'
 
compile 'com.github.alorma:diff-textview:1.3.0'
 
compile 'com.wdullaer:materialdatetimepicker:3.1.1'
compile 'com.wefika:flowlayout:0.4.1'
compile 'com.wdullaer:materialdatetimepicker:3.1.3'
 
compile 'com.github.novoda:simple-chrome-custom-tabs:0.1.4'
 
Loading
Loading
@@ -187,7 +173,7 @@ dependencies {
 
compile 'de.hdodenhof:circleimageview:2.1.0'
 
compile('com.vdurmont:emoji-java:3.1.3') {
compile('com.vdurmont:emoji-java:3.2.0') {
exclude group: 'org.json', module: 'json'
}
 
Loading
Loading
@@ -197,7 +183,7 @@ dependencies {
transitive = true;
}
 
normalCompile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
normalCompile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
transitive = true;
}
 
Loading
Loading
@@ -206,5 +192,5 @@ dependencies {
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5'
 
testCompile 'junit:junit:4.12'
testCompile 'org.robolectric:robolectric:3.2.2'
testCompile 'org.robolectric:robolectric:3.3.1'
}
Loading
Loading
@@ -98,6 +98,8 @@
android:name=".activity.AttachActivity"
android:theme="@style/Activity.Translucent" />
 
<activity android:name=".activity.DebugActivity" />
<activity
android:name=".activity.RoutingActivity"
android:launchMode="singleTask"
Loading
Loading
@@ -150,6 +152,11 @@
android:resource="@xml/widget_project_feed" />
</receiver>
 
<service
android:name=".widget.ProjectFeedWidgetService"
android:exported="false"
android:permission="android.permission.BIND_REMOTEVIEWS" />
</application>
 
</manifest>
\ No newline at end of file
Loading
Loading
@@ -10,7 +10,6 @@ import android.support.design.widget.TextInputLayout
import android.support.v7.app.AlertDialog
import android.support.v7.widget.SwitchCompat
import android.support.v7.widget.Toolbar
import android.text.TextUtils
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
Loading
Loading
@@ -28,6 +27,7 @@ import com.commit451.gitlab.adapter.AssigneeSpinnerAdapter
import com.commit451.gitlab.adapter.MilestoneSpinnerAdapter
import com.commit451.gitlab.event.IssueChangedEvent
import com.commit451.gitlab.event.IssueCreatedEvent
import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.*
import com.commit451.gitlab.navigation.Navigator
Loading
Loading
@@ -144,7 +144,7 @@ class AddIssueActivity : MorphActivity() {
spinnerMilestone.visibility = View.GONE
}
 
override fun responseSuccess(milestones: List<Milestone>) {
override fun responseNonNullSuccess(milestones: List<Milestone>) {
progressMilestone.visibility = View.GONE
spinnerMilestone.visibility = View.VISIBLE
val maybeNullMilestones = mutableListOf<Milestone?>()
Loading
Loading
@@ -168,7 +168,7 @@ class AddIssueActivity : MorphActivity() {
progressAssignee.visibility = View.GONE
}
 
override fun responseSuccess(members: List<Member>) {
override fun responseNonNullSuccess(members: List<Member>) {
this@AddIssueActivity.members.addAll(members)
if (project.belongsToGroup()) {
Timber.d("Project belongs to a group, loading those users too")
Loading
Loading
@@ -182,7 +182,7 @@ class AddIssueActivity : MorphActivity() {
progressAssignee.visibility = View.GONE
}
 
override fun responseSuccess(members: List<Member>) {
override fun responseNonNullSuccess(members: List<Member>) {
this@AddIssueActivity.members.addAll(members)
setAssignees()
}
Loading
Loading
@@ -218,10 +218,10 @@ class AddIssueActivity : MorphActivity() {
}
 
private fun bindIssue() {
if (!TextUtils.isEmpty(issue!!.title)) {
if (!issue?.title.isNullOrEmpty()) {
textInputLayoutTitle.editText!!.setText(issue!!.title)
}
if (!TextUtils.isEmpty(issue!!.description)) {
if (!issue?.description.isNullOrEmpty()) {
textDescription.setText(issue!!.description)
}
switchConfidential.isChecked = issue!!.isConfidential
Loading
Loading
@@ -278,9 +278,8 @@ class AddIssueActivity : MorphActivity() {
}
 
private fun save() {
if (!TextUtils.isEmpty(textInputLayoutTitle.editText!!.text)) {
if (textInputLayoutTitle.checkValid()) {
teleprinter.hideKeyboard()
textInputLayoutTitle.error = null
showLoading()
var assigneeId: Long? = null
if (spinnerAssignee.adapter != null) {
Loading
Loading
@@ -312,8 +311,6 @@ class AddIssueActivity : MorphActivity() {
milestoneId,
labelsCommaSeperated,
switchConfidential.isChecked)
} else {
textInputLayoutTitle.error = getString(R.string.required_field)
}
}
 
Loading
Loading
Loading
Loading
@@ -7,7 +7,6 @@ import android.os.Parcelable
import android.support.design.widget.Snackbar
import android.support.design.widget.TextInputLayout
import android.support.v7.widget.Toolbar
import android.text.TextUtils
import android.view.View
import android.widget.Button
import android.widget.EditText
Loading
Loading
@@ -20,6 +19,7 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.event.MilestoneChangedEvent
import com.commit451.gitlab.event.MilestoneCreatedEvent
import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Milestone
import com.commit451.gitlab.rx.CustomSingleObserver
Loading
Loading
@@ -115,8 +115,7 @@ class AddMilestoneActivity : MorphActivity() {
 
fun createMilestone() {
teleprinter.hideKeyboard()
if (TextUtils.isEmpty(textTitle.text)) {
textInputLayoutTitle.error = getString(R.string.required_field)
if (!textInputLayoutTitle.checkValid()) {
return
}
 
Loading
Loading
Loading
Loading
@@ -9,7 +9,6 @@ import android.support.annotation.ColorInt
import android.support.design.widget.Snackbar
import android.support.design.widget.TextInputLayout
import android.support.v7.widget.Toolbar
import android.text.TextUtils
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
Loading
Loading
@@ -21,13 +20,14 @@ import com.afollestad.materialdialogs.color.ColorChooserDialog
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.extension.text
import com.commit451.gitlab.model.api.Label
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.util.ColorUtil
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import org.parceler.Parcels
import retrofit2.HttpException
import retrofit2.Response
import timber.log.Timber
 
Loading
Loading
@@ -105,9 +105,9 @@ class AddNewLabelActivity : BaseActivity(), ColorChooserDialog.ColorCallback {
.show()
return
}
val title = textInputLayoutTitle.editText!!.text.toString()
val title = textInputLayoutTitle.text()
var description: String? = null
if (!TextUtils.isEmpty(textDescription.text)) {
if (!textDescription.text.isNullOrEmpty()) {
description = textDescription.text.toString()
}
var color: String? = null
Loading
Loading
@@ -136,7 +136,7 @@ class AddNewLabelActivity : BaseActivity(), ColorChooserDialog.ColorCallback {
}
}
 
override fun responseSuccess(label: Label) {
override fun responseNonNullSuccess(label: Label) {
val data = Intent()
data.putExtra(KEY_NEW_LABEL, Parcels.wrap(label))
setResult(Activity.RESULT_OK, data)
Loading
Loading
Loading
Loading
@@ -10,7 +10,6 @@ import android.support.v4.widget.SwipeRefreshLayout
import android.support.v7.widget.GridLayoutManager
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.Toolbar
import android.text.TextUtils
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
Loading
Loading
@@ -29,9 +28,9 @@ import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.util.LinkHeaderParser
import com.commit451.gitlab.viewHolder.UserViewHolder
import com.commit451.teleprinter.Teleprinter
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException
import io.reactivex.Single
import org.parceler.Parcels
import retrofit2.HttpException
import retrofit2.Response
import timber.log.Timber
 
Loading
Loading
@@ -87,8 +86,8 @@ class AddUserActivity : MorphActivity() {
}
 
@OnEditorAction(R.id.search)
internal fun onEditorAction(): Boolean {
if (!TextUtils.isEmpty(textSearch.text)) {
fun onEditorAction(): Boolean {
if (!textSearch.text.isNullOrEmpty()) {
query = textSearch.text.toString()
loadData()
}
Loading
Loading
@@ -96,8 +95,8 @@ class AddUserActivity : MorphActivity() {
}
 
@OnTextChanged(R.id.search)
internal fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
if (TextUtils.isEmpty(s)) {
fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
if (s.isNullOrEmpty()) {
buttonClear.animate()
.alpha(0.0f)
.withEndAction(HideRunnable(buttonClear))
Loading
Loading
@@ -169,7 +168,7 @@ class AddUserActivity : MorphActivity() {
.show()
}
 
override fun responseSuccess(users: List<UserBasic>) {
override fun responseNonNullSuccess(users: List<UserBasic>) {
swipeRefreshLayout.isRefreshing = false
loading = false
adapter.setData(users)
Loading
Loading
@@ -192,7 +191,7 @@ class AddUserActivity : MorphActivity() {
adapter.setLoading(false)
}
 
override fun responseSuccess(users: List<UserBasic>) {
override fun responseNonNullSuccess(users: List<UserBasic>) {
loading = false
adapter.setLoading(false)
adapter.addData(users)
Loading
Loading
@@ -217,7 +216,7 @@ class AddUserActivity : MorphActivity() {
.show()
}
 
override fun responseSuccess(member: Member) {
override fun responseNonNullSuccess(member: Member) {
Snackbar.make(root, R.string.user_added_successfully, Snackbar.LENGTH_SHORT)
.show()
dialogAccess.dismiss()
Loading
Loading
package com.commit451.gitlab.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.support.v7.widget.Toolbar
import android.view.ViewGroup
import android.widget.TextView
import butterknife.BindView
import butterknife.ButterKnife
import com.commit451.gitlab.R
/**
* Allows some debugging
*/
class DebugActivity : BaseActivity() {
companion object {
fun newIntent(context: Context): Intent {
val intent = Intent(context, DebugActivity::class.java)
return intent
}
}
@BindView(R.id.root) lateinit var root: ViewGroup
@BindView(R.id.toolbar) lateinit var toolbar: Toolbar
@BindView(R.id.text) lateinit var text: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_debug)
ButterKnife.bind(this)
toolbar.title = "Here Be Dragons"
toolbar.setNavigationIcon(R.drawable.ic_back_24dp)
toolbar.setNavigationOnClickListener { onBackPressed() }
}
}
Loading
Loading
@@ -282,11 +282,12 @@ class FileActivity : BaseActivity() {
 
val intent = Intent(Intent.ACTION_VIEW)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
intent.data = Uri.fromFile(file)
 
val extension = fileExtension(file.name)
if (extension != null) {
intent.setTypeAndNormalize(MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension))
intent.setDataAndType(Uri.fromFile(file), MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension))
} else {
intent.data = Uri.fromFile(file)
}
 
try {
Loading
Loading
Loading
Loading
@@ -115,7 +115,7 @@ class GroupsActivity : BaseActivity() {
textMessage.setText(R.string.connection_error)
}
 
override fun responseSuccess(groups: List<Group>) {
override fun responseNonNullSuccess(groups: List<Group>) {
loading = false
swipeRefreshLayout.isRefreshing = false
if (groups.isEmpty()) {
Loading
Loading
@@ -151,7 +151,7 @@ class GroupsActivity : BaseActivity() {
loading = false
}
 
override fun responseSuccess(groups: List<Group>) {
override fun responseNonNullSuccess(groups: List<Group>) {
loading = false
adapterGroup.addGroups(groups)
nextPageUrl = LinkHeaderParser.parse(response()).next
Loading
Loading
Loading
Loading
@@ -271,7 +271,7 @@ class IssueActivity : BaseActivity() {
.show()
}
 
override fun responseSuccess(notes: List<Note>) {
override fun responseNonNullSuccess(notes: List<Note>) {
loading = false
swipeRefreshLayout.isRefreshing = false
nextPageUrl = LinkHeaderParser.parse(response()).next
Loading
Loading
@@ -295,7 +295,7 @@ class IssueActivity : BaseActivity() {
adapterIssueDetails.setLoading(false)
}
 
override fun responseSuccess(notes: List<Note>) {
override fun responseNonNullSuccess(notes: List<Note>) {
loading = false
adapterIssueDetails.setLoading(false)
nextPageUrl = LinkHeaderParser.parse(response()).next
Loading
Loading
Loading
Loading
@@ -11,6 +11,7 @@ import android.support.design.widget.Snackbar
import android.support.design.widget.TextInputLayout
import android.support.v7.widget.Toolbar
import android.text.method.LinkMovementMethod
import android.util.Patterns
import android.view.View
import android.widget.EditText
import android.widget.TextView
Loading
Loading
@@ -24,12 +25,14 @@ import com.commit451.gitlab.BuildConfig
import com.commit451.gitlab.R
import com.commit451.gitlab.api.GitLabFactory
import com.commit451.gitlab.api.OkHttpClientFactory
import com.commit451.gitlab.api.request.SessionRequest
import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.dialog.HttpLoginDialog
import com.commit451.gitlab.event.LoginEvent
import com.commit451.gitlab.event.ReloadDataEvent
import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.extension.text
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.model.api.Message
import com.commit451.gitlab.model.api.UserFull
Loading
Loading
@@ -41,11 +44,10 @@ import com.commit451.gitlab.ssl.CustomKeyManager
import com.commit451.gitlab.ssl.X509CertificateException
import com.commit451.gitlab.ssl.X509Util
import com.commit451.teleprinter.Teleprinter
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException
import io.reactivex.Single
import okhttp3.Credentials
import okhttp3.HttpUrl
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.HttpException
import retrofit2.Response
import timber.log.Timber
import java.io.IOException
Loading
Loading
@@ -90,6 +92,9 @@ class LoginActivity : BaseActivity() {
lateinit var teleprinter: Teleprinter
 
var isNormalLogin = true
val emailPattern : Pattern by lazy {
Patterns.EMAIL_ADDRESS
}
var account: Account = Account()
 
@OnEditorAction(R.id.password_input, R.id.token_input)
Loading
Loading
@@ -216,20 +221,24 @@ class LoginActivity : BaseActivity() {
}
 
fun connectByAuth() {
val request = SessionRequest()
request.setPassword(textInputLayoutPassword.text())
val usernameOrEmail = textInputLayoutUser.text()
if (emailPattern.matcher(usernameOrEmail).matches()) {
request.setEmail(usernameOrEmail)
} else {
request.setLogin(usernameOrEmail)
}
attemptLogin(request)
}
fun attemptLogin(request: SessionRequest) {
val gitlabClientBuilder = OkHttpClientFactory.create(account)
if (BuildConfig.DEBUG) {
gitlabClientBuilder.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
}
val gitLab = GitLabFactory.create(account, gitlabClientBuilder.build())
if (textUser.text.toString().contains("@")) {
attemptLogin(gitLab.loginWithEmail(textUser.text.toString(), textPassword.text.toString()))
} else {
attemptLogin(gitLab.loginWithEmail(textUser.text.toString(), textPassword.text.toString()))
}
}
fun attemptLogin(observable: Single<Response<UserLogin>>) {
observable
gitLab.login(request)
.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<UserLogin>() {
 
Loading
Loading
@@ -242,7 +251,7 @@ class LoginActivity : BaseActivity() {
}
}
 
override fun responseSuccess(userLogin: UserLogin) {
override fun responseNonNullSuccess(userLogin: UserLogin) {
account.privateToken = userLogin.privateToken
loadUser()
}
Loading
Loading
@@ -341,7 +350,7 @@ class LoginActivity : BaseActivity() {
}
}
 
override fun responseSuccess(userFull: UserFull) {
override fun responseNonNullSuccess(userFull: UserFull) {
progress.visibility = View.GONE
account.user = userFull
account.lastUsed = Date()
Loading
Loading
Loading
Loading
@@ -20,8 +20,8 @@ import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.MergeRequest
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException
import org.parceler.Parcels
import retrofit2.HttpException
import timber.log.Timber
 
/**
Loading
Loading
@@ -105,7 +105,7 @@ class MergeRequestActivity : BaseActivity() {
.show()
}
 
override fun responseSuccess(mergeRequest: MergeRequest) {
override fun responseNonNullSuccess(mergeRequest: MergeRequest) {
progress.visibility = View.GONE
Snackbar.make(root, R.string.merge_request_accepted, Snackbar.LENGTH_LONG)
.show()
Loading
Loading
Loading
Loading
@@ -155,7 +155,7 @@ class MilestoneActivity : BaseActivity() {
adapterMilestoneIssues.setIssues(null)
}
 
override fun responseSuccess(issues: List<Issue>) {
override fun responseNonNullSuccess(issues: List<Issue>) {
swipeRefreshLayout.isRefreshing = false
loading = false
 
Loading
Loading
@@ -191,7 +191,7 @@ class MilestoneActivity : BaseActivity() {
loading = false
}
 
override fun responseSuccess(issues: List<Issue>) {
override fun responseNonNullSuccess(issues: List<Issue>) {
loading = false
nextPageUrl = LinkHeaderParser.parse(response()).next
adapterMilestoneIssues.addIssues(issues)
Loading
Loading
Loading
Loading
@@ -22,6 +22,7 @@ import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.ProjectSectionsPagerAdapter
import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.event.ProjectReloadEvent
import com.commit451.gitlab.extension.getParcelerParcelable
import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.fragment.BaseFragment
import com.commit451.gitlab.model.Ref
Loading
Loading
@@ -119,7 +120,7 @@ class ProjectActivity : BaseActivity() {
Prefs.startingView = Prefs.STARTING_VIEW_PROJECTS
setContentView(R.layout.activity_project)
ButterKnife.bind(this)
var project: Project? = Parcels.unwrap<Project>(intent.getParcelableExtra<Parcelable>(EXTRA_PROJECT))
var project: Project? = intent.getParcelerParcelable(EXTRA_PROJECT)
 
if (savedInstanceState != null) {
project = Parcels.unwrap<Project>(savedInstanceState.getParcelable<Parcelable>(STATE_PROJECT))
Loading
Loading
Loading
Loading
@@ -6,7 +6,6 @@ import android.os.Bundle
import android.support.design.widget.TabLayout
import android.support.v4.view.ViewPager
import android.support.v7.widget.Toolbar
import android.text.TextUtils
import android.view.View
import android.widget.EditText
import butterknife.*
Loading
Loading
@@ -56,7 +55,7 @@ class SearchActivity : BaseActivity() {
 
@OnEditorAction(R.id.search)
fun onSearchEditorAction(): Boolean {
if (TextUtils.isEmpty(textSearch.text)) {
if (textSearch.text.isNullOrEmpty()) {
textSearch.setText("labcoat")
}
search()
Loading
Loading
@@ -66,7 +65,7 @@ class SearchActivity : BaseActivity() {
 
@OnTextChanged(R.id.search)
fun onSearchTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (TextUtils.isEmpty(s)) {
if (s.isNullOrEmpty()) {
buttonClear.animate().alpha(0.0f).withEndAction { buttonClear.visibility = View.GONE }
} else if (count == 1) {
buttonClear.visibility = View.VISIBLE
Loading
Loading
Loading
Loading
@@ -54,6 +54,10 @@ class TodosActivity : BaseActivity() {
App.bus().unregister(this)
}
 
override fun hasBrowsableLinks(): Boolean {
return true
}
@Subscribe
fun onEvent(event: CloseDrawerEvent) {
drawerLayout.closeDrawers()
Loading
Loading
Loading
Loading
@@ -3,9 +3,9 @@ package com.commit451.gitlab.api
import android.support.annotation.VisibleForTesting
import com.commit451.gitlab.model.Account
import com.github.aurae.retrofit2.LoganSquareConverterFactory
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.scalars.ScalarsConverterFactory
 
/**
Loading
Loading
Loading
Loading
@@ -2,9 +2,9 @@ package com.commit451.gitlab.api
 
import com.commit451.gitlab.api.rss.SimpleXmlPersisterFactory
import com.commit451.gitlab.model.Account
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.simplexml.SimpleXmlConverterFactory
 
/**
Loading
Loading
package com.commit451.gitlab.api
 
import com.commit451.gitlab.api.request.SessionRequest
import com.commit451.gitlab.model.api.*
import io.reactivex.Single
import okhttp3.MultipartBody
Loading
Loading
@@ -19,15 +20,8 @@ interface GitLabService {
 
/* --- LOGIN --- */
 
@FormUrlEncoded
@POST(API_VERSION + "/session")
fun loginWithUsername(@Field("login") login: String,
@Field("password") password: String): Single<Response<UserLogin>>
@FormUrlEncoded
@POST(API_VERSION + "/session")
fun loginWithEmail(@Field("email") email: String,
@Field("password") password: String): Single<Response<UserLogin>>
fun login(@Body request: SessionRequest): Single<Response<UserLogin>>
 
/* --- USERS --- */
 
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