diff --git a/twidere/src/main/java/org/mariotaku/twidere/model/util/AccountUtils.java b/twidere/src/main/java/org/mariotaku/twidere/model/util/AccountUtils.java
index e8ef7422b..7c6852514 100644
--- a/twidere/src/main/java/org/mariotaku/twidere/model/util/AccountUtils.java
+++ b/twidere/src/main/java/org/mariotaku/twidere/model/util/AccountUtils.java
@@ -189,6 +189,15 @@ public class AccountUtils {
return null;
}
+ public static boolean hasAccountPermission(@NonNull AccountManager am) {
+ try {
+ getAccounts(am);
+ } catch (SecurityException e) {
+ return false;
+ }
+ return true;
+ }
+
public static boolean hasInvalidAccount(@NonNull AccountManager am) {
for (Account account : getAccounts(am)) {
if (!isAccountValid(am, account)) return true;
diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/MainActivity.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/MainActivity.kt
index 6b57cb155..0e6fdb2a3 100644
--- a/twidere/src/main/kotlin/org/mariotaku/twidere/activity/MainActivity.kt
+++ b/twidere/src/main/kotlin/org/mariotaku/twidere/activity/MainActivity.kt
@@ -22,7 +22,9 @@ package org.mariotaku.twidere.activity
import android.accounts.AccountManager
import android.content.Intent
import android.os.Bundle
+import android.widget.Toast
import org.mariotaku.twidere.BuildConfig
+import org.mariotaku.twidere.R
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_INTENT
import org.mariotaku.twidere.model.util.AccountUtils
import org.mariotaku.twidere.util.StrictModeUtils
@@ -39,6 +41,8 @@ open class MainActivity : BaseActivity() {
val am = AccountManager.get(this)
if (!Utils.checkDeviceCompatible()) {
startActivity(Intent(this, IncompatibleAlertActivity::class.java))
+ } else if (!AccountUtils.hasAccountPermission(am)) {
+ Toast.makeText(this, R.string.message_toast_no_account_permission, Toast.LENGTH_SHORT).show()
} else if (AccountUtils.hasInvalidAccount(am)) {
val intent = Intent(this, InvalidAccountAlertActivity::class.java)
intent.putExtra(EXTRA_INTENT, Intent(this, HomeActivity::class.java))
diff --git a/twidere/src/main/res/values/strings.xml b/twidere/src/main/res/values/strings.xml
index d69e6ccfd..25abcf353 100644
--- a/twidere/src/main/res/values/strings.xml
+++ b/twidere/src/main/res/values/strings.xml
@@ -696,6 +696,7 @@
Network error
No account
+ Account permission is required
No account selected
No user selected
Press again to close