Loading k9mail/src/main/AndroidManifest.xml +8 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ android:smallScreens="true"/> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> Loading Loading @@ -451,5 +452,11 @@ android:resource="@xml/temp_file_provider_paths" /> </provider> <provider android:authorities="io.eelo.mail.provider.AppContentProvider" android:name="io.eelo.mail.provider.AppContentProvider" android:enabled="true" android:exported="true"/> </application> </manifest> k9mail/src/main/java/io/eelo/mail/account/OAuthConstants.java +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ public class OAuthConstants { public static final String EELO_ACCOUNT_TYPE = "bitfire.at.davdroid.eelo"; public static final String GOOGLE_ACCOUNT_TYPE = "bitfire.at.davdroid.google"; public static final String ACCOUNT_EMAIL_ADDRESS_KEY = "email_address"; public static final String MAIL_CONTENT_AUTHORITY = "io.eelo.mail.provider.AppContentProvider"; static final String AUTH_TOKEN_TYPE = "oauth2-access-token"; } k9mail/src/main/java/io/eelo/mail/activity/Accounts.java +48 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ import timber.log.Timber; import static io.eelo.mail.account.OAuthConstants.ACCOUNT_EMAIL_ADDRESS_KEY; import static io.eelo.mail.account.OAuthConstants.EELO_ACCOUNT_TYPE; import static io.eelo.mail.account.OAuthConstants.GOOGLE_ACCOUNT_TYPE; import static io.eelo.mail.account.OAuthConstants.MAIL_CONTENT_AUTHORITY; public class Accounts extends K9ListActivity implements OnItemClickListener { Loading Loading @@ -411,6 +412,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { return; } checkSyncStatus(accounts); if (ACTION_IMPORT_SETTINGS.equals(intent.getAction())) { onImport(); } else if (accounts.size() < 1) { Loading Loading @@ -461,6 +464,49 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { } private void checkSyncStatus(List<Account> accounts) { try { android.accounts.Account[] eeloAccounts = getEeloAccountsOnDevice(); android.accounts.Account[] googleAccounts = getGoogleAccountsOnDevice(); for (Account account : accounts) { if (account.isDeviceAccount()) { for (android.accounts.Account eeloAccount : eeloAccounts) { String emailId = accountManager.getUserData(eeloAccount, ACCOUNT_EMAIL_ADDRESS_KEY); if (account.getEmail().equals(emailId)) { if (ContentResolver.getSyncAutomatically(eeloAccount, MAIL_CONTENT_AUTHORITY)) { account.setAutomaticCheckIntervalMinutes(5); } else { account.setAutomaticCheckIntervalMinutes(-1); } break; } } for (android.accounts.Account googleAccount : googleAccounts) { String emailId = accountManager.getUserData(googleAccount, ACCOUNT_EMAIL_ADDRESS_KEY); if (account.getEmail().equals(emailId)) { if (ContentResolver.getSyncAutomatically(googleAccount, MAIL_CONTENT_AUTHORITY)) { account.setAutomaticCheckIntervalMinutes(5); } else { account.setAutomaticCheckIntervalMinutes(-1); } break; } } } } } catch (SecurityException e) { e.printStackTrace(); } } private android.accounts.Account[] getEeloAccountsOnDevice() { return accountManager.getAccountsByType( EELO_ACCOUNT_TYPE); Loading Loading @@ -653,6 +699,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { return; } checkSyncStatus(accounts); if (accounts.size() < 1) { AccountSetupActivity.actionNewAccount(this); Loading k9mail/src/main/java/io/eelo/mail/preferences/AccountSettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ public class AccountSettings { new V(1, new StringSetting("INBOX")) )); s.put("automaticCheckIntervalMinutes", Settings.versions( new V(1, new IntegerResourceSetting(-1, R.array.account_settings_check_frequency_values)) new V(1, new IntegerResourceSetting(5, R.array.account_settings_check_frequency_values)) )); s.put("chipColor", Settings.versions( new V(1, new ColorSetting(0xFF0000FF)) Loading k9mail/src/main/java/io/eelo/mail/provider/AppContentProvider.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package io.eelo.mail.provider; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; public class AppContentProvider extends ContentProvider { @Nullable @Override public String getType(@NonNull Uri uri) { return null; } @Override public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) { return 0; } @Nullable @Override public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) { return null; } @Override public boolean onCreate() { return false; } @Nullable @Override public Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) { return null; } @Override public int delete(@NonNull Uri uri, @Nullable String s, @Nullable String[] strings) { return 0; } } Loading
k9mail/src/main/AndroidManifest.xml +8 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ android:smallScreens="true"/> <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> Loading Loading @@ -451,5 +452,11 @@ android:resource="@xml/temp_file_provider_paths" /> </provider> <provider android:authorities="io.eelo.mail.provider.AppContentProvider" android:name="io.eelo.mail.provider.AppContentProvider" android:enabled="true" android:exported="true"/> </application> </manifest>
k9mail/src/main/java/io/eelo/mail/account/OAuthConstants.java +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ public class OAuthConstants { public static final String EELO_ACCOUNT_TYPE = "bitfire.at.davdroid.eelo"; public static final String GOOGLE_ACCOUNT_TYPE = "bitfire.at.davdroid.google"; public static final String ACCOUNT_EMAIL_ADDRESS_KEY = "email_address"; public static final String MAIL_CONTENT_AUTHORITY = "io.eelo.mail.provider.AppContentProvider"; static final String AUTH_TOKEN_TYPE = "oauth2-access-token"; }
k9mail/src/main/java/io/eelo/mail/activity/Accounts.java +48 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ import timber.log.Timber; import static io.eelo.mail.account.OAuthConstants.ACCOUNT_EMAIL_ADDRESS_KEY; import static io.eelo.mail.account.OAuthConstants.EELO_ACCOUNT_TYPE; import static io.eelo.mail.account.OAuthConstants.GOOGLE_ACCOUNT_TYPE; import static io.eelo.mail.account.OAuthConstants.MAIL_CONTENT_AUTHORITY; public class Accounts extends K9ListActivity implements OnItemClickListener { Loading Loading @@ -411,6 +412,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { return; } checkSyncStatus(accounts); if (ACTION_IMPORT_SETTINGS.equals(intent.getAction())) { onImport(); } else if (accounts.size() < 1) { Loading Loading @@ -461,6 +464,49 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { } private void checkSyncStatus(List<Account> accounts) { try { android.accounts.Account[] eeloAccounts = getEeloAccountsOnDevice(); android.accounts.Account[] googleAccounts = getGoogleAccountsOnDevice(); for (Account account : accounts) { if (account.isDeviceAccount()) { for (android.accounts.Account eeloAccount : eeloAccounts) { String emailId = accountManager.getUserData(eeloAccount, ACCOUNT_EMAIL_ADDRESS_KEY); if (account.getEmail().equals(emailId)) { if (ContentResolver.getSyncAutomatically(eeloAccount, MAIL_CONTENT_AUTHORITY)) { account.setAutomaticCheckIntervalMinutes(5); } else { account.setAutomaticCheckIntervalMinutes(-1); } break; } } for (android.accounts.Account googleAccount : googleAccounts) { String emailId = accountManager.getUserData(googleAccount, ACCOUNT_EMAIL_ADDRESS_KEY); if (account.getEmail().equals(emailId)) { if (ContentResolver.getSyncAutomatically(googleAccount, MAIL_CONTENT_AUTHORITY)) { account.setAutomaticCheckIntervalMinutes(5); } else { account.setAutomaticCheckIntervalMinutes(-1); } break; } } } } } catch (SecurityException e) { e.printStackTrace(); } } private android.accounts.Account[] getEeloAccountsOnDevice() { return accountManager.getAccountsByType( EELO_ACCOUNT_TYPE); Loading Loading @@ -653,6 +699,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { return; } checkSyncStatus(accounts); if (accounts.size() < 1) { AccountSetupActivity.actionNewAccount(this); Loading
k9mail/src/main/java/io/eelo/mail/preferences/AccountSettings.java +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ public class AccountSettings { new V(1, new StringSetting("INBOX")) )); s.put("automaticCheckIntervalMinutes", Settings.versions( new V(1, new IntegerResourceSetting(-1, R.array.account_settings_check_frequency_values)) new V(1, new IntegerResourceSetting(5, R.array.account_settings_check_frequency_values)) )); s.put("chipColor", Settings.versions( new V(1, new ColorSetting(0xFF0000FF)) Loading
k9mail/src/main/java/io/eelo/mail/provider/AppContentProvider.java 0 → 100644 +44 −0 Original line number Diff line number Diff line package io.eelo.mail.provider; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; public class AppContentProvider extends ContentProvider { @Nullable @Override public String getType(@NonNull Uri uri) { return null; } @Override public int update(@NonNull Uri uri, @Nullable ContentValues contentValues, @Nullable String s, @Nullable String[] strings) { return 0; } @Nullable @Override public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) { return null; } @Override public boolean onCreate() { return false; } @Nullable @Override public Cursor query(@NonNull Uri uri, @Nullable String[] strings, @Nullable String s, @Nullable String[] strings1, @Nullable String s1) { return null; } @Override public int delete(@NonNull Uri uri, @Nullable String s, @Nullable String[] strings) { return 0; } }