diff --git a/app/build.gradle b/app/build.gradle
index 2a2cdd9..080adb4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -90,9 +90,9 @@ dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
// Firebase + crashlytics
- compile 'com.google.firebase:firebase-core:11.0.1'
- compile 'com.google.firebase:firebase-config:11.0.1'
- compile 'com.google.firebase:firebase-invites:11.0.1'
+ compile 'com.google.firebase:firebase-core:11.0.2'
+ compile 'com.google.firebase:firebase-config:11.0.2'
+ compile 'com.google.firebase:firebase-invites:11.0.2'
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true
}
@@ -128,7 +128,7 @@ dependencies {
compile 'com.github.stkent:amplify:1.5.0'
// For the article reader
- compile 'com.klinkerapps:drag-dismiss-activity:1.4.1'
+ compile 'com.klinkerapps:drag-dismiss-activity:1.4.2'
// Drawer
compile('com.mikepenz:materialdrawer:5.9.3@aar') {
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/ReaderActivity.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/ReaderActivity.kt
index ef99bf5..2ee8f7b 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/ReaderActivity.kt
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/ReaderActivity.kt
@@ -22,6 +22,7 @@ import apps.amine.bou.readerforselfoss.api.mercury.MercuryApi
import apps.amine.bou.readerforselfoss.api.mercury.ParsedContent
import apps.amine.bou.readerforselfoss.utils.buildCustomTabsIntent
import apps.amine.bou.readerforselfoss.utils.customtabs.CustomTabActivityHelper
+import apps.amine.bou.readerforselfoss.utils.openItemUrl
import apps.amine.bou.readerforselfoss.utils.shareLink
import com.ftinc.scoop.Scoop
@@ -84,10 +85,12 @@ class ReaderActivity : DragDismissActivity() {
}
browserBtn.setOnClickListener {
- val intent = Intent(Intent.ACTION_VIEW)
- intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
- intent.data = Uri.parse(response.body()!!.url)
- startActivity(intent)
+ this@ReaderActivity.openItemUrl(
+ response.body()!!.url,
+ customTabsIntent,
+ false,
+ false,
+ this@ReaderActivity)
}
hideProgressBar()
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemCardAdapter.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemCardAdapter.kt
index aebc070..e106596 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemCardAdapter.kt
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemCardAdapter.kt
@@ -212,7 +212,7 @@ class ItemCardAdapter(private val app: Activity,
helper.bindCustomTabsService(app)
mView.setOnClickListener {
- c.openItemUrl(items[adapterPosition],
+ c.openItemUrl(items[adapterPosition].getLinkDecoded(),
customTabsIntent,
internalBrowser,
articleViewer,
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemListAdapter.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemListAdapter.kt
index 5fa27cc..fd60fd8 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemListAdapter.kt
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/adapters/ItemListAdapter.kt
@@ -223,7 +223,7 @@ class ItemListAdapter(private val app: Activity,
if (!clickBehavior) {
mView.setOnClickListener {
- c.openItemUrl(items[adapterPosition],
+ c.openItemUrl(items[adapterPosition].getLinkDecoded(),
customTabsIntent,
internalBrowser,
articleViewer,
@@ -236,7 +236,7 @@ class ItemListAdapter(private val app: Activity,
} else {
mView.setOnClickListener { actionBarShowHide() }
mView.setOnLongClickListener {
- c.openItemUrl(items[adapterPosition],
+ c.openItemUrl(items[adapterPosition].getLinkDecoded(),
customTabsIntent,
internalBrowser,
articleViewer,
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/settings/SettingsActivity.java b/app/src/main/java/apps/amine/bou/readerforselfoss/settings/SettingsActivity.java
index 1314af0..18914c9 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/settings/SettingsActivity.java
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/settings/SettingsActivity.java
@@ -206,7 +206,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity {
public void onHeaderClick(Header header, int position) {
super.onHeaderClick(header, position);
if (header.id == R.id.theme_change) {
- getBaseContext().startActivity(ScoopSettingsActivity.createIntent(getApplicationContext()));
+ getApplicationContext().startActivity(ScoopSettingsActivity.createIntent(getApplicationContext()));
finish();
}
}
diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt
index dbc2d6b..cbec9f3 100644
--- a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt
+++ b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt
@@ -50,15 +50,13 @@ fun Context.buildCustomTabsIntent(): CustomTabsIntent {
return intentBuilder.build()
}
-fun Context.openItemUrl(i: Item,
+fun Context.openItemUrl(linkDecoded: String,
customTabsIntent: CustomTabsIntent,
internalBrowser: Boolean,
articleViewer: Boolean,
app: Activity) {
if (!internalBrowser) {
- val intent = Intent(Intent.ACTION_VIEW)
- intent.data = Uri.parse(i.getLinkDecoded())
- app.startActivity(intent)
+ openInBrowser(linkDecoded, app)
} else {
if (articleViewer) {
val intent = Intent(this, ReaderActivity::class.java)
@@ -68,15 +66,25 @@ fun Context.openItemUrl(i: Item,
.setDragElasticity(DragDismissIntentBuilder.DragElasticity.NORMAL) // Larger elasticities will make it easier to dismiss.
.build(intent)
- intent.putExtra("url", i.getLinkDecoded())
+ intent.putExtra("url", linkDecoded)
app.startActivity(intent)
} else {
- CustomTabActivityHelper.openCustomTab(app, customTabsIntent, Uri.parse(i.getLinkDecoded())
- ) { _, uri ->
- val intent = Intent(Intent.ACTION_VIEW, uri)
- intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
- startActivity(intent)
+ try {
+ CustomTabActivityHelper.openCustomTab(app, customTabsIntent, Uri.parse(linkDecoded)
+ ) { _, uri ->
+ val intent = Intent(Intent.ACTION_VIEW, uri)
+ intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+ startActivity(intent)
+ }
+ } catch (e: Exception) {
+ openInBrowser(linkDecoded, app)
}
}
}
}
+
+private fun openInBrowser(linkDecoded: String, app: Activity) {
+ val intent = Intent(Intent.ACTION_VIEW)
+ intent.data = Uri.parse(linkDecoded)
+ app.startActivity(intent)
+}
diff --git a/app/src/main/res/drawable-anydpi/ic_info_outline.xml b/app/src/main/res/drawable-anydpi/ic_info_outline.xml
deleted file mode 100644
index cf53e14..0000000
--- a/app/src/main/res/drawable-anydpi/ic_info_outline.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable-anydpi/ic_settings.xml b/app/src/main/res/drawable-anydpi/ic_settings.xml
deleted file mode 100644
index ace746c..0000000
--- a/app/src/main/res/drawable-anydpi/ic_settings.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable-hdpi/ic_info_outline.png b/app/src/main/res/drawable-hdpi/ic_info_outline.png
new file mode 100644
index 0000000..56625bc
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_info_outline.png differ
diff --git a/app/src/main/res/drawable-hdpi/ic_settings.png b/app/src/main/res/drawable-hdpi/ic_settings.png
new file mode 100644
index 0000000..3739348
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_settings.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_info_outline.png b/app/src/main/res/drawable-mdpi/ic_info_outline.png
new file mode 100644
index 0000000..60fc43f
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_info_outline.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_settings.png b/app/src/main/res/drawable-mdpi/ic_settings.png
new file mode 100644
index 0000000..d80d89e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_settings.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_info_outline.png b/app/src/main/res/drawable-xhdpi/ic_info_outline.png
new file mode 100644
index 0000000..4c616ba
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_info_outline.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_settings.png b/app/src/main/res/drawable-xhdpi/ic_settings.png
new file mode 100644
index 0000000..f3fb91d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_settings.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_info_outline.png b/app/src/main/res/drawable-xxhdpi/ic_info_outline.png
new file mode 100644
index 0000000..89a4b2d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_info_outline.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_settings.png b/app/src/main/res/drawable-xxhdpi/ic_settings.png
new file mode 100644
index 0000000..21a880e
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_settings.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_info_outline.png b/app/src/main/res/drawable-xxxhdpi/ic_info_outline.png
new file mode 100644
index 0000000..8df961c
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_info_outline.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_settings.png b/app/src/main/res/drawable-xxxhdpi/ic_settings.png
new file mode 100644
index 0000000..453dcfa
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_settings.png differ
diff --git a/build.gradle b/build.gradle
index 850136f..171ce35 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.1.3'
+ ext.kotlin_version = '1.1.3-2'
repositories {
maven { url 'https://maven.google.com' }
jcenter()