Compare commits

..

4 Commits

Author SHA1 Message Date
8dc25c527d Trying to fix issues with Glide, fragment, and destroyed activity. 2018-05-31 22:41:23 +02:00
46d6bd57c1 Changelog. 2018-05-31 12:46:45 +02:00
db014fe13d Fixed issue on pre lolipop devices. 2018-05-31 12:42:06 +02:00
6c293f4cac Changing the tag handling. 2018-05-26 10:51:11 +02:00
9 changed files with 104 additions and 63 deletions

View File

@ -1,5 +1,7 @@
**1.6.x**
- Fixed pre-lolipop issue with automatic theme changes.
- Removed all Build config things.
- Removed firebase and fabric.

View File

@ -44,10 +44,11 @@ class AddSourceActivity : AppCompatActivity() {
setContentView(R.layout.activity_add_source)
// TODO: input bubble cursor
Scoop.getInstance()
.bind(this, Toppings.PRIMARY.value, toolbar)
.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
val scoop = Scoop.getInstance()
scoop.bind(this, Toppings.PRIMARY.value, toolbar)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
scoop.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
}
val drawable = nameInput.background
drawable.setColorFilter(appColors.colorAccent, PorterDuff.Mode.SRC_ATOP)

View File

@ -6,6 +6,7 @@ import android.content.SharedPreferences
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.preference.PreferenceManager
import android.support.v4.view.MenuItemCompat
@ -389,16 +390,21 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener {
}
private fun handleThemeBinding() {
Scoop.getInstance()
.bind(this, Toppings.PRIMARY.value, toolBar)
.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
val scoop = Scoop.getInstance()
scoop.bind(this, Toppings.PRIMARY.value, toolBar)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
scoop.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
}
}
private fun handleThemeUpdate() {
Scoop.getInstance()
.update(Toppings.PRIMARY.value, appColors.colorPrimary)
.update(Toppings.PRIMARY_DARK.value, appColors.colorPrimaryDark)
val scoop = Scoop.getInstance()
scoop.update(Toppings.PRIMARY.value, appColors.colorPrimary)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
scoop.update(Toppings.PRIMARY_DARK.value, appColors.colorPrimaryDark)
}
}
private fun handleDrawer() {

View File

@ -3,6 +3,7 @@ package apps.amine.bou.readerforselfoss
import android.content.Context
import android.content.res.Resources
import android.graphics.drawable.ColorDrawable
import android.os.Build
import android.os.Bundle
import android.preference.PreferenceManager
import android.support.v4.app.FragmentManager
@ -62,9 +63,11 @@ class ReaderActivity : AppCompatActivity() {
setContentView(R.layout.activity_reader)
Scoop.getInstance()
.bind(this, Toppings.PRIMARY.value, toolBar)
.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
val scoop = Scoop.getInstance()
scoop.bind(this, Toppings.PRIMARY.value, toolBar)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
scoop.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
}
setSupportActionBar(toolBar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)

View File

@ -2,6 +2,7 @@ package apps.amine.bou.readerforselfoss
import android.content.Intent
import android.content.res.ColorStateList
import android.os.Build
import android.os.Bundle
import android.preference.PreferenceManager
import android.support.v7.app.AppCompatActivity
@ -29,9 +30,11 @@ class SourcesActivity : AppCompatActivity() {
setContentView(R.layout.activity_sources)
Scoop.getInstance()
.bind(this, Toppings.PRIMARY.value, toolbar)
.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
val scoop = Scoop.getInstance()
scoop.bind(this, Toppings.PRIMARY.value, toolbar)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
scoop.bindStatusBar(this, Toppings.PRIMARY_DARK.value)
}
setSupportActionBar(toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)

View File

@ -1,6 +1,5 @@
package apps.amine.bou.readerforselfoss.fragments
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.content.res.ColorStateList
@ -20,7 +19,6 @@ import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.webkit.WebSettings
import apps.amine.bou.readerforselfoss.BuildConfig
import apps.amine.bou.readerforselfoss.R
import apps.amine.bou.readerforselfoss.api.mercury.MercuryApi
import apps.amine.bou.readerforselfoss.api.mercury.ParsedContent
@ -86,8 +84,6 @@ class ArticleFragment : Fragment() {
rootView = inflater
.inflate(R.layout.fragment_article, container, false) as ViewGroup
val context: Context = activity!!
url = allItems[pageNumber.toInt()].getLinkDecoded()
contentText = allItems[pageNumber.toInt()].content
contentTitle = allItems[pageNumber.toInt()].title
@ -119,7 +115,7 @@ class ArticleFragment : Fragment() {
object : FloatingToolbar.ItemClickListener {
override fun onItemClick(item: MenuItem) {
when (item.itemId) {
R.id.more_action -> getContentFromMercury(customTabsIntent, prefs, context)
R.id.more_action -> getContentFromMercury(customTabsIntent, prefs)
R.id.share_action -> activity!!.shareLink(url)
R.id.open_action -> activity!!.openItemUrl(
allItems,
@ -142,16 +138,16 @@ class ArticleFragment : Fragment() {
rootView.source.text = contentSource
if (contentText.isEmptyOrNullOrNullString()) {
getContentFromMercury(customTabsIntent, prefs, context)
getContentFromMercury(customTabsIntent, prefs)
} else {
rootView.titleView.text = contentTitle
htmlToWebview(contentText, prefs, context)
htmlToWebview(contentText, prefs)
if (!contentImage.isEmptyOrNullOrNullString()) {
if (!contentImage.isEmptyOrNullOrNullString() && context != null) {
rootView.imageView.visibility = View.VISIBLE
Glide
.with(context)
.with(context!!)
.asBitmap()
.load(contentImage)
.apply(RequestOptions.fitCenterTransform())
@ -176,8 +172,7 @@ class ArticleFragment : Fragment() {
private fun getContentFromMercury(
customTabsIntent: CustomTabsIntent,
prefs: SharedPreferences,
context: Context
prefs: SharedPreferences
) {
rootView.progressBar.visibility = View.VISIBLE
val parser = MercuryApi(
@ -197,33 +192,39 @@ class ArticleFragment : Fragment() {
rootView.titleView.text = response.body()!!.title
url = response.body()!!.url
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
if (context != null) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
}
try {
htmlToWebview(response.body()!!.content.orEmpty(), prefs, context)
htmlToWebview(response.body()!!.content.orEmpty(), prefs)
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
if (context != null) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
}
try {
if (response.body()!!.lead_image_url != null && !response.body()!!.lead_image_url.isNullOrEmpty()) {
if (response.body()!!.lead_image_url != null && !response.body()!!.lead_image_url.isNullOrEmpty() && context != null) {
rootView.imageView.visibility = View.VISIBLE
try {
Glide
.with(context)
.with(context!!)
.asBitmap()
.load(response.body()!!.lead_image_url)
.apply(RequestOptions.fitCenterTransform())
.into(rootView.imageView)
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
} else {
rootView.imageView.visibility = View.GONE
}
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
if (context != null) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
}
try {
@ -231,17 +232,23 @@ class ArticleFragment : Fragment() {
rootView.progressBar.visibility = View.GONE
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
if (context != null) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
}
} else {
try {
openInBrowserAfterFailing(customTabsIntent)
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
if (context != null) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
}
}
} catch (e: Exception) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context)
if (context != null) {
ACRA.getErrorReporter().maybeHandleSilentException(e, context!!)
}
}
}
@ -253,31 +260,47 @@ class ArticleFragment : Fragment() {
)
}
private fun htmlToWebview(c: String, prefs: SharedPreferences, context: Context) {
private fun htmlToWebview(c: String, prefs: SharedPreferences) {
val stringColor = String.format("#%06X", 0xFFFFFF and appColors.colorAccent)
rootView.webcontent.visibility = View.VISIBLE
val (textColor, backgroundColor) = if (appColors.isDarkTheme) {
rootView.webcontent.setBackgroundColor(
ContextCompat.getColor(
context,
R.color.dark_webview
if (context != null) {
rootView.webcontent.setBackgroundColor(
ContextCompat.getColor(
context!!,
R.color.dark_webview
)
)
)
Pair(ContextCompat.getColor(context, R.color.dark_webview_text), ContextCompat.getColor(context, R.color.light_webview_text))
Pair(ContextCompat.getColor(context!!, R.color.dark_webview_text), ContextCompat.getColor(context!!, R.color.light_webview_text))
} else {
Pair(null, null)
}
} else {
rootView.webcontent.setBackgroundColor(
ContextCompat.getColor(
context,
R.color.light_webview
if (context != null) {
rootView.webcontent.setBackgroundColor(
ContextCompat.getColor(
context!!,
R.color.light_webview
)
)
)
Pair(ContextCompat.getColor(context, R.color.light_webview_text), ContextCompat.getColor(context, R.color.dark_webview_text))
Pair(ContextCompat.getColor(context!!, R.color.light_webview_text), ContextCompat.getColor(context!!, R.color.dark_webview_text))
} else {
Pair(null, null)
}
}
val stringTextColor = String.format("#%06X", 0xFFFFFF and textColor)
val stringBackgroundColor = String.format("#%06X", 0xFFFFFF and backgroundColor)
val stringTextColor: String = if (textColor != null) {
String.format("#%06X", 0xFFFFFF and textColor)
} else {
"#000000"
}
val stringBackgroundColor = if (backgroundColor != null) {
String.format("#%06X", 0xFFFFFF and backgroundColor)
} else {
"#FFFFFF"
}
rootView.webcontent.settings.useWideViewPort = true
rootView.webcontent.settings.loadWithOverviewMode = true
@ -296,8 +319,8 @@ class ArticleFragment : Fragment() {
val itemUrl = URL(url)
baseUrl = itemUrl.protocol + "://" + itemUrl.host
} catch (e: MalformedURLException) {
if (showMalformedUrl) {
val alertDialog = AlertDialog.Builder(context).create()
if (showMalformedUrl && context != null) {
val alertDialog = AlertDialog.Builder(context!!).create()
alertDialog.setTitle("Error")
alertDialog.setMessage("You are encountering a bug that I can't solve. Can you please contact me to solve the issue, please ?")
alertDialog.setButton(

View File

@ -1,6 +1,7 @@
package apps.amine.bou.readerforselfoss.settings;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.support.annotation.LayoutRes;
@ -48,10 +49,11 @@ public abstract class AppCompatPreferenceActivity extends PreferenceActivity {
AppBarLayout bar = (AppBarLayout) LayoutInflater.from(this).inflate(R.layout.settings_toolbar, root, false);
Toolbar toolbar = bar.findViewById(R.id.toolbar);
// TODO: all switches
Scoop.getInstance()
.bind(this, Toppings.PRIMARY.getValue(), toolbar)
.bindStatusBar(this, Toppings.PRIMARY_DARK.getValue());
Scoop scoop = Scoop.getInstance();
scoop.bind(this, Toppings.PRIMARY.getValue(), toolbar);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
scoop.bindStatusBar(this, Toppings.PRIMARY_DARK.getValue());
}
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

View File

@ -1,9 +1,9 @@
#!/bin/bash
BASE_VERSION="v1.6"
BASE_VERSION="1.6"
TODAYS_VERSION="1"
VERSION="${BASE_VERSION}.$(date '+%y%m%j')$TODAYS_VERSION"
VERSION="${BASE_VERSION//./}$(date '+%y%m%j')$TODAYS_VERSION"
./version.sh ${VERSION} $@

View File

@ -3,8 +3,9 @@
echo "Creating tag $@"
git tag $@
TAG="v$@"
git tag ${TAG}
echo "Pushing tag"
git push origin $@
git push origin ${TAG}