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

Assure we are always connecting to SimpleChromeCustomTabs when we have external links

parent 6c11f62b
No related branches found
No related tags found
No related merge requests found
Pipeline #
Showing
with 55 additions and 26 deletions
Loading
Loading
@@ -130,6 +130,10 @@ class AboutActivity : BaseActivity() {
sensorManager.unregisterListener(sensorEventListener)
}
 
override fun hasBrowsableLinks(): Boolean {
return true
}
fun addContributors(contributors: List<Contributor>) {
val config = PhysicsConfig.create()
config.shapeType = PhysicsConfig.SHAPE_TYPE_CIRCLE
Loading
Loading
Loading
Loading
@@ -65,6 +65,10 @@ class ActivityActivity : BaseActivity() {
}
}
 
override fun hasBrowsableLinks(): Boolean {
return true
}
override fun onDestroy() {
super.onDestroy()
App.bus().unregister(this)
Loading
Loading
Loading
Loading
@@ -4,6 +4,7 @@ import android.support.design.widget.TextInputLayout
import android.text.TextUtils
 
import com.commit451.gitlab.R
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
import com.trello.rxlifecycle2.components.support.RxAppCompatActivity
 
/**
Loading
Loading
@@ -11,6 +12,24 @@ import com.trello.rxlifecycle2.components.support.RxAppCompatActivity
*/
open class BaseActivity : RxAppCompatActivity() {
 
open fun hasBrowsableLinks(): Boolean {
return false
}
override fun onResume() {
super.onResume()
if (hasBrowsableLinks()) {
SimpleChromeCustomTabs.getInstance().connectTo(this)
}
}
override fun onPause() {
if (hasBrowsableLinks() && SimpleChromeCustomTabs.getInstance().isConnected) {
SimpleChromeCustomTabs.getInstance().disconnectFrom(this)
}
super.onPause()
}
fun hasEmptyFields(vararg textInputLayouts: TextInputLayout): Boolean {
var hasEmptyField = false
for (textInputLayout in textInputLayouts) {
Loading
Loading
Loading
Loading
@@ -110,6 +110,10 @@ class GroupActivity : BaseActivity() {
supportFinishAfterTransition()
}
 
override fun hasBrowsableLinks(): Boolean {
return true
}
fun bind(group: Group) {
App.get().picasso
.load(group.avatarUrl)
Loading
Loading
Loading
Loading
@@ -179,6 +179,10 @@ class ProjectActivity : BaseActivity() {
super.onBackPressed()
}
 
override fun hasBrowsableLinks(): Boolean {
return true
}
fun loadProject(projectId: String) {
showProgress()
loadProject(App.get().gitLab.getProject(projectId))
Loading
Loading
package com.commit451.gitlab.activity
 
import android.app.Activity
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.model.Account
Loading
Loading
@@ -14,20 +12,18 @@ import com.commit451.gitlab.navigation.Navigator
import com.commit451.gitlab.navigation.RoutingNavigator
import com.commit451.gitlab.navigation.RoutingRouter
import com.commit451.gitlab.util.IntentUtil
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
import timber.log.Timber
 
 
/**
* The easy way to do deep links. Just route everything here, and it does all the work.
*/
class RoutingActivity : Activity() {
class RoutingActivity : BaseActivity() {
 
lateinit var router: RoutingRouter
var originalUri: Uri? = null
 
val mNavigator = object : RoutingNavigator {
val navigator = object : RoutingNavigator {
override fun onRouteToIssue(projectNamespace: String, projectName: String, issueIid: String) {
Timber.d("Routing to issue")
Navigator.navigateToIssue(this@RoutingActivity, projectNamespace, projectName, issueIid)
Loading
Loading
@@ -83,16 +79,8 @@ class RoutingActivity : Activity() {
handleIntent(intent)
}
 
override fun onResume() {
super.onResume()
SimpleChromeCustomTabs.getInstance().connectTo(this)
}
override fun onPause() {
if (SimpleChromeCustomTabs.getInstance().isConnected) {
SimpleChromeCustomTabs.getInstance().disconnectFrom(this)
}
super.onPause()
override fun hasBrowsableLinks(): Boolean {
return true
}
 
fun handleIntent(intent: Intent?) {
Loading
Loading
@@ -115,7 +103,7 @@ class RoutingActivity : Activity() {
finish()
return
}
router = RoutingRouter(mNavigator)
router = RoutingRouter(navigator)
router.route(link)
finish()
}
Loading
Loading
Loading
Loading
@@ -87,6 +87,10 @@ class UserActivity : BaseActivity() {
supportFinishAfterTransition()
}
 
override fun hasBrowsableLinks(): Boolean {
return true
}
fun bindPalette(palette: Palette) {
val animationTime = 1000
val vibrantColor = palette.getVibrantColor(Easel.getThemeAttrColor(this, R.attr.colorPrimary))
Loading
Loading
Loading
Loading
@@ -16,6 +16,7 @@ import android.widget.TextView
import butterknife.BindView
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.BaseActivity
import com.commit451.gitlab.activity.ProjectActivity
import com.commit451.gitlab.adapter.BreadcrumbAdapter
import com.commit451.gitlab.adapter.DividerItemDecoration
Loading
Loading
@@ -84,7 +85,7 @@ class FilesFragment : ButterKnifeFragment() {
}
 
override fun onOpenInBrowserClicked(treeItem: RepositoryTreeObject) {
IntentUtil.openPage(activity, treeItem.getUrl(project, branchName, currentPath).toString())
IntentUtil.openPage(activity as BaseActivity, treeItem.getUrl(project, branchName, currentPath).toString())
}
}
 
Loading
Loading
Loading
Loading
@@ -22,11 +22,11 @@ class BrowserFallback(context: Context) : NavigationFallback {
}
 
override fun onFallbackNavigateTo(url: Uri) {
val i = Intent(Intent.ACTION_VIEW)
i.data = url
val intent = Intent(Intent.ACTION_VIEW)
intent.data = url
val context = this.context.get() ?: return
try {
context.startActivity(i)
context.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(context, R.string.error_no_browser, Toast.LENGTH_SHORT)
.show()
Loading
Loading
Loading
Loading
@@ -11,7 +11,6 @@ import android.support.v4.app.ActivityOptionsCompat
import android.view.View
import android.widget.ImageView
import com.commit451.easel.Easel
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.*
import com.commit451.gitlab.data.Prefs
Loading
Loading
@@ -221,7 +220,7 @@ object Navigator {
if (account.serverUrl.host == uri.host) {
activity.startActivity(DeepLinker.generateDeeplinkIntentFromUri(activity, uri))
} else {
IntentUtil.openPage(activity, uri.toString())
IntentUtil.openPage(activity as BaseActivity, uri.toString())
}
}
 
Loading
Loading
package com.commit451.gitlab.util
 
import android.app.Activity
import android.content.Intent
import android.net.Uri
import android.support.design.widget.Snackbar
import android.text.TextUtils
import android.view.View
import com.commit451.easel.Easel
import com.commit451.gitlab.R
import com.commit451.gitlab.activity.BaseActivity
import com.commit451.gitlab.navigation.BrowserFallback
import com.commit451.gitlab.navigation.LabCoatIntentCustomizer
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
Loading
Loading
@@ -18,7 +17,10 @@ import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
*/
object IntentUtil {
 
fun openPage(activity: Activity, url: String) {
fun openPage(activity: BaseActivity, url: String) {
if (!activity.hasBrowsableLinks()) {
throw IllegalStateException("You need to override hasBrowsableLinks and return true!")
}
if (TextUtils.isEmpty(url)) {
return
}
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