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

Resolve URLs if they begin with /

parent a1a590bf
No related branches found
No related tags found
No related merge requests found
Pipeline #
Loading
Loading
@@ -4,6 +4,7 @@ import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.widget.Toast
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.navigation.DeepLinker
Loading
Loading
@@ -60,7 +61,7 @@ class RoutingActivity : BaseActivity() {
override fun onRouteUnknown(uri: Uri?) {
Timber.d("Route unknown. Opening original Uri if it exists")
if (originalUri != null) {
IntentUtil.openPage(this@RoutingActivity, uri!!.toString())
IntentUtil.openPage(this@RoutingActivity, uri!!.toString(), App.get().currentAccount)
} else {
Toast.makeText(this@RoutingActivity, R.string.deeplink_navigate_error, Toast.LENGTH_SHORT)
.show()
Loading
Loading
Loading
Loading
@@ -4,6 +4,7 @@ import android.os.Build
import android.text.Html
import android.text.Spanned
import android.util.Base64
import com.commit451.gitlab.model.Account
import io.reactivex.Single
 
fun String.base64Decode(): Single<ByteArray> {
Loading
Loading
@@ -23,3 +24,10 @@ fun String.formatAsHtml(imageGetter: Html.ImageGetter? = null, tagHandler: Html.
return Html.fromHtml(this, imageGetter, tagHandler)
}
}
fun String.resolveUrl(account: Account): String {
if (startsWith("/")){
return account.serverUrl + this.replaceFirst("/", "")
}
return this
}
Loading
Loading
@@ -80,7 +80,7 @@ class FilesFragment : ButterKnifeFragment() {
}
 
override fun onOpenInBrowserClicked(treeItem: RepositoryTreeObject) {
IntentUtil.openPage(activity as BaseActivity, treeItem.getUrl(project!!, branchName!!, currentPath).toString())
IntentUtil.openPage(activity as BaseActivity, treeItem.getUrl(project!!, branchName!!, currentPath).toString(), App.get().currentAccount)
}
}
 
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
@@ -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
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
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
<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"
Loading
Loading
@@ -142,4 +142,4 @@
 
<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'
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