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

Merge remote-tracking branch 'origin/develop'

parents cbd7ebc0 f5eb33a1
No related branches found
No related tags found
No related merge requests found
Showing
with 87 additions and 77 deletions
Change Log Change Log
========== ==========
   
Version 2.4.8
----------------------------
- Crash fixes related to viewing a project
Version 2.4.7 Version 2.4.7
---------------------------- ----------------------------
   
Loading
Loading
Loading
@@ -18,7 +18,7 @@ apply plugin: 'io.fabric'
Loading
@@ -18,7 +18,7 @@ apply plugin: 'io.fabric'
   
def versionMajor = 2 def versionMajor = 2
def versionMinor = 4 def versionMinor = 4
def versionPatch = 7 def versionPatch = 8
def versionBuild = 0 // bump for dogfood builds, public betas, etc. def versionBuild = 0 // bump for dogfood builds, public betas, etc.
   
android { android {
Loading
@@ -90,6 +90,10 @@ android {
Loading
@@ -90,6 +90,10 @@ android {
sourceSets { sourceSets {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
} }
packagingOptions {
exclude 'META-INF/MANIFEST.MF'
}
} }
   
ext { ext {
Loading
@@ -102,7 +106,7 @@ ext {
Loading
@@ -102,7 +106,7 @@ ext {
adapterLayout = '1.1.1' adapterLayout = '1.1.1'
materialDialogsVersion = '0.9.4.5' materialDialogsVersion = '0.9.4.5'
leakCanaryVersion = '1.5' leakCanaryVersion = '1.5'
addendumVersion = '1.3.1' addendumVersion = '1.4.0'
alakazamVersion = '1.0.1' alakazamVersion = '1.0.1'
moshiVersion = '1.5.0' moshiVersion = '1.5.0'
} }
Loading
Loading
Loading
@@ -50,6 +50,7 @@
Loading
@@ -50,6 +50,7 @@
-keepclasseswithmembers class * { -keepclasseswithmembers class * {
@com.squareup.moshi.* <methods>; @com.squareup.moshi.* <methods>;
} }
-keep @com.squareup.moshi.JsonQualifier interface *
   
# Custom rules # Custom rules
-keep class com.commit451.gitlab.ssl.CustomSSLSocketFactory -keep class com.commit451.gitlab.ssl.CustomSSLSocketFactory
\ No newline at end of file
Loading
@@ -74,7 +74,7 @@ open class App : Application() {
Loading
@@ -74,7 +74,7 @@ open class App : Application() {
   
SimpleChromeCustomTabs.initialize(this) SimpleChromeCustomTabs.initialize(this)
   
val accounts = Account.getAccounts() val accounts = Prefs.getAccounts()
if (!accounts.isEmpty()) { if (!accounts.isEmpty()) {
setAccount(accounts[0]) setAccount(accounts[0])
} }
Loading
Loading
Loading
@@ -116,7 +116,7 @@ class AboutActivity : BaseActivity() {
Loading
@@ -116,7 +116,7 @@ class AboutActivity : BaseActivity() {
   
override fun success(contributors: List<Contributor>) { override fun success(contributors: List<Contributor>) {
progress.visibility = View.GONE progress.visibility = View.GONE
addContributors(Contributor.groupContributors(contributors)) addContributors(contributors)
} }
}) })
progress.visibility = View.VISIBLE progress.visibility = View.VISIBLE
Loading
Loading
Loading
@@ -55,9 +55,10 @@ class ActivityActivity : BaseActivity() {
Loading
@@ -55,9 +55,10 @@ class ActivityActivity : BaseActivity() {
.appendPath("dashboard") .appendPath("dashboard")
.appendPath("projects.atom") .appendPath("projects.atom")
.build() .build()
Timber.d("Showing activity feed for: %s", feedUri.toString()) val feedUrl = feedUri.toString()
Timber.d("Showing activity feed for: %s", feedUrl)
   
feedFragment = FeedFragment.newInstance(feedUri) feedFragment = FeedFragment.newInstance(feedUrl)
supportFragmentManager.beginTransaction() supportFragmentManager.beginTransaction()
.replace(R.id.root_fragment, feedFragment, TAG_FEED_FRAGMENT) .replace(R.id.root_fragment, feedFragment, TAG_FEED_FRAGMENT)
.commit() .commit()
Loading
Loading
Loading
@@ -27,6 +27,7 @@ import com.commit451.gitlab.adapter.AssigneeSpinnerAdapter
Loading
@@ -27,6 +27,7 @@ import com.commit451.gitlab.adapter.AssigneeSpinnerAdapter
import com.commit451.gitlab.adapter.MilestoneSpinnerAdapter import com.commit451.gitlab.adapter.MilestoneSpinnerAdapter
import com.commit451.gitlab.event.IssueChangedEvent import com.commit451.gitlab.event.IssueChangedEvent
import com.commit451.gitlab.event.IssueCreatedEvent import com.commit451.gitlab.event.IssueCreatedEvent
import com.commit451.gitlab.extension.belongsToGroup
import com.commit451.gitlab.extension.checkValid import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.extension.setup import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.* import com.commit451.gitlab.model.api.*
Loading
@@ -82,7 +83,7 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -82,7 +83,7 @@ class AddIssueActivity : MorphActivity() {
   
lateinit var project: Project lateinit var project: Project
var issue: Issue? = null var issue: Issue? = null
lateinit var members: HashSet<Member> lateinit var members: HashSet<User>
   
@OnClick(R.id.text_add_labels) @OnClick(R.id.text_add_labels)
fun onAddLabelClicked() { fun onAddLabelClicked() {
Loading
@@ -98,7 +99,7 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -98,7 +99,7 @@ class AddIssueActivity : MorphActivity() {
   
project = intent.getParcelerParcelableExtra<Project>(KEY_PROJECT)!! project = intent.getParcelerParcelableExtra<Project>(KEY_PROJECT)!!
issue = intent.getParcelerParcelableExtra<Issue>(KEY_ISSUE) issue = intent.getParcelerParcelableExtra<Issue>(KEY_ISSUE)
members = HashSet<Member>() members = HashSet<User>()
adapterLabels = AddIssueLabelAdapter(object : AddIssueLabelAdapter.Listener { adapterLabels = AddIssueLabelAdapter(object : AddIssueLabelAdapter.Listener {
override fun onLabelClicked(label: Label) { override fun onLabelClicked(label: Label) {
AlertDialog.Builder(this@AddIssueActivity) AlertDialog.Builder(this@AddIssueActivity)
Loading
@@ -156,10 +157,10 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -156,10 +157,10 @@ class AddIssueActivity : MorphActivity() {
} }
}) })
App.get().gitLab.getProjectMembers(project.id) App.get().gitLab.getProjectMembers(project.id)
.compose(this.bindToLifecycle<Response<List<Member>>>()) .compose(this.bindToLifecycle<Response<List<User>>>())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CustomResponseSingleObserver<List<Member>>() { .subscribe(object : CustomResponseSingleObserver<List<User>>() {
   
override fun error(t: Throwable) { override fun error(t: Throwable) {
Timber.e(t) Timber.e(t)
Loading
@@ -167,13 +168,13 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -167,13 +168,13 @@ class AddIssueActivity : MorphActivity() {
progressAssignee.visibility = View.GONE progressAssignee.visibility = View.GONE
} }
   
override fun responseNonNullSuccess(members: List<Member>) { override fun responseNonNullSuccess(members: List<User>) {
this@AddIssueActivity.members.addAll(members) this@AddIssueActivity.members.addAll(members)
if (project.belongsToGroup()) { if (project.belongsToGroup()) {
Timber.d("Project belongs to a group, loading those users too") Timber.d("Project belongs to a group, loading those users too")
App.get().gitLab.getGroupMembers(project.namespace.id) App.get().gitLab.getGroupMembers(project.namespace.id)
.setup(bindToLifecycle()) .setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<List<Member>>() { .subscribe(object : CustomResponseSingleObserver<List<User>>() {
   
override fun error(t: Throwable) { override fun error(t: Throwable) {
Timber.e(t) Timber.e(t)
Loading
@@ -181,7 +182,7 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -181,7 +182,7 @@ class AddIssueActivity : MorphActivity() {
progressAssignee.visibility = View.GONE progressAssignee.visibility = View.GONE
} }
   
override fun responseNonNullSuccess(members: List<Member>) { override fun responseNonNullSuccess(members: List<User>) {
this@AddIssueActivity.members.addAll(members) this@AddIssueActivity.members.addAll(members)
setAssignees() setAssignees()
} }
Loading
@@ -240,7 +241,7 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -240,7 +241,7 @@ class AddIssueActivity : MorphActivity() {
if (projectLabels != null && !projectLabels.isEmpty() && issue != null && issue!!.labels != null) { if (projectLabels != null && !projectLabels.isEmpty() && issue != null && issue!!.labels != null) {
val currentLabels = ArrayList<Label>() val currentLabels = ArrayList<Label>()
for (label in projectLabels) { for (label in projectLabels) {
for (labelName in issue!!.labels) { for (labelName in issue!!.labels!!) {
if (labelName == label.name) { if (labelName == label.name) {
currentLabels.add(label) currentLabels.add(label)
} }
Loading
@@ -284,7 +285,7 @@ class AddIssueActivity : MorphActivity() {
Loading
@@ -284,7 +285,7 @@ class AddIssueActivity : MorphActivity() {
var assigneeId: Long? = null var assigneeId: Long? = null
if (spinnerAssignee.adapter != null) { if (spinnerAssignee.adapter != null) {
//the user did make a selection of some sort. So update it //the user did make a selection of some sort. So update it
val member = spinnerAssignee.selectedItem as? Member? val member = spinnerAssignee.selectedItem as? User?
if (member == null) { if (member == null) {
//Removes the assignment //Removes the assignment
assigneeId = 0L assigneeId = 0L
Loading
Loading
Loading
@@ -23,8 +23,7 @@ import com.commit451.gitlab.dialog.AccessDialog
Loading
@@ -23,8 +23,7 @@ import com.commit451.gitlab.dialog.AccessDialog
import com.commit451.gitlab.event.MemberAddedEvent import com.commit451.gitlab.event.MemberAddedEvent
import com.commit451.gitlab.extension.setup import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Group import com.commit451.gitlab.model.api.Group
import com.commit451.gitlab.model.api.Member import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.rx.CustomResponseSingleObserver import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.util.LinkHeaderParser import com.commit451.gitlab.util.LinkHeaderParser
import com.commit451.gitlab.viewHolder.UserViewHolder import com.commit451.gitlab.viewHolder.UserViewHolder
Loading
@@ -74,7 +73,7 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -74,7 +73,7 @@ class AddUserActivity : MorphActivity() {
var query: String? = null var query: String? = null
var nextPageUrl: Uri? = null var nextPageUrl: Uri? = null
var loading = false var loading = false
var selectedUser: UserBasic? = null var selectedUser: User? = null
   
@OnClick(R.id.clear) @OnClick(R.id.clear)
fun onClearClick() { fun onClearClick() {
Loading
@@ -127,7 +126,7 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -127,7 +126,7 @@ class AddUserActivity : MorphActivity() {
toolbar.setNavigationOnClickListener { onBackPressed() } toolbar.setNavigationOnClickListener { onBackPressed() }
   
adapter = UserAdapter(object : UserAdapter.Listener { adapter = UserAdapter(object : UserAdapter.Listener {
override fun onUserClicked(user: UserBasic, userViewHolder: UserViewHolder) { override fun onUserClicked(user: User, userViewHolder: UserViewHolder) {
selectedUser = user selectedUser = user
dialogAccess.show() dialogAccess.show()
} }
Loading
@@ -158,7 +157,7 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -158,7 +157,7 @@ class AddUserActivity : MorphActivity() {
loading = true loading = true
App.get().gitLab.searchUsers(query!!) App.get().gitLab.searchUsers(query!!)
.setup(bindToLifecycle()) .setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<List<UserBasic>>() { .subscribe(object : CustomResponseSingleObserver<List<User>>() {
   
override fun error(t: Throwable) { override fun error(t: Throwable) {
Timber.e(t) Timber.e(t)
Loading
@@ -168,7 +167,7 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -168,7 +167,7 @@ class AddUserActivity : MorphActivity() {
.show() .show()
} }
   
override fun responseNonNullSuccess(users: List<UserBasic>) { override fun responseNonNullSuccess(users: List<User>) {
swipeRefreshLayout.isRefreshing = false swipeRefreshLayout.isRefreshing = false
loading = false loading = false
adapter.setData(users) adapter.setData(users)
Loading
@@ -184,14 +183,14 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -184,14 +183,14 @@ class AddUserActivity : MorphActivity() {
Timber.d("loadMore " + nextPageUrl!!.toString() + " " + query) Timber.d("loadMore " + nextPageUrl!!.toString() + " " + query)
App.get().gitLab.searchUsers(nextPageUrl!!.toString(), query!!) App.get().gitLab.searchUsers(nextPageUrl!!.toString(), query!!)
.setup(bindToLifecycle()) .setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<List<UserBasic>>() { .subscribe(object : CustomResponseSingleObserver<List<User>>() {
   
override fun error(t: Throwable) { override fun error(t: Throwable) {
Timber.e(t) Timber.e(t)
adapter.setLoading(false) adapter.setLoading(false)
} }
   
override fun responseNonNullSuccess(users: List<UserBasic>) { override fun responseNonNullSuccess(users: List<User>) {
loading = false loading = false
adapter.setLoading(false) adapter.setLoading(false)
adapter.addData(users) adapter.addData(users)
Loading
@@ -200,9 +199,9 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -200,9 +199,9 @@ class AddUserActivity : MorphActivity() {
}) })
} }
   
private fun add(observable: Single<Response<Member>>) { private fun add(observable: Single<Response<User>>) {
observable.setup(bindToLifecycle()) observable.setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<Member>() { .subscribe(object : CustomResponseSingleObserver<User>() {
   
override fun error(t: Throwable) { override fun error(t: Throwable) {
Timber.e(t) Timber.e(t)
Loading
@@ -216,7 +215,7 @@ class AddUserActivity : MorphActivity() {
Loading
@@ -216,7 +215,7 @@ class AddUserActivity : MorphActivity() {
.show() .show()
} }
   
override fun responseNonNullSuccess(member: Member) { override fun responseNonNullSuccess(member: User) {
Snackbar.make(root, R.string.user_added_successfully, Snackbar.LENGTH_SHORT) Snackbar.make(root, R.string.user_added_successfully, Snackbar.LENGTH_SHORT)
.show() .show()
dialogAccess.dismiss() dialogAccess.dismiss()
Loading
Loading
Loading
@@ -20,7 +20,7 @@ import com.commit451.gitlab.App
Loading
@@ -20,7 +20,7 @@ import com.commit451.gitlab.App
import com.commit451.gitlab.R import com.commit451.gitlab.R
import com.commit451.gitlab.extension.setup import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.extension.toPart import com.commit451.gitlab.extension.toPart
import com.commit451.gitlab.model.api.FileUploadResponse import com.commit451.gitlab.api.response.FileUploadResponse
import com.commit451.gitlab.model.api.Project import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.rx.CustomSingleObserver import com.commit451.gitlab.rx.CustomSingleObserver
import pl.aprilapps.easyphotopicker.DefaultCallback import pl.aprilapps.easyphotopicker.DefaultCallback
Loading
Loading
Loading
@@ -196,10 +196,13 @@ class BuildActivity : BaseActivity() {
Loading
@@ -196,10 +196,13 @@ class BuildActivity : BaseActivity() {
} }
} }
   
private fun downloadBuild() { fun downloadBuild() {
val account = App.get().getAccount() val account = App.get().getAccount()
val downloadUrl = build.getDownloadBuildUrl(App.get().getAccount().serverUrl, project) val downloadUrl = build.getDownloadBuildUrl(App.get().getAccount().serverUrl!!, project)
Timber.d("Downloading build: " + downloadUrl) Timber.d("Downloading build: " + downloadUrl)
DownloadUtil.download(this@BuildActivity, account, downloadUrl, build.artifactsFile.fileName) val artifactsFileName = build.artifactsFile?.fileName
if (artifactsFileName != null) {
DownloadUtil.download(this, account, downloadUrl, artifactsFileName)
}
} }
} }
Loading
@@ -26,7 +26,6 @@ import com.commit451.gitlab.R
Loading
@@ -26,7 +26,6 @@ import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.GroupPagerAdapter import com.commit451.gitlab.adapter.GroupPagerAdapter
import com.commit451.gitlab.extension.setup import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Group import com.commit451.gitlab.model.api.Group
import com.commit451.gitlab.model.api.GroupDetail
import com.commit451.gitlab.rx.CustomSingleObserver import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.transformation.PaletteTransformation import com.commit451.gitlab.transformation.PaletteTransformation
import timber.log.Timber import timber.log.Timber
Loading
@@ -80,7 +79,7 @@ class GroupActivity : BaseActivity() {
Loading
@@ -80,7 +79,7 @@ class GroupActivity : BaseActivity() {
val groupId = intent.getLongExtra(KEY_GROUP_ID, -1) val groupId = intent.getLongExtra(KEY_GROUP_ID, -1)
App.get().gitLab.getGroup(groupId) App.get().gitLab.getGroup(groupId)
.setup(bindToLifecycle()) .setup(bindToLifecycle())
.subscribe(object : CustomSingleObserver<GroupDetail>() { .subscribe(object : CustomSingleObserver<Group>() {
   
override fun error(t: Throwable) { override fun error(t: Throwable) {
Timber.e(t) Timber.e(t)
Loading
@@ -88,7 +87,7 @@ class GroupActivity : BaseActivity() {
Loading
@@ -88,7 +87,7 @@ class GroupActivity : BaseActivity() {
showError() showError()
} }
   
override fun success(groupDetail: GroupDetail) { override fun success(groupDetail: Group) {
progress.visibility = View.GONE progress.visibility = View.GONE
bind(groupDetail) bind(groupDetail)
} }
Loading
Loading
Loading
@@ -23,11 +23,11 @@ import com.commit451.addendum.parceler.putParcelerParcelableExtra
Loading
@@ -23,11 +23,11 @@ import com.commit451.addendum.parceler.putParcelerParcelableExtra
import com.commit451.gitlab.App import com.commit451.gitlab.App
import com.commit451.gitlab.R import com.commit451.gitlab.R
import com.commit451.gitlab.adapter.IssueDetailsAdapter import com.commit451.gitlab.adapter.IssueDetailsAdapter
import com.commit451.gitlab.api.response.FileUploadResponse
import com.commit451.gitlab.event.IssueChangedEvent import com.commit451.gitlab.event.IssueChangedEvent
import com.commit451.gitlab.event.IssueReloadEvent import com.commit451.gitlab.event.IssueReloadEvent
import com.commit451.gitlab.extension.getUrl import com.commit451.gitlab.extension.getUrl
import com.commit451.gitlab.extension.setup import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.FileUploadResponse
import com.commit451.gitlab.model.api.Issue import com.commit451.gitlab.model.api.Issue
import com.commit451.gitlab.model.api.Note import com.commit451.gitlab.model.api.Note
import com.commit451.gitlab.model.api.Project import com.commit451.gitlab.model.api.Project
Loading
@@ -182,7 +182,7 @@ class IssueActivity : BaseActivity() {
Loading
@@ -182,7 +182,7 @@ class IssueActivity : BaseActivity() {
if (intent.hasExtra(EXTRA_SELECTED_ISSUE)) { if (intent.hasExtra(EXTRA_SELECTED_ISSUE)) {
project = intent.getParcelerParcelableExtra<Project>(EXTRA_PROJECT) project = intent.getParcelerParcelableExtra<Project>(EXTRA_PROJECT)
issue = intent.getParcelerParcelableExtra<Issue>(EXTRA_SELECTED_ISSUE) issue = intent.getParcelerParcelableExtra<Issue>(EXTRA_SELECTED_ISSUE)
adapterIssueDetails = IssueDetailsAdapter(this@IssueActivity, issue, project!!) adapterIssueDetails = IssueDetailsAdapter(issue, project!!)
listNotes.adapter = adapterIssueDetails listNotes.adapter = adapterIssueDetails
bindIssue() bindIssue()
bindProject() bindProject()
Loading
@@ -216,7 +216,7 @@ class IssueActivity : BaseActivity() {
Loading
@@ -216,7 +216,7 @@ class IssueActivity : BaseActivity() {
.show() .show()
} else { } else {
issue = issues[0] issue = issues[0]
adapterIssueDetails = IssueDetailsAdapter(this@IssueActivity, issue, project!!) adapterIssueDetails = IssueDetailsAdapter(issue, project!!)
listNotes.adapter = adapterIssueDetails listNotes.adapter = adapterIssueDetails
bindIssue() bindIssue()
bindProject() bindProject()
Loading
Loading
Loading
@@ -50,7 +50,7 @@ class LaunchActivity : BaseActivity() {
Loading
@@ -50,7 +50,7 @@ class LaunchActivity : BaseActivity() {
} }
   
private fun figureOutWhatToDo() { private fun figureOutWhatToDo() {
val accounts = Account.getAccounts() val accounts = Prefs.getAccounts()
if (accounts.isEmpty()) { if (accounts.isEmpty()) {
Navigator.navigateToLogin(this) Navigator.navigateToLogin(this)
finish() finish()
Loading
Loading
Loading
@@ -36,8 +36,7 @@ import com.commit451.gitlab.extension.setup
Loading
@@ -36,8 +36,7 @@ import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.extension.text import com.commit451.gitlab.extension.text
import com.commit451.gitlab.model.Account import com.commit451.gitlab.model.Account
import com.commit451.gitlab.model.api.Message import com.commit451.gitlab.model.api.Message
import com.commit451.gitlab.model.api.UserFull import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.model.api.UserLogin
import com.commit451.gitlab.navigation.Navigator import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomResponseSingleObserver import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.ssl.CustomHostnameVerifier import com.commit451.gitlab.ssl.CustomHostnameVerifier
Loading
@@ -245,7 +244,7 @@ class LoginActivity : BaseActivity() {
Loading
@@ -245,7 +244,7 @@ class LoginActivity : BaseActivity() {
   
gitLab!!.login(request) gitLab!!.login(request)
.setup(bindToLifecycle()) .setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<UserLogin>() { .subscribe(object : CustomResponseSingleObserver<User>() {
   
override fun error(e: Throwable) { override fun error(e: Throwable) {
Timber.e(e) Timber.e(e)
Loading
@@ -256,7 +255,7 @@ class LoginActivity : BaseActivity() {
Loading
@@ -256,7 +255,7 @@ class LoginActivity : BaseActivity() {
} }
} }
   
override fun responseNonNullSuccess(userLogin: UserLogin) { override fun responseNonNullSuccess(userLogin: User) {
account.privateToken = userLogin.privateToken account.privateToken = userLogin.privateToken
loadUser() loadUser()
} }
Loading
@@ -345,7 +344,7 @@ class LoginActivity : BaseActivity() {
Loading
@@ -345,7 +344,7 @@ class LoginActivity : BaseActivity() {
val gitLab = GitLabFactory.create(account, gitlabClientBuilder.build()) val gitLab = GitLabFactory.create(account, gitlabClientBuilder.build())
gitLab.getThisUser() gitLab.getThisUser()
.setup(bindToLifecycle()) .setup(bindToLifecycle())
.subscribe(object : CustomResponseSingleObserver<UserFull>() { .subscribe(object : CustomResponseSingleObserver<User>() {
   
override fun error(e: Throwable) { override fun error(e: Throwable) {
Timber.e(e) Timber.e(e)
Loading
@@ -356,7 +355,7 @@ class LoginActivity : BaseActivity() {
Loading
@@ -356,7 +355,7 @@ class LoginActivity : BaseActivity() {
} }
} }
   
override fun responseNonNullSuccess(userFull: UserFull) { override fun responseNonNullSuccess(userFull: User) {
progress.visibility = View.GONE progress.visibility = View.GONE
account.user = userFull account.user = userFull
account.lastUsed = Date() account.lastUsed = Date()
Loading
@@ -486,8 +485,8 @@ class LoginActivity : BaseActivity() {
Loading
@@ -486,8 +485,8 @@ class LoginActivity : BaseActivity() {
fun isAlreadySignedIn(url: String, usernameOrEmailOrPrivateToken: String): Boolean { fun isAlreadySignedIn(url: String, usernameOrEmailOrPrivateToken: String): Boolean {
val accounts = Prefs.getAccounts() val accounts = Prefs.getAccounts()
return accounts.any { return accounts.any {
it.serverUrl == url && (usernameOrEmailOrPrivateToken == it.user.username it.serverUrl == url && (usernameOrEmailOrPrivateToken == it.user?.username
|| usernameOrEmailOrPrivateToken.equals(it.user.email, ignoreCase = true) || usernameOrEmailOrPrivateToken.equals(it.user?.email, ignoreCase = true)
|| usernameOrEmailOrPrivateToken.equals(it.privateToken, ignoreCase = true)) || usernameOrEmailOrPrivateToken.equals(it.privateToken, ignoreCase = true))
} }
} }
Loading
Loading
Loading
@@ -77,9 +77,7 @@ class ProjectActivity : BaseActivity() {
Loading
@@ -77,9 +77,7 @@ class ProjectActivity : BaseActivity() {
@BindView(R.id.pager) lateinit var viewPager: ViewPager @BindView(R.id.pager) lateinit var viewPager: ViewPager
   
var project: Project? = null var project: Project? = null
internal set
var ref: Ref? = null var ref: Ref? = null
internal set
   
val onMenuItemClickListener = Toolbar.OnMenuItemClickListener { item -> val onMenuItemClickListener = Toolbar.OnMenuItemClickListener { item ->
when (item.itemId) { when (item.itemId) {
Loading
@@ -96,20 +94,22 @@ class ProjectActivity : BaseActivity() {
Loading
@@ -96,20 +94,22 @@ class ProjectActivity : BaseActivity() {
return@OnMenuItemClickListener true return@OnMenuItemClickListener true
} }
R.id.action_copy_git_https -> { R.id.action_copy_git_https -> {
if (project == null || project!!.httpUrlToRepo == null) { val url = project?.httpUrlToRepo
if (url == null) {
Toast.makeText(this@ProjectActivity, R.string.failed_to_copy_to_clipboard, Toast.LENGTH_SHORT) Toast.makeText(this@ProjectActivity, R.string.failed_to_copy_to_clipboard, Toast.LENGTH_SHORT)
.show() .show()
} else { } else {
copyToClipboard(project!!.httpUrlToRepo) copyToClipboard(url)
} }
return@OnMenuItemClickListener true return@OnMenuItemClickListener true
} }
R.id.action_copy_git_ssh -> { R.id.action_copy_git_ssh -> {
if (project == null || project!!.httpUrlToRepo == null) { val url = project?.sshUrlToRepo
if (url == null) {
Toast.makeText(this@ProjectActivity, R.string.failed_to_copy_to_clipboard, Toast.LENGTH_SHORT) Toast.makeText(this@ProjectActivity, R.string.failed_to_copy_to_clipboard, Toast.LENGTH_SHORT)
.show() .show()
} else { } else {
copyToClipboard(project!!.sshUrlToRepo) copyToClipboard(url)
} }
return@OnMenuItemClickListener true return@OnMenuItemClickListener true
} }
Loading
@@ -232,10 +232,10 @@ class ProjectActivity : BaseActivity() {
Loading
@@ -232,10 +232,10 @@ class ProjectActivity : BaseActivity() {
fun bindProject(project: Project) { fun bindProject(project: Project) {
this.project = project this.project = project
if (ref == null) { if (ref == null) {
ref = Ref(Ref.TYPE_BRANCH, this.project!!.defaultBranch) ref = Ref(Ref.TYPE_BRANCH, project.defaultBranch)
} }
toolbar.title = this.project!!.name toolbar.title = project.name
toolbar.subtitle = this.project!!.namespace.name toolbar.subtitle = project.namespace.name
setupTabs() setupTabs()
} }
   
Loading
Loading
Loading
@@ -5,7 +5,7 @@ import android.net.Uri
Loading
@@ -5,7 +5,7 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.widget.Toast
import com.commit451.gitlab.R import com.commit451.gitlab.R
import com.commit451.gitlab.model.Account import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.navigation.DeepLinker import com.commit451.gitlab.navigation.DeepLinker
import com.commit451.gitlab.navigation.Navigator import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.navigation.RoutingNavigator import com.commit451.gitlab.navigation.RoutingNavigator
Loading
@@ -97,7 +97,7 @@ class RoutingActivity : BaseActivity() {
Loading
@@ -97,7 +97,7 @@ class RoutingActivity : BaseActivity() {
   
//okay so last thing, if the user has followed a link, but the user //okay so last thing, if the user has followed a link, but the user
//is not actually signed in, we want to direct them to signin //is not actually signed in, we want to direct them to signin
if (Account.getAccounts().isEmpty()) { if (Prefs.getAccounts().isEmpty()) {
Navigator.navigateToLogin(this) Navigator.navigateToLogin(this)
finish() finish()
return return
Loading
Loading
Loading
@@ -19,8 +19,9 @@ import com.commit451.alakazam.Alakazam
Loading
@@ -19,8 +19,9 @@ import com.commit451.alakazam.Alakazam
import com.commit451.easel.Easel import com.commit451.easel.Easel
import com.commit451.gitlab.App import com.commit451.gitlab.App
import com.commit451.gitlab.R import com.commit451.gitlab.R
import com.commit451.gitlab.extension.feedUrl
import com.commit451.gitlab.fragment.FeedFragment import com.commit451.gitlab.fragment.FeedFragment
import com.commit451.gitlab.model.api.UserBasic import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.transformation.PaletteTransformation import com.commit451.gitlab.transformation.PaletteTransformation
import com.commit451.gitlab.util.ImageUtil import com.commit451.gitlab.util.ImageUtil
   
Loading
@@ -33,7 +34,7 @@ class UserActivity : BaseActivity() {
Loading
@@ -33,7 +34,7 @@ class UserActivity : BaseActivity() {
   
private val KEY_USER = "user" private val KEY_USER = "user"
   
fun newIntent(context: Context, user: UserBasic): Intent { fun newIntent(context: Context, user: User): Intent {
val intent = Intent(context, UserActivity::class.java) val intent = Intent(context, UserActivity::class.java)
intent.putParcelerParcelableExtra(KEY_USER, user) intent.putParcelerParcelableExtra(KEY_USER, user)
return intent return intent
Loading
@@ -44,13 +45,13 @@ class UserActivity : BaseActivity() {
Loading
@@ -44,13 +45,13 @@ class UserActivity : BaseActivity() {
@BindView(R.id.collapsing_toolbar) lateinit var collapsingToolbarLayout: CollapsingToolbarLayout @BindView(R.id.collapsing_toolbar) lateinit var collapsingToolbarLayout: CollapsingToolbarLayout
@BindView(R.id.backdrop) lateinit var backdrop: ImageView @BindView(R.id.backdrop) lateinit var backdrop: ImageView
   
lateinit var user: UserBasic lateinit var user: User
   
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_user) setContentView(R.layout.activity_user)
ButterKnife.bind(this) ButterKnife.bind(this)
user = intent.getParcelerParcelableExtra<UserBasic>(KEY_USER)!! user = intent.getParcelerParcelableExtra<User>(KEY_USER)!!
   
// Default content and scrim colors // Default content and scrim colors
collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE) collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE)
Loading
Loading
Loading
@@ -10,7 +10,6 @@ import com.commit451.gitlab.R
Loading
@@ -10,7 +10,6 @@ import com.commit451.gitlab.R
import com.commit451.gitlab.model.Account import com.commit451.gitlab.model.Account
import com.commit451.gitlab.viewHolder.AccountFooterViewHolder import com.commit451.gitlab.viewHolder.AccountFooterViewHolder
import com.commit451.gitlab.viewHolder.AccountViewHolder import com.commit451.gitlab.viewHolder.AccountViewHolder
import java.util.*
   
/** /**
* Adapter to show all the accounts * Adapter to show all the accounts
Loading
@@ -24,7 +23,7 @@ class AccountAdapter(context: Context, private val listener: AccountAdapter.List
Loading
@@ -24,7 +23,7 @@ class AccountAdapter(context: Context, private val listener: AccountAdapter.List
private val FOOTER_COUNT = 1 private val FOOTER_COUNT = 1
} }
   
private val accounts: ArrayList<Account> = ArrayList() private val accounts = mutableListOf<Account>()
private val colorControlHighlight: Int = Easel.getThemeAttrColor(context, R.attr.colorControlHighlight) private val colorControlHighlight: Int = Easel.getThemeAttrColor(context, R.attr.colorControlHighlight)
   
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
Loading
Loading
Loading
@@ -4,23 +4,21 @@ import android.content.Context
Loading
@@ -4,23 +4,21 @@ import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import com.commit451.gitlab.R import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.model.api.UserBasic
import com.commit451.gitlab.viewHolder.AssigneeSpinnerViewHolder import com.commit451.gitlab.viewHolder.AssigneeSpinnerViewHolder
   
/** /**
* Adapter to show assignees in a spinner * Adapter to show assignees in a spinner
*/ */
class AssigneeSpinnerAdapter(context: Context, members: MutableList<Member?>) : ArrayAdapter<Member?>(context, 0, members) { class AssigneeSpinnerAdapter(context: Context, members: MutableList<User?>) : ArrayAdapter<User?>(context, 0, members) {
   
init { init {
members.add(0, null) members.add(0, null)
notifyDataSetChanged() notifyDataSetChanged()
} }
   
fun getSelectedItemPosition(userBasic: UserBasic?): Int { fun getSelectedItemPosition(userBasic: User?): Int {
if (userBasic == null) { if (userBasic == null) {
return 0 return 0
} }
Loading
Loading
Loading
@@ -4,7 +4,7 @@ import android.support.v7.widget.RecyclerView
Loading
@@ -4,7 +4,7 @@ import android.support.v7.widget.RecyclerView
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.PopupMenu import android.widget.PopupMenu
import com.commit451.gitlab.R import com.commit451.gitlab.R
import com.commit451.gitlab.model.api.Member import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder import com.commit451.gitlab.viewHolder.LoadingFooterViewHolder
import com.commit451.gitlab.viewHolder.ProjectMemberViewHolder import com.commit451.gitlab.viewHolder.ProjectMemberViewHolder
import java.util.* import java.util.*
Loading
@@ -22,7 +22,7 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
Loading
@@ -22,7 +22,7 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
private val FOOTER_COUNT = 1 private val FOOTER_COUNT = 1
} }
   
val values: ArrayList<Member> = ArrayList() val values: ArrayList<User> = ArrayList()
   
var isLoading = false var isLoading = false
set(loading) { set(loading) {
Loading
@@ -82,24 +82,24 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
Loading
@@ -82,24 +82,24 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
return values.size + FOOTER_COUNT return values.size + FOOTER_COUNT
} }
   
fun setData(members: Collection<Member>?) { fun setData(members: Collection<User>?) {
values.clear() values.clear()
addData(members) addData(members)
} }
   
fun addData(members: Collection<Member>?) { fun addData(members: Collection<User>?) {
if (members != null) { if (members != null) {
values.addAll(members) values.addAll(members)
} }
notifyDataSetChanged() notifyDataSetChanged()
} }
   
fun addMember(member: Member) { fun addMember(member: User) {
values.add(0, member) values.add(0, member)
notifyItemInserted(0) notifyItemInserted(0)
} }
   
fun removeMember(member: Member) { fun removeMember(member: User) {
val index = values.indexOf(member) val index = values.indexOf(member)
values.removeAt(index) values.removeAt(index)
notifyItemRemoved(index) notifyItemRemoved(index)
Loading
@@ -113,13 +113,13 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
Loading
@@ -113,13 +113,13 @@ class GroupMembersAdapter(private val listener: GroupMembersAdapter.Listener) :
return false return false
} }
   
private fun getMember(position: Int): Member { private fun getMember(position: Int): User {
return values[position] return values[position]
} }
   
interface Listener { interface Listener {
fun onUserClicked(member: Member, userViewHolder: ProjectMemberViewHolder) fun onUserClicked(member: User, userViewHolder: ProjectMemberViewHolder)
fun onUserRemoveClicked(member: Member) fun onUserRemoveClicked(member: User)
fun onUserChangeAccessClicked(member: Member) fun onUserChangeAccessClicked(member: User)
} }
} }
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