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

Merge branch 'develop'

parents 5827bf17 dd71bf11
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 61 additions and 57 deletions
Loading
Loading
@@ -193,6 +193,7 @@ class MergeRequestsFragment : ButterKnifeFragment() {
loadData()
}
 
@Suppress("UNUSED_PARAMETER", "unused")
@Subscribe
fun onMergeRequestChanged(event: MergeRequestChangedEvent) {
loadData()
Loading
Loading
Loading
Loading
@@ -51,7 +51,7 @@ class MilestonesFragment : ButterKnifeFragment() {
lateinit var adapterMilestones: MilestoneAdapter
lateinit var layoutManagerMilestones: LinearLayoutManager
 
lateinit var state: String
var state: String? = null
lateinit var states: Array<String>
var project: Project? = null
var loading = false
Loading
Loading
Loading
Loading
@@ -74,6 +74,7 @@ class PipelineDescriptionFragment : ButterKnifeFragment() {
swipeRefreshLayout.setOnRefreshListener { load() }
bindPipeline(pipeline)
App.bus().register(this)
load()
}
 
override fun onDestroyView() {
Loading
Loading
@@ -82,12 +83,14 @@ class PipelineDescriptionFragment : ButterKnifeFragment() {
}
 
fun load() {
swipeRefreshLayout.isRefreshing = true
App.get().gitLab.getPipeline(project.id, pipeline.id)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomSingleObserver<Pipeline>() {
 
override fun error(t: Throwable) {
Timber.e(t)
swipeRefreshLayout.isRefreshing = false
Snackbar.make(root, R.string.unable_to_load_pipeline, Snackbar.LENGTH_LONG)
.show()
}
Loading
Loading
Loading
Loading
@@ -18,6 +18,7 @@ import com.commit451.gitlab.extension.*
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.model.api.RepositoryFile
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomCompleteObserver
import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.util.InternalLinkMovementMethod
import com.trello.rxlifecycle2.android.FragmentEvent
Loading
Loading
@@ -76,14 +77,14 @@ class ProjectFragment : ButterKnifeFragment() {
.setPositiveButton(R.string.ok) { _, _ ->
App.get().gitLab.forkProject(it.id)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomSingleObserver<String>() {
.subscribe(object : CustomCompleteObserver() {
 
override fun error(t: Throwable) {
Snackbar.make(swipeRefreshLayout, R.string.fork_failed, Snackbar.LENGTH_SHORT)
.show()
}
 
override fun success(s: String) {
override fun complete() {
Snackbar.make(swipeRefreshLayout, R.string.project_forked, Snackbar.LENGTH_SHORT)
.show()
}
Loading
Loading
Loading
Loading
@@ -25,8 +25,8 @@ import com.commit451.gitlab.extension.setup
import com.commit451.gitlab.model.api.Project
import com.commit451.gitlab.model.api.User
import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.rx.CustomCompleteObserver
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.rx.CustomSingleObserver
import com.commit451.gitlab.util.LinkHeaderParser
import com.commit451.gitlab.viewHolder.ProjectMemberViewHolder
import com.trello.rxlifecycle2.android.FragmentEvent
Loading
Loading
@@ -93,7 +93,7 @@ class ProjectMembersFragment : ButterKnifeFragment() {
this@ProjectMembersFragment.member = member
App.get().gitLab.removeProjectMember(project!!.id, member.id)
.setup(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe(object : CustomSingleObserver<String>() {
.subscribe(object : CustomCompleteObserver() {
 
override fun error(t: Throwable) {
Timber.e(t)
Loading
Loading
@@ -101,7 +101,7 @@ class ProjectMembersFragment : ButterKnifeFragment() {
.show()
}
 
override fun success(s: String) {
override fun complete() {
adapterProjectMembers.removeMember(this@ProjectMembersFragment.member!!)
}
})
Loading
Loading
Loading
Loading
@@ -99,7 +99,7 @@ class ProjectsFragment : ButterKnifeFragment() {
override fun onAttach(context: Context?) {
super.onAttach(context)
if (context is Listener) {
listener = context as Listener?
listener = context
}
}
 
Loading
Loading
Loading
Loading
@@ -14,6 +14,7 @@ import com.commit451.easel.Easel
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.*
import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.extension.resolveUrl
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.model.Ref
import com.commit451.gitlab.model.api.*
Loading
Loading
@@ -158,7 +159,7 @@ object Navigator {
startMorphActivity(activity, fab, R.drawable.ic_add_24dp, intent)
}
 
fun navigateToEditIssue(activity: Activity, fab: View, project: Project, issue: Issue) {
fun navigateToEditIssue(activity: Activity, project: Project, issue: Issue) {
val intent = AddIssueActivity.newIntent(activity, project, issue)
activity.startActivity(intent)
}
Loading
Loading
@@ -187,7 +188,7 @@ object Navigator {
startMorphActivity(activity, fab, R.drawable.ic_add_24dp, intent)
}
 
fun navigateToEditMilestone(activity: Activity, fab: View, project: Project, milestone: Milestone) {
fun navigateToEditMilestone(activity: Activity, project: Project, milestone: Milestone) {
val intent = AddMilestoneActivity.newIntent(activity, project.id, milestone)
activity.startActivity(intent)
}
Loading
Loading
@@ -221,7 +222,7 @@ object Navigator {
 
fun navigateToUrl(activity: Activity, url: String, account: Account) {
Timber.d("navigateToUrl: $url")
val uri = Uri.parse(url)
val uri = Uri.parse(url.resolveUrl(account))
val serverUri = Uri.parse(account.serverUrl)
if (serverUri.host == uri.host) {
activity.startActivity(DeepLinker.generateDeeplinkIntentFromUri(activity, uri))
Loading
Loading
package com.commit451.gitlab.rx
import com.commit451.reptar.ComposableCompletableObserver
abstract class CustomCompleteObserver: ComposableCompletableObserver()
\ No newline at end of file
Loading
Loading
@@ -7,6 +7,8 @@ import android.view.View
import com.commit451.easel.Easel
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.BaseActivity
import com.commit451.gitlab.extension.resolveUrl
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.navigation.BrowserFallback
import com.commit451.gitlab.navigation.LabCoatIntentCustomizer
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
Loading
Loading
@@ -16,19 +18,17 @@ import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
*/
object IntentUtil {
 
fun openPage(activity: BaseActivity, url: String) {
fun openPage(activity: BaseActivity, url: String, account: Account? = null) {
if (!activity.hasBrowsableLinks()) {
throw IllegalStateException("You need to override hasBrowsableLinks and return true!")
}
if (url.isNullOrEmpty()) {
return
}
val resolvedUrl = if (account == null) url else url.resolveUrl(account)
 
val primaryColor = Easel.getThemeAttrColor(activity, R.attr.colorPrimary)
SimpleChromeCustomTabs.getInstance()
.withFallback(BrowserFallback(activity))
.withIntentCustomizer(LabCoatIntentCustomizer(activity, primaryColor))
.navigateTo(Uri.parse(url), activity)
.navigateTo(Uri.parse(resolvedUrl), activity)
}
 
fun share(root: View, url: Uri) {
Loading
Loading
Loading
Loading
@@ -58,7 +58,7 @@ class IssueViewHolder(view: View) : RecyclerView.ViewHolder(view) {
textMessage.text = issue.title
textMessage.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0)
if (issue.isConfidential) {
textMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_confidential_24dp, 0, 0, 0)
textMessage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_visibility_off_white_24dp, 0, 0, 0)
}
 
var time = ""
Loading
Loading
Loading
Loading
@@ -47,13 +47,13 @@ class FeedRemoteViewsFactory(private val context: Context, intent: Intent, accou
}
 
override fun onCreate() {
entries = ArrayList<Entry>()
entries = ArrayList()
}
 
override fun onDestroy() {
// In onDestroy() you should tear down anything that was setup for your data source,
// eg. cursors, connections, etc.
entries!!.clear()
entries.clear()
}
 
override fun getCount(): Int {
Loading
Loading
@@ -63,10 +63,10 @@ class FeedRemoteViewsFactory(private val context: Context, intent: Intent, accou
override fun getViewAt(position: Int): RemoteViews? {
// position will always range from 0 to getCount() - 1.
 
if (position >= entries!!.size) {
if (position >= entries.size) {
return null
}
val entry = entries!![position]
val entry = entries[position]
 
val rv = RemoteViews(context.packageName, R.layout.widget_item_entry)
rv.setTextViewText(R.id.title, entry.title)
Loading
Loading
Loading
Loading
@@ -26,7 +26,7 @@ object ProjectFeedWidgetPrefs {
try {
val adapter = MoshiProvider.moshi.adapter<Account>(Account::class.java)
return adapter.fromJson(accountsJson)
} catch (e: IOException) {
} catch (e: Exception) {
//why would this ever happen?!?!?1
getSharedPrefs(context).edit().remove(widgetId.toString() + KEY_ACCOUNT).commit()
}
Loading
Loading
Loading
Loading
@@ -34,10 +34,7 @@ class ProjectFeedWidgetProvider : AppWidgetProvider() {
}
 
override fun onReceive(context: Context, intent: Intent) {
val mgr = AppWidgetManager.getInstance(context)
if (intent.action == ACTION_FOLLOW_LINK) {
val appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID)
val uri = intent.getStringExtra(EXTRA_LINK)
val launchIntent = DeepLinker.generateDeeplinkIntentFromUri(context, Uri.parse(uri))
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
Loading
Loading
Loading
Loading
@@ -25,7 +25,7 @@ object UserFeedWidgetPrefs {
try {
val adapter = MoshiProvider.moshi.adapter<Account>(Account::class.java)
return adapter.fromJson(accountsJson)
} catch (e: IOException) {
} catch (e: Exception) {
//why would this ever happen?!?!?1
getSharedPrefs(context).edit().remove(widgetId.toString() + KEY_ACCOUNT).commit()
}
Loading
Loading
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
Loading
Loading
@@ -9,7 +10,7 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:elevation="0dp" />
android:elevation="0dp"/>
 
<ImageView
android:layout_width="wrap_content"
Loading
Loading
@@ -17,7 +18,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="32dp"
android:contentDescription="@string/app_name"
app:srcCompat="@drawable/ic_logo" />
app:srcCompat="@drawable/ic_logo"/>
 
<LinearLayout
android:layout_width="match_parent"
Loading
Loading
@@ -28,18 +29,16 @@
android:orientation="vertical">
 
<android.support.design.widget.TextInputLayout
android:id="@+id/url_hint"
android:id="@+id/text_input_layout_server"
android:layout_width="match_parent"
android:layout_height="wrap_content">
 
<android.support.design.widget.TextInputEditText
android:id="@+id/url_input"
android:id="@+id/text_server"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_centerHorizontal="true"
android:hint="@string/url_hint"
android:inputType="textUri" />
android:inputType="textUri"/>
 
</android.support.design.widget.TextInputLayout>
 
Loading
Loading
@@ -61,7 +60,7 @@
android:layout_alignParentTop="true"
android:hint="@string/user_hint"
android:imeOptions="actionNext"
android:inputType="textEmailAddress" />
android:inputType="textEmailAddress"/>
 
</android.support.design.widget.TextInputLayout>
 
Loading
Loading
@@ -77,7 +76,7 @@
android:layout_below="@+id/user_input"
android:layout_centerHorizontal="true"
android:hint="@string/password_hint"
android:inputType="textPassword" />
android:inputType="textPassword"/>
 
</android.support.design.widget.TextInputLayout>
</LinearLayout>
Loading
Loading
@@ -101,34 +100,34 @@
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:hint="@string/token_hint"
android:inputType="textVisiblePassword" />
android:inputType="textVisiblePassword"/>
</android.support.design.widget.TextInputLayout>
 
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/or" />
android:text="@string/or"/>
 
<Button
android:id="@+id/button_open_login_page"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/open_login_page" />
android:text="@string/open_login_page"/>
 
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/or" />
android:text="@string/or"/>
 
<Button
android:id="@+id/button_open_login_page_for_personal_access"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/open_login_page_for_personal_access_token" />
android:text="@string/open_login_page_for_personal_access_token"/>
</LinearLayout>
 
</LinearLayout>
Loading
Loading
@@ -139,8 +138,8 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_margin="16dp"
android:text="@string/login_button" />
android:text="@string/login_button"/>
 
<include layout="@layout/progress_fullscreen" />
<include layout="@layout/progress_fullscreen"/>
 
</FrameLayout>
\ No newline at end of file
</android.support.design.widget.CoordinatorLayout>
\ No newline at end of file
Loading
Loading
@@ -2,14 +2,14 @@
apply plugin: 'com.github.ben-manes.versions'
apply plugin: 'com.commit451.updatewrapper'
buildscript {
ext.kotlinVersion = '1.1.3-2'
ext.kotlinVersion = '1.1.4-2'
repositories {
jcenter()
maven { url "https://jitpack.io" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha9'
classpath 'com.android.tools.build:gradle:3.0.0-beta2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath 'com.github.ben-manes:gradle-versions-plugin:0.15.0'
classpath 'com.github.Commit451:updatewrapper:1.1.2'
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