From 790223e1ff8a917582aef0504bb507506d5ac64a Mon Sep 17 00:00:00 2001 From: sictiru Date: Wed, 29 Dec 2021 20:48:20 -0800 Subject: [PATCH] Check for authenticated user before a subscription sync. --- .../NewsBlur/src/com/newsblur/activity/InitActivity.kt | 3 +-- .../com/newsblur/service/SubscriptionSyncService.kt | 6 ++++++ .../NewsBlur/src/com/newsblur/util/PrefsUtils.java | 10 ++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/clients/android/NewsBlur/src/com/newsblur/activity/InitActivity.kt b/clients/android/NewsBlur/src/com/newsblur/activity/InitActivity.kt index 33f06112b..371da6bfe 100644 --- a/clients/android/NewsBlur/src/com/newsblur/activity/InitActivity.kt +++ b/clients/android/NewsBlur/src/com/newsblur/activity/InitActivity.kt @@ -46,8 +46,7 @@ class InitActivity : AppCompatActivity() { } private fun preferenceCheck() { - val preferences = getSharedPreferences(PrefConstants.PREFERENCES, MODE_PRIVATE) - if (preferences.getString(PrefConstants.PREF_COOKIE, null) != null) { + if (PrefsUtils.hasCookie(this)) { val mainIntent = Intent(this, Main::class.java) startActivity(mainIntent) } else { diff --git a/clients/android/NewsBlur/src/com/newsblur/service/SubscriptionSyncService.kt b/clients/android/NewsBlur/src/com/newsblur/service/SubscriptionSyncService.kt index 0a1bc3a5c..4e8ebf487 100644 --- a/clients/android/NewsBlur/src/com/newsblur/service/SubscriptionSyncService.kt +++ b/clients/android/NewsBlur/src/com/newsblur/service/SubscriptionSyncService.kt @@ -9,6 +9,7 @@ import com.newsblur.subscription.SubscriptionManagerImpl import com.newsblur.util.AppConstants import com.newsblur.util.Log import com.newsblur.util.NBScope +import com.newsblur.util.PrefsUtils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -24,6 +25,11 @@ class SubscriptionSyncService : JobService() { override fun onStartJob(params: JobParameters?): Boolean { Log.d(this, "onStartJob") + if (!PrefsUtils.hasCookie(this)) { + // no user authenticated + return false + } + NBScope.launch(Dispatchers.Default) { val subscriptionManager = SubscriptionManagerImpl(this@SubscriptionSyncService, this) val job = subscriptionManager.syncActiveSubscription() diff --git a/clients/android/NewsBlur/src/com/newsblur/util/PrefsUtils.java b/clients/android/NewsBlur/src/com/newsblur/util/PrefsUtils.java index 56df049d3..52c6a3911 100644 --- a/clients/android/NewsBlur/src/com/newsblur/util/PrefsUtils.java +++ b/clients/android/NewsBlur/src/com/newsblur/util/PrefsUtils.java @@ -1026,4 +1026,14 @@ public class PrefsUtils { editor.putBoolean(PrefConstants.IN_APP_REVIEW, true); editor.commit(); } + + /** + * Check for logged in user. + * @return whether a cookie is stored on disk + * which gets saved when a user is authenticated. + */ + public static boolean hasCookie(Context context) { + SharedPreferences preferences = context.getSharedPreferences(PrefConstants.PREFERENCES, Context.MODE_PRIVATE); + return preferences.getString(PrefConstants.PREF_COOKIE, null) != null; + } }