mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-27 11:42:16 -05:00
Massive rename to K9, step 1.
Conflicts: src/com/android/email/Email.java
This commit is contained in:
parent
1cd67f8e16
commit
f31b2702a4
@ -19,15 +19,15 @@
|
|||||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<permission android:name="com.android.email.permission.READ_ATTACHMENT"
|
<permission android:name="com.fsck.k9.permission.READ_ATTACHMENT"
|
||||||
android:permissionGroup="android.permission-group.MESSAGES"
|
android:permissionGroup="android.permission-group.MESSAGES"
|
||||||
android:protectionLevel="dangerous"
|
android:protectionLevel="dangerous"
|
||||||
android:label="@string/read_attachment_label"
|
android:label="@string/read_attachment_label"
|
||||||
android:description="@string/read_attachment_desc"/>
|
android:description="@string/read_attachment_desc"/>
|
||||||
<uses-permission android:name="com.android.email.permission.READ_ATTACHMENT"/>
|
<uses-permission android:name="com.fsck.k9.permission.READ_ATTACHMENT"/>
|
||||||
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name="K9"
|
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name="K9"
|
||||||
>
|
>
|
||||||
<activity android:name="com.android.email.activity.Welcome">
|
<activity android:name="com.fsck.k9.activity.Welcome">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
@ -36,98 +36,98 @@
|
|||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.Prefs"
|
android:name="com.fsck.k9.activity.setup.Prefs"
|
||||||
android:label="@string/prefs_title"
|
android:label="@string/prefs_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupBasics"
|
android:name="com.fsck.k9.activity.setup.AccountSetupBasics"
|
||||||
android:label="@string/account_setup_basics_title"
|
android:label="@string/account_setup_basics_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupAccountType"
|
android:name="com.fsck.k9.activity.setup.AccountSetupAccountType"
|
||||||
android:label="@string/account_setup_account_type_title"
|
android:label="@string/account_setup_account_type_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupIncoming"
|
android:name="com.fsck.k9.activity.setup.AccountSetupIncoming"
|
||||||
android:label="@string/account_setup_incoming_title"
|
android:label="@string/account_setup_incoming_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupComposition"
|
android:name="com.fsck.k9.activity.setup.AccountSetupComposition"
|
||||||
android:label="@string/account_settings_composition_title"
|
android:label="@string/account_settings_composition_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupOutgoing"
|
android:name="com.fsck.k9.activity.setup.AccountSetupOutgoing"
|
||||||
android:label="@string/account_setup_outgoing_title"
|
android:label="@string/account_setup_outgoing_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupOptions"
|
android:name="com.fsck.k9.activity.setup.AccountSetupOptions"
|
||||||
android:label="@string/account_setup_options_title"
|
android:label="@string/account_setup_options_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupNames"
|
android:name="com.fsck.k9.activity.setup.AccountSetupNames"
|
||||||
android:label="@string/account_setup_names_title"
|
android:label="@string/account_setup_names_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.ChooseFolder"
|
android:name="com.fsck.k9.activity.ChooseFolder"
|
||||||
android:theme="@style/Theme.K9Dialog"
|
android:theme="@style/Theme.K9Dialog"
|
||||||
android:label="@string/choose_folder_title"
|
android:label="@string/choose_folder_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.ChooseIdentity"
|
android:name="com.fsck.k9.activity.ChooseIdentity"
|
||||||
android:theme="@style/Theme.K9Dialog"
|
android:theme="@style/Theme.K9Dialog"
|
||||||
android:label="@string/choose_identity_title"
|
android:label="@string/choose_identity_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.ManageIdentities"
|
android:name="com.fsck.k9.activity.ManageIdentities"
|
||||||
android:label="@string/manage_identities_title"
|
android:label="@string/manage_identities_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.EditIdentity"
|
android:name="com.fsck.k9.activity.EditIdentity"
|
||||||
android:label="@string/edit_identity_title"
|
android:label="@string/edit_identity_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<!-- XXX Note: this activity is hacked to ignore config changes,
|
<!-- XXX Note: this activity is hacked to ignore config changes,
|
||||||
since it doesn't currently handle them correctly in code. -->
|
since it doesn't currently handle them correctly in code. -->
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSetupCheckSettings"
|
android:name="com.fsck.k9.activity.setup.AccountSetupCheckSettings"
|
||||||
android:label="@string/account_setup_check_settings_title"
|
android:label="@string/account_setup_check_settings_title"
|
||||||
android:configChanges="keyboardHidden|orientation"
|
android:configChanges="keyboardHidden|orientation"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.AccountSettings"
|
android:name="com.fsck.k9.activity.setup.AccountSettings"
|
||||||
android:label="@string/account_settings_title_fmt"
|
android:label="@string/account_settings_title_fmt"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.setup.FolderSettings"
|
android:name="com.fsck.k9.activity.setup.FolderSettings"
|
||||||
android:theme="@android:style/Theme.Dialog"
|
android:theme="@android:style/Theme.Dialog"
|
||||||
android:label="@string/folder_settings_title"
|
android:label="@string/folder_settings_title"
|
||||||
>
|
>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.Debug"
|
android:name="com.fsck.k9.activity.Debug"
|
||||||
android:label="@string/debug_title">
|
android:label="@string/debug_title">
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.Accounts"
|
android:name="com.fsck.k9.activity.Accounts"
|
||||||
android:label="@string/accounts_title">
|
android:label="@string/accounts_title">
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.FolderList">
|
android:name="com.fsck.k9.activity.FolderList">
|
||||||
<!--
|
<!--
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
@ -140,7 +140,7 @@
|
|||||||
-->
|
-->
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.MessageList">
|
android:name="com.fsck.k9.activity.MessageList">
|
||||||
<!--
|
<!--
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
@ -153,7 +153,7 @@
|
|||||||
-->
|
-->
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.MessageView">
|
android:name="com.fsck.k9.activity.MessageView">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
<data
|
<data
|
||||||
@ -164,7 +164,7 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.android.email.activity.MessageCompose"
|
android:name="com.fsck.k9.activity.MessageCompose"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
>
|
>
|
||||||
@ -185,7 +185,7 @@
|
|||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<receiver android:name="com.android.email.service.BootReceiver"
|
<receiver android:name="com.fsck.k9.service.BootReceiver"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
>
|
>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@ -204,38 +204,38 @@
|
|||||||
<action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED" />
|
<action android:name="android.net.conn.BACKGROUND_DATA_SETTING_CHANGED" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.android.email.service.BroadcastReceiver.wakeLockRelease"/>
|
<action android:name="com.fsck.k9.service.BroadcastReceiver.wakeLockRelease"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.android.email.service.BroadcastReceiver.scheduleIntent"/>
|
<action android:name="com.fsck.k9.service.BroadcastReceiver.scheduleIntent"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
<service
|
<service
|
||||||
android:name="com.android.email.service.MailService"
|
android:name="com.fsck.k9.service.MailService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
>
|
>
|
||||||
</service>
|
</service>
|
||||||
<service
|
<service
|
||||||
android:name="com.android.email.service.PushService"
|
android:name="com.fsck.k9.service.PushService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
>
|
>
|
||||||
</service>
|
</service>
|
||||||
<service
|
<service
|
||||||
android:name="com.android.email.service.PollService"
|
android:name="com.fsck.k9.service.PollService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
>
|
>
|
||||||
</service>
|
</service>
|
||||||
<service
|
<service
|
||||||
android:name="com.android.email.service.SleepService"
|
android:name="com.fsck.k9.service.SleepService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
>
|
>
|
||||||
</service>
|
</service>
|
||||||
<provider
|
<provider
|
||||||
android:name="com.android.email.provider.AttachmentProvider"
|
android:name="com.fsck.k9.provider.AttachmentProvider"
|
||||||
android:authorities="com.fsck.k9.attachmentprovider"
|
android:authorities="com.fsck.k9.attachmentprovider"
|
||||||
android:multiprocess="true"
|
android:multiprocess="true"
|
||||||
android:grantUriPermissions="true"
|
android:grantUriPermissions="true"
|
||||||
android:readPermission="com.android.email.permission.READ_ATTACHMENT"
|
android:readPermission="com.fsck.k9.permission.READ_ATTACHMENT"
|
||||||
/>
|
/>
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
@ -170,12 +170,6 @@
|
|||||||
<arg value="-I" />
|
<arg value="-I" />
|
||||||
<arg path="${android-jar}" />
|
<arg path="${android-jar}" />
|
||||||
</exec>
|
</exec>
|
||||||
<copy overwrite="true" file="gen/com/fsck/k9/R.java" tofile="gen/com/android/email/R.java">
|
|
||||||
<filterset begintoken="package " endtoken=";">
|
|
||||||
<filter token="com.fsck.k9" value="package com.android.email;"/>
|
|
||||||
</filterset>
|
|
||||||
</copy>
|
|
||||||
|
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<!-- Generate java classes from .aidl files. -->
|
<!-- Generate java classes from .aidl files. -->
|
||||||
|
@ -1,597 +0,0 @@
|
|||||||
|
|
||||||
package com.android.email;
|
|
||||||
|
|
||||||
import android.app.Application;
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.util.Log;
|
|
||||||
import com.android.email.activity.MessageCompose;
|
|
||||||
import com.android.email.mail.Address;
|
|
||||||
import com.android.email.mail.Message;
|
|
||||||
import com.android.email.mail.MessagingException;
|
|
||||||
import com.android.email.mail.internet.BinaryTempFileBody;
|
|
||||||
import com.android.email.service.BootReceiver;
|
|
||||||
import com.android.email.service.MailService;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
public class Email extends Application
|
|
||||||
{
|
|
||||||
public static Application app = null;
|
|
||||||
public static File tempDirectory;
|
|
||||||
public static final String LOG_TAG = "k9";
|
|
||||||
|
|
||||||
public enum BACKGROUND_OPS
|
|
||||||
{
|
|
||||||
WHEN_CHECKED, ALWAYS, NEVER
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int theme = android.R.style.Theme_Light;
|
|
||||||
|
|
||||||
private static BACKGROUND_OPS backgroundOps = BACKGROUND_OPS.WHEN_CHECKED;
|
|
||||||
/**
|
|
||||||
* Some log messages can be sent to a file, so that the logs
|
|
||||||
* can be read using unprivileged access (eg. Terminal Emulator)
|
|
||||||
* on the phone, without adb. Set to null to disable
|
|
||||||
*/
|
|
||||||
public static final String logFile = null;
|
|
||||||
//public static final String logFile = "/sdcard/k9mail/debug.log";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If this is enabled there will be additional logging information sent to
|
|
||||||
* Log.d, including protocol dumps.
|
|
||||||
* Controlled by Preferences at run-time
|
|
||||||
*/
|
|
||||||
public static boolean DEBUG = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If this is enabled than logging that normally hides sensitive information
|
|
||||||
* like passwords will show that information.
|
|
||||||
*/
|
|
||||||
public static boolean DEBUG_SENSITIVE = false;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Can create messages containing stack traces that can be forwarded
|
|
||||||
* to the development team.
|
|
||||||
*/
|
|
||||||
public static boolean ENABLE_ERROR_FOLDER = true;
|
|
||||||
public static String ERROR_FOLDER_NAME = "K9mail-errors";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The MIME type(s) of attachments we're willing to send. At the moment it is not possible
|
|
||||||
* to open a chooser with a list of filter types, so the chooser is only opened with the first
|
|
||||||
* item in the list. The entire list will be used to filter down attachments that are added
|
|
||||||
* with Intent.ACTION_SEND.
|
|
||||||
*/
|
|
||||||
public static final String[] ACCEPTABLE_ATTACHMENT_SEND_TYPES = new String[]
|
|
||||||
{
|
|
||||||
"*/*"
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The MIME type(s) of attachments we're willing to view.
|
|
||||||
*/
|
|
||||||
public static final String[] ACCEPTABLE_ATTACHMENT_VIEW_TYPES = new String[]
|
|
||||||
{
|
|
||||||
"*/*",
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The MIME type(s) of attachments we're not willing to view.
|
|
||||||
*/
|
|
||||||
public static final String[] UNACCEPTABLE_ATTACHMENT_VIEW_TYPES = new String[]
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The MIME type(s) of attachments we're willing to download to SD.
|
|
||||||
*/
|
|
||||||
public static final String[] ACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES = new String[]
|
|
||||||
{
|
|
||||||
"*/*",
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The MIME type(s) of attachments we're not willing to download to SD.
|
|
||||||
*/
|
|
||||||
public static final String[] UNACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES = new String[]
|
|
||||||
{
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The special name "INBOX" is used throughout the application to mean "Whatever folder
|
|
||||||
* the server refers to as the user's Inbox. Placed here to ease use.
|
|
||||||
*/
|
|
||||||
public static final String INBOX = "INBOX";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* For use when displaying that no folder is selected
|
|
||||||
*/
|
|
||||||
public static final String FOLDER_NONE = "-NONE-";
|
|
||||||
|
|
||||||
public static final String LOCAL_UID_PREFIX = "K9LOCAL:";
|
|
||||||
|
|
||||||
public static final String REMOTE_UID_PREFIX = "K9REMOTE:";
|
|
||||||
|
|
||||||
public static final String K9MAIL_IDENTITY = "X-K9mail-Identity";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Specifies how many messages will be shown in a folder by default. This number is set
|
|
||||||
* on each new folder and can be incremented with "Load more messages..." by the
|
|
||||||
* VISIBLE_LIMIT_INCREMENT
|
|
||||||
*/
|
|
||||||
public static int DEFAULT_VISIBLE_LIMIT = 25;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Number of additioanl messages to load when a user selectes "Load more messages..."
|
|
||||||
*/
|
|
||||||
public static int VISIBLE_LIMIT_INCREMENT = 25;
|
|
||||||
|
|
||||||
public static int MAX_SEND_ATTEMPTS = 5;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The maximum size of an attachment we're willing to download (either View or Save)
|
|
||||||
* Attachments that are base64 encoded (most) will be about 1.375x their actual size
|
|
||||||
* so we should probably factor that in. A 5MB attachment will generally be around
|
|
||||||
* 6.8MB downloaded but only 5MB saved.
|
|
||||||
*/
|
|
||||||
public static final int MAX_ATTACHMENT_DOWNLOAD_SIZE = (5 * 1024 * 1024);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Max time (in millis) the wake lock will be held for when background sync is happening
|
|
||||||
*/
|
|
||||||
public static final int WAKE_LOCK_TIMEOUT = 600000;
|
|
||||||
|
|
||||||
public static final int MANUAL_WAKE_LOCK_TIMEOUT = 120000;
|
|
||||||
|
|
||||||
public static final int PUSH_WAKE_LOCK_TIMEOUT = 60000;
|
|
||||||
|
|
||||||
public static final int MAIL_SERVICE_WAKE_LOCK_TIMEOUT = 30000;
|
|
||||||
|
|
||||||
public static final int BOOT_RECEIVER_WAKE_LOCK_TIMEOUT = 60000;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* LED color used for the new email notitication
|
|
||||||
*/
|
|
||||||
public static final int NOTIFICATION_LED_COLOR = 0xffff00ff;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Time the LED is on when blicking on new email notification
|
|
||||||
*/
|
|
||||||
public static final int NOTIFICATION_LED_ON_TIME = 500;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Time the LED is off when blicking on new email notification
|
|
||||||
*/
|
|
||||||
public static final int NOTIFICATION_LED_OFF_TIME = 2000;
|
|
||||||
|
|
||||||
public static final boolean NOTIFICATION_LED_WHILE_SYNCING = false;
|
|
||||||
public static final int NOTIFICATION_LED_DIM_COLOR = 0x77770077;
|
|
||||||
public static final int NOTIFICATION_LED_FAST_ON_TIME = 100;
|
|
||||||
public static final int NOTIFICATION_LED_FAST_OFF_TIME = 100;
|
|
||||||
|
|
||||||
public static final int NOTIFICATION_LED_SENDING_FAILURE_COLOR = 0xffff0000;
|
|
||||||
|
|
||||||
// Must not conflict with an account number
|
|
||||||
public static final int FETCHING_EMAIL_NOTIFICATION_ID = -4;
|
|
||||||
public static final int FETCHING_EMAIL_NOTIFICATION_MULTI_ACCOUNT_ID = -1;
|
|
||||||
public static final int FETCHING_EMAIL_NOTIFICATION_NO_ACCOUNT = -2;
|
|
||||||
public static final int CONNECTIVITY_ID = -3;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* http://www.w3schools.com/media/media_mimeref.asp
|
|
||||||
* + png
|
|
||||||
*/
|
|
||||||
public static final String[][] CONTENT_TYPE_BY_EXTENSION_MAP = new String[][]
|
|
||||||
{
|
|
||||||
{ "", "application/octet-stream" },
|
|
||||||
{ "323", "text/h323"},
|
|
||||||
{ "acx", "application/internet-property-stream"},
|
|
||||||
{ "ai", "application/postscript"},
|
|
||||||
{ "aif", "audio/x-aiff"},
|
|
||||||
{ "aifc", "audio/x-aiff"},
|
|
||||||
{ "aiff", "audio/x-aiff"},
|
|
||||||
{ "asf", "video/x-ms-asf"},
|
|
||||||
{ "asr", "video/x-ms-asf"},
|
|
||||||
{ "asx", "video/x-ms-asf"},
|
|
||||||
{ "au", "audio/basic"},
|
|
||||||
{ "avi", "video/x-msvideo"},
|
|
||||||
{ "axs", "application/olescript"},
|
|
||||||
{ "bas", "text/plain"},
|
|
||||||
{ "bcpio", "application/x-bcpio"},
|
|
||||||
{ "bin", "application/octet-stream"},
|
|
||||||
{ "bmp", "image/bmp"},
|
|
||||||
{ "c", "text/plain"},
|
|
||||||
{ "cat", "application/vnd.ms-pkiseccat"},
|
|
||||||
{ "cdf", "application/x-cdf"},
|
|
||||||
{ "cer", "application/x-x509-ca-cert"},
|
|
||||||
{ "class", "application/octet-stream"},
|
|
||||||
{ "clp", "application/x-msclip"},
|
|
||||||
{ "cmx", "image/x-cmx"},
|
|
||||||
{ "cod", "image/cis-cod"},
|
|
||||||
{ "cpio", "application/x-cpio"},
|
|
||||||
{ "crd", "application/x-mscardfile"},
|
|
||||||
{ "crl", "application/pkix-crl"},
|
|
||||||
{ "crt", "application/x-x509-ca-cert"},
|
|
||||||
{ "csh", "application/x-csh"},
|
|
||||||
{ "css", "text/css"},
|
|
||||||
{ "dcr", "application/x-director"},
|
|
||||||
{ "der", "application/x-x509-ca-cert"},
|
|
||||||
{ "dir", "application/x-director"},
|
|
||||||
{ "dll", "application/x-msdownload"},
|
|
||||||
{ "dms", "application/octet-stream"},
|
|
||||||
{ "doc", "application/msword"},
|
|
||||||
{ "dot", "application/msword"},
|
|
||||||
{ "dvi", "application/x-dvi"},
|
|
||||||
{ "dxr", "application/x-director"},
|
|
||||||
{ "eps", "application/postscript"},
|
|
||||||
{ "etx", "text/x-setext"},
|
|
||||||
{ "evy", "application/envoy"},
|
|
||||||
{ "exe", "application/octet-stream"},
|
|
||||||
{ "fif", "application/fractals"},
|
|
||||||
{ "flr", "x-world/x-vrml"},
|
|
||||||
{ "gif", "image/gif"},
|
|
||||||
{ "gtar", "application/x-gtar"},
|
|
||||||
{ "gz", "application/x-gzip"},
|
|
||||||
{ "h", "text/plain"},
|
|
||||||
{ "hdf", "application/x-hdf"},
|
|
||||||
{ "hlp", "application/winhlp"},
|
|
||||||
{ "hqx", "application/mac-binhex40"},
|
|
||||||
{ "hta", "application/hta"},
|
|
||||||
{ "htc", "text/x-component"},
|
|
||||||
{ "htm", "text/html"},
|
|
||||||
{ "html", "text/html"},
|
|
||||||
{ "htt", "text/webviewhtml"},
|
|
||||||
{ "ico", "image/x-icon"},
|
|
||||||
{ "ief", "image/ief"},
|
|
||||||
{ "iii", "application/x-iphone"},
|
|
||||||
{ "ins", "application/x-internet-signup"},
|
|
||||||
{ "isp", "application/x-internet-signup"},
|
|
||||||
{ "jfif", "image/pipeg"},
|
|
||||||
{ "jpe", "image/jpeg"},
|
|
||||||
{ "jpeg", "image/jpeg"},
|
|
||||||
{ "jpg", "image/jpeg"},
|
|
||||||
{ "js", "application/x-javascript"},
|
|
||||||
{ "latex", "application/x-latex"},
|
|
||||||
{ "lha", "application/octet-stream"},
|
|
||||||
{ "lsf", "video/x-la-asf"},
|
|
||||||
{ "lsx", "video/x-la-asf"},
|
|
||||||
{ "lzh", "application/octet-stream"},
|
|
||||||
{ "m13", "application/x-msmediaview"},
|
|
||||||
{ "m14", "application/x-msmediaview"},
|
|
||||||
{ "m3u", "audio/x-mpegurl"},
|
|
||||||
{ "man", "application/x-troff-man"},
|
|
||||||
{ "mdb", "application/x-msaccess"},
|
|
||||||
{ "me", "application/x-troff-me"},
|
|
||||||
{ "mht", "message/rfc822"},
|
|
||||||
{ "mhtml", "message/rfc822"},
|
|
||||||
{ "mid", "audio/mid"},
|
|
||||||
{ "mny", "application/x-msmoney"},
|
|
||||||
{ "mov", "video/quicktime"},
|
|
||||||
{ "movie", "video/x-sgi-movie"},
|
|
||||||
{ "mp2", "video/mpeg"},
|
|
||||||
{ "mp3", "audio/mpeg"},
|
|
||||||
{ "mpa", "video/mpeg"},
|
|
||||||
{ "mpe", "video/mpeg"},
|
|
||||||
{ "mpeg", "video/mpeg"},
|
|
||||||
{ "mpg", "video/mpeg"},
|
|
||||||
{ "mpp", "application/vnd.ms-project"},
|
|
||||||
{ "mpv2", "video/mpeg"},
|
|
||||||
{ "ms", "application/x-troff-ms"},
|
|
||||||
{ "mvb", "application/x-msmediaview"},
|
|
||||||
{ "nws", "message/rfc822"},
|
|
||||||
{ "oda", "application/oda"},
|
|
||||||
{ "p10", "application/pkcs10"},
|
|
||||||
{ "p12", "application/x-pkcs12"},
|
|
||||||
{ "p7b", "application/x-pkcs7-certificates"},
|
|
||||||
{ "p7c", "application/x-pkcs7-mime"},
|
|
||||||
{ "p7m", "application/x-pkcs7-mime"},
|
|
||||||
{ "p7r", "application/x-pkcs7-certreqresp"},
|
|
||||||
{ "p7s", "application/x-pkcs7-signature"},
|
|
||||||
{ "pbm", "image/x-portable-bitmap"},
|
|
||||||
{ "pdf", "application/pdf"},
|
|
||||||
{ "pfx", "application/x-pkcs12"},
|
|
||||||
{ "pgm", "image/x-portable-graymap"},
|
|
||||||
{ "pko", "application/ynd.ms-pkipko"},
|
|
||||||
{ "pma", "application/x-perfmon"},
|
|
||||||
{ "pmc", "application/x-perfmon"},
|
|
||||||
{ "pml", "application/x-perfmon"},
|
|
||||||
{ "pmr", "application/x-perfmon"},
|
|
||||||
{ "pmw", "application/x-perfmon"},
|
|
||||||
{ "png", "image/png"},
|
|
||||||
{ "pnm", "image/x-portable-anymap"},
|
|
||||||
{ "pot,", "application/vnd.ms-powerpoint"},
|
|
||||||
{ "ppm", "image/x-portable-pixmap"},
|
|
||||||
{ "pps", "application/vnd.ms-powerpoint"},
|
|
||||||
{ "ppt", "application/vnd.ms-powerpoint"},
|
|
||||||
{ "prf", "application/pics-rules"},
|
|
||||||
{ "ps", "application/postscript"},
|
|
||||||
{ "pub", "application/x-mspublisher"},
|
|
||||||
{ "qt", "video/quicktime"},
|
|
||||||
{ "ra", "audio/x-pn-realaudio"},
|
|
||||||
{ "ram", "audio/x-pn-realaudio"},
|
|
||||||
{ "ras", "image/x-cmu-raster"},
|
|
||||||
{ "rgb", "image/x-rgb"},
|
|
||||||
{ "rmi", "audio/mid"},
|
|
||||||
{ "roff", "application/x-troff"},
|
|
||||||
{ "rtf", "application/rtf"},
|
|
||||||
{ "rtx", "text/richtext"},
|
|
||||||
{ "scd", "application/x-msschedule"},
|
|
||||||
{ "sct", "text/scriptlet"},
|
|
||||||
{ "setpay", "application/set-payment-initiation"},
|
|
||||||
{ "setreg", "application/set-registration-initiation"},
|
|
||||||
{ "sh", "application/x-sh"},
|
|
||||||
{ "shar", "application/x-shar"},
|
|
||||||
{ "sit", "application/x-stuffit"},
|
|
||||||
{ "snd", "audio/basic"},
|
|
||||||
{ "spc", "application/x-pkcs7-certificates"},
|
|
||||||
{ "spl", "application/futuresplash"},
|
|
||||||
{ "src", "application/x-wais-source"},
|
|
||||||
{ "sst", "application/vnd.ms-pkicertstore"},
|
|
||||||
{ "stl", "application/vnd.ms-pkistl"},
|
|
||||||
{ "stm", "text/html"},
|
|
||||||
{ "svg", "image/svg+xml"},
|
|
||||||
{ "sv4cpio","application/x-sv4cpio"},
|
|
||||||
{ "sv4crc", "application/x-sv4crc"},
|
|
||||||
{ "swf", "application/x-shockwave-flash"},
|
|
||||||
{ "t", "application/x-troff"},
|
|
||||||
{ "tar", "application/x-tar"},
|
|
||||||
{ "tcl", "application/x-tcl"},
|
|
||||||
{ "tex", "application/x-tex"},
|
|
||||||
{ "texi", "application/x-texinfo"},
|
|
||||||
{ "texinfo","application/x-texinfo"},
|
|
||||||
{ "tgz", "application/x-compressed"},
|
|
||||||
{ "tif", "image/tiff"},
|
|
||||||
{ "tiff", "image/tiff"},
|
|
||||||
{ "tr", "application/x-troff"},
|
|
||||||
{ "trm", "application/x-msterminal"},
|
|
||||||
{ "tsv", "text/tab-separated-values"},
|
|
||||||
{ "txt", "text/plain"},
|
|
||||||
{ "uls", "text/iuls"},
|
|
||||||
{ "ustar", "application/x-ustar"},
|
|
||||||
{ "vcf", "text/x-vcard"},
|
|
||||||
{ "vrml", "x-world/x-vrml"},
|
|
||||||
{ "wav", "audio/x-wav"},
|
|
||||||
{ "wcm", "application/vnd.ms-works"},
|
|
||||||
{ "wdb", "application/vnd.ms-works"},
|
|
||||||
{ "wks", "application/vnd.ms-works"},
|
|
||||||
{ "wmf", "application/x-msmetafile"},
|
|
||||||
{ "wps", "application/vnd.ms-works"},
|
|
||||||
{ "wri", "application/x-mswrite"},
|
|
||||||
{ "wrl", "x-world/x-vrml"},
|
|
||||||
{ "wrz", "x-world/x-vrml"},
|
|
||||||
{ "xaf", "x-world/x-vrml"},
|
|
||||||
{ "xbm", "image/x-xbitmap"},
|
|
||||||
{ "xla", "application/vnd.ms-excel"},
|
|
||||||
{ "xlc", "application/vnd.ms-excel"},
|
|
||||||
{ "xlm", "application/vnd.ms-excel"},
|
|
||||||
{ "xls", "application/vnd.ms-excel"},
|
|
||||||
{ "xlt", "application/vnd.ms-excel"},
|
|
||||||
{ "xlw", "application/vnd.ms-excel"},
|
|
||||||
{ "xof", "x-world/x-vrml"},
|
|
||||||
{ "xpm", "image/x-xpixmap"},
|
|
||||||
{ "xwd", "image/x-xwindowdump"},
|
|
||||||
{ "z", "application/x-compress"},
|
|
||||||
{ "zip", "application/zip"}
|
|
||||||
};
|
|
||||||
|
|
||||||
public class Intents
|
|
||||||
{
|
|
||||||
|
|
||||||
public class EmailReceived
|
|
||||||
{
|
|
||||||
public static final String ACTION_EMAIL_RECEIVED = "com.android.email.intent.action.EMAIL_RECEIVED";
|
|
||||||
public static final String ACTION_EMAIL_DELETED = "com.android.email.intent.action.EMAIL_DELETED";
|
|
||||||
public static final String EXTRA_ACCOUNT = "com.android.email.intent.extra.ACCOUNT";
|
|
||||||
public static final String EXTRA_FOLDER = "com.android.email.intent.extra.FOLDER";
|
|
||||||
public static final String EXTRA_SENT_DATE = "com.android.email.intent.extra.SENT_DATE";
|
|
||||||
public static final String EXTRA_FROM = "com.android.email.intent.extra.FROM";
|
|
||||||
public static final String EXTRA_TO = "com.android.email.intent.extra.TO";
|
|
||||||
public static final String EXTRA_CC = "com.android.email.intent.extra.CC";
|
|
||||||
public static final String EXTRA_BCC = "com.android.email.intent.extra.BCC";
|
|
||||||
public static final String EXTRA_SUBJECT = "com.android.email.intent.extra.SUBJECT";
|
|
||||||
public static final String EXTRA_FROM_SELF = "com.android.email.intent.extra.FROM_SELF";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called throughout the application when the number of accounts has changed. This method
|
|
||||||
* enables or disables the Compose activity, the boot receiver and the service based on
|
|
||||||
* whether any accounts are configured.
|
|
||||||
*/
|
|
||||||
public static void setServicesEnabled(Context context)
|
|
||||||
{
|
|
||||||
|
|
||||||
int acctLength = Preferences.getPreferences(context).getAccounts().length;
|
|
||||||
|
|
||||||
setServicesEnabled(context, acctLength > 0, null);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setServicesEnabled(Context context, Integer wakeLockId)
|
|
||||||
{
|
|
||||||
setServicesEnabled(context, Preferences.getPreferences(context).getAccounts().length > 0, wakeLockId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setServicesEnabled(Context context, boolean enabled, Integer wakeLockId)
|
|
||||||
{
|
|
||||||
|
|
||||||
PackageManager pm = context.getPackageManager();
|
|
||||||
|
|
||||||
if (!enabled && pm.getComponentEnabledSetting(new ComponentName(context, MailService.class)) ==
|
|
||||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* If no accounts now exist but the service is still enabled we're about to disable it
|
|
||||||
* so we'll reschedule to kill off any existing alarms.
|
|
||||||
*/
|
|
||||||
MailService.actionReschedule(context, wakeLockId);
|
|
||||||
}
|
|
||||||
Class[] classes = { MessageCompose.class, BootReceiver.class, MailService.class };
|
|
||||||
|
|
||||||
for (Class clazz : classes)
|
|
||||||
{
|
|
||||||
|
|
||||||
boolean alreadyEnabled = pm.getComponentEnabledSetting(new ComponentName(context, clazz)) ==
|
|
||||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
|
||||||
|
|
||||||
if (enabled != alreadyEnabled)
|
|
||||||
{
|
|
||||||
pm.setComponentEnabledSetting(
|
|
||||||
new ComponentName(context, clazz),
|
|
||||||
enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
|
|
||||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
|
|
||||||
PackageManager.DONT_KILL_APP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (enabled && pm.getComponentEnabledSetting(new ComponentName(context, MailService.class)) ==
|
|
||||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* And now if accounts do exist then we've just enabled the service and we want to
|
|
||||||
* schedule alarms for the new accounts.
|
|
||||||
*/
|
|
||||||
MailService.actionReschedule(context, wakeLockId);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void save(SharedPreferences.Editor editor)
|
|
||||||
{
|
|
||||||
editor.putBoolean("enableDebugLogging", Email.DEBUG);
|
|
||||||
editor.putBoolean("enableSensitiveLogging", Email.DEBUG_SENSITIVE);
|
|
||||||
editor.putString("backgroundOperations", Email.backgroundOps.toString());
|
|
||||||
editor.putInt("theme", theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate()
|
|
||||||
{
|
|
||||||
super.onCreate();
|
|
||||||
app = this;
|
|
||||||
Preferences prefs = Preferences.getPreferences(this);
|
|
||||||
SharedPreferences sprefs = prefs.getPreferences();
|
|
||||||
DEBUG = sprefs.getBoolean("enableDebugLogging", false);
|
|
||||||
DEBUG_SENSITIVE = sprefs.getBoolean("enableSensitiveLogging", false);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
setBackgroundOps(BACKGROUND_OPS.valueOf(sprefs.getString("backgroundOperations", "WHEN_CHECKED")));
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
setBackgroundOps(BACKGROUND_OPS.WHEN_CHECKED);
|
|
||||||
}
|
|
||||||
|
|
||||||
Email.setK9Theme(sprefs.getInt("theme", android.R.style.Theme_Light));
|
|
||||||
MessagingController.getInstance(this).resetVisibleLimits(prefs.getAccounts());
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We have to give MimeMessage a temp directory because File.createTempFile(String, String)
|
|
||||||
* doesn't work in Android and MimeMessage does not have access to a Context.
|
|
||||||
*/
|
|
||||||
BinaryTempFileBody.setTempDirectory(getCacheDir());
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Enable background sync of messages
|
|
||||||
*/
|
|
||||||
|
|
||||||
setServicesEnabled(this);
|
|
||||||
|
|
||||||
MessagingController.getInstance(this).addListener(new MessagingListener()
|
|
||||||
{
|
|
||||||
private void broadcastIntent(String action, Account account, String folder, Message message)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Uri uri = Uri.parse("email://messages/" + account.getAccountNumber() + "/" + Uri.encode(folder) + "/" + Uri.encode(message.getUid()));
|
|
||||||
Intent intent = new Intent(action, uri);
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_ACCOUNT, account.getDescription());
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_FOLDER, folder);
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_SENT_DATE, message.getSentDate());
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_FROM, Address.toString(message.getFrom()));
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_TO, Address.toString(message.getRecipients(Message.RecipientType.TO)));
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_CC, Address.toString(message.getRecipients(Message.RecipientType.CC)));
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_BCC, Address.toString(message.getRecipients(Message.RecipientType.BCC)));
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_SUBJECT, message.getSubject());
|
|
||||||
intent.putExtra(Email.Intents.EmailReceived.EXTRA_FROM_SELF, account.isAnIdentity(message.getFrom()));
|
|
||||||
Email.this.sendBroadcast(intent);
|
|
||||||
Log.d(Email.LOG_TAG, "Broadcasted: action=" + action
|
|
||||||
+ " account=" + account.getDescription()
|
|
||||||
+ " folder=" + folder
|
|
||||||
+ " message uid=" + message.getUid()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
catch (MessagingException e)
|
|
||||||
{
|
|
||||||
Log.w(Email.LOG_TAG, "Error: action=" + action
|
|
||||||
+ " account=" + account.getDescription()
|
|
||||||
+ " folder=" + folder
|
|
||||||
+ " message uid=" + message.getUid()
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void synchronizeMailboxRemovedMessage(Account account, String folder, Message message)
|
|
||||||
{
|
|
||||||
broadcastIntent(Email.Intents.EmailReceived.ACTION_EMAIL_DELETED, account, folder, message);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void messageDeleted(Account account, String folder, Message message)
|
|
||||||
{
|
|
||||||
broadcastIntent(Email.Intents.EmailReceived.ACTION_EMAIL_DELETED, account, folder, message);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void synchronizeMailboxNewMessage(Account account, String folder, Message message)
|
|
||||||
{
|
|
||||||
broadcastIntent(Email.Intents.EmailReceived.ACTION_EMAIL_RECEIVED, account, folder, message);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getK9Theme()
|
|
||||||
{
|
|
||||||
return theme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setK9Theme(int ntheme)
|
|
||||||
{
|
|
||||||
theme = ntheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BACKGROUND_OPS getBackgroundOps()
|
|
||||||
{
|
|
||||||
return backgroundOps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setBackgroundOps(BACKGROUND_OPS backgroundOps)
|
|
||||||
{
|
|
||||||
Email.backgroundOps = backgroundOps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setBackgroundOps(String nbackgroundOps)
|
|
||||||
{
|
|
||||||
Email.backgroundOps = BACKGROUND_OPS.valueOf(nbackgroundOps);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
|||||||
package com.android.email;
|
|
||||||
|
|
||||||
public class EmailReceivedIntent
|
|
||||||
{
|
|
||||||
|
|
||||||
public static final String ACTION_EMAIL_RECEIVED = "com.android.email.intent.action.EMAIL_RECEIVED";
|
|
||||||
public static final String EXTRA_ACCOUNT = "com.android.email.intent.extra.ACCOUNT";
|
|
||||||
public static final String EXTRA_FOLDER = "com.android.email.intent.extra.FOLDER";
|
|
||||||
public static final String EXTRA_SENT_DATE = "com.android.email.intent.extra.SENT_DATE";
|
|
||||||
public static final String EXTRA_FROM = "com.android.email.intent.extra.FROM";
|
|
||||||
public static final String EXTRA_TO = "com.android.email.intent.extra.TO";
|
|
||||||
public static final String EXTRA_CC = "com.android.email.intent.extra.CC";
|
|
||||||
public static final String EXTRA_BCC = "com.android.email.intent.extra.BCC";
|
|
||||||
public static final String EXTRA_SUBJECT = "com.android.email.intent.extra.SUBJECT";
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
/* AUTO-GENERATED FILE. DO NOT MODIFY.
|
|
||||||
*
|
|
||||||
* This class was automatically generated by the
|
|
||||||
* aapt tool from the resource data it found. It
|
|
||||||
* should not be modified by hand.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.android.email;
|
|
||||||
|
|
||||||
public final class Manifest
|
|
||||||
{
|
|
||||||
public static final class permission
|
|
||||||
{
|
|
||||||
public static final String READ_ATTACHMENT="com.android.email.permission.READ_ATTACHMENT";
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,16 +1,16 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import com.android.email.mail.Address;
|
import com.fsck.k9.mail.Address;
|
||||||
import com.android.email.mail.Folder;
|
import com.fsck.k9.mail.Folder;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
import com.android.email.mail.store.LocalStore;
|
import com.fsck.k9.mail.store.LocalStore;
|
||||||
import com.android.email.mail.store.LocalStore.LocalFolder;
|
import com.fsck.k9.mail.store.LocalStore.LocalFolder;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -718,7 +718,7 @@ public class Account implements Serializable
|
|||||||
{
|
{
|
||||||
if (mDisplayCount == -1)
|
if (mDisplayCount == -1)
|
||||||
{
|
{
|
||||||
this.mDisplayCount = Email.DEFAULT_VISIBLE_LIMIT;
|
this.mDisplayCount = K9.DEFAULT_VISIBLE_LIMIT;
|
||||||
}
|
}
|
||||||
return mDisplayCount;
|
return mDisplayCount;
|
||||||
}
|
}
|
||||||
@ -742,7 +742,7 @@ public class Account implements Serializable
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.mDisplayCount = Email.DEFAULT_VISIBLE_LIMIT;
|
this.mDisplayCount = K9.DEFAULT_VISIBLE_LIMIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -793,7 +793,7 @@ public class Account implements Serializable
|
|||||||
|
|
||||||
public String getErrorFolderName()
|
public String getErrorFolderName()
|
||||||
{
|
{
|
||||||
return Email.ERROR_FOLDER_NAME;
|
return K9.ERROR_FOLDER_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSentFolderName(String sentFolderName)
|
public void setSentFolderName(String sentFolderName)
|
@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -25,7 +25,7 @@ import android.provider.Contacts.People;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ResourceCursorAdapter;
|
import android.widget.ResourceCursorAdapter;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import com.android.email.mail.Address;
|
import com.fsck.k9.mail.Address;
|
||||||
|
|
||||||
import static android.provider.Contacts.ContactMethods.CONTENT_EMAIL_URI;
|
import static android.provider.Contacts.ContactMethods.CONTENT_EMAIL_URI;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.text.util.Rfc822Tokenizer;
|
import android.text.util.Rfc822Tokenizer;
|
||||||
import android.widget.AutoCompleteTextView.Validator;
|
import android.widget.AutoCompleteTextView.Validator;
|
15
src/com/fsck/k9/EmailReceivedIntent.java
Normal file
15
src/com/fsck/k9/EmailReceivedIntent.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package com.fsck.k9;
|
||||||
|
|
||||||
|
public class EmailReceivedIntent
|
||||||
|
{
|
||||||
|
|
||||||
|
public static final String ACTION_EMAIL_RECEIVED = "com.fsck.k9.intent.action.EMAIL_RECEIVED";
|
||||||
|
public static final String EXTRA_ACCOUNT = "com.fsck.k9.intent.extra.ACCOUNT";
|
||||||
|
public static final String EXTRA_FOLDER = "com.fsck.k9.intent.extra.FOLDER";
|
||||||
|
public static final String EXTRA_SENT_DATE = "com.fsck.k9.intent.extra.SENT_DATE";
|
||||||
|
public static final String EXTRA_FROM = "com.fsck.k9.intent.extra.FROM";
|
||||||
|
public static final String EXTRA_TO = "com.fsck.k9.intent.extra.TO";
|
||||||
|
public static final String EXTRA_CC = "com.fsck.k9.intent.extra.CC";
|
||||||
|
public static final String EXTRA_BCC = "com.fsck.k9.intent.extra.BCC";
|
||||||
|
public static final String EXTRA_SUBJECT = "com.fsck.k9.intent.extra.SUBJECT";
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
@ -1,6 +1,598 @@
|
|||||||
|
|
||||||
package com.fsck.k9;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import com.android.email.Email;
|
import android.app.Application;
|
||||||
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.util.Log;
|
||||||
|
import com.fsck.k9.activity.MessageCompose;
|
||||||
|
import com.fsck.k9.mail.Address;
|
||||||
|
import com.fsck.k9.mail.Message;
|
||||||
|
import com.fsck.k9.mail.MessagingException;
|
||||||
|
import com.fsck.k9.mail.internet.BinaryTempFileBody;
|
||||||
|
import com.fsck.k9.service.BootReceiver;
|
||||||
|
import com.fsck.k9.service.MailService;
|
||||||
|
|
||||||
public class K9 extends Email {
|
import java.io.File;
|
||||||
|
|
||||||
|
public class K9 extends Application
|
||||||
|
{
|
||||||
|
public static Application app = null;
|
||||||
|
public static File tempDirectory;
|
||||||
|
public static final String LOG_TAG = "k9";
|
||||||
|
|
||||||
|
public enum BACKGROUND_OPS
|
||||||
|
{
|
||||||
|
WHEN_CHECKED, ALWAYS, NEVER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int theme = android.R.style.Theme_Light;
|
||||||
|
|
||||||
|
private static BACKGROUND_OPS backgroundOps = BACKGROUND_OPS.WHEN_CHECKED;
|
||||||
|
/**
|
||||||
|
* Some log messages can be sent to a file, so that the logs
|
||||||
|
* can be read using unprivileged access (eg. Terminal Emulator)
|
||||||
|
* on the phone, without adb. Set to null to disable
|
||||||
|
*/
|
||||||
|
public static final String logFile = null;
|
||||||
|
//public static final String logFile = "/sdcard/k9mail/debug.log";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If this is enabled there will be additional logging information sent to
|
||||||
|
* Log.d, including protocol dumps.
|
||||||
|
* Controlled by Preferences at run-time
|
||||||
|
*/
|
||||||
|
public static boolean DEBUG = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If this is enabled than logging that normally hides sensitive information
|
||||||
|
* like passwords will show that information.
|
||||||
|
*/
|
||||||
|
public static boolean DEBUG_SENSITIVE = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Can create messages containing stack traces that can be forwarded
|
||||||
|
* to the development team.
|
||||||
|
*/
|
||||||
|
public static boolean ENABLE_ERROR_FOLDER = true;
|
||||||
|
public static String ERROR_FOLDER_NAME = "K9mail-errors";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The MIME type(s) of attachments we're willing to send. At the moment it is not possible
|
||||||
|
* to open a chooser with a list of filter types, so the chooser is only opened with the first
|
||||||
|
* item in the list. The entire list will be used to filter down attachments that are added
|
||||||
|
* with Intent.ACTION_SEND.
|
||||||
|
*/
|
||||||
|
public static final String[] ACCEPTABLE_ATTACHMENT_SEND_TYPES = new String[]
|
||||||
|
{
|
||||||
|
"*/*"
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The MIME type(s) of attachments we're willing to view.
|
||||||
|
*/
|
||||||
|
public static final String[] ACCEPTABLE_ATTACHMENT_VIEW_TYPES = new String[]
|
||||||
|
{
|
||||||
|
"*/*",
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The MIME type(s) of attachments we're not willing to view.
|
||||||
|
*/
|
||||||
|
public static final String[] UNACCEPTABLE_ATTACHMENT_VIEW_TYPES = new String[]
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The MIME type(s) of attachments we're willing to download to SD.
|
||||||
|
*/
|
||||||
|
public static final String[] ACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES = new String[]
|
||||||
|
{
|
||||||
|
"*/*",
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The MIME type(s) of attachments we're not willing to download to SD.
|
||||||
|
*/
|
||||||
|
public static final String[] UNACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES = new String[]
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The special name "INBOX" is used throughout the application to mean "Whatever folder
|
||||||
|
* the server refers to as the user's Inbox. Placed here to ease use.
|
||||||
|
*/
|
||||||
|
public static final String INBOX = "INBOX";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For use when displaying that no folder is selected
|
||||||
|
*/
|
||||||
|
public static final String FOLDER_NONE = "-NONE-";
|
||||||
|
|
||||||
|
public static final String LOCAL_UID_PREFIX = "K9LOCAL:";
|
||||||
|
|
||||||
|
public static final String REMOTE_UID_PREFIX = "K9REMOTE:";
|
||||||
|
|
||||||
|
public static final String K9MAIL_IDENTITY = "X-K9mail-Identity";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies how many messages will be shown in a folder by default. This number is set
|
||||||
|
* on each new folder and can be incremented with "Load more messages..." by the
|
||||||
|
* VISIBLE_LIMIT_INCREMENT
|
||||||
|
*/
|
||||||
|
public static int DEFAULT_VISIBLE_LIMIT = 25;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of additioanl messages to load when a user selectes "Load more messages..."
|
||||||
|
*/
|
||||||
|
public static int VISIBLE_LIMIT_INCREMENT = 25;
|
||||||
|
|
||||||
|
public static int MAX_SEND_ATTEMPTS = 5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The maximum size of an attachment we're willing to download (either View or Save)
|
||||||
|
* Attachments that are base64 encoded (most) will be about 1.375x their actual size
|
||||||
|
* so we should probably factor that in. A 5MB attachment will generally be around
|
||||||
|
* 6.8MB downloaded but only 5MB saved.
|
||||||
|
*/
|
||||||
|
public static final int MAX_ATTACHMENT_DOWNLOAD_SIZE = (5 * 1024 * 1024);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Max time (in millis) the wake lock will be held for when background sync is happening
|
||||||
|
*/
|
||||||
|
public static final int WAKE_LOCK_TIMEOUT = 600000;
|
||||||
|
|
||||||
|
public static final int MANUAL_WAKE_LOCK_TIMEOUT = 120000;
|
||||||
|
|
||||||
|
public static final int PUSH_WAKE_LOCK_TIMEOUT = 60000;
|
||||||
|
|
||||||
|
public static final int MAIL_SERVICE_WAKE_LOCK_TIMEOUT = 30000;
|
||||||
|
|
||||||
|
public static final int BOOT_RECEIVER_WAKE_LOCK_TIMEOUT = 60000;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LED color used for the new email notitication
|
||||||
|
*/
|
||||||
|
public static final int NOTIFICATION_LED_COLOR = 0xffff00ff;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Time the LED is on when blicking on new email notification
|
||||||
|
*/
|
||||||
|
public static final int NOTIFICATION_LED_ON_TIME = 500;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Time the LED is off when blicking on new email notification
|
||||||
|
*/
|
||||||
|
public static final int NOTIFICATION_LED_OFF_TIME = 2000;
|
||||||
|
|
||||||
|
public static final boolean NOTIFICATION_LED_WHILE_SYNCING = false;
|
||||||
|
public static final int NOTIFICATION_LED_DIM_COLOR = 0x77770077;
|
||||||
|
public static final int NOTIFICATION_LED_FAST_ON_TIME = 100;
|
||||||
|
public static final int NOTIFICATION_LED_FAST_OFF_TIME = 100;
|
||||||
|
|
||||||
|
public static final int NOTIFICATION_LED_SENDING_FAILURE_COLOR = 0xffff0000;
|
||||||
|
|
||||||
|
// Must not conflict with an account number
|
||||||
|
public static final int FETCHING_EMAIL_NOTIFICATION_ID = -4;
|
||||||
|
public static final int FETCHING_EMAIL_NOTIFICATION_MULTI_ACCOUNT_ID = -1;
|
||||||
|
public static final int FETCHING_EMAIL_NOTIFICATION_NO_ACCOUNT = -2;
|
||||||
|
public static final int CONNECTIVITY_ID = -3;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* http://www.w3schools.com/media/media_mimeref.asp
|
||||||
|
* + png
|
||||||
|
*/
|
||||||
|
public static final String[][] CONTENT_TYPE_BY_EXTENSION_MAP = new String[][]
|
||||||
|
{
|
||||||
|
{ "", "application/octet-stream" },
|
||||||
|
{ "323", "text/h323"},
|
||||||
|
{ "acx", "application/internet-property-stream"},
|
||||||
|
{ "ai", "application/postscript"},
|
||||||
|
{ "aif", "audio/x-aiff"},
|
||||||
|
{ "aifc", "audio/x-aiff"},
|
||||||
|
{ "aiff", "audio/x-aiff"},
|
||||||
|
{ "asf", "video/x-ms-asf"},
|
||||||
|
{ "asr", "video/x-ms-asf"},
|
||||||
|
{ "asx", "video/x-ms-asf"},
|
||||||
|
{ "au", "audio/basic"},
|
||||||
|
{ "avi", "video/x-msvideo"},
|
||||||
|
{ "axs", "application/olescript"},
|
||||||
|
{ "bas", "text/plain"},
|
||||||
|
{ "bcpio", "application/x-bcpio"},
|
||||||
|
{ "bin", "application/octet-stream"},
|
||||||
|
{ "bmp", "image/bmp"},
|
||||||
|
{ "c", "text/plain"},
|
||||||
|
{ "cat", "application/vnd.ms-pkiseccat"},
|
||||||
|
{ "cdf", "application/x-cdf"},
|
||||||
|
{ "cer", "application/x-x509-ca-cert"},
|
||||||
|
{ "class", "application/octet-stream"},
|
||||||
|
{ "clp", "application/x-msclip"},
|
||||||
|
{ "cmx", "image/x-cmx"},
|
||||||
|
{ "cod", "image/cis-cod"},
|
||||||
|
{ "cpio", "application/x-cpio"},
|
||||||
|
{ "crd", "application/x-mscardfile"},
|
||||||
|
{ "crl", "application/pkix-crl"},
|
||||||
|
{ "crt", "application/x-x509-ca-cert"},
|
||||||
|
{ "csh", "application/x-csh"},
|
||||||
|
{ "css", "text/css"},
|
||||||
|
{ "dcr", "application/x-director"},
|
||||||
|
{ "der", "application/x-x509-ca-cert"},
|
||||||
|
{ "dir", "application/x-director"},
|
||||||
|
{ "dll", "application/x-msdownload"},
|
||||||
|
{ "dms", "application/octet-stream"},
|
||||||
|
{ "doc", "application/msword"},
|
||||||
|
{ "dot", "application/msword"},
|
||||||
|
{ "dvi", "application/x-dvi"},
|
||||||
|
{ "dxr", "application/x-director"},
|
||||||
|
{ "eps", "application/postscript"},
|
||||||
|
{ "etx", "text/x-setext"},
|
||||||
|
{ "evy", "application/envoy"},
|
||||||
|
{ "exe", "application/octet-stream"},
|
||||||
|
{ "fif", "application/fractals"},
|
||||||
|
{ "flr", "x-world/x-vrml"},
|
||||||
|
{ "gif", "image/gif"},
|
||||||
|
{ "gtar", "application/x-gtar"},
|
||||||
|
{ "gz", "application/x-gzip"},
|
||||||
|
{ "h", "text/plain"},
|
||||||
|
{ "hdf", "application/x-hdf"},
|
||||||
|
{ "hlp", "application/winhlp"},
|
||||||
|
{ "hqx", "application/mac-binhex40"},
|
||||||
|
{ "hta", "application/hta"},
|
||||||
|
{ "htc", "text/x-component"},
|
||||||
|
{ "htm", "text/html"},
|
||||||
|
{ "html", "text/html"},
|
||||||
|
{ "htt", "text/webviewhtml"},
|
||||||
|
{ "ico", "image/x-icon"},
|
||||||
|
{ "ief", "image/ief"},
|
||||||
|
{ "iii", "application/x-iphone"},
|
||||||
|
{ "ins", "application/x-internet-signup"},
|
||||||
|
{ "isp", "application/x-internet-signup"},
|
||||||
|
{ "jfif", "image/pipeg"},
|
||||||
|
{ "jpe", "image/jpeg"},
|
||||||
|
{ "jpeg", "image/jpeg"},
|
||||||
|
{ "jpg", "image/jpeg"},
|
||||||
|
{ "js", "application/x-javascript"},
|
||||||
|
{ "latex", "application/x-latex"},
|
||||||
|
{ "lha", "application/octet-stream"},
|
||||||
|
{ "lsf", "video/x-la-asf"},
|
||||||
|
{ "lsx", "video/x-la-asf"},
|
||||||
|
{ "lzh", "application/octet-stream"},
|
||||||
|
{ "m13", "application/x-msmediaview"},
|
||||||
|
{ "m14", "application/x-msmediaview"},
|
||||||
|
{ "m3u", "audio/x-mpegurl"},
|
||||||
|
{ "man", "application/x-troff-man"},
|
||||||
|
{ "mdb", "application/x-msaccess"},
|
||||||
|
{ "me", "application/x-troff-me"},
|
||||||
|
{ "mht", "message/rfc822"},
|
||||||
|
{ "mhtml", "message/rfc822"},
|
||||||
|
{ "mid", "audio/mid"},
|
||||||
|
{ "mny", "application/x-msmoney"},
|
||||||
|
{ "mov", "video/quicktime"},
|
||||||
|
{ "movie", "video/x-sgi-movie"},
|
||||||
|
{ "mp2", "video/mpeg"},
|
||||||
|
{ "mp3", "audio/mpeg"},
|
||||||
|
{ "mpa", "video/mpeg"},
|
||||||
|
{ "mpe", "video/mpeg"},
|
||||||
|
{ "mpeg", "video/mpeg"},
|
||||||
|
{ "mpg", "video/mpeg"},
|
||||||
|
{ "mpp", "application/vnd.ms-project"},
|
||||||
|
{ "mpv2", "video/mpeg"},
|
||||||
|
{ "ms", "application/x-troff-ms"},
|
||||||
|
{ "mvb", "application/x-msmediaview"},
|
||||||
|
{ "nws", "message/rfc822"},
|
||||||
|
{ "oda", "application/oda"},
|
||||||
|
{ "p10", "application/pkcs10"},
|
||||||
|
{ "p12", "application/x-pkcs12"},
|
||||||
|
{ "p7b", "application/x-pkcs7-certificates"},
|
||||||
|
{ "p7c", "application/x-pkcs7-mime"},
|
||||||
|
{ "p7m", "application/x-pkcs7-mime"},
|
||||||
|
{ "p7r", "application/x-pkcs7-certreqresp"},
|
||||||
|
{ "p7s", "application/x-pkcs7-signature"},
|
||||||
|
{ "pbm", "image/x-portable-bitmap"},
|
||||||
|
{ "pdf", "application/pdf"},
|
||||||
|
{ "pfx", "application/x-pkcs12"},
|
||||||
|
{ "pgm", "image/x-portable-graymap"},
|
||||||
|
{ "pko", "application/ynd.ms-pkipko"},
|
||||||
|
{ "pma", "application/x-perfmon"},
|
||||||
|
{ "pmc", "application/x-perfmon"},
|
||||||
|
{ "pml", "application/x-perfmon"},
|
||||||
|
{ "pmr", "application/x-perfmon"},
|
||||||
|
{ "pmw", "application/x-perfmon"},
|
||||||
|
{ "png", "image/png"},
|
||||||
|
{ "pnm", "image/x-portable-anymap"},
|
||||||
|
{ "pot,", "application/vnd.ms-powerpoint"},
|
||||||
|
{ "ppm", "image/x-portable-pixmap"},
|
||||||
|
{ "pps", "application/vnd.ms-powerpoint"},
|
||||||
|
{ "ppt", "application/vnd.ms-powerpoint"},
|
||||||
|
{ "prf", "application/pics-rules"},
|
||||||
|
{ "ps", "application/postscript"},
|
||||||
|
{ "pub", "application/x-mspublisher"},
|
||||||
|
{ "qt", "video/quicktime"},
|
||||||
|
{ "ra", "audio/x-pn-realaudio"},
|
||||||
|
{ "ram", "audio/x-pn-realaudio"},
|
||||||
|
{ "ras", "image/x-cmu-raster"},
|
||||||
|
{ "rgb", "image/x-rgb"},
|
||||||
|
{ "rmi", "audio/mid"},
|
||||||
|
{ "roff", "application/x-troff"},
|
||||||
|
{ "rtf", "application/rtf"},
|
||||||
|
{ "rtx", "text/richtext"},
|
||||||
|
{ "scd", "application/x-msschedule"},
|
||||||
|
{ "sct", "text/scriptlet"},
|
||||||
|
{ "setpay", "application/set-payment-initiation"},
|
||||||
|
{ "setreg", "application/set-registration-initiation"},
|
||||||
|
{ "sh", "application/x-sh"},
|
||||||
|
{ "shar", "application/x-shar"},
|
||||||
|
{ "sit", "application/x-stuffit"},
|
||||||
|
{ "snd", "audio/basic"},
|
||||||
|
{ "spc", "application/x-pkcs7-certificates"},
|
||||||
|
{ "spl", "application/futuresplash"},
|
||||||
|
{ "src", "application/x-wais-source"},
|
||||||
|
{ "sst", "application/vnd.ms-pkicertstore"},
|
||||||
|
{ "stl", "application/vnd.ms-pkistl"},
|
||||||
|
{ "stm", "text/html"},
|
||||||
|
{ "svg", "image/svg+xml"},
|
||||||
|
{ "sv4cpio","application/x-sv4cpio"},
|
||||||
|
{ "sv4crc", "application/x-sv4crc"},
|
||||||
|
{ "swf", "application/x-shockwave-flash"},
|
||||||
|
{ "t", "application/x-troff"},
|
||||||
|
{ "tar", "application/x-tar"},
|
||||||
|
{ "tcl", "application/x-tcl"},
|
||||||
|
{ "tex", "application/x-tex"},
|
||||||
|
{ "texi", "application/x-texinfo"},
|
||||||
|
{ "texinfo","application/x-texinfo"},
|
||||||
|
{ "tgz", "application/x-compressed"},
|
||||||
|
{ "tif", "image/tiff"},
|
||||||
|
{ "tiff", "image/tiff"},
|
||||||
|
{ "tr", "application/x-troff"},
|
||||||
|
{ "trm", "application/x-msterminal"},
|
||||||
|
{ "tsv", "text/tab-separated-values"},
|
||||||
|
{ "txt", "text/plain"},
|
||||||
|
{ "uls", "text/iuls"},
|
||||||
|
{ "ustar", "application/x-ustar"},
|
||||||
|
{ "vcf", "text/x-vcard"},
|
||||||
|
{ "vrml", "x-world/x-vrml"},
|
||||||
|
{ "wav", "audio/x-wav"},
|
||||||
|
{ "wcm", "application/vnd.ms-works"},
|
||||||
|
{ "wdb", "application/vnd.ms-works"},
|
||||||
|
{ "wks", "application/vnd.ms-works"},
|
||||||
|
{ "wmf", "application/x-msmetafile"},
|
||||||
|
{ "wps", "application/vnd.ms-works"},
|
||||||
|
{ "wri", "application/x-mswrite"},
|
||||||
|
{ "wrl", "x-world/x-vrml"},
|
||||||
|
{ "wrz", "x-world/x-vrml"},
|
||||||
|
{ "xaf", "x-world/x-vrml"},
|
||||||
|
{ "xbm", "image/x-xbitmap"},
|
||||||
|
{ "xla", "application/vnd.ms-excel"},
|
||||||
|
{ "xlc", "application/vnd.ms-excel"},
|
||||||
|
{ "xlm", "application/vnd.ms-excel"},
|
||||||
|
{ "xls", "application/vnd.ms-excel"},
|
||||||
|
{ "xlt", "application/vnd.ms-excel"},
|
||||||
|
{ "xlw", "application/vnd.ms-excel"},
|
||||||
|
{ "xof", "x-world/x-vrml"},
|
||||||
|
{ "xpm", "image/x-xpixmap"},
|
||||||
|
{ "xwd", "image/x-xwindowdump"},
|
||||||
|
{ "z", "application/x-compress"},
|
||||||
|
{ "zip", "application/zip"}
|
||||||
|
};
|
||||||
|
|
||||||
|
public class Intents
|
||||||
|
{
|
||||||
|
|
||||||
|
public class EmailReceived
|
||||||
|
{
|
||||||
|
public static final String ACTION_EMAIL_RECEIVED = "com.fsck.k9.intent.action.EMAIL_RECEIVED";
|
||||||
|
public static final String ACTION_EMAIL_DELETED = "com.fsck.k9.intent.action.EMAIL_DELETED";
|
||||||
|
public static final String EXTRA_ACCOUNT = "com.fsck.k9.intent.extra.ACCOUNT";
|
||||||
|
public static final String EXTRA_FOLDER = "com.fsck.k9.intent.extra.FOLDER";
|
||||||
|
public static final String EXTRA_SENT_DATE = "com.fsck.k9.intent.extra.SENT_DATE";
|
||||||
|
public static final String EXTRA_FROM = "com.fsck.k9.intent.extra.FROM";
|
||||||
|
public static final String EXTRA_TO = "com.fsck.k9.intent.extra.TO";
|
||||||
|
public static final String EXTRA_CC = "com.fsck.k9.intent.extra.CC";
|
||||||
|
public static final String EXTRA_BCC = "com.fsck.k9.intent.extra.BCC";
|
||||||
|
public static final String EXTRA_SUBJECT = "com.fsck.k9.intent.extra.SUBJECT";
|
||||||
|
public static final String EXTRA_FROM_SELF = "com.fsck.k9.intent.extra.FROM_SELF";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called throughout the application when the number of accounts has changed. This method
|
||||||
|
* enables or disables the Compose activity, the boot receiver and the service based on
|
||||||
|
* whether any accounts are configured.
|
||||||
|
*/
|
||||||
|
public static void setServicesEnabled(Context context)
|
||||||
|
{
|
||||||
|
|
||||||
|
int acctLength = Preferences.getPreferences(context).getAccounts().length;
|
||||||
|
|
||||||
|
setServicesEnabled(context, acctLength > 0, null);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setServicesEnabled(Context context, Integer wakeLockId)
|
||||||
|
{
|
||||||
|
setServicesEnabled(context, Preferences.getPreferences(context).getAccounts().length > 0, wakeLockId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setServicesEnabled(Context context, boolean enabled, Integer wakeLockId)
|
||||||
|
{
|
||||||
|
|
||||||
|
PackageManager pm = context.getPackageManager();
|
||||||
|
|
||||||
|
if (!enabled && pm.getComponentEnabledSetting(new ComponentName(context, MailService.class)) ==
|
||||||
|
PackageManager.COMPONENT_ENABLED_STATE_ENABLED)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* If no accounts now exist but the service is still enabled we're about to disable it
|
||||||
|
* so we'll reschedule to kill off any existing alarms.
|
||||||
|
*/
|
||||||
|
MailService.actionReschedule(context, wakeLockId);
|
||||||
|
}
|
||||||
|
Class[] classes = { MessageCompose.class, BootReceiver.class, MailService.class };
|
||||||
|
|
||||||
|
for (Class clazz : classes)
|
||||||
|
{
|
||||||
|
|
||||||
|
boolean alreadyEnabled = pm.getComponentEnabledSetting(new ComponentName(context, clazz)) ==
|
||||||
|
PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
|
||||||
|
|
||||||
|
if (enabled != alreadyEnabled)
|
||||||
|
{
|
||||||
|
pm.setComponentEnabledSetting(
|
||||||
|
new ComponentName(context, clazz),
|
||||||
|
enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
|
||||||
|
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
|
||||||
|
PackageManager.DONT_KILL_APP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enabled && pm.getComponentEnabledSetting(new ComponentName(context, MailService.class)) ==
|
||||||
|
PackageManager.COMPONENT_ENABLED_STATE_ENABLED)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* And now if accounts do exist then we've just enabled the service and we want to
|
||||||
|
* schedule alarms for the new accounts.
|
||||||
|
*/
|
||||||
|
MailService.actionReschedule(context, wakeLockId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void save(SharedPreferences.Editor editor)
|
||||||
|
{
|
||||||
|
editor.putBoolean("enableDebugLogging", K9.DEBUG);
|
||||||
|
editor.putBoolean("enableSensitiveLogging", K9.DEBUG_SENSITIVE);
|
||||||
|
editor.putString("backgroundOperations", K9.backgroundOps.toString());
|
||||||
|
editor.putInt("theme", theme);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate()
|
||||||
|
{
|
||||||
|
super.onCreate();
|
||||||
|
app = this;
|
||||||
|
Preferences prefs = Preferences.getPreferences(this);
|
||||||
|
SharedPreferences sprefs = prefs.getPreferences();
|
||||||
|
DEBUG = sprefs.getBoolean("enableDebugLogging", false);
|
||||||
|
DEBUG_SENSITIVE = sprefs.getBoolean("enableSensitiveLogging", false);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
setBackgroundOps(BACKGROUND_OPS.valueOf(sprefs.getString("backgroundOperations", "WHEN_CHECKED")));
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
setBackgroundOps(BACKGROUND_OPS.WHEN_CHECKED);
|
||||||
|
}
|
||||||
|
|
||||||
|
K9.setK9Theme(sprefs.getInt("theme", android.R.style.Theme_Light));
|
||||||
|
MessagingController.getInstance(this).resetVisibleLimits(prefs.getAccounts());
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We have to give MimeMessage a temp directory because File.createTempFile(String, String)
|
||||||
|
* doesn't work in Android and MimeMessage does not have access to a Context.
|
||||||
|
*/
|
||||||
|
BinaryTempFileBody.setTempDirectory(getCacheDir());
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable background sync of messages
|
||||||
|
*/
|
||||||
|
|
||||||
|
setServicesEnabled(this);
|
||||||
|
|
||||||
|
MessagingController.getInstance(this).addListener(new MessagingListener()
|
||||||
|
{
|
||||||
|
private void broadcastIntent(String action, Account account, String folder, Message message)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Uri uri = Uri.parse("email://messages/" + account.getAccountNumber() + "/" + Uri.encode(folder) + "/" + Uri.encode(message.getUid()));
|
||||||
|
Intent intent = new Intent(action, uri);
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_ACCOUNT, account.getDescription());
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_FOLDER, folder);
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_SENT_DATE, message.getSentDate());
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_FROM, Address.toString(message.getFrom()));
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_TO, Address.toString(message.getRecipients(Message.RecipientType.TO)));
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_CC, Address.toString(message.getRecipients(Message.RecipientType.CC)));
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_BCC, Address.toString(message.getRecipients(Message.RecipientType.BCC)));
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_SUBJECT, message.getSubject());
|
||||||
|
intent.putExtra(K9.Intents.EmailReceived.EXTRA_FROM_SELF, account.isAnIdentity(message.getFrom()));
|
||||||
|
K9.this.sendBroadcast(intent);
|
||||||
|
Log.d(K9.LOG_TAG, "Broadcasted: action=" + action
|
||||||
|
+ " account=" + account.getDescription()
|
||||||
|
+ " folder=" + folder
|
||||||
|
+ " message uid=" + message.getUid()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (MessagingException e)
|
||||||
|
{
|
||||||
|
Log.w(K9.LOG_TAG, "Error: action=" + action
|
||||||
|
+ " account=" + account.getDescription()
|
||||||
|
+ " folder=" + folder
|
||||||
|
+ " message uid=" + message.getUid()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void synchronizeMailboxRemovedMessage(Account account, String folder, Message message)
|
||||||
|
{
|
||||||
|
broadcastIntent(K9.Intents.EmailReceived.ACTION_EMAIL_DELETED, account, folder, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void messageDeleted(Account account, String folder, Message message)
|
||||||
|
{
|
||||||
|
broadcastIntent(K9.Intents.EmailReceived.ACTION_EMAIL_DELETED, account, folder, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void synchronizeMailboxNewMessage(Account account, String folder, Message message)
|
||||||
|
{
|
||||||
|
broadcastIntent(K9.Intents.EmailReceived.ACTION_EMAIL_RECEIVED, account, folder, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getK9Theme()
|
||||||
|
{
|
||||||
|
return theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setK9Theme(int ntheme)
|
||||||
|
{
|
||||||
|
theme = ntheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BACKGROUND_OPS getBackgroundOps()
|
||||||
|
{
|
||||||
|
return backgroundOps;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setBackgroundOps(BACKGROUND_OPS backgroundOps)
|
||||||
|
{
|
||||||
|
K9.backgroundOps = backgroundOps;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setBackgroundOps(String nbackgroundOps)
|
||||||
|
{
|
||||||
|
K9.backgroundOps = BACKGROUND_OPS.valueOf(nbackgroundOps);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import com.android.email.activity.DateFormatter;
|
import com.fsck.k9.activity.DateFormatter;
|
||||||
|
|
||||||
|
|
||||||
public class K9Activity extends Activity
|
public class K9Activity extends Activity
|
||||||
@ -11,7 +11,7 @@ public class K9Activity extends Activity
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle)
|
public void onCreate(Bundle icicle)
|
||||||
{
|
{
|
||||||
setTheme(Email.getK9Theme());
|
setTheme(K9.getK9Theme());
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
setupFormats();
|
setupFormats();
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.app.ListActivity;
|
import android.app.ListActivity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import com.android.email.activity.DateFormatter;
|
import com.fsck.k9.activity.DateFormatter;
|
||||||
|
|
||||||
|
|
||||||
public class K9ListActivity extends ListActivity
|
public class K9ListActivity extends ListActivity
|
||||||
@ -10,7 +10,7 @@ public class K9ListActivity extends ListActivity
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle)
|
public void onCreate(Bundle icicle)
|
||||||
{
|
{
|
||||||
setTheme(Email.getK9Theme());
|
setTheme(K9.getK9Theme());
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
setupFormats();
|
setupFormats();
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
@ -10,7 +10,7 @@ public class K9PreferenceActivity extends PreferenceActivity
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle)
|
public void onCreate(Bundle icicle)
|
||||||
{
|
{
|
||||||
setTheme(Email.getK9Theme());
|
setTheme(K9.getK9Theme());
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,18 +1,18 @@
|
|||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.mail.Folder;
|
import com.fsck.k9.mail.Folder;
|
||||||
import com.android.email.mail.Folder.OpenMode;
|
import com.fsck.k9.mail.Folder.OpenMode;
|
||||||
import com.android.email.mail.Message;
|
import com.fsck.k9.mail.Message;
|
||||||
import com.android.email.mail.PushReceiver;
|
import com.fsck.k9.mail.PushReceiver;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
import com.android.email.mail.store.LocalStore;
|
import com.fsck.k9.mail.store.LocalStore;
|
||||||
import com.android.email.mail.store.LocalStore.LocalFolder;
|
import com.fsck.k9.mail.store.LocalStore.LocalFolder;
|
||||||
import com.android.email.service.SleepService;
|
import com.fsck.k9.service.SleepService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -35,36 +35,36 @@ public class MessagingControllerPushReceiver implements PushReceiver
|
|||||||
if (wakeLock == null)
|
if (wakeLock == null)
|
||||||
{
|
{
|
||||||
PowerManager pm = (PowerManager) mApplication.getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) mApplication.getSystemService(Context.POWER_SERVICE);
|
||||||
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email");
|
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "K9");
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
threadWakeLock.set(wakeLock);
|
threadWakeLock.set(wakeLock);
|
||||||
}
|
}
|
||||||
wakeLock.acquire(Email.PUSH_WAKE_LOCK_TIMEOUT);
|
wakeLock.acquire(K9.PUSH_WAKE_LOCK_TIMEOUT);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Acquired WakeLock for Pushing for thread " + Thread.currentThread().getName());
|
Log.d(K9.LOG_TAG, "Acquired WakeLock for Pushing for thread " + Thread.currentThread().getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void releaseWakeLock()
|
public void releaseWakeLock()
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Considering releasing WakeLock for Pushing");
|
Log.d(K9.LOG_TAG, "Considering releasing WakeLock for Pushing");
|
||||||
}
|
}
|
||||||
WakeLock wakeLock = threadWakeLock.get();
|
WakeLock wakeLock = threadWakeLock.get();
|
||||||
if (wakeLock != null)
|
if (wakeLock != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Releasing WakeLock for Pushing for thread " + Thread.currentThread().getName());
|
Log.d(K9.LOG_TAG, "Releasing WakeLock for Pushing for thread " + Thread.currentThread().getName());
|
||||||
}
|
}
|
||||||
wakeLock.release();
|
wakeLock.release();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "No WakeLock waiting to be released for thread " + Thread.currentThread().getName());
|
Log.e(K9.LOG_TAG, "No WakeLock waiting to be released for thread " + Thread.currentThread().getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ public class MessagingControllerPushReceiver implements PushReceiver
|
|||||||
|
|
||||||
public void sleep(long millis)
|
public void sleep(long millis)
|
||||||
{
|
{
|
||||||
SleepService.sleep(mApplication, millis, threadWakeLock.get(), Email.PUSH_WAKE_LOCK_TIMEOUT);
|
SleepService.sleep(mApplication, millis, threadWakeLock.get(), K9.PUSH_WAKE_LOCK_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void pushError(String errorMessage, Exception e)
|
public void pushError(String errorMessage, Exception e)
|
||||||
@ -113,7 +113,7 @@ public class MessagingControllerPushReceiver implements PushReceiver
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to get push state from account " + account.getDescription()
|
Log.e(K9.LOG_TAG, "Unable to get push state from account " + account.getDescription()
|
||||||
+ ", folder " + folderName, e);
|
+ ", folder " + folderName, e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -127,7 +127,7 @@ public class MessagingControllerPushReceiver implements PushReceiver
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to close folder '" + folderName + "' in account " + account.getDescription(), e);
|
Log.e(K9.LOG_TAG, "Unable to close folder '" + folderName + "' in account " + account.getDescription(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,10 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import com.android.email.mail.Folder;
|
import com.fsck.k9.mail.Folder;
|
||||||
import com.android.email.mail.Message;
|
import com.fsck.k9.mail.Message;
|
||||||
import com.android.email.mail.Part;
|
import com.fsck.k9.mail.Part;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.util.Config;
|
import android.util.Config;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.preferences.Editor;
|
import com.fsck.k9.preferences.Editor;
|
||||||
import com.android.email.preferences.Storage;
|
import com.fsck.k9.preferences.Storage;
|
||||||
|
|
||||||
public class Preferences
|
public class Preferences
|
||||||
{
|
{
|
||||||
@ -20,7 +20,7 @@ public class Preferences
|
|||||||
mStorage = Storage.getStorage(context);
|
mStorage = Storage.getStorage(context);
|
||||||
if (mStorage.size() == 0)
|
if (mStorage.size() == 0)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Preferences storage is zero-size, importing from Android-style preferences");
|
Log.i(K9.LOG_TAG, "Preferences storage is zero-size, importing from Android-style preferences");
|
||||||
Editor editor = mStorage.edit();
|
Editor editor = mStorage.edit();
|
||||||
editor.copy(context.getSharedPreferences("AndroidMail.Main", Context.MODE_PRIVATE));
|
editor.copy(context.getSharedPreferences("AndroidMail.Main", Context.MODE_PRIVATE));
|
||||||
editor.commit();
|
editor.commit();
|
||||||
@ -119,7 +119,7 @@ public class Preferences
|
|||||||
{
|
{
|
||||||
for (String key : getPreferences().getAll().keySet())
|
for (String key : getPreferences().getAll().keySet())
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, key + " = " + getPreferences().getAll().get(key));
|
Log.v(K9.LOG_TAG, key + " = " + getPreferences().getAll().get(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,10 +1,10 @@
|
|||||||
|
|
||||||
package com.android.email;
|
package com.fsck.k9;
|
||||||
|
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import com.android.email.codec.binary.Base64;
|
import com.fsck.k9.codec.binary.Base64;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@ -17,12 +17,12 @@ import android.webkit.WebView;
|
|||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import android.widget.AdapterView.AdapterContextMenuInfo;
|
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||||
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.AdapterView.OnItemClickListener;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.activity.setup.AccountSettings;
|
import com.fsck.k9.activity.setup.AccountSettings;
|
||||||
import com.android.email.activity.setup.AccountSetupBasics;
|
import com.fsck.k9.activity.setup.AccountSetupBasics;
|
||||||
import com.android.email.activity.setup.Prefs;
|
import com.fsck.k9.activity.setup.Prefs;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
import com.android.email.mail.store.LocalStore;
|
import com.fsck.k9.mail.store.LocalStore;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@ -441,7 +441,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
|||||||
// Ignore
|
// Ignore
|
||||||
}
|
}
|
||||||
mSelectedContextAccount.delete(Preferences.getPreferences(Accounts.this));
|
mSelectedContextAccount.delete(Preferences.getPreferences(Accounts.this));
|
||||||
Email.setServicesEnabled(Accounts.this);
|
K9.setServicesEnabled(Accounts.this);
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
})
|
})
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@ -11,9 +11,9 @@ import android.widget.AdapterView;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.Folder;
|
import com.fsck.k9.mail.Folder;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -31,13 +31,13 @@ public class ChooseFolder extends K9ListActivity
|
|||||||
boolean showOptionNone = false;
|
boolean showOptionNone = false;
|
||||||
boolean showDisplayableOnly = false;
|
boolean showDisplayableOnly = false;
|
||||||
|
|
||||||
public static final String EXTRA_ACCOUNT = "com.android.email.ChooseFolder_account";
|
public static final String EXTRA_ACCOUNT = "com.fsck.k9.ChooseFolder_account";
|
||||||
public static final String EXTRA_CUR_FOLDER = "com.android.email.ChooseFolder_curfolder";
|
public static final String EXTRA_CUR_FOLDER = "com.fsck.k9.ChooseFolder_curfolder";
|
||||||
public static final String EXTRA_NEW_FOLDER = "com.android.email.ChooseFolder_newfolder";
|
public static final String EXTRA_NEW_FOLDER = "com.fsck.k9.ChooseFolder_newfolder";
|
||||||
public static final String EXTRA_MESSAGE_UID = "com.android.email.ChooseFolder_messageuid";
|
public static final String EXTRA_MESSAGE_UID = "com.fsck.k9.ChooseFolder_messageuid";
|
||||||
public static final String EXTRA_SHOW_CURRENT = "com.android.email.ChooseFolder_showcurrent";
|
public static final String EXTRA_SHOW_CURRENT = "com.fsck.k9.ChooseFolder_showcurrent";
|
||||||
public static final String EXTRA_SHOW_FOLDER_NONE = "com.android.email.ChooseFolder_showOptionNone";
|
public static final String EXTRA_SHOW_FOLDER_NONE = "com.fsck.k9.ChooseFolder_showOptionNone";
|
||||||
public static final String EXTRA_SHOW_DISPLAYABLE_ONLY = "com.android.email.ChooseFolder_showDisplayableOnly";
|
public static final String EXTRA_SHOW_DISPLAYABLE_ONLY = "com.fsck.k9.ChooseFolder_showDisplayableOnly";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState)
|
public void onCreate(Bundle savedInstanceState)
|
||||||
@ -199,7 +199,7 @@ public class ChooseFolder extends K9ListActivity
|
|||||||
String name = folder.getName();
|
String name = folder.getName();
|
||||||
|
|
||||||
// Inbox needs to be compared case-insensitively
|
// Inbox needs to be compared case-insensitively
|
||||||
if (hideCurrentFolder && (name.equals(mFolder) || (Email.INBOX.equalsIgnoreCase(mFolder) && Email.INBOX.equalsIgnoreCase(name))))
|
if (hideCurrentFolder && (name.equals(mFolder) || (K9.INBOX.equalsIgnoreCase(mFolder) && K9.INBOX.equalsIgnoreCase(name))))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -219,7 +219,7 @@ public class ChooseFolder extends K9ListActivity
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
Log.e(K9.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
||||||
}
|
}
|
||||||
|
|
||||||
localFolders.add(folder.getName());
|
localFolders.add(folder.getName());
|
||||||
@ -228,26 +228,26 @@ public class ChooseFolder extends K9ListActivity
|
|||||||
|
|
||||||
if (showOptionNone)
|
if (showOptionNone)
|
||||||
{
|
{
|
||||||
localFolders.add(Email.FOLDER_NONE);
|
localFolders.add(K9.FOLDER_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
Collections.sort(localFolders, new Comparator<String>()
|
Collections.sort(localFolders, new Comparator<String>()
|
||||||
{
|
{
|
||||||
public int compare(String aName, String bName)
|
public int compare(String aName, String bName)
|
||||||
{
|
{
|
||||||
if (Email.FOLDER_NONE.equalsIgnoreCase(aName))
|
if (K9.FOLDER_NONE.equalsIgnoreCase(aName))
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (Email.FOLDER_NONE.equalsIgnoreCase(bName))
|
if (K9.FOLDER_NONE.equalsIgnoreCase(bName))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (Email.INBOX.equalsIgnoreCase(aName))
|
if (K9.INBOX.equalsIgnoreCase(aName))
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (Email.INBOX.equalsIgnoreCase(bName))
|
if (K9.INBOX.equalsIgnoreCase(bName))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ public class ChooseFolder extends K9ListActivity
|
|||||||
int position = 0;
|
int position = 0;
|
||||||
for (String name : localFolders)
|
for (String name : localFolders)
|
||||||
{
|
{
|
||||||
if (Email.INBOX.equalsIgnoreCase(name))
|
if (K9.INBOX.equalsIgnoreCase(name))
|
||||||
{
|
{
|
||||||
adapter.add(getString(R.string.special_mailbox_name_inbox));
|
adapter.add(getString(R.string.special_mailbox_name_inbox));
|
||||||
heldInbox = name;
|
heldInbox = name;
|
||||||
@ -271,7 +271,7 @@ public class ChooseFolder extends K9ListActivity
|
|||||||
adapter.add(name);
|
adapter.add(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((name.equals(mFolder) || (Email.INBOX.equalsIgnoreCase(mFolder) && Email.INBOX.equalsIgnoreCase(name))))
|
if ((name.equals(mFolder) || (K9.INBOX.equalsIgnoreCase(mFolder) && K9.INBOX.equalsIgnoreCase(name))))
|
||||||
{
|
{
|
||||||
selectedFolder = position;
|
selectedFolder = position;
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@ -10,9 +10,9 @@ import android.widget.AdapterView;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import com.android.email.Account;
|
import com.fsck.k9.Account;
|
||||||
import com.android.email.K9ListActivity;
|
import com.fsck.k9.K9ListActivity;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -23,8 +23,8 @@ public class ChooseIdentity extends K9ListActivity
|
|||||||
ArrayAdapter<String> adapter;
|
ArrayAdapter<String> adapter;
|
||||||
private ChooseIdentityHandler mHandler = new ChooseIdentityHandler();
|
private ChooseIdentityHandler mHandler = new ChooseIdentityHandler();
|
||||||
|
|
||||||
public static final String EXTRA_ACCOUNT = "com.android.email.ChooseIdentity_account";
|
public static final String EXTRA_ACCOUNT = "com.fsck.k9.ChooseIdentity_account";
|
||||||
public static final String EXTRA_IDENTITY = "com.android.email.ChooseIdentity_identity";
|
public static final String EXTRA_IDENTITY = "com.fsck.k9.ChooseIdentity_identity";
|
||||||
|
|
||||||
protected List<Account.Identity> identities = null;
|
protected List<Account.Identity> identities = null;
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences.Editor;
|
import android.content.SharedPreferences.Editor;
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
@ -1,21 +1,21 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import com.android.email.Account;
|
import com.fsck.k9.Account;
|
||||||
import com.android.email.K9Activity;
|
import com.fsck.k9.K9Activity;
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class EditIdentity extends K9Activity
|
public class EditIdentity extends K9Activity
|
||||||
{
|
{
|
||||||
|
|
||||||
public static final String EXTRA_IDENTITY = "com.android.email.EditIdentity_identity";
|
public static final String EXTRA_IDENTITY = "com.fsck.k9.EditIdentity_identity";
|
||||||
public static final String EXTRA_IDENTITY_INDEX = "com.android.email.EditIdentity_identity_index";
|
public static final String EXTRA_IDENTITY_INDEX = "com.fsck.k9.EditIdentity_identity_index";
|
||||||
public static final String EXTRA_ACCOUNT = "com.android.email.EditIdentity_account";
|
public static final String EXTRA_ACCOUNT = "com.fsck.k9.EditIdentity_account";
|
||||||
|
|
||||||
private Account mAccount;
|
private Account mAccount;
|
||||||
private Account.Identity mIdentity;
|
private Account.Identity mIdentity;
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@ -18,13 +18,13 @@ import android.view.ContextMenu.ContextMenuInfo;
|
|||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import android.widget.AdapterView.AdapterContextMenuInfo;
|
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||||
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.AdapterView.OnItemClickListener;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.activity.setup.AccountSettings;
|
import com.fsck.k9.activity.setup.AccountSettings;
|
||||||
import com.android.email.activity.setup.FolderSettings;
|
import com.fsck.k9.activity.setup.FolderSettings;
|
||||||
import com.android.email.mail.Folder;
|
import com.fsck.k9.mail.Folder;
|
||||||
import com.android.email.mail.Message;
|
import com.fsck.k9.mail.Message;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -44,7 +44,7 @@ public class FolderList extends K9ListActivity
|
|||||||
|
|
||||||
private static final String EXTRA_INITIAL_FOLDER = "initialFolder";
|
private static final String EXTRA_INITIAL_FOLDER = "initialFolder";
|
||||||
|
|
||||||
private static final String STATE_CURRENT_FOLDER = "com.android.email.activity.folderlist_folder";
|
private static final String STATE_CURRENT_FOLDER = "com.fsck.k9.activity.folderlist_folder";
|
||||||
|
|
||||||
private static final String EXTRA_CLEAR_NOTIFICATION = "clearNotification";
|
private static final String EXTRA_CLEAR_NOTIFICATION = "clearNotification";
|
||||||
|
|
||||||
@ -239,7 +239,7 @@ public class FolderList extends K9ListActivity
|
|||||||
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
||||||
final WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email - UpdateWorker");
|
final WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email - UpdateWorker");
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
wakeLock.acquire(Email.WAKE_LOCK_TIMEOUT);
|
wakeLock.acquire(K9.WAKE_LOCK_TIMEOUT);
|
||||||
MessagingListener listener = new MessagingListener()
|
MessagingListener listener = new MessagingListener()
|
||||||
{
|
{
|
||||||
public void synchronizeMailboxFinished(Account account, String folder, int totalMessagesInMailbox, int numNewMessages)
|
public void synchronizeMailboxFinished(Account account, String folder, int totalMessagesInMailbox, int numNewMessages)
|
||||||
@ -327,14 +327,14 @@ public class FolderList extends K9ListActivity
|
|||||||
String savedFolderName = null;
|
String savedFolderName = null;
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
mAccount = (Account)intent.getSerializableExtra(EXTRA_ACCOUNT);
|
mAccount = (Account)intent.getSerializableExtra(EXTRA_ACCOUNT);
|
||||||
Log.v(Email.LOG_TAG, "savedInstanceState: " + (savedInstanceState==null));
|
Log.v(K9.LOG_TAG, "savedInstanceState: " + (savedInstanceState==null));
|
||||||
|
|
||||||
if (savedInstanceState == null)
|
if (savedInstanceState == null)
|
||||||
{
|
{
|
||||||
initialFolder = intent.getStringExtra(EXTRA_INITIAL_FOLDER);
|
initialFolder = intent.getStringExtra(EXTRA_INITIAL_FOLDER);
|
||||||
Log.v(Email.LOG_TAG, "EXTRA_INITIAL_FOLDER: " + initialFolder);
|
Log.v(K9.LOG_TAG, "EXTRA_INITIAL_FOLDER: " + initialFolder);
|
||||||
mStartup = (boolean) intent.getBooleanExtra(EXTRA_STARTUP, false);
|
mStartup = (boolean) intent.getBooleanExtra(EXTRA_STARTUP, false);
|
||||||
Log.v(Email.LOG_TAG, "startup: " + mStartup);
|
Log.v(K9.LOG_TAG, "startup: " + mStartup);
|
||||||
if (initialFolder == null
|
if (initialFolder == null
|
||||||
&& mStartup)
|
&& mStartup)
|
||||||
{
|
{
|
||||||
@ -348,9 +348,9 @@ public class FolderList extends K9ListActivity
|
|||||||
savedFolderName = savedInstanceState.getString(STATE_CURRENT_FOLDER);
|
savedFolderName = savedInstanceState.getString(STATE_CURRENT_FOLDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.v(Email.LOG_TAG, "mInitialFolder: " + initialFolder);
|
Log.v(K9.LOG_TAG, "mInitialFolder: " + initialFolder);
|
||||||
if (initialFolder != null
|
if (initialFolder != null
|
||||||
&& !Email.FOLDER_NONE.equals(initialFolder))
|
&& !K9.FOLDER_NONE.equals(initialFolder))
|
||||||
{
|
{
|
||||||
onOpenFolder(initialFolder, true);
|
onOpenFolder(initialFolder, true);
|
||||||
finish();
|
finish();
|
||||||
@ -368,7 +368,7 @@ public class FolderList extends K9ListActivity
|
|||||||
{
|
{
|
||||||
public void onItemClick(AdapterView parent, View v, int itemPosition, long id)
|
public void onItemClick(AdapterView parent, View v, int itemPosition, long id)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG,"We're clicking "+itemPosition+" -- "+id);
|
Log.v(K9.LOG_TAG,"We're clicking "+itemPosition+" -- "+id);
|
||||||
MessageList.actionHandleFolder(FolderList.this, mAccount, ((FolderInfoHolder)mAdapter.getItem(id)).name, false);
|
MessageList.actionHandleFolder(FolderList.this, mAccount, ((FolderInfoHolder)mAdapter.getItem(id)).name, false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -511,7 +511,7 @@ public class FolderList extends K9ListActivity
|
|||||||
@Override
|
@Override
|
||||||
public void controllerCommandCompleted(boolean moreToDo)
|
public void controllerCommandCompleted(boolean moreToDo)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Empty Trash background task completed");
|
Log.v(K9.LOG_TAG, "Empty Trash background task completed");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -543,7 +543,7 @@ public class FolderList extends K9ListActivity
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.send_messages:
|
case R.id.send_messages:
|
||||||
Log.i(Email.LOG_TAG, "sending pending messages");
|
Log.i(K9.LOG_TAG, "sending pending messages");
|
||||||
|
|
||||||
MessagingController.getInstance(getApplication()).sendPendingMessages(mAccount, null);
|
MessagingController.getInstance(getApplication()).sendPendingMessages(mAccount, null);
|
||||||
return true;
|
return true;
|
||||||
@ -622,26 +622,26 @@ public class FolderList extends K9ListActivity
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.send_messages:
|
case R.id.send_messages:
|
||||||
Log.i(Email.LOG_TAG, "sending pending messages from " + folder.name);
|
Log.i(K9.LOG_TAG, "sending pending messages from " + folder.name);
|
||||||
sendMail(mAccount);
|
sendMail(mAccount);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.check_mail:
|
case R.id.check_mail:
|
||||||
Log.i(Email.LOG_TAG, "refresh folder " + folder.name);
|
Log.i(K9.LOG_TAG, "refresh folder " + folder.name);
|
||||||
checkMail(folder);
|
checkMail(folder);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.folder_settings:
|
case R.id.folder_settings:
|
||||||
Log.i(Email.LOG_TAG, "edit folder settings for " + folder.name);
|
Log.i(K9.LOG_TAG, "edit folder settings for " + folder.name);
|
||||||
|
|
||||||
onEditFolder(mAccount, folder.name);
|
onEditFolder(mAccount, folder.name);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.empty_trash:
|
case R.id.empty_trash:
|
||||||
Log.i(Email.LOG_TAG, "empty trash");
|
Log.i(K9.LOG_TAG, "empty trash");
|
||||||
|
|
||||||
onEmptyTrash(mAccount);
|
onEmptyTrash(mAccount);
|
||||||
|
|
||||||
@ -826,7 +826,7 @@ public class FolderList extends K9ListActivity
|
|||||||
|
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "listFoldersFailed " + message);
|
Log.v(K9.LOG_TAG, "listFoldersFailed " + message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -875,7 +875,7 @@ public class FolderList extends K9ListActivity
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
Log.e(K9.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
||||||
}
|
}
|
||||||
|
|
||||||
FolderInfoHolder holder = null;
|
FolderInfoHolder holder = null;
|
||||||
@ -953,7 +953,7 @@ public class FolderList extends K9ListActivity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Exception while populating folder", e);
|
Log.e(K9.LOG_TAG, "Exception while populating folder", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1255,15 +1255,15 @@ public class FolderList extends K9ListActivity
|
|||||||
String s1 = this.name;
|
String s1 = this.name;
|
||||||
String s2 = o.name;
|
String s2 = o.name;
|
||||||
|
|
||||||
if (Email.INBOX.equalsIgnoreCase(s1) && Email.INBOX.equalsIgnoreCase(s2))
|
if (K9.INBOX.equalsIgnoreCase(s1) && K9.INBOX.equalsIgnoreCase(s2))
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if (Email.INBOX.equalsIgnoreCase(s1))
|
else if (K9.INBOX.equalsIgnoreCase(s1))
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else if (Email.INBOX.equalsIgnoreCase(s2))
|
else if (K9.INBOX.equalsIgnoreCase(s2))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -1302,12 +1302,12 @@ public class FolderList extends K9ListActivity
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Folder.getUnreadMessageCount() failed", me);
|
Log.e(K9.LOG_TAG, "Folder.getUnreadMessageCount() failed", me);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.name = folder.getName();
|
this.name = folder.getName();
|
||||||
|
|
||||||
if (this.name.equalsIgnoreCase(Email.INBOX))
|
if (this.name.equalsIgnoreCase(K9.INBOX))
|
||||||
{
|
{
|
||||||
this.displayName = getString(R.string.special_mailbox_name_inbox);
|
this.displayName = getString(R.string.special_mailbox_name_inbox);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.view.*;
|
import android.view.*;
|
||||||
@ -7,14 +7,14 @@ import android.widget.AdapterView;
|
|||||||
import android.widget.AdapterView.AdapterContextMenuInfo;
|
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import com.android.email.Account;
|
import com.fsck.k9.Account;
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
public class ManageIdentities extends ChooseIdentity
|
public class ManageIdentities extends ChooseIdentity
|
||||||
{
|
{
|
||||||
private boolean mIdentitiesChanged = false;
|
private boolean mIdentitiesChanged = false;
|
||||||
public static final String EXTRA_IDENTITIES = "com.android.email.EditIdentity_identities";
|
public static final String EXTRA_IDENTITIES = "com.fsck.k9.EditIdentity_identities";
|
||||||
|
|
||||||
private static final int ACTIVITY_EDIT_IDENTITY = 1;
|
private static final int ACTIVITY_EDIT_IDENTITY = 1;
|
||||||
protected void setupClickListeners()
|
protected void setupClickListeners()
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -22,12 +22,12 @@ import android.view.View.OnFocusChangeListener;
|
|||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.widget.AutoCompleteTextView.Validator;
|
import android.widget.AutoCompleteTextView.Validator;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Message.RecipientType;
|
import com.fsck.k9.mail.Message.RecipientType;
|
||||||
import com.android.email.mail.internet.*;
|
import com.fsck.k9.mail.internet.*;
|
||||||
import com.android.email.mail.store.LocalStore;
|
import com.fsck.k9.mail.store.LocalStore;
|
||||||
import com.android.email.mail.store.LocalStore.LocalAttachmentBody;
|
import com.fsck.k9.mail.store.LocalStore.LocalAttachmentBody;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -36,10 +36,10 @@ import java.util.StringTokenizer;
|
|||||||
|
|
||||||
public class MessageCompose extends K9Activity implements OnClickListener, OnFocusChangeListener
|
public class MessageCompose extends K9Activity implements OnClickListener, OnFocusChangeListener
|
||||||
{
|
{
|
||||||
private static final String ACTION_REPLY = "com.android.email.intent.action.REPLY";
|
private static final String ACTION_REPLY = "com.fsck.k9.intent.action.REPLY";
|
||||||
private static final String ACTION_REPLY_ALL = "com.android.email.intent.action.REPLY_ALL";
|
private static final String ACTION_REPLY_ALL = "com.fsck.k9.intent.action.REPLY_ALL";
|
||||||
private static final String ACTION_FORWARD = "com.android.email.intent.action.FORWARD";
|
private static final String ACTION_FORWARD = "com.fsck.k9.intent.action.FORWARD";
|
||||||
private static final String ACTION_EDIT_DRAFT = "com.android.email.intent.action.EDIT_DRAFT";
|
private static final String ACTION_EDIT_DRAFT = "com.fsck.k9.intent.action.EDIT_DRAFT";
|
||||||
|
|
||||||
|
|
||||||
private static final String EXTRA_ACCOUNT = "account";
|
private static final String EXTRA_ACCOUNT = "account";
|
||||||
@ -47,21 +47,21 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
private static final String EXTRA_MESSAGE = "message";
|
private static final String EXTRA_MESSAGE = "message";
|
||||||
|
|
||||||
private static final String STATE_KEY_ATTACHMENTS =
|
private static final String STATE_KEY_ATTACHMENTS =
|
||||||
"com.android.email.activity.MessageCompose.attachments";
|
"com.fsck.k9.activity.MessageCompose.attachments";
|
||||||
private static final String STATE_KEY_CC_SHOWN =
|
private static final String STATE_KEY_CC_SHOWN =
|
||||||
"com.android.email.activity.MessageCompose.ccShown";
|
"com.fsck.k9.activity.MessageCompose.ccShown";
|
||||||
private static final String STATE_KEY_BCC_SHOWN =
|
private static final String STATE_KEY_BCC_SHOWN =
|
||||||
"com.android.email.activity.MessageCompose.bccShown";
|
"com.fsck.k9.activity.MessageCompose.bccShown";
|
||||||
private static final String STATE_KEY_QUOTED_TEXT_SHOWN =
|
private static final String STATE_KEY_QUOTED_TEXT_SHOWN =
|
||||||
"com.android.email.activity.MessageCompose.quotedTextShown";
|
"com.fsck.k9.activity.MessageCompose.quotedTextShown";
|
||||||
private static final String STATE_KEY_SOURCE_MESSAGE_PROCED =
|
private static final String STATE_KEY_SOURCE_MESSAGE_PROCED =
|
||||||
"com.android.email.activity.MessageCompose.stateKeySourceMessageProced";
|
"com.fsck.k9.activity.MessageCompose.stateKeySourceMessageProced";
|
||||||
private static final String STATE_KEY_DRAFT_UID =
|
private static final String STATE_KEY_DRAFT_UID =
|
||||||
"com.android.email.activity.MessageCompose.draftUid";
|
"com.fsck.k9.activity.MessageCompose.draftUid";
|
||||||
private static final String STATE_IDENTITY_CHANGED =
|
private static final String STATE_IDENTITY_CHANGED =
|
||||||
"com.android.email.activity.MessageCompose.identityChanged";
|
"com.fsck.k9.activity.MessageCompose.identityChanged";
|
||||||
private static final String STATE_IDENTITY =
|
private static final String STATE_IDENTITY =
|
||||||
"com.android.email.activity.MessageCompose.identity";
|
"com.fsck.k9.activity.MessageCompose.identity";
|
||||||
|
|
||||||
private static final int MSG_PROGRESS_ON = 1;
|
private static final int MSG_PROGRESS_ON = 1;
|
||||||
private static final int MSG_PROGRESS_OFF = 2;
|
private static final int MSG_PROGRESS_OFF = 2;
|
||||||
@ -417,7 +417,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
Uri stream = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
|
Uri stream = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
|
||||||
if (stream != null && type != null)
|
if (stream != null && type != null)
|
||||||
{
|
{
|
||||||
if (MimeUtility.mimeTypeMatches(type, Email.ACCEPTABLE_ATTACHMENT_SEND_TYPES))
|
if (MimeUtility.mimeTypeMatches(type, K9.ACCEPTABLE_ATTACHMENT_SEND_TYPES))
|
||||||
{
|
{
|
||||||
addAttachment(stream);
|
addAttachment(stream);
|
||||||
}
|
}
|
||||||
@ -527,10 +527,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(Email.LOG_TAG, "action = " + action + ", mAccount = " + mAccount + ", mFolder = " + mFolder + ", mSourceMessageUid = " + mSourceMessageUid);
|
Log.d(K9.LOG_TAG, "action = " + action + ", mAccount = " + mAccount + ", mFolder = " + mFolder + ", mSourceMessageUid = " + mSourceMessageUid);
|
||||||
if ((ACTION_REPLY.equals(action) || ACTION_REPLY_ALL.equals(action)) && mAccount != null && mFolder != null && mSourceMessageUid != null)
|
if ((ACTION_REPLY.equals(action) || ACTION_REPLY_ALL.equals(action)) && mAccount != null && mFolder != null && mSourceMessageUid != null)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Setting message ANSWERED flag to true");
|
Log.d(K9.LOG_TAG, "Setting message ANSWERED flag to true");
|
||||||
// TODO: Really, we should wait until we send the message, but that would require saving the original
|
// TODO: Really, we should wait until we send the message, but that would require saving the original
|
||||||
// message info along with a Draft copy, in case it is left in Drafts for a while before being sent
|
// message info along with a Draft copy, in case it is left in Drafts for a while before being sent
|
||||||
MessagingController.getInstance(getApplication()).setFlag(mAccount, mFolder, new String[] { mSourceMessageUid }, Flag.ANSWERED, true);
|
MessagingController.getInstance(getApplication()).setFlag(mAccount, mFolder, new String[] { mSourceMessageUid }, Flag.ANSWERED, true);
|
||||||
@ -766,7 +766,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Failed to create new message for send or save.", me);
|
Log.e(K9.LOG_TAG, "Failed to create new message for send or save.", me);
|
||||||
throw new RuntimeException("Failed to create a new message for send or save.", me);
|
throw new RuntimeException("Failed to create a new message for send or save.", me);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -804,8 +804,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.d(Email.LOG_TAG, "Saving identity: " + k9identity);
|
Log.d(K9.LOG_TAG, "Saving identity: " + k9identity);
|
||||||
message.addHeader(Email.K9MAIL_IDENTITY, k9identity);
|
message.addHeader(K9.K9MAIL_IDENTITY, k9identity);
|
||||||
|
|
||||||
MessagingController.getInstance(getApplication()).saveDraft(mAccount, message);
|
MessagingController.getInstance(getApplication()).saveDraft(mAccount, message);
|
||||||
mDraftUid = message.getUid();
|
mDraftUid = message.getUid();
|
||||||
@ -905,7 +905,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
{
|
{
|
||||||
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
|
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
|
||||||
i.addCategory(Intent.CATEGORY_OPENABLE);
|
i.addCategory(Intent.CATEGORY_OPENABLE);
|
||||||
i.setType(Email.ACCEPTABLE_ATTACHMENT_SEND_TYPES[0]);
|
i.setType(K9.ACCEPTABLE_ATTACHMENT_SEND_TYPES[0]);
|
||||||
startActivityForResult(Intent.createChooser(i, null), ACTIVITY_REQUEST_PICK_ATTACHMENT);
|
startActivityForResult(Intent.createChooser(i, null), ACTIVITY_REQUEST_PICK_ATTACHMENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -965,11 +965,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
if (index!=-1)
|
if (index!=-1)
|
||||||
{
|
{
|
||||||
String extension = attachment.name.substring(index+1).toLowerCase();
|
String extension = attachment.name.substring(index+1).toLowerCase();
|
||||||
for (int i=0; i<Email.CONTENT_TYPE_BY_EXTENSION_MAP.length; i++)
|
for (int i=0; i<K9.CONTENT_TYPE_BY_EXTENSION_MAP.length; i++)
|
||||||
{
|
{
|
||||||
if (Email.CONTENT_TYPE_BY_EXTENSION_MAP[i][0].equals(extension))
|
if (K9.CONTENT_TYPE_BY_EXTENSION_MAP[i][0].equals(extension))
|
||||||
{
|
{
|
||||||
contentType = Email.CONTENT_TYPE_BY_EXTENSION_MAP[i][1];
|
contentType = K9.CONTENT_TYPE_BY_EXTENSION_MAP[i][1];
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1217,7 +1217,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "could not get Message-ID.");
|
Log.d(K9.LOG_TAG, "could not get Message-ID.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Part part = MimeUtility.findFirstPartByMimeType(mSourceMessage,
|
Part part = MimeUtility.findFirstPartByMimeType(mSourceMessage,
|
||||||
@ -1380,14 +1380,14 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
loadAttachments(message, 0);
|
loadAttachments(message, 0);
|
||||||
}
|
}
|
||||||
Integer bodyLength = null;
|
Integer bodyLength = null;
|
||||||
String[] k9identities = message.getHeader(Email.K9MAIL_IDENTITY);
|
String[] k9identities = message.getHeader(K9.K9MAIL_IDENTITY);
|
||||||
if (k9identities != null && k9identities.length > 0)
|
if (k9identities != null && k9identities.length > 0)
|
||||||
{
|
{
|
||||||
String k9identity = k9identities[0];
|
String k9identity = k9identities[0];
|
||||||
|
|
||||||
if (k9identity != null)
|
if (k9identity != null)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got a saved identity: " + k9identity);
|
Log.d(K9.LOG_TAG, "Got a saved identity: " + k9identity);
|
||||||
StringTokenizer tokens = new StringTokenizer(k9identity, ":", false);
|
StringTokenizer tokens = new StringTokenizer(k9identity, ":", false);
|
||||||
|
|
||||||
String bodyLengthS = null;
|
String bodyLengthS = null;
|
||||||
@ -1403,7 +1403,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to parse bodyLength '" + bodyLengthS + "'");
|
Log.e(K9.LOG_TAG, "Unable to parse bodyLength '" + bodyLengthS + "'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tokens.hasMoreTokens())
|
if (tokens.hasMoreTokens())
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
//import android.os.Debug;
|
//import android.os.Debug;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
@ -19,15 +19,15 @@ import android.view.View.OnClickListener;
|
|||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import android.widget.AdapterView.AdapterContextMenuInfo;
|
import android.widget.AdapterView.AdapterContextMenuInfo;
|
||||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.MessagingController.SORT_TYPE;
|
import com.fsck.k9.MessagingController.SORT_TYPE;
|
||||||
import com.android.email.activity.setup.AccountSettings;
|
import com.fsck.k9.activity.setup.AccountSettings;
|
||||||
import com.android.email.activity.setup.FolderSettings;
|
import com.fsck.k9.activity.setup.FolderSettings;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Message.RecipientType;
|
import com.fsck.k9.mail.Message.RecipientType;
|
||||||
import com.android.email.mail.store.LocalStore;
|
import com.fsck.k9.mail.store.LocalStore;
|
||||||
import com.android.email.mail.store.LocalStore.LocalFolder;
|
import com.fsck.k9.mail.store.LocalStore.LocalFolder;
|
||||||
import com.android.email.mail.store.LocalStore.LocalMessage;
|
import com.fsck.k9.mail.store.LocalStore.LocalMessage;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -60,10 +60,10 @@ public class MessageList
|
|||||||
private static final String EXTRA_STARTUP = "startup";
|
private static final String EXTRA_STARTUP = "startup";
|
||||||
private static final String EXTRA_FOLDER = "folder";
|
private static final String EXTRA_FOLDER = "folder";
|
||||||
|
|
||||||
private static final String STATE_KEY_LIST = "com.android.email.activity.messagelist_state";
|
private static final String STATE_KEY_LIST = "com.fsck.k9.activity.messagelist_state";
|
||||||
private static final String STATE_CURRENT_FOLDER = "com.android.email.activity.messagelist_folder";
|
private static final String STATE_CURRENT_FOLDER = "com.fsck.k9.activity.messagelist_folder";
|
||||||
private static final String STATE_KEY_SELECTION = "com.android.email.activity.messagelist_selection";
|
private static final String STATE_KEY_SELECTION = "com.fsck.k9.activity.messagelist_selection";
|
||||||
private static final String STATE_KEY_SELECTED_COUNT = "com.android.email.activity.messagelist_selected_count";
|
private static final String STATE_KEY_SELECTED_COUNT = "com.fsck.k9.activity.messagelist_selected_count";
|
||||||
|
|
||||||
private static final int WIDGET_NONE = 1;
|
private static final int WIDGET_NONE = 1;
|
||||||
private static final int WIDGET_FLAG = 2;
|
private static final int WIDGET_FLAG = 2;
|
||||||
@ -1770,7 +1770,7 @@ public class MessageList
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "getFolder(" + folder + ") goes boom: ",e);
|
Log.e(K9.LOG_TAG, "getFolder(" + folder + ") goes boom: ",e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
@ -1805,7 +1805,7 @@ public class MessageList
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG,"getItemId("+position+") ",e);
|
Log.i(K9.LOG_TAG,"getItemId("+position+") ",e);
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -1826,7 +1826,7 @@ public class MessageList
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "getItem(" + position + "), but folder.messages.size() = " + mAdapter.messages.size(), e);
|
Log.e(K9.LOG_TAG, "getItem(" + position + "), but folder.messages.size() = " + mAdapter.messages.size(), e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -2116,7 +2116,7 @@ public class MessageList
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Unable to load message info", me);
|
Log.v(K9.LOG_TAG, "Unable to load message info", me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2322,7 +2322,7 @@ public class MessageList
|
|||||||
{
|
{
|
||||||
this.name = folder.getName();
|
this.name = folder.getName();
|
||||||
|
|
||||||
if (this.name.equalsIgnoreCase(Email.INBOX))
|
if (this.name.equalsIgnoreCase(K9.INBOX))
|
||||||
{
|
{
|
||||||
this.displayName = getString(R.string.special_mailbox_name_inbox);
|
this.displayName = getString(R.string.special_mailbox_name_inbox);
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -26,14 +26,14 @@ import android.view.animation.TranslateAnimation;
|
|||||||
import android.webkit.*;
|
import android.webkit.*;
|
||||||
import android.webkit.CacheManager.CacheResult;
|
import android.webkit.CacheManager.CacheResult;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Message.RecipientType;
|
import com.fsck.k9.mail.Message.RecipientType;
|
||||||
import com.android.email.mail.internet.MimeUtility;
|
import com.fsck.k9.mail.internet.MimeUtility;
|
||||||
import com.android.email.mail.store.LocalStore.LocalAttachmentBodyPart;
|
import com.fsck.k9.mail.store.LocalStore.LocalAttachmentBodyPart;
|
||||||
import com.android.email.mail.store.LocalStore.LocalMessage;
|
import com.fsck.k9.mail.store.LocalStore.LocalMessage;
|
||||||
import com.android.email.mail.store.LocalStore.LocalTextBody;
|
import com.fsck.k9.mail.store.LocalStore.LocalTextBody;
|
||||||
import com.android.email.provider.AttachmentProvider;
|
import com.fsck.k9.provider.AttachmentProvider;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -46,11 +46,11 @@ import java.util.Map;
|
|||||||
public class MessageView extends K9Activity
|
public class MessageView extends K9Activity
|
||||||
implements UrlInterceptHandler, OnClickListener
|
implements UrlInterceptHandler, OnClickListener
|
||||||
{
|
{
|
||||||
private static final String EXTRA_ACCOUNT = "com.android.email.MessageView_account";
|
private static final String EXTRA_ACCOUNT = "com.fsck.k9.MessageView_account";
|
||||||
private static final String EXTRA_FOLDER = "com.android.email.MessageView_folder";
|
private static final String EXTRA_FOLDER = "com.fsck.k9.MessageView_folder";
|
||||||
private static final String EXTRA_MESSAGE = "com.android.email.MessageView_message";
|
private static final String EXTRA_MESSAGE = "com.fsck.k9.MessageView_message";
|
||||||
private static final String EXTRA_MESSAGE_UIDS = "com.android.email.MessageView_messageUids";
|
private static final String EXTRA_MESSAGE_UIDS = "com.fsck.k9.MessageView_messageUids";
|
||||||
private static final String EXTRA_NEXT = "com.android.email.MessageView_next";
|
private static final String EXTRA_NEXT = "com.fsck.k9.MessageView_next";
|
||||||
|
|
||||||
private static final String CID_PREFIX = "http://cid/";
|
private static final String CID_PREFIX = "http://cid/";
|
||||||
|
|
||||||
@ -532,24 +532,24 @@ public class MessageView extends K9Activity
|
|||||||
mMessageUid = intent.getStringExtra(EXTRA_MESSAGE);
|
mMessageUid = intent.getStringExtra(EXTRA_MESSAGE);
|
||||||
mMessageUids = intent.getStringArrayListExtra(EXTRA_MESSAGE_UIDS);
|
mMessageUids = intent.getStringArrayListExtra(EXTRA_MESSAGE_UIDS);
|
||||||
|
|
||||||
Log.v(Email.LOG_TAG, "mAccount number: " + mAccount.getAccountNumber());
|
Log.v(K9.LOG_TAG, "mAccount number: " + mAccount.getAccountNumber());
|
||||||
Log.v(Email.LOG_TAG, "mFolder: " + mFolder);
|
Log.v(K9.LOG_TAG, "mFolder: " + mFolder);
|
||||||
Log.v(Email.LOG_TAG, "mMessageUid: " + mMessageUid);
|
Log.v(K9.LOG_TAG, "mMessageUid: " + mMessageUid);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "uri: " + uri.toString());
|
Log.v(K9.LOG_TAG, "uri: " + uri.toString());
|
||||||
List<String> segmentList = uri.getPathSegments();
|
List<String> segmentList = uri.getPathSegments();
|
||||||
Log.v(Email.LOG_TAG, "segmentList size: " + segmentList.size());
|
Log.v(K9.LOG_TAG, "segmentList size: " + segmentList.size());
|
||||||
if (segmentList.size()==3)
|
if (segmentList.size()==3)
|
||||||
{
|
{
|
||||||
String accountId = segmentList.get(0);
|
String accountId = segmentList.get(0);
|
||||||
Account[] accounts = Preferences.getPreferences(this).getAccounts();
|
Account[] accounts = Preferences.getPreferences(this).getAccounts();
|
||||||
Log.v(Email.LOG_TAG, "account.length: " + accounts.length);
|
Log.v(K9.LOG_TAG, "account.length: " + accounts.length);
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
for (Account account : accounts)
|
for (Account account : accounts)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "account: name=" + account.getDescription() + " number=" + account.getAccountNumber());
|
Log.v(K9.LOG_TAG, "account: name=" + account.getDescription() + " number=" + account.getAccountNumber());
|
||||||
if (String.valueOf(account.getAccountNumber()).equals(accountId))
|
if (String.valueOf(account.getAccountNumber()).equals(accountId))
|
||||||
{
|
{
|
||||||
mAccount = account;
|
mAccount = account;
|
||||||
@ -571,7 +571,7 @@ public class MessageView extends K9Activity
|
|||||||
{
|
{
|
||||||
for (String segment : segmentList)
|
for (String segment : segmentList)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "segment: " + segment);
|
Log.v(K9.LOG_TAG, "segment: " + segment);
|
||||||
}
|
}
|
||||||
//TODO: Use ressource to externalize message
|
//TODO: Use ressource to externalize message
|
||||||
Toast.makeText(this, "Invalid intent uri: " + uri.toString(), Toast.LENGTH_LONG).show();
|
Toast.makeText(this, "Invalid intent uri: " + uri.toString(), Toast.LENGTH_LONG).show();
|
||||||
@ -779,7 +779,7 @@ public class MessageView extends K9Activity
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "loadMessageForViewHeadersAvailable", me);
|
Log.v(K9.LOG_TAG, "loadMessageForViewHeadersAvailable", me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -826,7 +826,7 @@ public class MessageView extends K9Activity
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not set flag on local message", me);
|
Log.e(K9.LOG_TAG, "Could not set flag on local message", me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1299,21 +1299,21 @@ public class MessageView extends K9Activity
|
|||||||
Button attachmentDownload = (Button)view.findViewById(R.id.download);
|
Button attachmentDownload = (Button)view.findViewById(R.id.download);
|
||||||
|
|
||||||
if ((!MimeUtility.mimeTypeMatches(attachment.contentType,
|
if ((!MimeUtility.mimeTypeMatches(attachment.contentType,
|
||||||
Email.ACCEPTABLE_ATTACHMENT_VIEW_TYPES))
|
K9.ACCEPTABLE_ATTACHMENT_VIEW_TYPES))
|
||||||
|| (MimeUtility.mimeTypeMatches(attachment.contentType,
|
|| (MimeUtility.mimeTypeMatches(attachment.contentType,
|
||||||
Email.UNACCEPTABLE_ATTACHMENT_VIEW_TYPES)))
|
K9.UNACCEPTABLE_ATTACHMENT_VIEW_TYPES)))
|
||||||
{
|
{
|
||||||
attachmentView.setVisibility(View.GONE);
|
attachmentView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
if ((!MimeUtility.mimeTypeMatches(attachment.contentType,
|
if ((!MimeUtility.mimeTypeMatches(attachment.contentType,
|
||||||
Email.ACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES))
|
K9.ACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES))
|
||||||
|| (MimeUtility.mimeTypeMatches(attachment.contentType,
|
|| (MimeUtility.mimeTypeMatches(attachment.contentType,
|
||||||
Email.UNACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES)))
|
K9.UNACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES)))
|
||||||
{
|
{
|
||||||
attachmentDownload.setVisibility(View.GONE);
|
attachmentDownload.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (attachment.size > Email.MAX_ATTACHMENT_DOWNLOAD_SIZE)
|
if (attachment.size > K9.MAX_ATTACHMENT_DOWNLOAD_SIZE)
|
||||||
{
|
{
|
||||||
attachmentView.setVisibility(View.GONE);
|
attachmentView.setVisibility(View.GONE);
|
||||||
attachmentDownload.setVisibility(View.GONE);
|
attachmentDownload.setVisibility(View.GONE);
|
||||||
@ -1362,7 +1362,7 @@ public class MessageView extends K9Activity
|
|||||||
String timeText = getTimeFormat().format(message.getSentDate());
|
String timeText = getTimeFormat().format(message.getSentDate());
|
||||||
String toText = Address.toFriendly(message.getRecipients(RecipientType.TO));
|
String toText = Address.toFriendly(message.getRecipients(RecipientType.TO));
|
||||||
String ccText = Address.toFriendly(message.getRecipients(RecipientType.CC));
|
String ccText = Address.toFriendly(message.getRecipients(RecipientType.CC));
|
||||||
Log.d(Email.LOG_TAG, ccText);
|
Log.d(K9.LOG_TAG, ccText);
|
||||||
boolean hasAttachments = ((LocalMessage) message).getAttachmentCount() > 0;
|
boolean hasAttachments = ((LocalMessage) message).getAttachmentCount() > 0;
|
||||||
mHandler.setHeaders(subjectText,
|
mHandler.setHeaders(subjectText,
|
||||||
fromText,
|
fromText,
|
||||||
@ -1406,7 +1406,7 @@ public class MessageView extends K9Activity
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "loadMessageForViewHeadersAvailable", me);
|
Log.v(K9.LOG_TAG, "loadMessageForViewHeadersAvailable", me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1483,7 +1483,7 @@ public class MessageView extends K9Activity
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "loadMessageForViewBodyAvailable", e);
|
Log.v(K9.LOG_TAG, "loadMessageForViewBodyAvailable", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}//loadMessageForViewBodyAvailable
|
}//loadMessageForViewBodyAvailable
|
||||||
@ -1622,7 +1622,7 @@ public class MessageView extends K9Activity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not display attachment of type " + attachment.contentType, e);
|
Log.e(K9.LOG_TAG, "Could not display attachment of type " + attachment.contentType, e);
|
||||||
Toast toast = Toast.makeText(MessageView.this, getString(R.string.message_view_no_viewer, attachment.contentType), Toast.LENGTH_LONG);
|
Toast toast = Toast.makeText(MessageView.this, getString(R.string.message_view_no_viewer, attachment.contentType), Toast.LENGTH_LONG);
|
||||||
toast.show();
|
toast.show();
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
public class SizeFormatter
|
public class SizeFormatter
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
package com.android.email.activity;
|
package com.fsck.k9.activity;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import com.android.email.K9Activity;
|
import com.fsck.k9.K9Activity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Welcome activity initializes the application and decides what Activity
|
* The Welcome activity initializes the application and decides what Activity
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -8,11 +8,11 @@ import android.os.Bundle;
|
|||||||
import android.preference.*;
|
import android.preference.*;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.activity.ChooseFolder;
|
import com.fsck.k9.activity.ChooseFolder;
|
||||||
import com.android.email.activity.ChooseIdentity;
|
import com.fsck.k9.activity.ChooseIdentity;
|
||||||
import com.android.email.activity.ManageIdentities;
|
import com.fsck.k9.activity.ManageIdentities;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
|
|
||||||
public class AccountSettings extends K9PreferenceActivity
|
public class AccountSettings extends K9PreferenceActivity
|
||||||
{
|
{
|
||||||
@ -91,7 +91,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not get remote store", e);
|
Log.e(K9.LOG_TAG, "Could not get remote store", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.account_settings_preferences);
|
addPreferencesFromResource(R.xml.account_settings_preferences);
|
||||||
@ -348,7 +348,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
mAccount.setAutoExpandFolderName(reverseTranslateFolder(mAutoExpandFolder.getSummary().toString()));
|
mAccount.setAutoExpandFolderName(reverseTranslateFolder(mAutoExpandFolder.getSummary().toString()));
|
||||||
mAccount.setLeftHanded(mLeftHanded.isChecked());
|
mAccount.setLeftHanded(mLeftHanded.isChecked());
|
||||||
mAccount.save(Preferences.getPreferences(this));
|
mAccount.save(Preferences.getPreferences(this));
|
||||||
Email.setServicesEnabled(this);
|
K9.setServicesEnabled(this);
|
||||||
// TODO: refresh folder list here
|
// TODO: refresh folder list here
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -415,7 +415,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
private String translateFolder(String in)
|
private String translateFolder(String in)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (Email.INBOX.equalsIgnoreCase(in))
|
if (K9.INBOX.equalsIgnoreCase(in))
|
||||||
{
|
{
|
||||||
return getString(R.string.special_mailbox_name_inbox);
|
return getString(R.string.special_mailbox_name_inbox);
|
||||||
}
|
}
|
||||||
@ -430,7 +430,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
|
|
||||||
if (getString(R.string.special_mailbox_name_inbox).equals(in))
|
if (getString(R.string.special_mailbox_name_inbox).equals(in))
|
||||||
{
|
{
|
||||||
return Email.INBOX;
|
return K9.INBOX;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -9,10 +9,10 @@ import android.view.View;
|
|||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import com.android.email.Account;
|
import com.fsck.k9.Account;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.K9Activity;
|
import com.fsck.k9.K9Activity;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
|
||||||
@ -120,7 +120,7 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen
|
|||||||
}
|
}
|
||||||
private void failure(Exception use)
|
private void failure(Exception use)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Failure", use);
|
Log.e(K9.LOG_TAG, "Failure", use);
|
||||||
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
||||||
|
|
||||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@ -20,7 +20,7 @@ import android.view.View.OnClickListener;
|
|||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
@ -37,10 +37,10 @@ import java.net.URISyntaxException;
|
|||||||
public class AccountSetupBasics extends K9Activity
|
public class AccountSetupBasics extends K9Activity
|
||||||
implements OnClickListener, TextWatcher
|
implements OnClickListener, TextWatcher
|
||||||
{
|
{
|
||||||
private final static String EXTRA_ACCOUNT = "com.android.email.AccountSetupBasics.account";
|
private final static String EXTRA_ACCOUNT = "com.fsck.k9.AccountSetupBasics.account";
|
||||||
private final static int DIALOG_NOTE = 1;
|
private final static int DIALOG_NOTE = 1;
|
||||||
private final static String STATE_KEY_PROVIDER =
|
private final static String STATE_KEY_PROVIDER =
|
||||||
"com.android.email.AccountSetupBasics.provider";
|
"com.fsck.k9.AccountSetupBasics.provider";
|
||||||
|
|
||||||
private Preferences mPrefs;
|
private Preferences mPrefs;
|
||||||
private EditText mEmailView;
|
private EditText mEmailView;
|
||||||
@ -163,7 +163,7 @@ public class AccountSetupBasics extends K9Activity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not get owner name, using default account name", e);
|
Log.e(K9.LOG_TAG, "Could not get owner name, using default account name", e);
|
||||||
}
|
}
|
||||||
if (name == null || name.length() == 0)
|
if (name == null || name.length() == 0)
|
||||||
{
|
{
|
||||||
@ -173,7 +173,7 @@ public class AccountSetupBasics extends K9Activity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not get default account name", e);
|
Log.e(K9.LOG_TAG, "Could not get default account name", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (name == null)
|
if (name == null)
|
||||||
@ -313,7 +313,7 @@ public class AccountSetupBasics extends K9Activity
|
|||||||
{
|
{
|
||||||
Preferences.getPreferences(this).setDefaultAccount(mAccount);
|
Preferences.getPreferences(this).setDefaultAccount(mAccount);
|
||||||
}
|
}
|
||||||
Email.setServicesEnabled(this);
|
K9.setServicesEnabled(this);
|
||||||
AccountSetupNames.actionSetNames(this, mAccount);
|
AccountSetupNames.actionSetNames(this, mAccount);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
@ -429,7 +429,7 @@ public class AccountSetupBasics extends K9Activity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error while trying to load provider settings.", e);
|
Log.e(K9.LOG_TAG, "Error while trying to load provider settings.", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
@ -14,12 +14,12 @@ import android.view.View.OnClickListener;
|
|||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.AuthenticationFailedException;
|
import com.fsck.k9.mail.AuthenticationFailedException;
|
||||||
import com.android.email.mail.CertificateValidationException;
|
import com.fsck.k9.mail.CertificateValidationException;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
import com.android.email.mail.Transport;
|
import com.fsck.k9.mail.Transport;
|
||||||
import com.android.email.mail.store.TrustManagerFactory;
|
import com.fsck.k9.mail.store.TrustManagerFactory;
|
||||||
|
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
@ -108,7 +108,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
|||||||
store.checkSettings();
|
store.checkSettings();
|
||||||
|
|
||||||
MessagingController.getInstance(getApplication()).listFolders(mAccount, true, null);
|
MessagingController.getInstance(getApplication()).listFolders(mAccount, true, null);
|
||||||
MessagingController.getInstance(getApplication()).synchronizeMailbox(mAccount, Email.INBOX , null);
|
MessagingController.getInstance(getApplication()).synchronizeMailbox(mAccount, K9.INBOX , null);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (mDestroyed)
|
if (mDestroyed)
|
||||||
@ -142,21 +142,21 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
|||||||
}
|
}
|
||||||
catch (final AuthenticationFailedException afe)
|
catch (final AuthenticationFailedException afe)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error while testing settings", afe);
|
Log.e(K9.LOG_TAG, "Error while testing settings", afe);
|
||||||
showErrorDialog(
|
showErrorDialog(
|
||||||
R.string.account_setup_failed_dlg_auth_message_fmt,
|
R.string.account_setup_failed_dlg_auth_message_fmt,
|
||||||
afe.getMessage() == null ? "" : afe.getMessage());
|
afe.getMessage() == null ? "" : afe.getMessage());
|
||||||
}
|
}
|
||||||
catch (final CertificateValidationException cve)
|
catch (final CertificateValidationException cve)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error while testing settings", cve);
|
Log.e(K9.LOG_TAG, "Error while testing settings", cve);
|
||||||
acceptKeyDialog(
|
acceptKeyDialog(
|
||||||
R.string.account_setup_failed_dlg_certificate_message_fmt,
|
R.string.account_setup_failed_dlg_certificate_message_fmt,
|
||||||
cve);
|
cve);
|
||||||
}
|
}
|
||||||
catch (final Throwable t)
|
catch (final Throwable t)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error while testing settings", t);
|
Log.e(K9.LOG_TAG, "Error while testing settings", t);
|
||||||
showErrorDialog(
|
showErrorDialog(
|
||||||
R.string.account_setup_failed_dlg_server_message_fmt,
|
R.string.account_setup_failed_dlg_server_message_fmt,
|
||||||
(t.getMessage() == null ? "" : t.getMessage()));
|
(t.getMessage() == null ? "" : t.getMessage()));
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -6,10 +6,10 @@ import android.os.Bundle;
|
|||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
import com.android.email.Account;
|
import com.fsck.k9.Account;
|
||||||
import com.android.email.K9Activity;
|
import com.fsck.k9.K9Activity;
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
|
|
||||||
public class AccountSetupComposition extends K9Activity
|
public class AccountSetupComposition extends K9Activity
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -11,8 +11,8 @@ import android.util.Log;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.activity.ChooseFolder;
|
import com.fsck.k9.activity.ChooseFolder;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
@ -517,7 +517,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
|||||||
|
|
||||||
private void failure(Exception use)
|
private void failure(Exception use)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Failure", use);
|
Log.e(K9.LOG_TAG, "Failure", use);
|
||||||
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
||||||
|
|
||||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -12,8 +12,8 @@ import android.view.View;
|
|||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.activity.FolderList;
|
import com.fsck.k9.activity.FolderList;
|
||||||
|
|
||||||
public class AccountSetupNames extends K9Activity implements OnClickListener
|
public class AccountSetupNames extends K9Activity implements OnClickListener
|
||||||
{
|
{
|
||||||
@ -95,7 +95,7 @@ public class AccountSetupNames extends K9Activity implements OnClickListener
|
|||||||
}
|
}
|
||||||
mAccount.setName(mName.getText().toString());
|
mAccount.setName(mName.getText().toString());
|
||||||
mAccount.save(Preferences.getPreferences(this));
|
mAccount.save(Preferences.getPreferences(this));
|
||||||
FolderList.actionHandleAccount(this, mAccount, Email.INBOX);
|
FolderList.actionHandleAccount(this, mAccount, K9.INBOX);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -10,8 +10,8 @@ import android.view.View.OnClickListener;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
|
|
||||||
public class AccountSetupOptions extends K9Activity implements OnClickListener
|
public class AccountSetupOptions extends K9Activity implements OnClickListener
|
||||||
{
|
{
|
||||||
@ -122,7 +122,7 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not get remote store", e);
|
Log.e(K9.LOG_TAG, "Could not get remote store", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener
|
|||||||
{
|
{
|
||||||
Preferences.getPreferences(this).setDefaultAccount(mAccount);
|
Preferences.getPreferences(this).setDefaultAccount(mAccount);
|
||||||
}
|
}
|
||||||
Email.setServicesEnabled(this);
|
K9.setServicesEnabled(this);
|
||||||
AccountSetupNames.actionSetNames(this, mAccount);
|
AccountSetupNames.actionSetNames(this, mAccount);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -13,7 +13,7 @@ import android.view.View.OnClickListener;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
@ -326,7 +326,7 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
|||||||
}
|
}
|
||||||
private void failure(Exception use)
|
private void failure(Exception use)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Failure", use);
|
Log.e(K9.LOG_TAG, "Failure", use);
|
||||||
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
||||||
|
|
||||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -8,17 +8,17 @@ import android.preference.ListPreference;
|
|||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.Folder.FolderClass;
|
import com.fsck.k9.mail.Folder.FolderClass;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import com.android.email.mail.Store;
|
import com.fsck.k9.mail.Store;
|
||||||
import com.android.email.mail.store.LocalStore.LocalFolder;
|
import com.fsck.k9.mail.store.LocalStore.LocalFolder;
|
||||||
|
|
||||||
public class FolderSettings extends K9PreferenceActivity
|
public class FolderSettings extends K9PreferenceActivity
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final String EXTRA_FOLDER_NAME = "com.android.email.folderName";
|
private static final String EXTRA_FOLDER_NAME = "com.fsck.k9.folderName";
|
||||||
private static final String EXTRA_ACCOUNT = "com.android.email.account";
|
private static final String EXTRA_ACCOUNT = "com.fsck.k9.account";
|
||||||
|
|
||||||
private static final String PREFERENCE_TOP_CATERGORY = "folder_settings";
|
private static final String PREFERENCE_TOP_CATERGORY = "folder_settings";
|
||||||
private static final String PREFERENCE_DISPLAY_CLASS = "folder_settings_folder_display_mode";
|
private static final String PREFERENCE_DISPLAY_CLASS = "folder_settings_folder_display_mode";
|
||||||
@ -56,7 +56,7 @@ public class FolderSettings extends K9PreferenceActivity
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to edit folder " + folderName + " preferences", me);
|
Log.e(K9.LOG_TAG, "Unable to edit folder " + folderName + " preferences", me);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ public class FolderSettings extends K9PreferenceActivity
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not get remote store", e);
|
Log.e(K9.LOG_TAG, "Could not get remote store", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.folder_settings_preferences);
|
addPreferencesFromResource(R.xml.folder_settings_preferences);
|
||||||
@ -134,7 +134,7 @@ public class FolderSettings extends K9PreferenceActivity
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
Log.e(K9.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -147,11 +147,11 @@ public class FolderSettings extends K9PreferenceActivity
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
mFolder.save(Preferences.getPreferences(this));
|
mFolder.save(Preferences.getPreferences(this));
|
||||||
Email.setServicesEnabled(this);
|
K9.setServicesEnabled(this);
|
||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
Log.e(K9.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -9,12 +9,12 @@ import android.preference.CheckBoxPreference;
|
|||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.K9PreferenceActivity;
|
import com.fsck.k9.K9PreferenceActivity;
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
import com.android.email.R;
|
import com.fsck.k9.R;
|
||||||
import com.android.email.activity.DateFormatter;
|
import com.fsck.k9.activity.DateFormatter;
|
||||||
import com.android.email.service.MailService;
|
import com.fsck.k9.service.MailService;
|
||||||
|
|
||||||
public class Prefs extends K9PreferenceActivity
|
public class Prefs extends K9PreferenceActivity
|
||||||
{
|
{
|
||||||
@ -49,7 +49,7 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
addPreferencesFromResource(R.xml.global_preferences);
|
addPreferencesFromResource(R.xml.global_preferences);
|
||||||
|
|
||||||
mTheme = (ListPreference) findPreference(PREFERENCE_THEME);
|
mTheme = (ListPreference) findPreference(PREFERENCE_THEME);
|
||||||
mTheme.setValue(String.valueOf(Email.getK9Theme() == android.R.style.Theme ? "dark" : "light"));
|
mTheme.setValue(String.valueOf(K9.getK9Theme() == android.R.style.Theme ? "dark" : "light"));
|
||||||
mTheme.setSummary(mTheme.getEntry());
|
mTheme.setSummary(mTheme.getEntry());
|
||||||
mTheme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
mTheme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
||||||
{
|
{
|
||||||
@ -91,7 +91,7 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
});
|
});
|
||||||
|
|
||||||
mBackgroundOps = (ListPreference) findPreference(PREFERENCE_BACKGROUND_OPS);
|
mBackgroundOps = (ListPreference) findPreference(PREFERENCE_BACKGROUND_OPS);
|
||||||
initBackgroundOps = Email.getBackgroundOps().toString();
|
initBackgroundOps = K9.getBackgroundOps().toString();
|
||||||
mBackgroundOps.setValue(initBackgroundOps);
|
mBackgroundOps.setValue(initBackgroundOps);
|
||||||
mBackgroundOps.setSummary(mBackgroundOps.getEntry());
|
mBackgroundOps.setSummary(mBackgroundOps.getEntry());
|
||||||
mBackgroundOps.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
mBackgroundOps.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
||||||
@ -109,8 +109,8 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
mDebugLogging = (CheckBoxPreference)findPreference(PREFERENCE_DEBUG_LOGGING);
|
mDebugLogging = (CheckBoxPreference)findPreference(PREFERENCE_DEBUG_LOGGING);
|
||||||
mSensitiveLogging = (CheckBoxPreference)findPreference(PREFERENCE_SENSITIVE_LOGGING);
|
mSensitiveLogging = (CheckBoxPreference)findPreference(PREFERENCE_SENSITIVE_LOGGING);
|
||||||
|
|
||||||
mDebugLogging.setChecked(Email.DEBUG);
|
mDebugLogging.setChecked(K9.DEBUG);
|
||||||
mSensitiveLogging.setChecked(Email.DEBUG_SENSITIVE);
|
mSensitiveLogging.setChecked(K9.DEBUG_SENSITIVE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,13 +123,13 @@ public class Prefs extends K9PreferenceActivity
|
|||||||
private void saveSettings()
|
private void saveSettings()
|
||||||
{
|
{
|
||||||
SharedPreferences preferences = Preferences.getPreferences(this).getPreferences();
|
SharedPreferences preferences = Preferences.getPreferences(this).getPreferences();
|
||||||
Email.setK9Theme(mTheme.getValue().equals("dark") ? android.R.style.Theme : android.R.style.Theme_Light);
|
K9.setK9Theme(mTheme.getValue().equals("dark") ? android.R.style.Theme : android.R.style.Theme_Light);
|
||||||
Email.DEBUG = mDebugLogging.isChecked();
|
K9.DEBUG = mDebugLogging.isChecked();
|
||||||
Email.DEBUG_SENSITIVE = mSensitiveLogging.isChecked();
|
K9.DEBUG_SENSITIVE = mSensitiveLogging.isChecked();
|
||||||
String newBackgroundOps = mBackgroundOps.getValue();
|
String newBackgroundOps = mBackgroundOps.getValue();
|
||||||
Email.setBackgroundOps(newBackgroundOps);
|
K9.setBackgroundOps(newBackgroundOps);
|
||||||
Editor editor = preferences.edit();
|
Editor editor = preferences.edit();
|
||||||
Email.save(editor);
|
K9.save(editor);
|
||||||
DateFormatter.setDateFormat(editor, mDateFormat.getValue());
|
DateFormatter.setDateFormat(editor, mDateFormat.getValue());
|
||||||
editor.commit();
|
editor.commit();
|
||||||
if (newBackgroundOps.equals(initBackgroundOps) == false)
|
if (newBackgroundOps.equals(initBackgroundOps) == false)
|
@ -2,7 +2,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.email.activity.setup;
|
package com.fsck.k9.activity.setup;
|
||||||
|
|
||||||
import android.widget.Spinner;
|
import android.widget.Spinner;
|
||||||
|
|
@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.email.codec.binary;
|
package com.fsck.k9.codec.binary;
|
||||||
|
|
||||||
import org.apache.commons.codec.BinaryDecoder;
|
import org.apache.commons.codec.BinaryDecoder;
|
||||||
import org.apache.commons.codec.BinaryEncoder;
|
import org.apache.commons.codec.BinaryEncoder;
|
@ -15,7 +15,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.email.codec.binary;
|
package com.fsck.k9.codec.binary;
|
||||||
|
|
||||||
import java.io.FilterOutputStream;
|
import java.io.FilterOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import android.text.util.Rfc822Token;
|
import android.text.util.Rfc822Token;
|
||||||
import android.text.util.Rfc822Tokenizer;
|
import android.text.util.Rfc822Tokenizer;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.Utility;
|
import com.fsck.k9.Utility;
|
||||||
import org.apache.james.mime4j.codec.EncoderUtil;
|
import org.apache.james.mime4j.codec.EncoderUtil;
|
||||||
import org.apache.james.mime4j.field.address.AddressList;
|
import org.apache.james.mime4j.field.address.AddressList;
|
||||||
import org.apache.james.mime4j.field.address.Mailbox;
|
import org.apache.james.mime4j.field.address.Mailbox;
|
||||||
@ -130,7 +130,7 @@ public class Address
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unknown address type from Mime4J: "
|
Log.e(K9.LOG_TAG, "Unknown address type from Mime4J: "
|
||||||
+ address.getClass().toString());
|
+ address.getClass().toString());
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public class AuthenticationFailedException extends MessagingException
|
public class AuthenticationFailedException extends MessagingException
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public abstract class BodyPart implements Part
|
public abstract class BodyPart implements Part
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public class CertificateValidationException extends MessagingException
|
public class CertificateValidationException extends MessagingException
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flags that can be applied to Messages.
|
* Flags that can be applied to Messages.
|
@ -1,6 +1,6 @@
|
|||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
|
|
||||||
|
|
||||||
public abstract class Folder
|
public abstract class Folder
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public interface MessageRemovalListener
|
public interface MessageRemovalListener
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public interface MessageRetrievalListener
|
public interface MessageRetrievalListener
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public class MessagingException extends Exception
|
public class MessagingException extends Exception
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
public class NoSuchProviderException extends MessagingException
|
public class NoSuchProviderException extends MessagingException
|
||||||
{
|
{
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import com.android.email.mail.store.ImapStore;
|
import com.fsck.k9.mail.store.ImapStore;
|
||||||
import com.android.email.mail.store.LocalStore;
|
import com.fsck.k9.mail.store.LocalStore;
|
||||||
import com.android.email.mail.store.Pop3Store;
|
import com.fsck.k9.mail.store.Pop3Store;
|
||||||
import com.android.email.mail.store.WebDavStore;
|
import com.fsck.k9.mail.store.WebDavStore;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
package com.android.email.mail;
|
package com.fsck.k9.mail;
|
||||||
|
|
||||||
import com.android.email.mail.transport.SmtpTransport;
|
import com.fsck.k9.mail.transport.SmtpTransport;
|
||||||
import com.android.email.mail.transport.WebDavTransport;
|
import com.fsck.k9.mail.transport.WebDavTransport;
|
||||||
|
|
||||||
public abstract class Transport
|
public abstract class Transport
|
||||||
{
|
{
|
@ -1,8 +1,8 @@
|
|||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import com.android.email.codec.binary.Base64OutputStream;
|
import com.fsck.k9.codec.binary.Base64OutputStream;
|
||||||
import com.android.email.mail.Body;
|
import com.fsck.k9.mail.Body;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import com.android.email.mail.Body;
|
import com.fsck.k9.mail.Body;
|
||||||
import com.android.email.mail.BodyPart;
|
import com.fsck.k9.mail.BodyPart;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -72,9 +72,9 @@ public class MimeBodyPart extends BodyPart
|
|||||||
public void setBody(Body body) throws MessagingException
|
public void setBody(Body body) throws MessagingException
|
||||||
{
|
{
|
||||||
this.mBody = body;
|
this.mBody = body;
|
||||||
if (body instanceof com.android.email.mail.Multipart)
|
if (body instanceof com.fsck.k9.mail.Multipart)
|
||||||
{
|
{
|
||||||
com.android.email.mail.Multipart multipart = ((com.android.email.mail.Multipart)body);
|
com.fsck.k9.mail.Multipart multipart = ((com.fsck.k9.mail.Multipart)body);
|
||||||
multipart.setParent(this);
|
multipart.setParent(this);
|
||||||
setHeader(MimeHeader.HEADER_CONTENT_TYPE, multipart.getContentType());
|
setHeader(MimeHeader.HEADER_CONTENT_TYPE, multipart.getContentType());
|
||||||
}
|
}
|
@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import com.android.email.Utility;
|
import com.fsck.k9.Utility;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import org.apache.james.mime4j.codec.EncoderUtil;
|
import org.apache.james.mime4j.codec.EncoderUtil;
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import org.apache.james.mime4j.BodyDescriptor;
|
import org.apache.james.mime4j.BodyDescriptor;
|
||||||
import org.apache.james.mime4j.ContentHandler;
|
import org.apache.james.mime4j.ContentHandler;
|
||||||
import org.apache.james.mime4j.EOLConvertingInputStream;
|
import org.apache.james.mime4j.EOLConvertingInputStream;
|
||||||
@ -104,7 +104,7 @@ public class MimeMessage extends Message
|
|||||||
*
|
*
|
||||||
* @see #mSentDate
|
* @see #mSentDate
|
||||||
* @param sentDate
|
* @param sentDate
|
||||||
* @throws com.android.email.mail.MessagingException
|
* @throws com.fsck.k9.mail.MessagingException
|
||||||
*/
|
*/
|
||||||
public void addSentDate(Date sentDate) throws MessagingException
|
public void addSentDate(Date sentDate) throws MessagingException
|
||||||
{
|
{
|
||||||
@ -368,9 +368,9 @@ public class MimeMessage extends Message
|
|||||||
public void setBody(Body body) throws MessagingException
|
public void setBody(Body body) throws MessagingException
|
||||||
{
|
{
|
||||||
this.mBody = body;
|
this.mBody = body;
|
||||||
if (body instanceof com.android.email.mail.Multipart)
|
if (body instanceof com.fsck.k9.mail.Multipart)
|
||||||
{
|
{
|
||||||
com.android.email.mail.Multipart multipart = ((com.android.email.mail.Multipart)body);
|
com.fsck.k9.mail.Multipart multipart = ((com.fsck.k9.mail.Multipart)body);
|
||||||
multipart.setParent(this);
|
multipart.setParent(this);
|
||||||
setHeader(MimeHeader.HEADER_CONTENT_TYPE, multipart.getContentType());
|
setHeader(MimeHeader.HEADER_CONTENT_TYPE, multipart.getContentType());
|
||||||
setHeader("MIME-Version", "1.0");
|
setHeader("MIME-Version", "1.0");
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import com.android.email.mail.BodyPart;
|
import com.fsck.k9.mail.BodyPart;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import com.android.email.mail.Multipart;
|
import com.fsck.k9.mail.Multipart;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.james.mime4j.decoder.Base64InputStream;
|
import org.apache.james.mime4j.decoder.Base64InputStream;
|
||||||
import org.apache.james.mime4j.decoder.DecoderUtil;
|
import org.apache.james.mime4j.decoder.DecoderUtil;
|
||||||
@ -216,7 +216,7 @@ public class MimeUtility
|
|||||||
* If we are not able to process the body there's nothing we can do about it. Return
|
* If we are not able to process the body there's nothing we can do about it. Return
|
||||||
* null and let the upper layers handle the missing content.
|
* null and let the upper layers handle the missing content.
|
||||||
*/
|
*/
|
||||||
Log.e(Email.LOG_TAG, "Unable to getTextFromPart", e);
|
Log.e(K9.LOG_TAG, "Unable to getTextFromPart", e);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
package com.android.email.mail.internet;
|
package com.fsck.k9.mail.internet;
|
||||||
|
|
||||||
import com.android.email.codec.binary.Base64;
|
import com.fsck.k9.codec.binary.Base64;
|
||||||
import com.android.email.mail.Body;
|
import com.fsck.k9.mail.Body;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
@ -2,13 +2,13 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.email.mail.store;
|
package com.fsck.k9.mail.store;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.FixedLengthInputStream;
|
import com.fsck.k9.FixedLengthInputStream;
|
||||||
import com.android.email.PeekableInputStream;
|
import com.fsck.k9.PeekableInputStream;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -65,9 +65,9 @@ public class ImapResponseParser
|
|||||||
response.mTag = parseTaggedResponse();
|
response.mTag = parseTaggedResponse();
|
||||||
readTokens(response);
|
readTokens(response);
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "<<< " + response.toString());
|
Log.v(K9.LOG_TAG, "<<< " + response.toString());
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
@ -1,16 +1,16 @@
|
|||||||
|
|
||||||
package com.android.email.mail.store;
|
package com.fsck.k9.mail.store;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.PeekableInputStream;
|
import com.fsck.k9.PeekableInputStream;
|
||||||
import com.android.email.Utility;
|
import com.fsck.k9.Utility;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.internet.*;
|
import com.fsck.k9.mail.internet.*;
|
||||||
import com.android.email.mail.store.ImapResponseParser.ImapList;
|
import com.fsck.k9.mail.store.ImapResponseParser.ImapList;
|
||||||
import com.android.email.mail.store.ImapResponseParser.ImapResponse;
|
import com.fsck.k9.mail.store.ImapResponseParser.ImapResponse;
|
||||||
import com.android.email.mail.transport.CountingOutputStream;
|
import com.fsck.k9.mail.transport.CountingOutputStream;
|
||||||
import com.android.email.mail.transport.EOLConvertingOutputStream;
|
import com.fsck.k9.mail.transport.EOLConvertingOutputStream;
|
||||||
import com.beetstra.jutf7.CharsetProvider;
|
import com.beetstra.jutf7.CharsetProvider;
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
@ -237,7 +237,7 @@ public class ImapStore extends Store
|
|||||||
mCombinedPrefix = null;
|
mCombinedPrefix = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (folder.equalsIgnoreCase(Email.INBOX))
|
if (folder.equalsIgnoreCase(K9.INBOX))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -419,7 +419,7 @@ public class ImapStore extends Store
|
|||||||
public String getPrefixedName()
|
public String getPrefixedName()
|
||||||
{
|
{
|
||||||
String prefixedName = "";
|
String prefixedName = "";
|
||||||
if (!Email.INBOX.equalsIgnoreCase(mName))
|
if (!K9.INBOX.equalsIgnoreCase(mName))
|
||||||
{
|
{
|
||||||
prefixedName = getCombinedPrefix();
|
prefixedName = getCombinedPrefix();
|
||||||
}
|
}
|
||||||
@ -490,9 +490,9 @@ public class ImapStore extends Store
|
|||||||
if (response.get(0).equals("LIST"))
|
if (response.get(0).equals("LIST"))
|
||||||
{
|
{
|
||||||
mPathDelimeter = response.getString(2);
|
mPathDelimeter = response.getString(2);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got path delimeter '" + mPathDelimeter + "' for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got path delimeter '" + mPathDelimeter + "' for " + getLogId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -551,7 +551,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to open connection for " + getLogId(), me);
|
Log.e(K9.LOG_TAG, "Unable to open connection for " + getLogId(), me);
|
||||||
throw me;
|
throw me;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -588,7 +588,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to expunge remote folder " + getName(), me);
|
Log.e(K9.LOG_TAG, "Unable to expunge remote folder " + getName(), me);
|
||||||
}
|
}
|
||||||
synchronized (this)
|
synchronized (this)
|
||||||
{
|
{
|
||||||
@ -743,15 +743,15 @@ public class ImapStore extends Store
|
|||||||
/*
|
/*
|
||||||
* If the remote trash folder doesn't exist we try to create it.
|
* If the remote trash folder doesn't exist we try to create it.
|
||||||
*/
|
*/
|
||||||
Log.i(Email.LOG_TAG, "IMAPMessage.delete: attempting to create remote '" + trashFolderName + "' folder for " + getLogId());
|
Log.i(K9.LOG_TAG, "IMAPMessage.delete: attempting to create remote '" + trashFolderName + "' folder for " + getLogId());
|
||||||
remoteTrashFolder.create(FolderType.HOLDS_MESSAGES);
|
remoteTrashFolder.create(FolderType.HOLDS_MESSAGES);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (remoteTrashFolder.exists())
|
if (remoteTrashFolder.exists())
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "IMAPMessage.delete: copying remote " + messages.length + " messages to '" + trashFolderName + "' for " + getLogId());
|
Log.d(K9.LOG_TAG, "IMAPMessage.delete: copying remote " + messages.length + " messages to '" + trashFolderName + "' for " + getLogId());
|
||||||
}
|
}
|
||||||
moveMessages(messages, remoteTrashFolder);
|
moveMessages(messages, remoteTrashFolder);
|
||||||
expunge();
|
expunge();
|
||||||
@ -863,13 +863,13 @@ public class ImapStore extends Store
|
|||||||
List<ImapResponse> responses = searcher.search(); //
|
List<ImapResponse> responses = searcher.search(); //
|
||||||
for (ImapResponse response : responses)
|
for (ImapResponse response : responses)
|
||||||
{
|
{
|
||||||
// Log.d(Email.LOG_TAG, "Got search response: " + response.get(0) + ", size " + response.size());
|
// Log.d(K9.LOG_TAG, "Got search response: " + response.get(0) + ", size " + response.size());
|
||||||
if (response.get(0).equals("SEARCH"))
|
if (response.get(0).equals("SEARCH"))
|
||||||
{
|
{
|
||||||
gotSearchValues = true;
|
gotSearchValues = true;
|
||||||
for (int i = 1, count = response.size(); i < count; i++)
|
for (int i = 1, count = response.size(); i < count; i++)
|
||||||
{
|
{
|
||||||
// Log.d(Email.LOG_TAG, "Got search response UID: " + response.getString(i));
|
// Log.d(K9.LOG_TAG, "Got search response UID: " + response.getString(i));
|
||||||
|
|
||||||
uids.add(Integer.parseInt(response.getString(i)));
|
uids.add(Integer.parseInt(response.getString(i)));
|
||||||
}
|
}
|
||||||
@ -985,7 +985,7 @@ public class ImapStore extends Store
|
|||||||
fetchFields.add("INTERNALDATE");
|
fetchFields.add("INTERNALDATE");
|
||||||
fetchFields.add("RFC822.SIZE");
|
fetchFields.add("RFC822.SIZE");
|
||||||
fetchFields.add("BODY.PEEK[HEADER.FIELDS (date subject from content-type to cc reply-to "
|
fetchFields.add("BODY.PEEK[HEADER.FIELDS (date subject from content-type to cc reply-to "
|
||||||
+ Email.K9MAIL_IDENTITY + ")]");
|
+ K9.K9MAIL_IDENTITY + ")]");
|
||||||
}
|
}
|
||||||
if (fp.contains(FetchProfile.Item.STRUCTURE))
|
if (fp.contains(FetchProfile.Item.STRUCTURE))
|
||||||
{
|
{
|
||||||
@ -1027,9 +1027,9 @@ public class ImapStore extends Store
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
response = mConnection.readResponse();
|
response = mConnection.readResponse();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "response for fetch: " + response + " for " + getLogId());
|
Log.v(K9.LOG_TAG, "response for fetch: " + response + " for " + getLogId());
|
||||||
}
|
}
|
||||||
if (response.mTag == null && response.get(1).equals("FETCH"))
|
if (response.mTag == null && response.get(1).equals("FETCH"))
|
||||||
{
|
{
|
||||||
@ -1039,7 +1039,7 @@ public class ImapStore extends Store
|
|||||||
Message message = messageMap.get(uid);
|
Message message = messageMap.get(uid);
|
||||||
if (message == null)
|
if (message == null)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Do not have message in messageMap for UID " + uid + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Do not have message in messageMap for UID " + uid + " for " + getLogId());
|
||||||
handleUntaggedResponse(response);
|
handleUntaggedResponse(response);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1099,9 +1099,9 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (MessagingException e)
|
catch (MessagingException e)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Error handling message for " + getLogId(), e);
|
Log.d(K9.LOG_TAG, "Error handling message for " + getLogId(), e);
|
||||||
}
|
}
|
||||||
message.setBody(null);
|
message.setBody(null);
|
||||||
}
|
}
|
||||||
@ -1127,7 +1127,7 @@ public class ImapStore extends Store
|
|||||||
Object literal = fetchList.getObject(fetchList.size() - 1);
|
Object literal = fetchList.getObject(fetchList.size() - 1);
|
||||||
if (literal instanceof InputStream)
|
if (literal instanceof InputStream)
|
||||||
{
|
{
|
||||||
//Log.i(Email.LOG_TAG, "Part is an InputStream/Literal");
|
//Log.i(K9.LOG_TAG, "Part is an InputStream/Literal");
|
||||||
InputStream bodyStream = (InputStream)literal;
|
InputStream bodyStream = (InputStream)literal;
|
||||||
String contentType = part.getContentType();
|
String contentType = part.getContentType();
|
||||||
String contentTransferEncoding = part.getHeader(
|
String contentTransferEncoding = part.getHeader(
|
||||||
@ -1140,9 +1140,9 @@ public class ImapStore extends Store
|
|||||||
{
|
{
|
||||||
String bodyString = (String)literal;
|
String bodyString = (String)literal;
|
||||||
|
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Part is a String: '" + bodyString + "' for " + getLogId());
|
Log.v(K9.LOG_TAG, "Part is a String: '" + bodyString + "' for " + getLogId());
|
||||||
}
|
}
|
||||||
InputStream bodyStream = new ByteArrayInputStream(bodyString.getBytes());
|
InputStream bodyStream = new ByteArrayInputStream(bodyString.getBytes());
|
||||||
String contentTransferEncoding = part.getHeader(
|
String contentTransferEncoding = part.getHeader(
|
||||||
@ -1212,9 +1212,9 @@ public class ImapStore extends Store
|
|||||||
if ("UIDNEXT".equals(key))
|
if ("UIDNEXT".equals(key))
|
||||||
{
|
{
|
||||||
uidNext = bracketed.getNumber(1);
|
uidNext = bracketed.getNumber(1);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got UidNext = " + uidNext + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got UidNext = " + uidNext + " for " + getLogId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1231,15 +1231,15 @@ public class ImapStore extends Store
|
|||||||
*/
|
*/
|
||||||
protected void handleUntaggedResponse(ImapResponse response)
|
protected void handleUntaggedResponse(ImapResponse response)
|
||||||
{
|
{
|
||||||
//Log.i(Email.LOG_TAG, "Got response with size " + response.size() + ": " + response);
|
//Log.i(K9.LOG_TAG, "Got response with size " + response.size() + ": " + response);
|
||||||
if (response.mTag == null && response.size() > 1)
|
if (response.mTag == null && response.size() > 1)
|
||||||
{
|
{
|
||||||
if (response.get(1).equals("EXISTS"))
|
if (response.get(1).equals("EXISTS"))
|
||||||
{
|
{
|
||||||
mMessageCount = response.getNumber(0);
|
mMessageCount = response.getNumber(0);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got untagged EXISTS with value " + mMessageCount + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got untagged EXISTS with value " + mMessageCount + " for " + getLogId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
handlePossibleUidNext(response);
|
handlePossibleUidNext(response);
|
||||||
@ -1247,9 +1247,9 @@ public class ImapStore extends Store
|
|||||||
if (response.get(1).equals("EXPUNGE") && mMessageCount > 0)
|
if (response.get(1).equals("EXPUNGE") && mMessageCount > 0)
|
||||||
{
|
{
|
||||||
mMessageCount--;
|
mMessageCount--;
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got untagged EXPUNGE with value " + mMessageCount + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got untagged EXPUNGE with value " + mMessageCount + " for " + getLogId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if (response.size() > 1) {
|
// if (response.size() > 1) {
|
||||||
@ -1272,7 +1272,7 @@ public class ImapStore extends Store
|
|||||||
// sb.append(' ');
|
// sb.append(' ');
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// Log.w(Email.LOG_TAG, "ALERT: " + sb.toString() + " for " + getLogId());
|
// Log.w(K9.LOG_TAG, "ALERT: " + sb.toString() + " for " + getLogId());
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
@ -1281,7 +1281,7 @@ public class ImapStore extends Store
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
//Log.i(Email.LOG_TAG, "mMessageCount = " + mMessageCount + " for " + getLogId());
|
//Log.i(K9.LOG_TAG, "mMessageCount = " + mMessageCount + " for " + getLogId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseBodyStructure(ImapList bs, Part part, String id)
|
private void parseBodyStructure(ImapList bs, Part part, String id)
|
||||||
@ -1505,9 +1505,9 @@ public class ImapStore extends Store
|
|||||||
while (response.mTag == null);
|
while (response.mTag == null);
|
||||||
|
|
||||||
String newUid = getUidFromMessageId(message);
|
String newUid = getUidFromMessageId(message);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got UID " + newUid + " for message for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got UID " + newUid + " for message for " + getLogId());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newUid != null)
|
if (newUid != null)
|
||||||
@ -1536,16 +1536,16 @@ public class ImapStore extends Store
|
|||||||
|
|
||||||
if (messageIdHeader == null || messageIdHeader.length == 0)
|
if (messageIdHeader == null || messageIdHeader.length == 0)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Did not get a message-id in order to search for UID for " + getLogId());
|
Log.d(K9.LOG_TAG, "Did not get a message-id in order to search for UID for " + getLogId());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String messageId = messageIdHeader[0];
|
String messageId = messageIdHeader[0];
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Looking for UID for message with message-id " + messageId + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Looking for UID for message with message-id " + messageId + " for " + getLogId());
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ImapResponse> responses =
|
List<ImapResponse> responses =
|
||||||
@ -1648,13 +1648,13 @@ public class ImapStore extends Store
|
|||||||
String messageUidS = message.getUid();
|
String messageUidS = message.getUid();
|
||||||
int messageUid = Integer.parseInt(messageUidS);
|
int messageUid = Integer.parseInt(messageUidS);
|
||||||
ImapPushState oldPushState = ImapPushState.parse(oldPushStateS);
|
ImapPushState oldPushState = ImapPushState.parse(oldPushStateS);
|
||||||
// Log.d(Email.LOG_TAG, "getNewPushState comparing oldUidNext " + oldPushState.uidNext
|
// Log.d(K9.LOG_TAG, "getNewPushState comparing oldUidNext " + oldPushState.uidNext
|
||||||
// + " to message uid " + messageUid + " for " + getLogId());
|
// + " to message uid " + messageUid + " for " + getLogId());
|
||||||
if (messageUid >= oldPushState.uidNext)
|
if (messageUid >= oldPushState.uidNext)
|
||||||
{
|
{
|
||||||
int uidNext = messageUid + 1;
|
int uidNext = messageUid + 1;
|
||||||
ImapPushState newPushState = new ImapPushState(uidNext);
|
ImapPushState newPushState = new ImapPushState(uidNext);
|
||||||
//Log.d(Email.LOG_TAG, "newPushState = " + newPushState + " for " + getLogId());
|
//Log.d(K9.LOG_TAG, "newPushState = " + newPushState + " for " + getLogId());
|
||||||
return newPushState.toString();
|
return newPushState.toString();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1664,7 +1664,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Exception while updated push state for " + getLogId(), e);
|
Log.e(K9.LOG_TAG, "Exception while updated push state for " + getLogId(), e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1724,7 +1724,7 @@ public class ImapStore extends Store
|
|||||||
private MessagingException ioExceptionHandler(ImapConnection connection, IOException ioe)
|
private MessagingException ioExceptionHandler(ImapConnection connection, IOException ioe)
|
||||||
throws MessagingException
|
throws MessagingException
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "IOException for " + getLogId(), ioe);
|
Log.e(K9.LOG_TAG, "IOException for " + getLogId(), ioe);
|
||||||
connection.close();
|
connection.close();
|
||||||
close(false);
|
close(false);
|
||||||
return new MessagingException("IO Error", ioe);
|
return new MessagingException("IO Error", ioe);
|
||||||
@ -1789,7 +1789,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.w(Email.LOG_TAG, "Could not set DNS ttl to 0 for " + getLogId(), e);
|
Log.w(K9.LOG_TAG, "Could not set DNS ttl to 0 for " + getLogId(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -1797,7 +1797,7 @@ public class ImapStore extends Store
|
|||||||
|
|
||||||
SocketAddress socketAddress = new InetSocketAddress(mHost, mPort);
|
SocketAddress socketAddress = new InetSocketAddress(mHost, mPort);
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "Connection " + getLogId() + " connecting to " + mHost + " @ IP addr " + socketAddress);
|
Log.i(K9.LOG_TAG, "Connection " + getLogId() + " connecting to " + mHost + " @ IP addr " + socketAddress);
|
||||||
|
|
||||||
if (mConnectionSecurity == CONNECTION_SECURITY_SSL_REQUIRED ||
|
if (mConnectionSecurity == CONNECTION_SECURITY_SSL_REQUIRED ||
|
||||||
mConnectionSecurity == CONNECTION_SECURITY_SSL_OPTIONAL)
|
mConnectionSecurity == CONNECTION_SECURITY_SSL_OPTIONAL)
|
||||||
@ -1825,9 +1825,9 @@ public class ImapStore extends Store
|
|||||||
mOut = mSocket.getOutputStream();
|
mOut = mSocket.getOutputStream();
|
||||||
|
|
||||||
ImapResponse nullResponse = mParser.readResponse();
|
ImapResponse nullResponse = mParser.readResponse();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, getLogId() + "<<<" + nullResponse);
|
Log.v(K9.LOG_TAG, getLogId() + "<<<" + nullResponse);
|
||||||
}
|
}
|
||||||
List<ImapResponse> responses = executeSimpleCommand("CAPABILITY");
|
List<ImapResponse> responses = executeSimpleCommand("CAPABILITY");
|
||||||
if (responses.size() != 2)
|
if (responses.size() != 2)
|
||||||
@ -1845,9 +1845,9 @@ public class ImapStore extends Store
|
|||||||
{
|
{
|
||||||
if (capability instanceof String)
|
if (capability instanceof String)
|
||||||
{
|
{
|
||||||
// if (Email.DEBUG)
|
// if (K9.DEBUG)
|
||||||
// {
|
// {
|
||||||
// Log.v(Email.LOG_TAG, "Saving capability '" + capability + "' for " + getLogId());
|
// Log.v(K9.LOG_TAG, "Saving capability '" + capability + "' for " + getLogId());
|
||||||
// }
|
// }
|
||||||
capabilities.add((String)capability);
|
capabilities.add((String)capability);
|
||||||
}
|
}
|
||||||
@ -1904,49 +1904,49 @@ public class ImapStore extends Store
|
|||||||
{
|
{
|
||||||
throw new AuthenticationFailedException(null, me);
|
throw new AuthenticationFailedException(null, me);
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "NAMESPACE = " + hasCapability(CAPABILITY_NAMESPACE)
|
Log.d(K9.LOG_TAG, "NAMESPACE = " + hasCapability(CAPABILITY_NAMESPACE)
|
||||||
+ ", mPathPrefix = " + mPathPrefix);
|
+ ", mPathPrefix = " + mPathPrefix);
|
||||||
}
|
}
|
||||||
if (mPathPrefix == null)
|
if (mPathPrefix == null)
|
||||||
{
|
{
|
||||||
if (hasCapability(CAPABILITY_NAMESPACE))
|
if (hasCapability(CAPABILITY_NAMESPACE))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "mPathPrefix is unset and server has NAMESPACE capability");
|
Log.i(K9.LOG_TAG, "mPathPrefix is unset and server has NAMESPACE capability");
|
||||||
List<ImapResponse> namespaceResponses =
|
List<ImapResponse> namespaceResponses =
|
||||||
executeSimpleCommand(COMMAND_NAMESPACE);
|
executeSimpleCommand(COMMAND_NAMESPACE);
|
||||||
for (ImapResponse response : namespaceResponses)
|
for (ImapResponse response : namespaceResponses)
|
||||||
{
|
{
|
||||||
if (response.get(0).equals(COMMAND_NAMESPACE))
|
if (response.get(0).equals(COMMAND_NAMESPACE))
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got NAMESPACE response " + response + " on " + getLogId());
|
Log.d(K9.LOG_TAG, "Got NAMESPACE response " + response + " on " + getLogId());
|
||||||
}
|
}
|
||||||
|
|
||||||
Object personalNamespaces = response.get(1);
|
Object personalNamespaces = response.get(1);
|
||||||
if (personalNamespaces != null && personalNamespaces instanceof ImapList)
|
if (personalNamespaces != null && personalNamespaces instanceof ImapList)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got personal namespaces: " + personalNamespaces);
|
Log.d(K9.LOG_TAG, "Got personal namespaces: " + personalNamespaces);
|
||||||
}
|
}
|
||||||
ImapList bracketed = (ImapList)personalNamespaces;
|
ImapList bracketed = (ImapList)personalNamespaces;
|
||||||
Object firstNamespace = bracketed.get(0);
|
Object firstNamespace = bracketed.get(0);
|
||||||
if (firstNamespace != null && firstNamespace instanceof ImapList)
|
if (firstNamespace != null && firstNamespace instanceof ImapList)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got first personal namespaces: " + firstNamespace);
|
Log.d(K9.LOG_TAG, "Got first personal namespaces: " + firstNamespace);
|
||||||
}
|
}
|
||||||
bracketed = (ImapList)firstNamespace;
|
bracketed = (ImapList)firstNamespace;
|
||||||
mPathPrefix = bracketed.getString(0);
|
mPathPrefix = bracketed.getString(0);
|
||||||
mPathDelimeter = bracketed.getString(1);
|
mPathDelimeter = bracketed.getString(1);
|
||||||
mCombinedPrefix = null;
|
mCombinedPrefix = null;
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got path '" + mPathPrefix + "' and separator '" + mPathDelimeter + "'");
|
Log.d(K9.LOG_TAG, "Got path '" + mPathPrefix + "' and separator '" + mPathDelimeter + "'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1955,7 +1955,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "mPathPrefix is unset but server does not have NAMESPACE capability");
|
Log.i(K9.LOG_TAG, "mPathPrefix is unset but server does not have NAMESPACE capability");
|
||||||
mPathPrefix = "";
|
mPathPrefix = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1975,7 +1975,7 @@ public class ImapStore extends Store
|
|||||||
String[] tokens = ceMess.split("-");
|
String[] tokens = ceMess.split("-");
|
||||||
if (tokens != null && tokens.length > 1 && tokens[1] != null)
|
if (tokens != null && tokens.length > 1 && tokens[1] != null)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Stripping host/port from ConnectionException for " + getLogId(), ce);
|
Log.e(K9.LOG_TAG, "Stripping host/port from ConnectionException for " + getLogId(), ce);
|
||||||
throw new ConnectException(tokens[1].trim());
|
throw new ConnectException(tokens[1].trim());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1987,7 +1987,7 @@ public class ImapStore extends Store
|
|||||||
{
|
{
|
||||||
if (authSuccess == false)
|
if (authSuccess == false)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Failed to login, closing connection for " + getLogId());
|
Log.e(K9.LOG_TAG, "Failed to login, closing connection for " + getLogId());
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2000,12 +2000,12 @@ public class ImapStore extends Store
|
|||||||
|
|
||||||
protected boolean isIdleCapable()
|
protected boolean isIdleCapable()
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Connection " + getLogId() + " has " + capabilities.size() + " capabilities");
|
Log.v(K9.LOG_TAG, "Connection " + getLogId() + " has " + capabilities.size() + " capabilities");
|
||||||
// for (String capability : capabilities)
|
// for (String capability : capabilities)
|
||||||
// {
|
// {
|
||||||
// Log.v(Email.LOG_TAG, "Have capability '" + capability + "' for " + getLogId());
|
// Log.v(K9.LOG_TAG, "Have capability '" + capability + "' for " + getLogId());
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
return capabilities.contains(CAPABILITY_IDLE);
|
return capabilities.contains(CAPABILITY_IDLE);
|
||||||
@ -2064,9 +2064,9 @@ public class ImapStore extends Store
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
ImapResponse response = mParser.readResponse();
|
ImapResponse response = mParser.readResponse();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, getLogId() + "<<<" + response);
|
Log.v(K9.LOG_TAG, getLogId() + "<<<" + response);
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
@ -2095,9 +2095,9 @@ public class ImapStore extends Store
|
|||||||
mOut.write('\n');
|
mOut.write('\n');
|
||||||
mOut.flush();
|
mOut.flush();
|
||||||
|
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, getLogId() + ">>> " + continuation);
|
Log.v(K9.LOG_TAG, getLogId() + ">>> " + continuation);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2115,16 +2115,16 @@ public class ImapStore extends Store
|
|||||||
mOut.write('\n');
|
mOut.write('\n');
|
||||||
mOut.flush();
|
mOut.flush();
|
||||||
|
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
if (sensitive && !Email.DEBUG_SENSITIVE)
|
if (sensitive && !K9.DEBUG_SENSITIVE)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, getLogId() + ">>> "
|
Log.v(K9.LOG_TAG, getLogId() + ">>> "
|
||||||
+ "[Command Hidden, Enable Sensitive Debug Logging To Show]");
|
+ "[Command Hidden, Enable Sensitive Debug Logging To Show]");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, getLogId() + ">>> " + commandToSend);
|
Log.v(K9.LOG_TAG, getLogId() + ">>> " + commandToSend);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2163,33 +2163,33 @@ public class ImapStore extends Store
|
|||||||
throws IOException, ImapException, MessagingException
|
throws IOException, ImapException, MessagingException
|
||||||
{
|
{
|
||||||
String commandToLog = command;
|
String commandToLog = command;
|
||||||
if (sensitive && !Email.DEBUG_SENSITIVE)
|
if (sensitive && !K9.DEBUG_SENSITIVE)
|
||||||
{
|
{
|
||||||
commandToLog = "*sensitive*";
|
commandToLog = "*sensitive*";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Sending IMAP command " + commandToLog + " on connection " + getLogId());
|
Log.v(K9.LOG_TAG, "Sending IMAP command " + commandToLog + " on connection " + getLogId());
|
||||||
}
|
}
|
||||||
String tag = sendCommand(command, sensitive);
|
String tag = sendCommand(command, sensitive);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Sent IMAP command " + commandToLog + " with tag " + tag + " for " + getLogId());
|
Log.v(K9.LOG_TAG, "Sent IMAP command " + commandToLog + " with tag " + tag + " for " + getLogId());
|
||||||
}
|
}
|
||||||
ArrayList<ImapResponse> responses = new ArrayList<ImapResponse>();
|
ArrayList<ImapResponse> responses = new ArrayList<ImapResponse>();
|
||||||
ImapResponse response;
|
ImapResponse response;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
response = mParser.readResponse();
|
response = mParser.readResponse();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, getLogId() + "<<<" + response);
|
Log.v(K9.LOG_TAG, getLogId() + "<<<" + response);
|
||||||
}
|
}
|
||||||
if (response.mTag != null && response.mTag.equals(tag) == false)
|
if (response.mTag != null && response.mTag.equals(tag) == false)
|
||||||
{
|
{
|
||||||
Log.w(Email.LOG_TAG, "After sending tag " + tag + ", got tag response from previous command " + response + " for " + getLogId());
|
Log.w(K9.LOG_TAG, "After sending tag " + tag + ", got tag response from previous command " + response + " for " + getLogId());
|
||||||
Iterator<ImapResponse> iter = responses.iterator();
|
Iterator<ImapResponse> iter = responses.iterator();
|
||||||
while (iter.hasNext())
|
while (iter.hasNext())
|
||||||
{
|
{
|
||||||
@ -2347,7 +2347,7 @@ public class ImapStore extends Store
|
|||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
receiver.acquireWakeLock();
|
receiver.acquireWakeLock();
|
||||||
Log.i(Email.LOG_TAG, "Pusher starting for " + getLogId());
|
Log.i(K9.LOG_TAG, "Pusher starting for " + getLogId());
|
||||||
while (stop.get() != true)
|
while (stop.get() != true)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -2358,11 +2358,11 @@ public class ImapStore extends Store
|
|||||||
String pushStateS = receiver.getPushState(getName());
|
String pushStateS = receiver.getPushState(getName());
|
||||||
ImapPushState pushState = ImapPushState.parse(pushStateS);
|
ImapPushState pushState = ImapPushState.parse(pushStateS);
|
||||||
oldUidNext = pushState.uidNext;
|
oldUidNext = pushState.uidNext;
|
||||||
Log.i(Email.LOG_TAG, "Got oldUidNext " + oldUidNext + " for " + getLogId());
|
Log.i(K9.LOG_TAG, "Got oldUidNext " + oldUidNext + " for " + getLogId());
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to get oldUidNext for " + getLogId(), e);
|
Log.e(K9.LOG_TAG, "Unable to get oldUidNext for " + getLogId(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ImapResponse> responses = internalOpen(OpenMode.READ_WRITE);
|
List<ImapResponse> responses = internalOpen(OpenMode.READ_WRITE);
|
||||||
@ -2396,7 +2396,7 @@ public class ImapStore extends Store
|
|||||||
if (uidNext > startUid)
|
if (uidNext > startUid)
|
||||||
{
|
{
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "Needs sync from uid " + startUid + " to " + uidNext + " for " + getLogId());
|
Log.i(K9.LOG_TAG, "Needs sync from uid " + startUid + " to " + uidNext + " for " + getLogId());
|
||||||
List<Message> messages = new ArrayList<Message>();
|
List<Message> messages = new ArrayList<Message>();
|
||||||
for (int uid = startUid; uid < uidNext; uid++)
|
for (int uid = startUid; uid < uidNext; uid++)
|
||||||
{
|
{
|
||||||
@ -2416,12 +2416,12 @@ public class ImapStore extends Store
|
|||||||
List<ImapResponse> untaggedResponses = null;
|
List<ImapResponse> untaggedResponses = null;
|
||||||
if (storedUntaggedResponses.size() > 0)
|
if (storedUntaggedResponses.size() > 0)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Processing " + storedUntaggedResponses.size() + " from previous commands for " + getLogId());
|
Log.i(K9.LOG_TAG, "Processing " + storedUntaggedResponses.size() + " from previous commands for " + getLogId());
|
||||||
untaggedResponses = new ArrayList<ImapResponse>(storedUntaggedResponses);
|
untaggedResponses = new ArrayList<ImapResponse>(storedUntaggedResponses);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "About to IDLE for " + getLogId());
|
Log.i(K9.LOG_TAG, "About to IDLE for " + getLogId());
|
||||||
|
|
||||||
receiver.setPushActive(getName(), true);
|
receiver.setPushActive(getName(), true);
|
||||||
idling.set(true);
|
idling.set(true);
|
||||||
@ -2451,16 +2451,16 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception me)
|
catch (Exception me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Got exception while closing for exception for " + getLogId(), me);
|
Log.e(K9.LOG_TAG, "Got exception while closing for exception for " + getLogId(), me);
|
||||||
}
|
}
|
||||||
if (stop.get() == true)
|
if (stop.get() == true)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Got exception while idling, but stop is set for " + getLogId());
|
Log.i(K9.LOG_TAG, "Got exception while idling, but stop is set for " + getLogId());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
receiver.pushError("Push error: " + e.getMessage(), null);
|
receiver.pushError("Push error: " + e.getMessage(), null);
|
||||||
Log.e(Email.LOG_TAG, "Got exception while idling for " + getLogId(), e);
|
Log.e(K9.LOG_TAG, "Got exception while idling for " + getLogId(), e);
|
||||||
int delayTimeInt = delayTime.get();
|
int delayTimeInt = delayTime.get();
|
||||||
receiver.sleep(delayTimeInt);
|
receiver.sleep(delayTimeInt);
|
||||||
delayTimeInt *= 2;
|
delayTimeInt *= 2;
|
||||||
@ -2476,12 +2476,12 @@ public class ImapStore extends Store
|
|||||||
receiver.setPushActive(getName(), false);
|
receiver.setPushActive(getName(), false);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Pusher for " + getLogId() + " is exiting");
|
Log.i(K9.LOG_TAG, "Pusher for " + getLogId() + " is exiting");
|
||||||
close(false);
|
close(false);
|
||||||
}
|
}
|
||||||
catch (Exception me)
|
catch (Exception me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Got exception while closing for " + getLogId(), me);
|
Log.e(K9.LOG_TAG, "Got exception while closing for " + getLogId(), me);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
@ -2503,9 +2503,9 @@ public class ImapStore extends Store
|
|||||||
|| "EXPUNGE".equals(responseType)
|
|| "EXPUNGE".equals(responseType)
|
||||||
|| "EXISTS".equals(responseType))
|
|| "EXISTS".equals(responseType))
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Storing response " + response + " for later processing");
|
Log.d(K9.LOG_TAG, "Storing response " + response + " for later processing");
|
||||||
}
|
}
|
||||||
storedUntaggedResponses.add(response);
|
storedUntaggedResponses.add(response);
|
||||||
}
|
}
|
||||||
@ -2538,9 +2538,9 @@ public class ImapStore extends Store
|
|||||||
syncMessages(oldMessageCount + 1, mMessageCount, true);
|
syncMessages(oldMessageCount + 1, mMessageCount, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "There are " + flagSyncMsgSeqs + " messages needing flag sync for " + getLogId());
|
Log.d(K9.LOG_TAG, "There are " + flagSyncMsgSeqs + " messages needing flag sync for " + getLogId());
|
||||||
}
|
}
|
||||||
if (flagSyncMsgSeqs.size() > 0)
|
if (flagSyncMsgSeqs.size() > 0)
|
||||||
{
|
{
|
||||||
@ -2604,9 +2604,9 @@ public class ImapStore extends Store
|
|||||||
if ("FETCH".equals(responseType))
|
if ("FETCH".equals(responseType))
|
||||||
{
|
{
|
||||||
int msgSeq = response.getNumber(0);
|
int msgSeq = response.getNumber(0);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got untagged FETCH for msgseq " + msgSeq + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got untagged FETCH for msgseq " + msgSeq + " for " + getLogId());
|
||||||
}
|
}
|
||||||
if (flagSyncMsgSeqs.contains(msgSeq) == false)
|
if (flagSyncMsgSeqs.contains(msgSeq) == false)
|
||||||
{
|
{
|
||||||
@ -2620,9 +2620,9 @@ public class ImapStore extends Store
|
|||||||
{
|
{
|
||||||
messageCountDelta = -1;
|
messageCountDelta = -1;
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got untagged EXPUNGE for msgseq " + msgSeq + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got untagged EXPUNGE for msgseq " + msgSeq + " for " + getLogId());
|
||||||
}
|
}
|
||||||
List<Integer> newSeqs = new ArrayList<Integer>();
|
List<Integer> newSeqs = new ArrayList<Integer>();
|
||||||
Iterator<Integer> flagIter = flagSyncMsgSeqs.iterator();
|
Iterator<Integer> flagIter = flagSyncMsgSeqs.iterator();
|
||||||
@ -2643,7 +2643,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Could not handle untagged FETCH for " + getLogId(), e);
|
Log.e(K9.LOG_TAG, "Could not handle untagged FETCH for " + getLogId(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return messageCountDelta;
|
return messageCountDelta;
|
||||||
@ -2684,29 +2684,29 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
if (mConnection != null)
|
if (mConnection != null)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Closing mConnection to stop pushing for " + getLogId());
|
Log.v(K9.LOG_TAG, "Closing mConnection to stop pushing for " + getLogId());
|
||||||
}
|
}
|
||||||
mConnection.close();
|
mConnection.close();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.w(Email.LOG_TAG, "Attempt to interrupt null mConnection to stop pushing on folderPusher for " + getLogId());
|
Log.w(K9.LOG_TAG, "Attempt to interrupt null mConnection to stop pushing on folderPusher for " + getLogId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleAsyncUntaggedResponse(ImapResponse response)
|
public void handleAsyncUntaggedResponse(ImapResponse response)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Got async response: " + response);
|
Log.v(K9.LOG_TAG, "Got async response: " + response);
|
||||||
}
|
}
|
||||||
if (stop.get() == true)
|
if (stop.get() == true)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got async untagged response: " + response + ", but stop is set for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got async untagged response: " + response + ", but stop is set for " + getLogId());
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -2714,7 +2714,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Exception while sending DONE for " + getLogId(), e);
|
Log.e(K9.LOG_TAG, "Exception while sending DONE for " + getLogId(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2733,9 +2733,9 @@ public class ImapStore extends Store
|
|||||||
receiver.acquireWakeLock();
|
receiver.acquireWakeLock();
|
||||||
started = true;
|
started = true;
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got useful async untagged response: " + response + " for " + getLogId());
|
Log.d(K9.LOG_TAG, "Got useful async untagged response: " + response + " for " + getLogId());
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -2743,7 +2743,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Exception while sending DONE for " + getLogId(), e);
|
Log.e(K9.LOG_TAG, "Exception while sending DONE for " + getLogId(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2751,9 +2751,9 @@ public class ImapStore extends Store
|
|||||||
{
|
{
|
||||||
if ("idling".equals(response.get(0)))
|
if ("idling".equals(response.get(0)))
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Idling " + getLogId());
|
Log.d(K9.LOG_TAG, "Idling " + getLogId());
|
||||||
}
|
}
|
||||||
receiver.releaseWakeLock();
|
receiver.releaseWakeLock();
|
||||||
}
|
}
|
||||||
@ -2811,7 +2811,7 @@ public class ImapStore extends Store
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Got exception while refreshing for " + folderPusher.getName(), e);
|
Log.e(K9.LOG_TAG, "Got exception while refreshing for " + folderPusher.getName(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2819,19 +2819,19 @@ public class ImapStore extends Store
|
|||||||
|
|
||||||
public void stop()
|
public void stop()
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Requested stop of IMAP pusher");
|
Log.i(K9.LOG_TAG, "Requested stop of IMAP pusher");
|
||||||
synchronized (folderPushers)
|
synchronized (folderPushers)
|
||||||
{
|
{
|
||||||
for (ImapFolderPusher folderPusher : folderPushers.values())
|
for (ImapFolderPusher folderPusher : folderPushers.values())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Requesting stop of IMAP folderPusher " + folderPusher.getName());
|
Log.i(K9.LOG_TAG, "Requesting stop of IMAP folderPusher " + folderPusher.getName());
|
||||||
folderPusher.stop();
|
folderPusher.stop();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Got exception while stopping " + folderPusher.getName(), e);
|
Log.e(K9.LOG_TAG, "Got exception while stopping " + folderPusher.getName(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
folderPushers.clear();
|
folderPushers.clear();
|
||||||
@ -2875,11 +2875,11 @@ public class ImapStore extends Store
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
newUidNext = Integer.parseInt(value);
|
newUidNext = Integer.parseInt(value);
|
||||||
// Log.i(Email.LOG_TAG, "Parsed uidNext " + newUidNext);
|
// Log.i(K9.LOG_TAG, "Parsed uidNext " + newUidNext);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to part uidNext value " + value, e);
|
Log.e(K9.LOG_TAG, "Unable to part uidNext value " + value, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.mail.store;
|
package com.fsck.k9.mail.store;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
@ -9,14 +9,14 @@ import android.database.sqlite.SQLiteDatabase;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.text.util.Regex;
|
import android.text.util.Regex;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.Preferences;
|
import com.fsck.k9.Preferences;
|
||||||
import com.android.email.Utility;
|
import com.fsck.k9.Utility;
|
||||||
import com.android.email.codec.binary.Base64OutputStream;
|
import com.fsck.k9.codec.binary.Base64OutputStream;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Message.RecipientType;
|
import com.fsck.k9.mail.Message.RecipientType;
|
||||||
import com.android.email.mail.internet.*;
|
import com.fsck.k9.mail.internet.*;
|
||||||
import com.android.email.provider.AttachmentProvider;
|
import com.fsck.k9.provider.AttachmentProvider;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -44,7 +44,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
private static Set<String> HEADERS_TO_SAVE = new HashSet<String>();
|
private static Set<String> HEADERS_TO_SAVE = new HashSet<String>();
|
||||||
static
|
static
|
||||||
{
|
{
|
||||||
HEADERS_TO_SAVE.add(Email.K9MAIL_IDENTITY);
|
HEADERS_TO_SAVE.add(K9.K9MAIL_IDENTITY);
|
||||||
HEADERS_TO_SAVE.add("In-Reply-To");
|
HEADERS_TO_SAVE.add("In-Reply-To");
|
||||||
HEADERS_TO_SAVE.add("References");
|
HEADERS_TO_SAVE.add("References");
|
||||||
HEADERS_TO_SAVE.add("X-User-Agent");
|
HEADERS_TO_SAVE.add("X-User-Agent");
|
||||||
@ -102,7 +102,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
|
|
||||||
private void doDbUpgrade(SQLiteDatabase mDb, Application application)
|
private void doDbUpgrade(SQLiteDatabase mDb, Application application)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, String.format("Upgrading database from version %d to version %d",
|
Log.i(K9.LOG_TAG, String.format("Upgrading database from version %d to version %d",
|
||||||
mDb.getVersion(), DB_VERSION));
|
mDb.getVersion(), DB_VERSION));
|
||||||
|
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (Exception me)
|
catch (Exception me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Exception while force pruning attachments during DB update", me);
|
Log.e(K9.LOG_TAG, "Exception while force pruning attachments during DB update", me);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,37 +206,37 @@ public class LocalStore extends Store implements Serializable
|
|||||||
|
|
||||||
public void compact() throws MessagingException
|
public void compact() throws MessagingException
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Before prune size = " + getSize());
|
Log.i(K9.LOG_TAG, "Before prune size = " + getSize());
|
||||||
|
|
||||||
pruneCachedAttachments();
|
pruneCachedAttachments();
|
||||||
Log.i(Email.LOG_TAG, "After prune / before compaction size = " + getSize());
|
Log.i(K9.LOG_TAG, "After prune / before compaction size = " + getSize());
|
||||||
|
|
||||||
mDb.execSQL("VACUUM");
|
mDb.execSQL("VACUUM");
|
||||||
Log.i(Email.LOG_TAG, "After compaction size = " + getSize());
|
Log.i(K9.LOG_TAG, "After compaction size = " + getSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void clear() throws MessagingException
|
public void clear() throws MessagingException
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Before prune size = " + getSize());
|
Log.i(K9.LOG_TAG, "Before prune size = " + getSize());
|
||||||
|
|
||||||
pruneCachedAttachments(true);
|
pruneCachedAttachments(true);
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "After prune / before compaction size = " + getSize());
|
Log.i(K9.LOG_TAG, "After prune / before compaction size = " + getSize());
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "Before clear folder count = " + getFolderCount());
|
Log.i(K9.LOG_TAG, "Before clear folder count = " + getFolderCount());
|
||||||
Log.i(Email.LOG_TAG, "Before clear message count = " + getMessageCount());
|
Log.i(K9.LOG_TAG, "Before clear message count = " + getMessageCount());
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "After prune / before clear size = " + getSize());
|
Log.i(K9.LOG_TAG, "After prune / before clear size = " + getSize());
|
||||||
// don't delete messages that are Local, since there is no copy on the server.
|
// don't delete messages that are Local, since there is no copy on the server.
|
||||||
// Don't delete deleted messages. They are essentially placeholders for UIDs of messages that have
|
// Don't delete deleted messages. They are essentially placeholders for UIDs of messages that have
|
||||||
// been deleted locally. They take up insignificant space
|
// been deleted locally. They take up insignificant space
|
||||||
mDb.execSQL("DELETE FROM messages WHERE deleted = 0 and uid not like 'Local%'");
|
mDb.execSQL("DELETE FROM messages WHERE deleted = 0 and uid not like 'Local%'");
|
||||||
|
|
||||||
compact();
|
compact();
|
||||||
Log.i(Email.LOG_TAG, "After clear message count = " + getMessageCount());
|
Log.i(K9.LOG_TAG, "After clear message count = " + getMessageCount());
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "After clear size = " + getSize());
|
Log.i(K9.LOG_TAG, "After clear size = " + getSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMessageCount() throws MessagingException
|
public int getMessageCount() throws MessagingException
|
||||||
@ -397,7 +397,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
{
|
{
|
||||||
if (cursor.getString(0) == null)
|
if (cursor.getString(0) == null)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Attachment " + file.getAbsolutePath() + " has no store data, not deleting");
|
Log.d(K9.LOG_TAG, "Attachment " + file.getAbsolutePath() + " has no store data, not deleting");
|
||||||
/*
|
/*
|
||||||
* If the attachment has no store data it is not recoverable, so
|
* If the attachment has no store data it is not recoverable, so
|
||||||
* we won't delete it.
|
* we won't delete it.
|
||||||
@ -430,7 +430,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.d(Email.LOG_TAG, "Deleting attachment " + file.getAbsolutePath() + ", which is of size " + file.length());
|
Log.d(K9.LOG_TAG, "Deleting attachment " + file.getAbsolutePath() + ", which is of size " + file.length());
|
||||||
if (!file.delete())
|
if (!file.delete())
|
||||||
{
|
{
|
||||||
file.deleteOnExit();
|
file.deleteOnExit();
|
||||||
@ -441,7 +441,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
|
|
||||||
public void resetVisibleLimits()
|
public void resetVisibleLimits()
|
||||||
{
|
{
|
||||||
resetVisibleLimits(Email.DEFAULT_VISIBLE_LIMIT);
|
resetVisibleLimits(K9.DEFAULT_VISIBLE_LIMIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resetVisibleLimits(int visibleLimit)
|
public void resetVisibleLimits(int visibleLimit)
|
||||||
@ -566,7 +566,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
{
|
{
|
||||||
this.mName = name;
|
this.mName = name;
|
||||||
|
|
||||||
if (Email.INBOX.equals(getName()))
|
if (K9.INBOX.equals(getName()))
|
||||||
{
|
{
|
||||||
syncClass = FolderClass.FIRST_CLASS;
|
syncClass = FolderClass.FIRST_CLASS;
|
||||||
pushClass = FolderClass.FIRST_CLASS;
|
pushClass = FolderClass.FIRST_CLASS;
|
||||||
@ -690,7 +690,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
mDb.execSQL("INSERT INTO folders (name, visible_limit) VALUES (?, ?)", new Object[]
|
mDb.execSQL("INSERT INTO folders (name, visible_limit) VALUES (?, ?)", new Object[]
|
||||||
{
|
{
|
||||||
mName,
|
mName,
|
||||||
Email.DEFAULT_VISIBLE_LIMIT
|
K9.DEFAULT_VISIBLE_LIMIT
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -721,7 +721,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to close LocalFolder " + getName(), me);
|
Log.e(K9.LOG_TAG, "Unable to close LocalFolder " + getName(), me);
|
||||||
}
|
}
|
||||||
mFolderId = -1;
|
mFolderId = -1;
|
||||||
}
|
}
|
||||||
@ -918,7 +918,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
|
|
||||||
SharedPreferences.Editor editor = preferences.getPreferences().edit();
|
SharedPreferences.Editor editor = preferences.getPreferences().edit();
|
||||||
// there can be a lot of folders. For the defaults, let's not save prefs, saving space, except for INBOX
|
// there can be a lot of folders. For the defaults, let's not save prefs, saving space, except for INBOX
|
||||||
if (displayClass == FolderClass.NO_CLASS && !Email.INBOX.equals(getName()))
|
if (displayClass == FolderClass.NO_CLASS && !K9.INBOX.equals(getName()))
|
||||||
{
|
{
|
||||||
editor.remove(id + ".displayMode");
|
editor.remove(id + ".displayMode");
|
||||||
}
|
}
|
||||||
@ -927,7 +927,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
editor.putString(id + ".displayMode", displayClass.name());
|
editor.putString(id + ".displayMode", displayClass.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (syncClass == FolderClass.INHERITED && !Email.INBOX.equals(getName()))
|
if (syncClass == FolderClass.INHERITED && !K9.INBOX.equals(getName()))
|
||||||
{
|
{
|
||||||
editor.remove(id + ".syncMode");
|
editor.remove(id + ".syncMode");
|
||||||
}
|
}
|
||||||
@ -936,7 +936,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
editor.putString(id + ".syncMode", syncClass.name());
|
editor.putString(id + ".syncMode", syncClass.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pushClass == FolderClass.SECOND_CLASS && !Email.INBOX.equals(getName()))
|
if (pushClass == FolderClass.SECOND_CLASS && !K9.INBOX.equals(getName()))
|
||||||
{
|
{
|
||||||
editor.remove(id + ".pushMode");
|
editor.remove(id + ".pushMode");
|
||||||
}
|
}
|
||||||
@ -959,7 +959,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to load displayMode for " + getName(), e);
|
Log.e(K9.LOG_TAG, "Unable to load displayMode for " + getName(), e);
|
||||||
|
|
||||||
displayClass = FolderClass.NO_CLASS;
|
displayClass = FolderClass.NO_CLASS;
|
||||||
}
|
}
|
||||||
@ -970,7 +970,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
|
|
||||||
|
|
||||||
FolderClass defSyncClass = FolderClass.INHERITED;
|
FolderClass defSyncClass = FolderClass.INHERITED;
|
||||||
if (Email.INBOX.equals(getName()))
|
if (K9.INBOX.equals(getName()))
|
||||||
{
|
{
|
||||||
defSyncClass = FolderClass.FIRST_CLASS;
|
defSyncClass = FolderClass.FIRST_CLASS;
|
||||||
}
|
}
|
||||||
@ -982,7 +982,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to load syncMode for " + getName(), e);
|
Log.e(K9.LOG_TAG, "Unable to load syncMode for " + getName(), e);
|
||||||
|
|
||||||
syncClass = defSyncClass;
|
syncClass = defSyncClass;
|
||||||
}
|
}
|
||||||
@ -992,7 +992,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
|
|
||||||
FolderClass defPushClass = FolderClass.SECOND_CLASS;
|
FolderClass defPushClass = FolderClass.SECOND_CLASS;
|
||||||
if (Email.INBOX.equals(getName()))
|
if (K9.INBOX.equals(getName()))
|
||||||
{
|
{
|
||||||
defPushClass = FolderClass.FIRST_CLASS;
|
defPushClass = FolderClass.FIRST_CLASS;
|
||||||
}
|
}
|
||||||
@ -1004,7 +1004,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to load pushMode for " + getName(), e);
|
Log.e(K9.LOG_TAG, "Unable to load pushMode for " + getName(), e);
|
||||||
|
|
||||||
pushClass = defPushClass;
|
pushClass = defPushClass;
|
||||||
}
|
}
|
||||||
@ -1206,7 +1206,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
Long id = cursor.getLong(0);
|
Long id = cursor.getLong(0);
|
||||||
String name = cursor.getString(1);
|
String name = cursor.getString(1);
|
||||||
String value = cursor.getString(2);
|
String value = cursor.getString(2);
|
||||||
//Log.i(Email.LOG_TAG, "Retrieved header name= " + name + ", value = " + value + " for message " + id);
|
//Log.i(K9.LOG_TAG, "Retrieved header name= " + name + ", value = " + value + " for message " + id);
|
||||||
popMessages.get(id).addHeader(name, value);
|
popMessages.get(id).addHeader(name, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1369,10 +1369,10 @@ public class LocalStore extends Store implements Serializable
|
|||||||
|
|
||||||
String oldUID = message.getUid();
|
String oldUID = message.getUid();
|
||||||
|
|
||||||
Log.d(Email.LOG_TAG, "Updating folder_id to " + lDestFolder.getId() + " for message with UID "
|
Log.d(K9.LOG_TAG, "Updating folder_id to " + lDestFolder.getId() + " for message with UID "
|
||||||
+ message.getUid() + ", id " + lMessage.getId() + " currently in folder " + getName());
|
+ message.getUid() + ", id " + lMessage.getId() + " currently in folder " + getName());
|
||||||
|
|
||||||
message.setUid(Email.LOCAL_UID_PREFIX + UUID.randomUUID().toString());
|
message.setUid(K9.LOCAL_UID_PREFIX + UUID.randomUUID().toString());
|
||||||
|
|
||||||
mDb.execSQL("UPDATE messages " + "SET folder_id = ?, uid = ? " + "WHERE id = ?", new Object[]
|
mDb.execSQL("UPDATE messages " + "SET folder_id = ?, uid = ? " + "WHERE id = ?", new Object[]
|
||||||
{
|
{
|
||||||
@ -1420,7 +1420,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
String uid = message.getUid();
|
String uid = message.getUid();
|
||||||
if (uid == null)
|
if (uid == null)
|
||||||
{
|
{
|
||||||
uid = Email.LOCAL_UID_PREFIX + UUID.randomUUID().toString();
|
uid = K9.LOCAL_UID_PREFIX + UUID.randomUUID().toString();
|
||||||
message.setUid(uid);
|
message.setUid(uid);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1492,10 +1492,10 @@ public class LocalStore extends Store implements Serializable
|
|||||||
cv.put("internal_date", message.getInternalDate() == null
|
cv.put("internal_date", message.getInternalDate() == null
|
||||||
? System.currentTimeMillis() : message.getInternalDate().getTime());
|
? System.currentTimeMillis() : message.getInternalDate().getTime());
|
||||||
String messageId = message.getMessageId();
|
String messageId = message.getMessageId();
|
||||||
Log.e(Email.LOG_TAG, "saving a messag");
|
Log.e(K9.LOG_TAG, "saving a messag");
|
||||||
if (messageId != null )
|
if (messageId != null )
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "saving a message messasgeid is "+messageId);
|
Log.e(K9.LOG_TAG, "saving a message messasgeid is "+messageId);
|
||||||
cv.put("message_id", messageId);
|
cv.put("message_id", messageId);
|
||||||
}
|
}
|
||||||
long messageUid = mDb.insert("messages", "uid", cv);
|
long messageUid = mDb.insert("messages", "uid", cv);
|
||||||
@ -1623,7 +1623,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
cv.put("message_id", id);
|
cv.put("message_id", id);
|
||||||
cv.put("name", name);
|
cv.put("name", name);
|
||||||
cv.put("value", value);
|
cv.put("value", value);
|
||||||
//Log.i(Email.LOG_TAG, "Saving header name = " + name + ", value = " + value);
|
//Log.i(K9.LOG_TAG, "Saving header name = " + name + ", value = " + value);
|
||||||
mDb.insert("headers", "name", cv);
|
mDb.insert("headers", "name", cv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1838,7 +1838,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to fetch all messages from LocalStore", e);
|
Log.e(K9.LOG_TAG, "Unable to fetch all messages from LocalStore", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1985,7 +1985,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
//Should never happen
|
//Should never happen
|
||||||
Log.e(Email.LOG_TAG, null, e);
|
Log.e(K9.LOG_TAG, null, e);
|
||||||
}
|
}
|
||||||
text = buff.toString();
|
text = buff.toString();
|
||||||
text = text.replaceAll("\\s*([-=_]{30,}+)\\s*","<hr />");
|
text = text.replaceAll("\\s*([-=_]{30,}+)\\s*","<hr />");
|
||||||
@ -2282,7 +2282,7 @@ public class LocalStore extends Store implements Serializable
|
|||||||
}
|
}
|
||||||
catch (MessagingException me)
|
catch (MessagingException me)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unable to update LocalStore unread message count",
|
Log.e(K9.LOG_TAG, "Unable to update LocalStore unread message count",
|
||||||
me);
|
me);
|
||||||
throw new RuntimeException(me);
|
throw new RuntimeException(me);
|
||||||
}
|
}
|
@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
package com.android.email.mail.store;
|
package com.fsck.k9.mail.store;
|
||||||
|
|
||||||
import android.util.Config;
|
import android.util.Config;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.Utility;
|
import com.fsck.k9.Utility;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Folder.OpenMode;
|
import com.fsck.k9.mail.Folder.OpenMode;
|
||||||
import com.android.email.mail.internet.MimeMessage;
|
import com.fsck.k9.mail.internet.MimeMessage;
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
import javax.net.ssl.SSLException;
|
import javax.net.ssl.SSLException;
|
||||||
@ -527,7 +527,7 @@ public class Pop3Store extends Store
|
|||||||
{
|
{
|
||||||
if (Config.LOGD)
|
if (Config.LOGD)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Need to index UID " + uid);
|
Log.d(K9.LOG_TAG, "Need to index UID " + uid);
|
||||||
}
|
}
|
||||||
unindexedUids.add(uid);
|
unindexedUids.add(uid);
|
||||||
}
|
}
|
||||||
@ -555,7 +555,7 @@ public class Pop3Store extends Store
|
|||||||
{
|
{
|
||||||
if (Config.LOGD)
|
if (Config.LOGD)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Got msgNum " + msgNum + " for UID " + msgUid);
|
Log.d(K9.LOG_TAG, "Got msgNum " + msgNum + " for UID " + msgUid);
|
||||||
}
|
}
|
||||||
|
|
||||||
Pop3Message message = mUidToMsgMap.get(msgUid);
|
Pop3Message message = mUidToMsgMap.get(msgUid);
|
||||||
@ -572,7 +572,7 @@ public class Pop3Store extends Store
|
|||||||
{
|
{
|
||||||
if (Config.LOGD)
|
if (Config.LOGD)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Adding index for UID " + message.getUid() + " to msgNum " + msgNum);
|
Log.d(K9.LOG_TAG, "Adding index for UID " + message.getUid() + " to msgNum " + msgNum);
|
||||||
}
|
}
|
||||||
mMsgNumToMsgMap.put(msgNum, message);
|
mMsgNumToMsgMap.put(msgNum, message);
|
||||||
mUidToMsgMap.put(message.getUid(), message);
|
mUidToMsgMap.put(message.getUid(), message);
|
||||||
@ -925,9 +925,9 @@ public class Pop3Store extends Store
|
|||||||
String ret = sb.toString();
|
String ret = sb.toString();
|
||||||
if (Config.LOGD)
|
if (Config.LOGD)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "<<< " + ret);
|
Log.d(K9.LOG_TAG, "<<< " + ret);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -937,9 +937,9 @@ public class Pop3Store extends Store
|
|||||||
{
|
{
|
||||||
if (Config.LOGD)
|
if (Config.LOGD)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, ">>> " + s);
|
Log.d(K9.LOG_TAG, ">>> " + s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mOut.write(s.getBytes());
|
mOut.write(s.getBytes());
|
||||||
@ -999,7 +999,7 @@ public class Pop3Store extends Store
|
|||||||
open(OpenMode.READ_WRITE);
|
open(OpenMode.READ_WRITE);
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "POP3: command '" + command + "'");
|
Log.v(K9.LOG_TAG, "POP3: command '" + command + "'");
|
||||||
}
|
}
|
||||||
if (command != null)
|
if (command != null)
|
||||||
{
|
{
|
||||||
@ -1009,7 +1009,7 @@ public class Pop3Store extends Store
|
|||||||
String response = readLine();
|
String response = readLine();
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "POP3: response '" + command + "'");
|
Log.v(K9.LOG_TAG, "POP3: response '" + command + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.length() > 1 && response.charAt(0) == '-')
|
if (response.length() > 1 && response.charAt(0) == '-')
|
||||||
@ -1085,7 +1085,7 @@ public class Pop3Store extends Store
|
|||||||
// }
|
// }
|
||||||
// catch (MessagingException me)
|
// catch (MessagingException me)
|
||||||
// {
|
// {
|
||||||
// Log.w(Email.LOG_TAG, "Could not delete non-existant message", me);
|
// Log.w(K9.LOG_TAG, "Could not delete non-existant message", me);
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,11 +1,11 @@
|
|||||||
|
|
||||||
package com.android.email.mail.store;
|
package com.fsck.k9.mail.store;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.http.DomainNameChecker;
|
import android.net.http.DomainNameChecker;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.TrustManager;
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
@ -123,7 +123,7 @@ public final class TrustManagerFactory
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
javax.net.ssl.TrustManagerFactory tmf = javax.net.ssl.TrustManagerFactory.getInstance("X509");
|
javax.net.ssl.TrustManagerFactory tmf = javax.net.ssl.TrustManagerFactory.getInstance("X509");
|
||||||
Application app = Email.app;
|
Application app = K9.app;
|
||||||
keyStoreFile = new File(app.getDir("KeyStore", Context.MODE_PRIVATE) + File.separator + "KeyStore.bks");
|
keyStoreFile = new File(app.getDir("KeyStore", Context.MODE_PRIVATE) + File.separator + "KeyStore.bks");
|
||||||
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
|
keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
|
||||||
java.io.FileInputStream fis;
|
java.io.FileInputStream fis;
|
@ -1,13 +1,13 @@
|
|||||||
package com.android.email.mail.store;
|
package com.fsck.k9.mail.store;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.Utility;
|
import com.fsck.k9.Utility;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Folder.OpenMode;
|
import com.fsck.k9.mail.Folder.OpenMode;
|
||||||
import com.android.email.mail.internet.MimeMessage;
|
import com.fsck.k9.mail.internet.MimeMessage;
|
||||||
import com.android.email.mail.transport.EOLConvertingOutputStream;
|
import com.fsck.k9.mail.transport.EOLConvertingOutputStream;
|
||||||
import com.android.email.mail.transport.TrustedSocketFactory;
|
import com.fsck.k9.mail.transport.TrustedSocketFactory;
|
||||||
import org.apache.http.*;
|
import org.apache.http.*;
|
||||||
import org.apache.http.auth.AuthScope;
|
import org.apache.http.auth.AuthScope;
|
||||||
import org.apache.http.auth.Credentials;
|
import org.apache.http.auth.Credentials;
|
||||||
@ -245,7 +245,7 @@ public class WebDavStore extends Store
|
|||||||
@Override
|
@Override
|
||||||
public void checkSettings() throws MessagingException
|
public void checkSettings() throws MessagingException
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "WebDavStore.checkSettings() not implemented");
|
Log.e(K9.LOG_TAG, "WebDavStore.checkSettings() not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -271,14 +271,14 @@ public class WebDavStore extends Store
|
|||||||
|
|
||||||
for (int i = 0; i < urlLength; i++)
|
for (int i = 0; i < urlLength; i++)
|
||||||
{
|
{
|
||||||
// Log.i(Email.LOG_TAG, "folderUrls[" + i + "] = '" + folderUrls[i]);
|
// Log.i(K9.LOG_TAG, "folderUrls[" + i + "] = '" + folderUrls[i]);
|
||||||
String[] urlParts = folderUrls[i].split("/");
|
String[] urlParts = folderUrls[i].split("/");
|
||||||
// Log.i(Email.LOG_TAG, "urlParts = " + urlParts);
|
// Log.i(K9.LOG_TAG, "urlParts = " + urlParts);
|
||||||
String folderName = urlParts[urlParts.length - 1];
|
String folderName = urlParts[urlParts.length - 1];
|
||||||
String fullPathName = "";
|
String fullPathName = "";
|
||||||
WebDavFolder wdFolder;
|
WebDavFolder wdFolder;
|
||||||
|
|
||||||
if (folderName.equalsIgnoreCase(Email.INBOX))
|
if (folderName.equalsIgnoreCase(K9.INBOX))
|
||||||
{
|
{
|
||||||
folderName = "INBOX";
|
folderName = "INBOX";
|
||||||
}
|
}
|
||||||
@ -529,7 +529,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error during authentication: " + ioe + "\nStack: " + processException(ioe));
|
Log.e(K9.LOG_TAG, "Error during authentication: " + ioe + "\nStack: " + processException(ioe));
|
||||||
throw new MessagingException("Error during authentication", ioe);
|
throw new MessagingException("Error during authentication", ioe);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -778,7 +778,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (UnsupportedEncodingException uee)
|
catch (UnsupportedEncodingException uee)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error encoding POST data for authentication: " + uee + "\nTrace: " + processException(uee));
|
Log.e(K9.LOG_TAG, "Error encoding POST data for authentication: " + uee + "\nTrace: " + processException(uee));
|
||||||
throw new MessagingException("Error encoding POST data for authentication", uee);
|
throw new MessagingException("Error encoding POST data for authentication", uee);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -820,17 +820,17 @@ public class WebDavStore extends Store
|
|||||||
reg = mHttpClient.getConnectionManager().getSchemeRegistry();
|
reg = mHttpClient.getConnectionManager().getSchemeRegistry();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Log.i(Email.LOG_TAG, "getHttpClient mHost = " + mHost);
|
// Log.i(K9.LOG_TAG, "getHttpClient mHost = " + mHost);
|
||||||
s = new Scheme("https", new TrustedSocketFactory(mHost, mSecure), 443);
|
s = new Scheme("https", new TrustedSocketFactory(mHost, mSecure), 443);
|
||||||
}
|
}
|
||||||
catch (NoSuchAlgorithmException nsa)
|
catch (NoSuchAlgorithmException nsa)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "NoSuchAlgorithmException in getHttpClient: " + nsa);
|
Log.e(K9.LOG_TAG, "NoSuchAlgorithmException in getHttpClient: " + nsa);
|
||||||
throw new MessagingException("NoSuchAlgorithmException in getHttpClient: " + nsa);
|
throw new MessagingException("NoSuchAlgorithmException in getHttpClient: " + nsa);
|
||||||
}
|
}
|
||||||
catch (KeyManagementException kme)
|
catch (KeyManagementException kme)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "KeyManagementException in getHttpClient: " + kme);
|
Log.e(K9.LOG_TAG, "KeyManagementException in getHttpClient: " + kme);
|
||||||
throw new MessagingException("KeyManagementException in getHttpClient: " + kme);
|
throw new MessagingException("KeyManagementException in getHttpClient: " + kme);
|
||||||
}
|
}
|
||||||
reg.register(s);
|
reg.register(s);
|
||||||
@ -855,7 +855,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
mHttpClient.setCookieStore(cookies);
|
mHttpClient.setCookieStore(cookies);
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
Log.e(Email.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe));
|
Log.e(K9.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Credentials creds = new UsernamePasswordCredentials(mUsername, mPassword);
|
Credentials creds = new UsernamePasswordCredentials(mUsername, mPassword);
|
||||||
@ -988,12 +988,12 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (UnsupportedEncodingException uee)
|
catch (UnsupportedEncodingException uee)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee));
|
Log.e(K9.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee));
|
||||||
throw new MessagingException("UnsupportedEncodingException", uee);
|
throw new MessagingException("UnsupportedEncodingException", uee);
|
||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe));
|
Log.e(K9.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe));
|
||||||
throw new MessagingException("IOException", ioe);
|
throw new MessagingException("IOException", ioe);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1020,9 +1020,9 @@ public class WebDavStore extends Store
|
|||||||
throws MessagingException
|
throws MessagingException
|
||||||
{
|
{
|
||||||
DataSet dataset = new DataSet();
|
DataSet dataset = new DataSet();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'");
|
Log.v(K9.LOG_TAG, "processRequest url = '" + url + "', method = '" + method + "', messageBody = '" + messageBody + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (url == null ||
|
if (url == null ||
|
||||||
@ -1061,12 +1061,12 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (SAXException se)
|
catch (SAXException se)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se));
|
Log.e(K9.LOG_TAG, "SAXException in processRequest() " + se + "\nTrace: " + processException(se));
|
||||||
throw new MessagingException("SAXException in processRequest() ", se);
|
throw new MessagingException("SAXException in processRequest() ", se);
|
||||||
}
|
}
|
||||||
catch (ParserConfigurationException pce)
|
catch (ParserConfigurationException pce)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce));
|
Log.e(K9.LOG_TAG, "ParserConfigurationException in processRequest() " + pce + "\nTrace: " + processException(pce));
|
||||||
throw new MessagingException("ParserConfigurationException in processRequest() ", pce);
|
throw new MessagingException("ParserConfigurationException in processRequest() ", pce);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1075,12 +1075,12 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (UnsupportedEncodingException uee)
|
catch (UnsupportedEncodingException uee)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee));
|
Log.e(K9.LOG_TAG, "UnsupportedEncodingException: " + uee + "\nTrace: " + processException(uee));
|
||||||
throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee);
|
throw new MessagingException("UnsupportedEncodingException in processRequest() ", uee);
|
||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe));
|
Log.e(K9.LOG_TAG, "IOException: " + ioe + "\nTrace: " + processException(ioe));
|
||||||
throw new MessagingException("IOException in processRequest() ", ioe);
|
throw new MessagingException("IOException in processRequest() ", ioe);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1181,7 +1181,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (UnsupportedEncodingException uee)
|
catch (UnsupportedEncodingException uee)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "UnsupportedEncodingException URLEncoding folder name, skipping encoded");
|
Log.e(K9.LOG_TAG, "UnsupportedEncodingException URLEncoding folder name, skipping encoded");
|
||||||
encodedName = name;
|
encodedName = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1270,7 +1270,7 @@ public class WebDavStore extends Store
|
|||||||
headers.put("Brief", "t");
|
headers.put("Brief", "t");
|
||||||
headers.put("If-Match", "*");
|
headers.put("If-Match", "*");
|
||||||
String action = (isMove ? "BMOVE" : "BCOPY");
|
String action = (isMove ? "BMOVE" : "BCOPY");
|
||||||
Log.i(Email.LOG_TAG, "Moving " + messages.length + " messages to " + destFolder.mFolderUrl);
|
Log.i(K9.LOG_TAG, "Moving " + messages.length + " messages to " + destFolder.mFolderUrl);
|
||||||
|
|
||||||
processRequest(mFolderUrl, action, messageBody, headers, false);
|
processRequest(mFolderUrl, action, messageBody, headers, false);
|
||||||
|
|
||||||
@ -1582,7 +1582,7 @@ public class WebDavStore extends Store
|
|||||||
if (wdMessage.getUrl().equals(""))
|
if (wdMessage.getUrl().equals(""))
|
||||||
{
|
{
|
||||||
wdMessage.setUrl(getMessageUrls(new String[] {wdMessage.getUid()}).get(wdMessage.getUid()));
|
wdMessage.setUrl(getMessageUrls(new String[] {wdMessage.getUid()}).get(wdMessage.getUid()));
|
||||||
Log.i(Email.LOG_TAG, "Fetching messages with UID = '" + wdMessage.getUid() + "', URL = '" + wdMessage.getUrl() + "'");
|
Log.i(K9.LOG_TAG, "Fetching messages with UID = '" + wdMessage.getUid() + "', URL = '" + wdMessage.getUrl() + "'");
|
||||||
if (wdMessage.getUrl().equals(""))
|
if (wdMessage.getUrl().equals(""))
|
||||||
{
|
{
|
||||||
throw new MessagingException("Unable to get URL for message");
|
throw new MessagingException("Unable to get URL for message");
|
||||||
@ -1591,7 +1591,7 @@ public class WebDavStore extends Store
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Fetching message with UID = '" + wdMessage.getUid() + "', URL = '" + wdMessage.getUrl() + "'");
|
Log.i(K9.LOG_TAG, "Fetching message with UID = '" + wdMessage.getUid() + "', URL = '" + wdMessage.getUrl() + "'");
|
||||||
HttpGet httpget = new HttpGet(new URI(wdMessage.getUrl()));
|
HttpGet httpget = new HttpGet(new URI(wdMessage.getUrl()));
|
||||||
HttpResponse response;
|
HttpResponse response;
|
||||||
HttpEntity entity;
|
HttpEntity entity;
|
||||||
@ -1648,17 +1648,17 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (IllegalArgumentException iae)
|
catch (IllegalArgumentException iae)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "IllegalArgumentException caught " + iae + "\nTrace: " + processException(iae));
|
Log.e(K9.LOG_TAG, "IllegalArgumentException caught " + iae + "\nTrace: " + processException(iae));
|
||||||
throw new MessagingException("IllegalArgumentException caught", iae);
|
throw new MessagingException("IllegalArgumentException caught", iae);
|
||||||
}
|
}
|
||||||
catch (URISyntaxException use)
|
catch (URISyntaxException use)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "URISyntaxException caught " + use + "\nTrace: " + processException(use));
|
Log.e(K9.LOG_TAG, "URISyntaxException caught " + use + "\nTrace: " + processException(use));
|
||||||
throw new MessagingException("URISyntaxException caught", use);
|
throw new MessagingException("URISyntaxException caught", use);
|
||||||
}
|
}
|
||||||
catch (IOException ioe)
|
catch (IOException ioe)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Non-success response code loading message, response code was " + statusCode + "\nURL: " + wdMessage.getUrl() + "\nError: " + ioe.getMessage() + "\nTrace: " + processException(ioe));
|
Log.e(K9.LOG_TAG, "Non-success response code loading message, response code was " + statusCode + "\nURL: " + wdMessage.getUrl() + "\nError: " + ioe.getMessage() + "\nTrace: " + processException(ioe));
|
||||||
throw new MessagingException("Failure code " + statusCode, ioe);
|
throw new MessagingException("Failure code " + statusCode, ioe);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1953,7 +1953,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (MessagingException e)
|
catch (MessagingException e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "MessagingException while retrieving Subject: " + e);
|
Log.e(K9.LOG_TAG, "MessagingException while retrieving Subject: " + e);
|
||||||
subject = "";
|
subject = "";
|
||||||
}
|
}
|
||||||
ByteArrayOutputStream out;
|
ByteArrayOutputStream out;
|
||||||
@ -1963,7 +1963,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (MessagingException e)
|
catch (MessagingException e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "MessagingException while getting size of message: " + e);
|
Log.e(K9.LOG_TAG, "MessagingException while getting size of message: " + e);
|
||||||
out = new ByteArrayOutputStream();
|
out = new ByteArrayOutputStream();
|
||||||
}
|
}
|
||||||
open(OpenMode.READ_WRITE);
|
open(OpenMode.READ_WRITE);
|
||||||
@ -1981,7 +1981,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
messageURL += URLEncoder.encode(subject + ".eml");
|
messageURL += URLEncoder.encode(subject + ".eml");
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "Uploading message to " + mFolderUrl);
|
Log.i(K9.LOG_TAG, "Uploading message to " + mFolderUrl);
|
||||||
|
|
||||||
httpmethod = new HttpGeneric(messageURL);
|
httpmethod = new HttpGeneric(messageURL);
|
||||||
httpmethod.setMethod("PUT");
|
httpmethod.setMethod("PUT");
|
||||||
@ -2033,14 +2033,14 @@ public class WebDavStore extends Store
|
|||||||
|
|
||||||
public String getUidFromMessageId(Message message) throws MessagingException
|
public String getUidFromMessageId(Message message) throws MessagingException
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unimplemented method getUidFromMessageId in WebDavStore.WebDavFolder could lead to duplicate messages "
|
Log.e(K9.LOG_TAG, "Unimplemented method getUidFromMessageId in WebDavStore.WebDavFolder could lead to duplicate messages "
|
||||||
+ " being uploaded to the Sent folder");
|
+ " being uploaded to the Sent folder");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFlags(Flag[] flags, boolean value) throws MessagingException
|
public void setFlags(Flag[] flags, boolean value) throws MessagingException
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Unimplemented method setFlags(Flag[], boolean) breaks markAllMessagesAsRead and EmptyTrash");
|
Log.e(K9.LOG_TAG, "Unimplemented method setFlags(Flag[], boolean) breaks markAllMessagesAsRead and EmptyTrash");
|
||||||
// Try to make this efficient by not retrieving all of the messages
|
// Try to make this efficient by not retrieving all of the messages
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2092,11 +2092,11 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (UnsupportedEncodingException uee)
|
catch (UnsupportedEncodingException uee)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "UnsupportedEncodingException caught in setUrl: " + uee + "\nTrace: " + processException(uee));
|
Log.e(K9.LOG_TAG, "UnsupportedEncodingException caught in setUrl: " + uee + "\nTrace: " + processException(uee));
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException iae)
|
catch (IllegalArgumentException iae)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "IllegalArgumentException caught in setUrl: " + iae + "\nTrace: " + processException(iae));
|
Log.e(K9.LOG_TAG, "IllegalArgumentException caught in setUrl: " + iae + "\nTrace: " + processException(iae));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < length - 1; i++)
|
for (int i = 0; i < length - 1; i++)
|
||||||
@ -2163,7 +2163,7 @@ public class WebDavStore extends Store
|
|||||||
public void delete(String trashFolderName) throws MessagingException
|
public void delete(String trashFolderName) throws MessagingException
|
||||||
{
|
{
|
||||||
WebDavFolder wdFolder = (WebDavFolder)getFolder();
|
WebDavFolder wdFolder = (WebDavFolder)getFolder();
|
||||||
Log.i(Email.LOG_TAG, "Deleting message by moving to " + trashFolderName);
|
Log.i(K9.LOG_TAG, "Deleting message by moving to " + trashFolderName);
|
||||||
wdFolder.moveMessages(new Message[] { this }, wdFolder.getStore().getFolder(trashFolderName));
|
wdFolder.moveMessages(new Message[] { this }, wdFolder.getStore().getFolder(trashFolderName));
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2265,7 +2265,7 @@ public class WebDavStore extends Store
|
|||||||
public void addHeader(String field, String value)
|
public void addHeader(String field, String value)
|
||||||
{
|
{
|
||||||
String headerName = mHeaderMappings.get(field);
|
String headerName = mHeaderMappings.get(field);
|
||||||
//Log.i(Email.LOG_TAG, "header " + headerName + " = '" + value + "'");
|
//Log.i(K9.LOG_TAG, "header " + headerName + " = '" + value + "'");
|
||||||
|
|
||||||
if (headerName != null)
|
if (headerName != null)
|
||||||
{
|
{
|
||||||
@ -2497,7 +2497,7 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (java.text.ParseException pe)
|
catch (java.text.ParseException pe)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Error parsing date: "+ pe + "\nTrace: " + processException(pe));
|
Log.e(K9.LOG_TAG, "Error parsing date: "+ pe + "\nTrace: " + processException(pe));
|
||||||
}
|
}
|
||||||
envelope.addHeader(header, tempDate);
|
envelope.addHeader(header, tempDate);
|
||||||
}
|
}
|
||||||
@ -2544,9 +2544,9 @@ public class WebDavStore extends Store
|
|||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Starting uri = '" + uri + "'");
|
Log.v(K9.LOG_TAG, "Starting uri = '" + uri + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
String[] urlParts = uri.split("/");
|
String[] urlParts = uri.split("/");
|
||||||
@ -2569,11 +2569,11 @@ public class WebDavStore extends Store
|
|||||||
}
|
}
|
||||||
catch (UnsupportedEncodingException uee)
|
catch (UnsupportedEncodingException uee)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "UnsupportedEncodingException caught in HttpGeneric(String uri): " + uee + "\nTrace: " + processException(uee));
|
Log.e(K9.LOG_TAG, "UnsupportedEncodingException caught in HttpGeneric(String uri): " + uee + "\nTrace: " + processException(uee));
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException iae)
|
catch (IllegalArgumentException iae)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "IllegalArgumentException caught in HttpGeneric(String uri): " + iae + "\nTrace: " + processException(iae));
|
Log.e(K9.LOG_TAG, "IllegalArgumentException caught in HttpGeneric(String uri): " + iae + "\nTrace: " + processException(iae));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < length - 1; i++)
|
for (int i = 0; i < length - 1; i++)
|
||||||
@ -2587,14 +2587,14 @@ public class WebDavStore extends Store
|
|||||||
url = urlParts[i];
|
url = urlParts[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "url = '" + url + "' length = " + url.length()
|
Log.v(K9.LOG_TAG, "url = '" + url + "' length = " + url.length()
|
||||||
+ ", end = '" + end + "' length = " + end.length());
|
+ ", end = '" + end + "' length = " + end.length());
|
||||||
}
|
}
|
||||||
url = url + "/" + end;
|
url = url + "/" + end;
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "url = " + url);
|
Log.i(K9.LOG_TAG, "url = " + url);
|
||||||
setURI(URI.create(url));
|
setURI(URI.create(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2631,7 +2631,7 @@ public class WebDavStore extends Store
|
|||||||
*/
|
*/
|
||||||
public static void modifyRequestToAcceptGzipResponse(HttpRequest request)
|
public static void modifyRequestToAcceptGzipResponse(HttpRequest request)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Requesting gzipped data");
|
Log.i(K9.LOG_TAG, "Requesting gzipped data");
|
||||||
request.addHeader("Accept-Encoding", "gzip");
|
request.addHeader("Accept-Encoding", "gzip");
|
||||||
}
|
}
|
||||||
public static InputStream getUngzippedContent(HttpEntity entity)
|
public static InputStream getUngzippedContent(HttpEntity entity)
|
||||||
@ -2645,7 +2645,7 @@ public class WebDavStore extends Store
|
|||||||
if (contentEncoding == null) return responseStream;
|
if (contentEncoding == null) return responseStream;
|
||||||
if (contentEncoding.contains("gzip"))
|
if (contentEncoding.contains("gzip"))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Response is gzipped");
|
Log.i(K9.LOG_TAG, "Response is gzipped");
|
||||||
responseStream = new GZIPInputStream(responseStream);
|
responseStream = new GZIPInputStream(responseStream);
|
||||||
}
|
}
|
||||||
return responseStream;
|
return responseStream;
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.mail.transport;
|
package com.fsck.k9.mail.transport;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.mail.transport;
|
package com.fsck.k9.mail.transport;
|
||||||
|
|
||||||
import java.io.FilterOutputStream;
|
import java.io.FilterOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
package com.android.email.mail.transport;
|
package com.fsck.k9.mail.transport;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.PeekableInputStream;
|
import com.fsck.k9.PeekableInputStream;
|
||||||
import com.android.email.codec.binary.Base64;
|
import com.fsck.k9.codec.binary.Base64;
|
||||||
import com.android.email.mail.*;
|
import com.fsck.k9.mail.*;
|
||||||
import com.android.email.mail.Message.RecipientType;
|
import com.fsck.k9.mail.Message.RecipientType;
|
||||||
import com.android.email.mail.store.TrustManagerFactory;
|
import com.fsck.k9.mail.store.TrustManagerFactory;
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
import javax.net.ssl.SSLException;
|
import javax.net.ssl.SSLException;
|
||||||
@ -170,9 +170,9 @@ public class SmtpTransport extends Transport
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Unable to look up localhost");
|
Log.d(K9.LOG_TAG, "Unable to look up localhost");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,9 +363,9 @@ public class SmtpTransport extends Transport
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
String ret = sb.toString();
|
String ret = sb.toString();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SMTP <<< " + ret);
|
Log.d(K9.LOG_TAG, "SMTP <<< " + ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -373,9 +373,9 @@ public class SmtpTransport extends Transport
|
|||||||
|
|
||||||
private void writeLine(String s) throws IOException
|
private void writeLine(String s) throws IOException
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SMTP >>> " + s);
|
Log.d(K9.LOG_TAG, "SMTP >>> " + s);
|
||||||
}
|
}
|
||||||
mOut.write(s.getBytes());
|
mOut.write(s.getBytes());
|
||||||
mOut.write('\r');
|
mOut.write('\r');
|
@ -1,8 +1,8 @@
|
|||||||
package com.android.email.mail.transport;
|
package com.fsck.k9.mail.transport;
|
||||||
|
|
||||||
import android.util.Config;
|
import android.util.Config;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
import java.io.FilterOutputStream;
|
import java.io.FilterOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -26,7 +26,7 @@ public class StatusOutputStream extends FilterOutputStream
|
|||||||
{
|
{
|
||||||
if (mCount % 1024 == 0)
|
if (mCount % 1024 == 0)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "# " + mCount);
|
Log.v(K9.LOG_TAG, "# " + mCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package com.android.email.mail.transport;
|
package com.fsck.k9.mail.transport;
|
||||||
|
|
||||||
import com.android.email.mail.store.TrustManagerFactory;
|
import com.fsck.k9.mail.store.TrustManagerFactory;
|
||||||
import org.apache.http.conn.ConnectTimeoutException;
|
import org.apache.http.conn.ConnectTimeoutException;
|
||||||
import org.apache.http.conn.scheme.LayeredSocketFactory;
|
import org.apache.http.conn.scheme.LayeredSocketFactory;
|
||||||
import org.apache.http.params.HttpParams;
|
import org.apache.http.params.HttpParams;
|
@ -1,13 +1,13 @@
|
|||||||
|
|
||||||
package com.android.email.mail.transport;
|
package com.fsck.k9.mail.transport;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.PeekableInputStream;
|
import com.fsck.k9.PeekableInputStream;
|
||||||
import com.android.email.mail.Message;
|
import com.fsck.k9.mail.Message;
|
||||||
import com.android.email.mail.MessagingException;
|
import com.fsck.k9.mail.MessagingException;
|
||||||
import com.android.email.mail.Transport;
|
import com.fsck.k9.mail.Transport;
|
||||||
import com.android.email.mail.store.WebDavStore;
|
import com.fsck.k9.mail.store.WebDavStore;
|
||||||
|
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
@ -45,12 +45,12 @@ public class WebDavTransport extends Transport
|
|||||||
public WebDavTransport(String _uri) throws MessagingException
|
public WebDavTransport(String _uri) throws MessagingException
|
||||||
{
|
{
|
||||||
store = new WebDavStore(_uri);
|
store = new WebDavStore(_uri);
|
||||||
Log.d(Email.LOG_TAG, ">>> New WebDavTransport creation complete");
|
Log.d(K9.LOG_TAG, ">>> New WebDavTransport creation complete");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void open() throws MessagingException
|
public void open() throws MessagingException
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, ">>> open called on WebDavTransport ");
|
Log.d(K9.LOG_TAG, ">>> open called on WebDavTransport ");
|
||||||
store.getHttpClient();
|
store.getHttpClient();
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
package com.android.email.preferences;
|
package com.fsck.k9.preferences;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -33,17 +33,17 @@ public class Editor implements android.content.SharedPreferences.Editor
|
|||||||
Object value = entry.getValue();
|
Object value = entry.getValue();
|
||||||
if (key != null && value != null)
|
if (key != null && value != null)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Copying key '" + key + "', value '" + value + "'");
|
Log.d(K9.LOG_TAG, "Copying key '" + key + "', value '" + value + "'");
|
||||||
}
|
}
|
||||||
changes.put(key, "" + value);
|
changes.put(key, "" + value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Skipping copying key '" + key + "', value '" + value + "'");
|
Log.d(K9.LOG_TAG, "Skipping copying key '" + key + "', value '" + value + "'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -67,7 +67,7 @@ public class Editor implements android.content.SharedPreferences.Editor
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Failed to save preferences", e);
|
Log.e(K9.LOG_TAG, "Failed to save preferences", e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ public class Editor implements android.content.SharedPreferences.Editor
|
|||||||
public void commitChanges() throws Exception
|
public void commitChanges() throws Exception
|
||||||
{
|
{
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
Log.i(Email.LOG_TAG, "Committing preference changes");
|
Log.i(K9.LOG_TAG, "Committing preference changes");
|
||||||
Runnable committer = new Runnable()
|
Runnable committer = new Runnable()
|
||||||
{
|
{
|
||||||
public void run()
|
public void run()
|
||||||
@ -102,7 +102,7 @@ public class Editor implements android.content.SharedPreferences.Editor
|
|||||||
};
|
};
|
||||||
storage.doInTransaction(committer);
|
storage.doInTransaction(committer);
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
Log.i(Email.LOG_TAG, "Preferences commit took " + (endTime - startTime) + "ms");
|
Log.i(K9.LOG_TAG, "Preferences commit took " + (endTime - startTime) + "ms");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.preferences;
|
package com.fsck.k9.preferences;
|
||||||
|
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -6,7 +6,7 @@ import android.content.SharedPreferences;
|
|||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -40,7 +40,7 @@ public class Storage implements SharedPreferences
|
|||||||
SQLiteDatabase mDb = context.openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null);
|
SQLiteDatabase mDb = context.openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null);
|
||||||
if (mDb.getVersion() != DB_VERSION)
|
if (mDb.getVersion() != DB_VERSION)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Creating Storage database");
|
Log.i(K9.LOG_TAG, "Creating Storage database");
|
||||||
mDb.execSQL("DROP TABLE IF EXISTS preferences_storage");
|
mDb.execSQL("DROP TABLE IF EXISTS preferences_storage");
|
||||||
mDb.execSQL("CREATE TABLE preferences_storage " +
|
mDb.execSQL("CREATE TABLE preferences_storage " +
|
||||||
"(primkey TEXT PRIMARY KEY ON CONFLICT REPLACE, value TEXT)");
|
"(primkey TEXT PRIMARY KEY ON CONFLICT REPLACE, value TEXT)");
|
||||||
@ -55,33 +55,33 @@ public class Storage implements SharedPreferences
|
|||||||
Storage tmpStorage = storages.get(context);
|
Storage tmpStorage = storages.get(context);
|
||||||
if (tmpStorage != null)
|
if (tmpStorage != null)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Returning already existing Storage");
|
Log.d(K9.LOG_TAG, "Returning already existing Storage");
|
||||||
}
|
}
|
||||||
return tmpStorage;
|
return tmpStorage;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Creating provisional storage");
|
Log.d(K9.LOG_TAG, "Creating provisional storage");
|
||||||
}
|
}
|
||||||
tmpStorage = new Storage(context);
|
tmpStorage = new Storage(context);
|
||||||
Storage oldStorage = storages.putIfAbsent(context, tmpStorage);
|
Storage oldStorage = storages.putIfAbsent(context, tmpStorage);
|
||||||
if (oldStorage != null)
|
if (oldStorage != null)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Another thread beat us to creating the Storage, returning that one");
|
Log.d(K9.LOG_TAG, "Another thread beat us to creating the Storage, returning that one");
|
||||||
}
|
}
|
||||||
return oldStorage;
|
return oldStorage;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Returning the Storage we created");
|
Log.d(K9.LOG_TAG, "Returning the Storage we created");
|
||||||
}
|
}
|
||||||
return tmpStorage;
|
return tmpStorage;
|
||||||
}
|
}
|
||||||
@ -91,7 +91,7 @@ public class Storage implements SharedPreferences
|
|||||||
private void loadValues()
|
private void loadValues()
|
||||||
{
|
{
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
Log.i(Email.LOG_TAG, "Loading preferences from DB into Storage");
|
Log.i(K9.LOG_TAG, "Loading preferences from DB into Storage");
|
||||||
Cursor cursor = null;
|
Cursor cursor = null;
|
||||||
SQLiteDatabase mDb = null;
|
SQLiteDatabase mDb = null;
|
||||||
try
|
try
|
||||||
@ -103,9 +103,9 @@ public class Storage implements SharedPreferences
|
|||||||
{
|
{
|
||||||
String key = cursor.getString(0);
|
String key = cursor.getString(0);
|
||||||
String value = cursor.getString(1);
|
String value = cursor.getString(1);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Loading key '" + key + "', value = '" + value + "'");
|
Log.d(K9.LOG_TAG, "Loading key '" + key + "', value = '" + value + "'");
|
||||||
}
|
}
|
||||||
storage.put(key, value);
|
storage.put(key, value);
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ public class Storage implements SharedPreferences
|
|||||||
mDb.close();
|
mDb.close();
|
||||||
}
|
}
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
Log.i(Email.LOG_TAG, "Preferences load took " + (endTime - startTime) + "ms");
|
Log.i(K9.LOG_TAG, "Preferences load took " + (endTime - startTime) + "ms");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,9 +220,9 @@ public class Storage implements SharedPreferences
|
|||||||
}
|
}
|
||||||
|
|
||||||
//@Override
|
//@Override
|
||||||
public com.android.email.preferences.Editor edit()
|
public com.fsck.k9.preferences.Editor edit()
|
||||||
{
|
{
|
||||||
return new com.android.email.preferences.Editor(this);
|
return new com.fsck.k9.preferences.Editor(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
//@Override
|
//@Override
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.provider;
|
package com.fsck.k9.provider;
|
||||||
|
|
||||||
import android.content.ContentProvider;
|
import android.content.ContentProvider;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
@ -11,9 +11,9 @@ import android.graphics.BitmapFactory;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.ParcelFileDescriptor;
|
import android.os.ParcelFileDescriptor;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Account;
|
import com.fsck.k9.Account;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
import com.android.email.mail.internet.MimeUtility;
|
import com.fsck.k9.mail.internet.MimeUtility;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -94,7 +94,7 @@ public class AttachmentProvider extends ContentProvider
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "Deleting file " + file.getCanonicalPath());
|
Log.d(K9.LOG_TAG, "Deleting file " + file.getCanonicalPath());
|
||||||
}
|
}
|
||||||
catch (IOException ioe) {} // No need to log failure to log
|
catch (IOException ioe) {} // No need to log failure to log
|
||||||
file.delete();
|
file.delete();
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.service;
|
package com.fsck.k9.service;
|
||||||
|
|
||||||
import android.app.AlarmManager;
|
import android.app.AlarmManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
@ -11,7 +11,7 @@ import android.net.Uri;
|
|||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
public class BootReceiver extends BroadcastReceiver
|
public class BootReceiver extends BroadcastReceiver
|
||||||
{
|
{
|
||||||
|
|
||||||
public static String WAKE_LOCK_RELEASE = "com.android.email.service.BroadcastReceiver.wakeLockRelease";
|
public static String WAKE_LOCK_RELEASE = "com.fsck.k9.service.BroadcastReceiver.wakeLockRelease";
|
||||||
public static String FIRE_INTENT = "com.android.email.service.BroadcastReceiver.fireIntent";
|
public static String FIRE_INTENT = "com.fsck.k9.service.BroadcastReceiver.fireIntent";
|
||||||
public static String SCHEDULE_INTENT = "com.android.email.service.BroadcastReceiver.scheduleIntent";
|
public static String SCHEDULE_INTENT = "com.fsck.k9.service.BroadcastReceiver.scheduleIntent";
|
||||||
public static String CANCEL_INTENT = "com.android.email.service.BroadcastReceiver.cancelIntent";
|
public static String CANCEL_INTENT = "com.fsck.k9.service.BroadcastReceiver.cancelIntent";
|
||||||
|
|
||||||
public static String WAKE_LOCK_ID = "com.android.email.service.BroadcastReceiver.wakeLockId";
|
public static String WAKE_LOCK_ID = "com.fsck.k9.service.BroadcastReceiver.wakeLockId";
|
||||||
public static String ALARMED_INTENT = "com.android.email.service.BroadcastReceiver.pendingIntent";
|
public static String ALARMED_INTENT = "com.fsck.k9.service.BroadcastReceiver.pendingIntent";
|
||||||
public static String AT_TIME = "com.android.email.service.BroadcastReceiver.atTime";
|
public static String AT_TIME = "com.fsck.k9.service.BroadcastReceiver.atTime";
|
||||||
|
|
||||||
private static ConcurrentHashMap<Integer, WakeLock> wakeLocks = new ConcurrentHashMap<Integer, WakeLock>();
|
private static ConcurrentHashMap<Integer, WakeLock> wakeLocks = new ConcurrentHashMap<Integer, WakeLock>();
|
||||||
private static AtomicInteger wakeLockSeq = new AtomicInteger(0);
|
private static AtomicInteger wakeLockSeq = new AtomicInteger(0);
|
||||||
@ -35,9 +35,9 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
private Integer getWakeLock(Context context)
|
private Integer getWakeLock(Context context)
|
||||||
{
|
{
|
||||||
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||||
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email");
|
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "K9");
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
wakeLock.acquire(Email.BOOT_RECEIVER_WAKE_LOCK_TIMEOUT);
|
wakeLock.acquire(K9.BOOT_RECEIVER_WAKE_LOCK_TIMEOUT);
|
||||||
Integer tmpWakeLockId = wakeLockSeq.getAndIncrement();
|
Integer tmpWakeLockId = wakeLockSeq.getAndIncrement();
|
||||||
wakeLocks.put(tmpWakeLockId, wakeLock);
|
wakeLocks.put(tmpWakeLockId, wakeLock);
|
||||||
return tmpWakeLockId;
|
return tmpWakeLockId;
|
||||||
@ -54,7 +54,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.w(Email.LOG_TAG, "BootReceiver WakeLock " + wakeLockId + " doesn't exist");
|
Log.w(K9.LOG_TAG, "BootReceiver WakeLock " + wakeLockId + " doesn't exist");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -64,11 +64,11 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
Integer tmpWakeLockId = getWakeLock(context);
|
Integer tmpWakeLockId = getWakeLock(context);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver.onReceive" + intent);
|
Log.i(K9.LOG_TAG, "BootReceiver.onReceive" + intent);
|
||||||
|
|
||||||
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))
|
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
//Email.setServicesEnabled(context, tmpWakeLockId);
|
//K9.setServicesEnabled(context, tmpWakeLockId);
|
||||||
//tmpWakeLockId = null;
|
//tmpWakeLockId = null;
|
||||||
}
|
}
|
||||||
else if (Intent.ACTION_DEVICE_STORAGE_LOW.equals(intent.getAction()))
|
else if (Intent.ACTION_DEVICE_STORAGE_LOW.equals(intent.getAction()))
|
||||||
@ -97,7 +97,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
Intent alarmedIntent = intent.getParcelableExtra(ALARMED_INTENT);
|
Intent alarmedIntent = intent.getParcelableExtra(ALARMED_INTENT);
|
||||||
String alarmedAction = alarmedIntent.getAction();
|
String alarmedAction = alarmedIntent.getAction();
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver Got alarm to fire alarmedIntent " + alarmedAction);
|
Log.i(K9.LOG_TAG, "BootReceiver Got alarm to fire alarmedIntent " + alarmedAction);
|
||||||
alarmedIntent.putExtra(WAKE_LOCK_ID, tmpWakeLockId);
|
alarmedIntent.putExtra(WAKE_LOCK_ID, tmpWakeLockId);
|
||||||
tmpWakeLockId = null;
|
tmpWakeLockId = null;
|
||||||
if (alarmedIntent != null)
|
if (alarmedIntent != null)
|
||||||
@ -109,7 +109,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
{
|
{
|
||||||
long atTime = intent.getLongExtra(AT_TIME, -1);
|
long atTime = intent.getLongExtra(AT_TIME, -1);
|
||||||
Intent alarmedIntent = intent.getParcelableExtra(ALARMED_INTENT);
|
Intent alarmedIntent = intent.getParcelableExtra(ALARMED_INTENT);
|
||||||
Log.i(Email.LOG_TAG,"BootReceiver Scheduling intent " + alarmedIntent + " for " + new Date(atTime));
|
Log.i(K9.LOG_TAG,"BootReceiver Scheduling intent " + alarmedIntent + " for " + new Date(atTime));
|
||||||
|
|
||||||
PendingIntent pi = buildPendingIntent(context, intent);
|
PendingIntent pi = buildPendingIntent(context, intent);
|
||||||
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
|
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
|
||||||
@ -119,7 +119,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
else if (CANCEL_INTENT.equals(intent.getAction()))
|
else if (CANCEL_INTENT.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
Intent alarmedIntent = intent.getParcelableExtra(ALARMED_INTENT);
|
Intent alarmedIntent = intent.getParcelableExtra(ALARMED_INTENT);
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver Canceling alarmedIntent " + alarmedIntent);
|
Log.i(K9.LOG_TAG, "BootReceiver Canceling alarmedIntent " + alarmedIntent);
|
||||||
|
|
||||||
PendingIntent pi = buildPendingIntent(context, intent);
|
PendingIntent pi = buildPendingIntent(context, intent);
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
Integer wakeLockId = intent.getIntExtra(WAKE_LOCK_ID, -1);
|
Integer wakeLockId = intent.getIntExtra(WAKE_LOCK_ID, -1);
|
||||||
if (wakeLockId != -1)
|
if (wakeLockId != -1)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver Release wakeLock " + wakeLockId);
|
Log.i(K9.LOG_TAG, "BootReceiver Release wakeLock " + wakeLockId);
|
||||||
releaseWakeLock(wakeLockId);
|
releaseWakeLock(wakeLockId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
|
|
||||||
public static void scheduleIntent(Context context, long atTime, Intent alarmedIntent)
|
public static void scheduleIntent(Context context, long atTime, Intent alarmedIntent)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver Got request to schedule alarmedIntent " + alarmedIntent.getAction());
|
Log.i(K9.LOG_TAG, "BootReceiver Got request to schedule alarmedIntent " + alarmedIntent.getAction());
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClass(context, BootReceiver.class);
|
i.setClass(context, BootReceiver.class);
|
||||||
i.setAction(SCHEDULE_INTENT);
|
i.setAction(SCHEDULE_INTENT);
|
||||||
@ -169,7 +169,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
|
|
||||||
public static void cancelIntent(Context context, Intent alarmedIntent)
|
public static void cancelIntent(Context context, Intent alarmedIntent)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver Got request to cancel alarmedIntent " + alarmedIntent.getAction());
|
Log.i(K9.LOG_TAG, "BootReceiver Got request to cancel alarmedIntent " + alarmedIntent.getAction());
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClass(context, BootReceiver.class);
|
i.setClass(context, BootReceiver.class);
|
||||||
i.setAction(CANCEL_INTENT);
|
i.setAction(CANCEL_INTENT);
|
||||||
@ -179,7 +179,7 @@ public class BootReceiver extends BroadcastReceiver
|
|||||||
|
|
||||||
public static void releaseWakeLock(Context context, int wakeLockId)
|
public static void releaseWakeLock(Context context, int wakeLockId)
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "BootReceiver Got request to release wakeLock " + wakeLockId);
|
Log.i(K9.LOG_TAG, "BootReceiver Got request to release wakeLock " + wakeLockId);
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClass(context, BootReceiver.class);
|
i.setClass(context, BootReceiver.class);
|
||||||
i.setAction(WAKE_LOCK_RELEASE);
|
i.setAction(WAKE_LOCK_RELEASE);
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.service;
|
package com.fsck.k9.service;
|
||||||
|
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -7,7 +7,7 @@ import android.os.IBinder;
|
|||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
public abstract class CoreService extends Service
|
public abstract class CoreService extends Service
|
||||||
{
|
{
|
||||||
@ -25,11 +25,11 @@ public abstract class CoreService extends Service
|
|||||||
{
|
{
|
||||||
|
|
||||||
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
||||||
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email");
|
WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "K9");
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
wakeLock.acquire(Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT);
|
wakeLock.acquire(K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT);
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "CoreService: " + this.getClass().getName() + ".onStart(" + intent + ", " + startId);
|
Log.i(K9.LOG_TAG, "CoreService: " + this.getClass().getName() + ".onStart(" + intent + ", " + startId);
|
||||||
|
|
||||||
int wakeLockId = intent.getIntExtra(BootReceiver.WAKE_LOCK_ID, -1);
|
int wakeLockId = intent.getIntExtra(BootReceiver.WAKE_LOCK_ID, -1);
|
||||||
if (wakeLockId != -1)
|
if (wakeLockId != -1)
|
||||||
@ -65,7 +65,7 @@ public abstract class CoreService extends Service
|
|||||||
@Override
|
@Override
|
||||||
public void onDestroy()
|
public void onDestroy()
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "CoreService: " + this.getClass().getName() + ".onDestroy()");
|
Log.i(K9.LOG_TAG, "CoreService: " + this.getClass().getName() + ".onDestroy()");
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
// MessagingController.getInstance(getApplication()).removeListener(mListener);
|
// MessagingController.getInstance(getApplication()).removeListener(mListener);
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
package com.android.email.service;
|
package com.fsck.k9.service;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
@ -14,8 +14,8 @@ import android.os.PowerManager;
|
|||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.util.Config;
|
import android.util.Config;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
import com.android.email.mail.Pusher;
|
import com.fsck.k9.mail.Pusher;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -26,16 +26,16 @@ import java.util.concurrent.Executors;
|
|||||||
*/
|
*/
|
||||||
public class MailService extends CoreService
|
public class MailService extends CoreService
|
||||||
{
|
{
|
||||||
private static final String ACTION_CHECK_MAIL = "com.android.email.intent.action.MAIL_SERVICE_WAKEUP";
|
private static final String ACTION_CHECK_MAIL = "com.fsck.k9.intent.action.MAIL_SERVICE_WAKEUP";
|
||||||
private static final String ACTION_RESCHEDULE = "com.android.email.intent.action.MAIL_SERVICE_RESCHEDULE";
|
private static final String ACTION_RESCHEDULE = "com.fsck.k9.intent.action.MAIL_SERVICE_RESCHEDULE";
|
||||||
private static final String ACTION_RESCHEDULE_CHECK = "com.android.email.intent.action.MAIL_SERVICE_RESCHEDULE_CHECK";
|
private static final String ACTION_RESCHEDULE_CHECK = "com.fsck.k9.intent.action.MAIL_SERVICE_RESCHEDULE_CHECK";
|
||||||
private static final String ACTION_CANCEL = "com.android.email.intent.action.MAIL_SERVICE_CANCEL";
|
private static final String ACTION_CANCEL = "com.fsck.k9.intent.action.MAIL_SERVICE_CANCEL";
|
||||||
private static final String ACTION_REFRESH_PUSHERS = "com.android.email.intent.action.MAIL_SERVICE_REFRESH_PUSHERS";
|
private static final String ACTION_REFRESH_PUSHERS = "com.fsck.k9.intent.action.MAIL_SERVICE_REFRESH_PUSHERS";
|
||||||
private static final String CONNECTIVITY_CHANGE = "com.android.email.intent.action.MAIL_SERVICE_CONNECTIVITY_CHANGE";
|
private static final String CONNECTIVITY_CHANGE = "com.fsck.k9.intent.action.MAIL_SERVICE_CONNECTIVITY_CHANGE";
|
||||||
private static final String BACKGROUND_DATA_CHANGED = "com.android.email.intent.action.MAIL_SERVICE_BACKGROUND_DATA_CHANGED";
|
private static final String BACKGROUND_DATA_CHANGED = "com.fsck.k9.intent.action.MAIL_SERVICE_BACKGROUND_DATA_CHANGED";
|
||||||
private static final String CANCEL_CONNECTIVITY_NOTICE = "com.android.email.intent.action.MAIL_SERVICE_CANCEL_CONNECTIVITY_NOTICE";
|
private static final String CANCEL_CONNECTIVITY_NOTICE = "com.fsck.k9.intent.action.MAIL_SERVICE_CANCEL_CONNECTIVITY_NOTICE";
|
||||||
|
|
||||||
private static final String HAS_CONNECTIVITY = "com.android.email.intent.action.MAIL_SERVICE_HAS_CONNECTIVITY";
|
private static final String HAS_CONNECTIVITY = "com.fsck.k9.intent.action.MAIL_SERVICE_HAS_CONNECTIVITY";
|
||||||
|
|
||||||
private final ExecutorService threadPool = Executors.newFixedThreadPool(1); // Must be single threaded
|
private final ExecutorService threadPool = Executors.newFixedThreadPool(1); // Must be single threaded
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ public class MailService extends CoreService
|
|||||||
public void onCreate()
|
public void onCreate()
|
||||||
{
|
{
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
Log.v(Email.LOG_TAG, "***** MailService *****: onCreate");
|
Log.v(K9.LOG_TAG, "***** MailService *****: onCreate");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -114,20 +114,20 @@ public class MailService extends CoreService
|
|||||||
}
|
}
|
||||||
boolean backgroundData = connectivityManager.getBackgroundDataSetting();
|
boolean backgroundData = connectivityManager.getBackgroundDataSetting();
|
||||||
|
|
||||||
Email.BACKGROUND_OPS bOps = Email.getBackgroundOps();
|
K9.BACKGROUND_OPS bOps = K9.getBackgroundOps();
|
||||||
doBackground = (backgroundData == true && bOps != Email.BACKGROUND_OPS.NEVER)
|
doBackground = (backgroundData == true && bOps != K9.BACKGROUND_OPS.NEVER)
|
||||||
| (backgroundData == false && bOps == Email.BACKGROUND_OPS.ALWAYS);
|
| (backgroundData == false && bOps == K9.BACKGROUND_OPS.ALWAYS);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setForeground(true); // if it gets killed once, it'll never restart
|
setForeground(true); // if it gets killed once, it'll never restart
|
||||||
Log.i(Email.LOG_TAG, "MailService.onStart(" + intent + ", " + startId
|
Log.i(K9.LOG_TAG, "MailService.onStart(" + intent + ", " + startId
|
||||||
+ "), hasConnectivity = " + hasConnectivity + ", doBackground = " + doBackground);
|
+ "), hasConnectivity = " + hasConnectivity + ", doBackground = " + doBackground);
|
||||||
|
|
||||||
// MessagingController.getInstance(getApplication()).addListener(mListener);
|
// MessagingController.getInstance(getApplication()).addListener(mListener);
|
||||||
if (ACTION_CHECK_MAIL.equals(intent.getAction()))
|
if (ACTION_CHECK_MAIL.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "***** MailService *****: checking mail");
|
Log.i(K9.LOG_TAG, "***** MailService *****: checking mail");
|
||||||
|
|
||||||
if (hasConnectivity && doBackground)
|
if (hasConnectivity && doBackground)
|
||||||
{
|
{
|
||||||
@ -141,7 +141,7 @@ public class MailService extends CoreService
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "***** MailService *****: cancel");
|
Log.v(K9.LOG_TAG, "***** MailService *****: cancel");
|
||||||
}
|
}
|
||||||
MessagingController.getInstance(getApplication()).log("***** MailService *****: cancel");
|
MessagingController.getInstance(getApplication()).log("***** MailService *****: cancel");
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ public class MailService extends CoreService
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "***** MailService *****: reschedule");
|
Log.v(K9.LOG_TAG, "***** MailService *****: reschedule");
|
||||||
}
|
}
|
||||||
rescheduleAll(hasConnectivity, doBackground, startIdObj);
|
rescheduleAll(hasConnectivity, doBackground, startIdObj);
|
||||||
startIdObj = null;
|
startIdObj = null;
|
||||||
@ -162,7 +162,7 @@ public class MailService extends CoreService
|
|||||||
{
|
{
|
||||||
if (Config.LOGV)
|
if (Config.LOGV)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "***** MailService *****: reschedule check");
|
Log.v(K9.LOG_TAG, "***** MailService *****: reschedule check");
|
||||||
}
|
}
|
||||||
reschedule(startIdObj);
|
reschedule(startIdObj);
|
||||||
startIdObj = null;
|
startIdObj = null;
|
||||||
@ -184,7 +184,7 @@ public class MailService extends CoreService
|
|||||||
notifyConnectionStatus(hasConnectivity);
|
notifyConnectionStatus(hasConnectivity);
|
||||||
rescheduleAll(hasConnectivity, doBackground, startIdObj);
|
rescheduleAll(hasConnectivity, doBackground, startIdObj);
|
||||||
startIdObj = null;
|
startIdObj = null;
|
||||||
Log.i(Email.LOG_TAG, "Got connectivity action with hasConnectivity = " + hasConnectivity + ", doBackground = " + doBackground);
|
Log.i(K9.LOG_TAG, "Got connectivity action with hasConnectivity = " + hasConnectivity + ", doBackground = " + doBackground);
|
||||||
}
|
}
|
||||||
else if (CANCEL_CONNECTIVITY_NOTICE.equals(intent.getAction()))
|
else if (CANCEL_CONNECTIVITY_NOTICE.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
@ -199,7 +199,7 @@ public class MailService extends CoreService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
Log.i(Email.LOG_TAG, "MailService.onStart took " + (endTime - startTime) + "ms");
|
Log.i(K9.LOG_TAG, "MailService.onStart took " + (endTime - startTime) + "ms");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void rescheduleAll(final boolean hasConnectivity, final boolean doBackground, final Integer startId)
|
private void rescheduleAll(final boolean hasConnectivity, final boolean doBackground, final Integer startId)
|
||||||
@ -230,7 +230,7 @@ public class MailService extends CoreService
|
|||||||
header, System.currentTimeMillis());
|
header, System.currentTimeMillis());
|
||||||
|
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClassName(getApplication().getPackageName(), "com.android.email.service.MailService");
|
i.setClassName(getApplication().getPackageName(), "com.fsck.k9.service.MailService");
|
||||||
i.setAction(MailService.CANCEL_CONNECTIVITY_NOTICE);
|
i.setAction(MailService.CANCEL_CONNECTIVITY_NOTICE);
|
||||||
|
|
||||||
PendingIntent pi = PendingIntent.getService(this, 0, i, 0);
|
PendingIntent pi = PendingIntent.getService(this, 0, i, 0);
|
||||||
@ -238,18 +238,18 @@ public class MailService extends CoreService
|
|||||||
notif.setLatestEventInfo(getApplication(), header, notice, pi);
|
notif.setLatestEventInfo(getApplication(), header, notice, pi);
|
||||||
notif.flags = Notification.FLAG_ONGOING_EVENT;
|
notif.flags = Notification.FLAG_ONGOING_EVENT;
|
||||||
|
|
||||||
notifMgr.notify(Email.CONNECTIVITY_ID, notif);
|
notifMgr.notify(K9.CONNECTIVITY_ID, notif);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
notifMgr.cancel(Email.CONNECTIVITY_ID);
|
notifMgr.cancel(K9.CONNECTIVITY_ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy()
|
public void onDestroy()
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "***** MailService *****: onDestroy()");
|
Log.v(K9.LOG_TAG, "***** MailService *****: onDestroy()");
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
// MessagingController.getInstance(getApplication()).removeListener(mListener);
|
// MessagingController.getInstance(getApplication()).removeListener(mListener);
|
||||||
}
|
}
|
||||||
@ -257,7 +257,7 @@ public class MailService extends CoreService
|
|||||||
private void cancel()
|
private void cancel()
|
||||||
{
|
{
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClassName(getApplication().getPackageName(), "com.android.email.service.MailService");
|
i.setClassName(getApplication().getPackageName(), "com.fsck.k9.service.MailService");
|
||||||
i.setAction(ACTION_CHECK_MAIL);
|
i.setAction(ACTION_CHECK_MAIL);
|
||||||
BootReceiver.cancelIntent(this, i);
|
BootReceiver.cancelIntent(this, i);
|
||||||
}
|
}
|
||||||
@ -281,7 +281,7 @@ public class MailService extends CoreService
|
|||||||
|
|
||||||
if (shortestInterval == -1)
|
if (shortestInterval == -1)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "No next check scheduled for package " + getApplication().getPackageName());
|
Log.v(K9.LOG_TAG, "No next check scheduled for package " + getApplication().getPackageName());
|
||||||
cancel();
|
cancel();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -292,24 +292,24 @@ public class MailService extends CoreService
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
String checkString = "Next check for package " + getApplication().getPackageName() + " scheduled for " + new Date(nextTime);
|
String checkString = "Next check for package " + getApplication().getPackageName() + " scheduled for " + new Date(nextTime);
|
||||||
Log.i(Email.LOG_TAG, checkString);
|
Log.i(K9.LOG_TAG, checkString);
|
||||||
MessagingController.getInstance(getApplication()).log(checkString);
|
MessagingController.getInstance(getApplication()).log(checkString);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
// I once got a NullPointerException deep in new Date();
|
// I once got a NullPointerException deep in new Date();
|
||||||
Log.e(Email.LOG_TAG, "Exception while logging", e);
|
Log.e(K9.LOG_TAG, "Exception while logging", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClassName(getApplication().getPackageName(), "com.android.email.service.MailService");
|
i.setClassName(getApplication().getPackageName(), "com.fsck.k9.service.MailService");
|
||||||
i.setAction(ACTION_CHECK_MAIL);
|
i.setAction(ACTION_CHECK_MAIL);
|
||||||
BootReceiver.scheduleIntent(MailService.this, nextTime, i);
|
BootReceiver.scheduleIntent(MailService.this, nextTime, i);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
, K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stopPushers(final Integer startId)
|
private void stopPushers(final Integer startId)
|
||||||
@ -322,7 +322,7 @@ public class MailService extends CoreService
|
|||||||
PushService.stopService(MailService.this);
|
PushService.stopService(MailService.this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
, K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void reschedulePushers(final Integer startId)
|
private void reschedulePushers(final Integer startId)
|
||||||
@ -332,14 +332,14 @@ public class MailService extends CoreService
|
|||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "Rescheduling pushers");
|
Log.i(K9.LOG_TAG, "Rescheduling pushers");
|
||||||
stopPushers(null);
|
stopPushers(null);
|
||||||
setupPushers(null);
|
setupPushers(null);
|
||||||
schedulePushers(startId);
|
schedulePushers(startId);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, null);
|
, K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupPushers(final Integer startId)
|
private void setupPushers(final Integer startId)
|
||||||
@ -351,7 +351,7 @@ public class MailService extends CoreService
|
|||||||
boolean pushing = false;
|
boolean pushing = false;
|
||||||
for (Account account : Preferences.getPreferences(MailService.this).getAccounts())
|
for (Account account : Preferences.getPreferences(MailService.this).getAccounts())
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Setting up pushers for account " + account.getDescription());
|
Log.i(K9.LOG_TAG, "Setting up pushers for account " + account.getDescription());
|
||||||
pushing |= MessagingController.getInstance(getApplication()).setupPushing(account);
|
pushing |= MessagingController.getInstance(getApplication()).setupPushing(account);
|
||||||
}
|
}
|
||||||
if (pushing)
|
if (pushing)
|
||||||
@ -360,7 +360,7 @@ public class MailService extends CoreService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
, K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshPushers(final Integer startId)
|
private void refreshPushers(final Integer startId)
|
||||||
@ -371,7 +371,7 @@ public class MailService extends CoreService
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "Refreshing pushers");
|
Log.i(K9.LOG_TAG, "Refreshing pushers");
|
||||||
Collection<Pusher> pushers = MessagingController.getInstance(getApplication()).getPushers();
|
Collection<Pusher> pushers = MessagingController.getInstance(getApplication()).getPushers();
|
||||||
for (Pusher pusher : pushers)
|
for (Pusher pusher : pushers)
|
||||||
{
|
{
|
||||||
@ -380,11 +380,11 @@ public class MailService extends CoreService
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "Exception while refreshing pushers", e);
|
Log.e(K9.LOG_TAG, "Exception while refreshing pushers", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
, K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void schedulePushers(final Integer startId)
|
private void schedulePushers(final Integer startId)
|
||||||
@ -404,35 +404,35 @@ public class MailService extends CoreService
|
|||||||
minInterval = interval;
|
minInterval = interval;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.v(Email.LOG_TAG, "Pusher refresh interval = " + minInterval);
|
Log.v(K9.LOG_TAG, "Pusher refresh interval = " + minInterval);
|
||||||
}
|
}
|
||||||
if (minInterval != -1)
|
if (minInterval != -1)
|
||||||
{
|
{
|
||||||
long nextTime = System.currentTimeMillis() + minInterval;
|
long nextTime = System.currentTimeMillis() + minInterval;
|
||||||
String checkString = "Next pusher refresh scheduled for " + new Date(nextTime);
|
String checkString = "Next pusher refresh scheduled for " + new Date(nextTime);
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, checkString);
|
Log.d(K9.LOG_TAG, checkString);
|
||||||
}
|
}
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClassName(getApplication().getPackageName(), "com.android.email.service.MailService");
|
i.setClassName(getApplication().getPackageName(), "com.fsck.k9.service.MailService");
|
||||||
i.setAction(ACTION_REFRESH_PUSHERS);
|
i.setAction(ACTION_REFRESH_PUSHERS);
|
||||||
BootReceiver.scheduleIntent(MailService.this, nextTime, i);
|
BootReceiver.scheduleIntent(MailService.this, nextTime, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, Email.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
, K9.MAIL_SERVICE_WAKE_LOCK_TIMEOUT, startId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void execute(Context context, final Runnable runner, int wakeLockTime, final Integer startId)
|
public void execute(Context context, final Runnable runner, int wakeLockTime, final Integer startId)
|
||||||
{
|
{
|
||||||
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||||
final WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email");
|
final WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "K9");
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
wakeLock.acquire(wakeLockTime);
|
wakeLock.acquire(wakeLockTime);
|
||||||
Log.i(Email.LOG_TAG, "MailService queueing Runnable " + runner.hashCode() + " with startId " + startId);
|
Log.i(K9.LOG_TAG, "MailService queueing Runnable " + runner.hashCode() + " with startId " + startId);
|
||||||
Runnable myRunner = new Runnable()
|
Runnable myRunner = new Runnable()
|
||||||
{
|
{
|
||||||
public void run()
|
public void run()
|
||||||
@ -440,12 +440,12 @@ public class MailService extends CoreService
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
Log.i(Email.LOG_TAG, "MailService running Runnable " + runner.hashCode() + " with startId " + startId);
|
Log.i(K9.LOG_TAG, "MailService running Runnable " + runner.hashCode() + " with startId " + startId);
|
||||||
runner.run();
|
runner.run();
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "MailService completed Runnable " + runner.hashCode() + " with startId " + startId);
|
Log.i(K9.LOG_TAG, "MailService completed Runnable " + runner.hashCode() + " with startId " + startId);
|
||||||
wakeLock.release();
|
wakeLock.release();
|
||||||
if (startId != null)
|
if (startId != null)
|
||||||
{
|
{
|
@ -1,4 +1,4 @@
|
|||||||
package com.android.email.service;
|
package com.fsck.k9.service;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -6,14 +6,14 @@ import android.os.IBinder;
|
|||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.*;
|
import com.fsck.k9.*;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class PollService extends CoreService
|
public class PollService extends CoreService
|
||||||
{
|
{
|
||||||
private static String START_SERVICE = "com.android.email.service.PollService.startService";
|
private static String START_SERVICE = "com.fsck.k9.service.PollService.startService";
|
||||||
private static String STOP_SERVICE = "com.android.email.service.PollService.stopService";
|
private static String STOP_SERVICE = "com.fsck.k9.service.PollService.stopService";
|
||||||
|
|
||||||
private Listener mListener = new Listener();
|
private Listener mListener = new Listener();
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ public class PollService extends CoreService
|
|||||||
{
|
{
|
||||||
if (START_SERVICE.equals(intent.getAction()))
|
if (START_SERVICE.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "PollService started with startId = " + startId);
|
Log.i(K9.LOG_TAG, "PollService started with startId = " + startId);
|
||||||
|
|
||||||
MessagingController controller = MessagingController.getInstance(getApplication());
|
MessagingController controller = MessagingController.getInstance(getApplication());
|
||||||
Listener listener = (Listener)controller.getCheckMailListener();
|
Listener listener = (Listener)controller.getCheckMailListener();
|
||||||
@ -59,7 +59,7 @@ public class PollService extends CoreService
|
|||||||
}
|
}
|
||||||
else if (STOP_SERVICE.equals(intent.getAction()))
|
else if (STOP_SERVICE.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "PollService stopping");
|
Log.i(K9.LOG_TAG, "PollService stopping");
|
||||||
stopSelf();
|
stopSelf();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,9 +84,9 @@ public class PollService extends CoreService
|
|||||||
WakeLock oldWakeLock = wakeLock;
|
WakeLock oldWakeLock = wakeLock;
|
||||||
|
|
||||||
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
||||||
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email");
|
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "K9");
|
||||||
wakeLock.setReferenceCounted(false);
|
wakeLock.setReferenceCounted(false);
|
||||||
wakeLock.acquire(Email.WAKE_LOCK_TIMEOUT);
|
wakeLock.acquire(K9.WAKE_LOCK_TIMEOUT);
|
||||||
|
|
||||||
if (oldWakeLock != null)
|
if (oldWakeLock != null)
|
||||||
{
|
{
|
||||||
@ -156,7 +156,7 @@ public class PollService extends CoreService
|
|||||||
controller.setCheckMailListener(null);
|
controller.setCheckMailListener(null);
|
||||||
MailService.rescheduleCheck(PollService.this, null);
|
MailService.rescheduleCheck(PollService.this, null);
|
||||||
wakeLockRelease();
|
wakeLockRelease();
|
||||||
Log.i(Email.LOG_TAG, "PollService stopping with startId = " + startId);
|
Log.i(K9.LOG_TAG, "PollService stopping with startId = " + startId);
|
||||||
|
|
||||||
stopSelf(startId);
|
stopSelf(startId);
|
||||||
}
|
}
|
||||||
@ -165,7 +165,7 @@ public class PollService extends CoreService
|
|||||||
public void checkMailFinished(Context context, Account account)
|
public void checkMailFinished(Context context, Account account)
|
||||||
{
|
{
|
||||||
|
|
||||||
Log.v(Email.LOG_TAG, "***** PollService *****: checkMailFinished");
|
Log.v(K9.LOG_TAG, "***** PollService *****: checkMailFinished");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
checkMailDone(context, account);
|
checkMailDone(context, account);
|
@ -1,15 +1,15 @@
|
|||||||
package com.android.email.service;
|
package com.fsck.k9.service;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
public class PushService extends CoreService
|
public class PushService extends CoreService
|
||||||
{
|
{
|
||||||
private static String START_SERVICE = "com.android.email.service.PushService.startService";
|
private static String START_SERVICE = "com.fsck.k9.service.PushService.startService";
|
||||||
private static String STOP_SERVICE = "com.android.email.service.PushService.stopService";
|
private static String STOP_SERVICE = "com.fsck.k9.service.PushService.stopService";
|
||||||
|
|
||||||
public static void startService(Context context)
|
public static void startService(Context context)
|
||||||
{
|
{
|
||||||
@ -32,11 +32,11 @@ public class PushService extends CoreService
|
|||||||
{
|
{
|
||||||
if (START_SERVICE.equals(intent.getAction()))
|
if (START_SERVICE.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "PushService started with startId = " + startId);
|
Log.i(K9.LOG_TAG, "PushService started with startId = " + startId);
|
||||||
}
|
}
|
||||||
else if (STOP_SERVICE.equals(intent.getAction()))
|
else if (STOP_SERVICE.equals(intent.getAction()))
|
||||||
{
|
{
|
||||||
Log.i(Email.LOG_TAG, "PushService stopping with startId = " + startId);
|
Log.i(K9.LOG_TAG, "PushService stopping with startId = " + startId);
|
||||||
stopSelf(startId);
|
stopSelf(startId);
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,10 @@
|
|||||||
package com.android.email.service;
|
package com.fsck.k9.service;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.android.email.Email;
|
import com.fsck.k9.K9;
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
@ -14,8 +14,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
public class SleepService extends CoreService
|
public class SleepService extends CoreService
|
||||||
{
|
{
|
||||||
|
|
||||||
private static String ALARM_FIRED = "com.android.email.service.SleepService.ALARM_FIRED";
|
private static String ALARM_FIRED = "com.fsck.k9.service.SleepService.ALARM_FIRED";
|
||||||
private static String LATCH_ID = "com.android.email.service.SleepService.LATCH_ID_EXTRA";
|
private static String LATCH_ID = "com.fsck.k9.service.SleepService.LATCH_ID_EXTRA";
|
||||||
|
|
||||||
|
|
||||||
private static ConcurrentHashMap<Integer, SleepDatum> sleepData = new ConcurrentHashMap<Integer, SleepDatum>();
|
private static ConcurrentHashMap<Integer, SleepDatum> sleepData = new ConcurrentHashMap<Integer, SleepDatum>();
|
||||||
@ -25,9 +25,9 @@ public class SleepService extends CoreService
|
|||||||
public static void sleep(Context context, long sleepTime, WakeLock wakeLock, long wakeLockTimeout)
|
public static void sleep(Context context, long sleepTime, WakeLock wakeLock, long wakeLockTimeout)
|
||||||
{
|
{
|
||||||
Integer id = latchId.getAndIncrement();
|
Integer id = latchId.getAndIncrement();
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SleepService Preparing CountDownLatch with id = " + id + ", thread " + Thread.currentThread().getName());
|
Log.d(K9.LOG_TAG, "SleepService Preparing CountDownLatch with id = " + id + ", thread " + Thread.currentThread().getName());
|
||||||
}
|
}
|
||||||
SleepDatum sleepDatum = new SleepDatum();
|
SleepDatum sleepDatum = new SleepDatum();
|
||||||
CountDownLatch latch = new CountDownLatch(1);
|
CountDownLatch latch = new CountDownLatch(1);
|
||||||
@ -35,7 +35,7 @@ public class SleepService extends CoreService
|
|||||||
sleepData.put(id, sleepDatum);
|
sleepData.put(id, sleepDatum);
|
||||||
|
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClassName(context.getPackageName(), "com.android.email.service.SleepService");
|
i.setClassName(context.getPackageName(), "com.fsck.k9.service.SleepService");
|
||||||
i.putExtra(LATCH_ID, id);
|
i.putExtra(LATCH_ID, id);
|
||||||
i.setAction(ALARM_FIRED + "." + id);
|
i.setAction(ALARM_FIRED + "." + id);
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
@ -52,9 +52,9 @@ public class SleepService extends CoreService
|
|||||||
boolean timedOut = latch.await(sleepTime, TimeUnit.MILLISECONDS);
|
boolean timedOut = latch.await(sleepTime, TimeUnit.MILLISECONDS);
|
||||||
if (timedOut == false)
|
if (timedOut == false)
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SleepService latch timed out for id = " + id + ", thread " + Thread.currentThread().getName());
|
Log.d(K9.LOG_TAG, "SleepService latch timed out for id = " + id + ", thread " + Thread.currentThread().getName());
|
||||||
}
|
}
|
||||||
// don't call endSleep here or remove the sleepDatum here, instead of the following block.
|
// don't call endSleep here or remove the sleepDatum here, instead of the following block.
|
||||||
// We might not get the wakeLock before
|
// We might not get the wakeLock before
|
||||||
@ -72,17 +72,17 @@ public class SleepService extends CoreService
|
|||||||
}
|
}
|
||||||
catch (InterruptedException ie)
|
catch (InterruptedException ie)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "SleepService Interrupted", ie);
|
Log.e(K9.LOG_TAG, "SleepService Interrupted", ie);
|
||||||
}
|
}
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
long actualSleep = endTime - startTime;
|
long actualSleep = endTime - startTime;
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SleepService requested sleep time was " + sleepTime + ", actual was " + actualSleep);
|
Log.d(K9.LOG_TAG, "SleepService requested sleep time was " + sleepTime + ", actual was " + actualSleep);
|
||||||
}
|
}
|
||||||
if (actualSleep < sleepTime)
|
if (actualSleep < sleepTime)
|
||||||
{
|
{
|
||||||
Log.w(Email.LOG_TAG, "SleepService sleep time too short: requested was " + sleepTime + ", actual was " + actualSleep);
|
Log.w(K9.LOG_TAG, "SleepService sleep time too short: requested was " + sleepTime + ", actual was " + actualSleep);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,13 +96,13 @@ public class SleepService extends CoreService
|
|||||||
CountDownLatch latch = sleepDatum.latch;
|
CountDownLatch latch = sleepDatum.latch;
|
||||||
if (latch == null)
|
if (latch == null)
|
||||||
{
|
{
|
||||||
Log.e(Email.LOG_TAG, "SleepService No CountDownLatch available with id = " + id);
|
Log.e(K9.LOG_TAG, "SleepService No CountDownLatch available with id = " + id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SleepService Counting down CountDownLatch with id = " + id);
|
Log.d(K9.LOG_TAG, "SleepService Counting down CountDownLatch with id = " + id);
|
||||||
}
|
}
|
||||||
latch.countDown();
|
latch.countDown();
|
||||||
}
|
}
|
||||||
@ -110,9 +110,9 @@ public class SleepService extends CoreService
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SleepService Sleep for id " + id + " already finished");
|
Log.d(K9.LOG_TAG, "SleepService Sleep for id " + id + " already finished");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -126,9 +126,9 @@ public class SleepService extends CoreService
|
|||||||
synchronized (wakeLock)
|
synchronized (wakeLock)
|
||||||
{
|
{
|
||||||
long timeout = sleepDatum.timeout;
|
long timeout = sleepDatum.timeout;
|
||||||
if (Email.DEBUG)
|
if (K9.DEBUG)
|
||||||
{
|
{
|
||||||
Log.d(Email.LOG_TAG, "SleepService Acquring wakeLock for id for " + timeout + "ms");
|
Log.d(K9.LOG_TAG, "SleepService Acquring wakeLock for id for " + timeout + "ms");
|
||||||
}
|
}
|
||||||
wakeLock.acquire(timeout);
|
wakeLock.acquire(timeout);
|
||||||
}
|
}
|
@ -1,6 +0,0 @@
|
|||||||
package com.fsck.k9beta;
|
|
||||||
|
|
||||||
import com.android.email.Email;
|
|
||||||
|
|
||||||
public class K9 extends Email {
|
|
||||||
}
|
|
@ -1,9 +1,9 @@
|
|||||||
perl -pi -e's|\@string/app_name|\@string/beta_app_name|g' AndroidManifest.xml
|
perl -pi -e's|\@string/app_name|\@string/beta_app_name|g' AndroidManifest.xml
|
||||||
perl -pi -e's/com\.fsck\.k9/com.fsck.k9beta/g' build.xml AndroidManifest.xml src/com/android/email/provider/AttachmentProvider.java
|
perl -pi -e's/com\.fsck\.k9/com.fsck.k9beta/g' build.xml AndroidManifest.xml src/com.fsck.k9/provider/AttachmentProvider.java
|
||||||
perl -pi -e's|com/fsck/k9/R.java|com/fsck/k9beta/R.java|g' build.xml
|
perl -pi -e's|com/fsck/k9/R.java|com/fsck/k9beta/R.java|g' build.xml
|
||||||
perl -pi -e's|K9|K9-BETA|g' build.xml
|
perl -pi -e's|K9|K9-BETA|g' build.xml
|
||||||
ant $@
|
ant $@
|
||||||
perl -pi -e's|K9-BETA|K9|g' build.xml
|
perl -pi -e's|K9-BETA|K9|g' build.xml
|
||||||
perl -pi -e's/com\.fsck\.k9beta/com.fsck.k9/g' build.xml AndroidManifest.xml src/com/android/email/provider/AttachmentProvider.java
|
perl -pi -e's/com\.fsck\.k9beta/com.fsck.k9/g' build.xml AndroidManifest.xml src/com.fsck.k9/provider/AttachmentProvider.java
|
||||||
perl -pi -e's|com/fsck/k9beta/R.java|com/fsck/k9/R.java|g' build.xml
|
perl -pi -e's|com/fsck/k9beta/R.java|com/fsck/k9/R.java|g' build.xml
|
||||||
perl -pi -e's|\@string/beta_app_name|\@string/app_name|g' AndroidManifest.xml
|
perl -pi -e's|\@string/beta_app_name|\@string/app_name|g' AndroidManifest.xml
|
||||||
|
Loading…
Reference in New Issue
Block a user