Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8434f36 authored by Nihar Thakkar's avatar Nihar Thakkar Committed by Sumit Pundir
Browse files

Implement support for service selector

parent ac4d517a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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"/>
@@ -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>
+1 −0
Original line number Diff line number Diff line
@@ -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";
}
+48 −0
Original line number Diff line number Diff line
@@ -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 {

@@ -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) {
@@ -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);
@@ -653,6 +699,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener {
            return;
        }

	checkSyncStatus(accounts);

        if (accounts.size() < 1)
        {
            AccountSetupActivity.actionNewAccount(this);
+1 −1
Original line number Diff line number Diff line
@@ -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))
+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;
    }
}