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()