mirror of
https://github.com/moparisthebest/k-9
synced 2025-03-03 01:51:49 -05:00
tidied activity code: astyle --style=java -s4 --brackets=attach --convert-tabs
This commit is contained in:
parent
094215ebe0
commit
c6b15012e0
@ -64,184 +64,163 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
private AccountsAdapter mAdapter;
|
||||
|
||||
private class AccountSizeChangedHolder {
|
||||
Account account;
|
||||
long oldSize;
|
||||
long newSize;
|
||||
Account account;
|
||||
long oldSize;
|
||||
long newSize;
|
||||
}
|
||||
|
||||
class AccountsHandler extends Handler
|
||||
{
|
||||
private static final int DATA_CHANGED = 1;
|
||||
private static final int MSG_ACCOUNT_SIZE_CHANGED = 2;
|
||||
private static final int MSG_WORKING_ACCOUNT = 3;
|
||||
private static final int MSG_PROGRESS = 4;
|
||||
private static final int MSG_FOLDER_SYNCING = 5;
|
||||
private static final int MSG_DEFINITE_PROGRESS = 6;
|
||||
class AccountsHandler extends Handler {
|
||||
private static final int DATA_CHANGED = 1;
|
||||
private static final int MSG_ACCOUNT_SIZE_CHANGED = 2;
|
||||
private static final int MSG_WORKING_ACCOUNT = 3;
|
||||
private static final int MSG_PROGRESS = 4;
|
||||
private static final int MSG_FOLDER_SYNCING = 5;
|
||||
private static final int MSG_DEFINITE_PROGRESS = 6;
|
||||
|
||||
public void handleMessage(android.os.Message msg)
|
||||
{
|
||||
switch (msg.what)
|
||||
{
|
||||
case DATA_CHANGED:
|
||||
if (mAdapter != null)
|
||||
{
|
||||
mAdapter.notifyDataSetChanged();
|
||||
public void handleMessage(android.os.Message msg) {
|
||||
switch (msg.what) {
|
||||
case DATA_CHANGED:
|
||||
if (mAdapter != null) {
|
||||
mAdapter.notifyDataSetChanged();
|
||||
}
|
||||
break;
|
||||
case MSG_WORKING_ACCOUNT: {
|
||||
Account account = (Account)msg.obj;
|
||||
int res = msg.arg1;
|
||||
String toastText = getString(res, account.getDescription());
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_SHORT);
|
||||
toast.show();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MSG_WORKING_ACCOUNT:
|
||||
{
|
||||
Account account = (Account)msg.obj;
|
||||
int res = msg.arg1;
|
||||
String toastText = getString(res, account.getDescription());
|
||||
case MSG_ACCOUNT_SIZE_CHANGED: {
|
||||
AccountSizeChangedHolder holder = (AccountSizeChangedHolder)msg.obj;
|
||||
Account account = holder.account;
|
||||
Long oldSize = holder.oldSize;
|
||||
Long newSize = holder.newSize;
|
||||
String toastText = getString(R.string.account_size_changed, account.getDescription(),
|
||||
SizeFormatter.formatSize(getApplication(), oldSize), SizeFormatter.formatSize(getApplication(), newSize));;
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_SHORT);
|
||||
toast.show();
|
||||
break;
|
||||
}
|
||||
case MSG_ACCOUNT_SIZE_CHANGED:
|
||||
{
|
||||
AccountSizeChangedHolder holder = (AccountSizeChangedHolder)msg.obj;
|
||||
Account account = holder.account;
|
||||
Long oldSize = holder.oldSize;
|
||||
Long newSize = holder.newSize;
|
||||
String toastText = getString(R.string.account_size_changed, account.getDescription(),
|
||||
SizeFormatter.formatSize(getApplication(), oldSize), SizeFormatter.formatSize(getApplication(), newSize));;
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
||||
toast.show();
|
||||
break;
|
||||
}
|
||||
case MSG_FOLDER_SYNCING:
|
||||
{
|
||||
String folderName = (String) ((Object[]) msg.obj)[0];
|
||||
String dispString;
|
||||
dispString = getString(R.string.accounts_title);
|
||||
if (folderName != null)
|
||||
{
|
||||
dispString += " (" + getString(R.string.status_loading)
|
||||
+ folderName + ")";
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
||||
toast.show();
|
||||
break;
|
||||
}
|
||||
case MSG_FOLDER_SYNCING: {
|
||||
String folderName = (String) ((Object[]) msg.obj)[0];
|
||||
String dispString;
|
||||
dispString = getString(R.string.accounts_title);
|
||||
if (folderName != null) {
|
||||
dispString += " (" + getString(R.string.status_loading)
|
||||
+ folderName + ")";
|
||||
}
|
||||
setTitle(dispString);
|
||||
break;
|
||||
}
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
//setProgressBarVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DEFINITE_PROGRESS:
|
||||
getWindow().setFeatureInt(Window.FEATURE_PROGRESS, msg.arg1);
|
||||
break;
|
||||
default:
|
||||
super.handleMessage(msg);
|
||||
}
|
||||
setTitle(dispString);
|
||||
break;
|
||||
}
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
//setProgressBarVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DEFINITE_PROGRESS:
|
||||
getWindow().setFeatureInt(Window.FEATURE_PROGRESS, msg.arg1);
|
||||
break;
|
||||
default:
|
||||
super.handleMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
public void dataChanged()
|
||||
{
|
||||
sendEmptyMessage(DATA_CHANGED);
|
||||
}
|
||||
public void dataChanged() {
|
||||
sendEmptyMessage(DATA_CHANGED);
|
||||
}
|
||||
|
||||
public void workingAccount(Account account, int res)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_WORKING_ACCOUNT;
|
||||
msg.obj = account;
|
||||
msg.arg1 = res;
|
||||
public void workingAccount(Account account, int res) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_WORKING_ACCOUNT;
|
||||
msg.obj = account;
|
||||
msg.arg1 = res;
|
||||
|
||||
sendMessage(msg);
|
||||
}
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
public void accountSizeChanged(Account account, long oldSize, long newSize)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_ACCOUNT_SIZE_CHANGED;
|
||||
AccountSizeChangedHolder holder = new AccountSizeChangedHolder();
|
||||
holder.account = account;
|
||||
holder.oldSize = oldSize;
|
||||
holder.newSize = newSize;
|
||||
msg.obj = holder;
|
||||
sendMessage(msg);
|
||||
}
|
||||
public void accountSizeChanged(Account account, long oldSize, long newSize) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_ACCOUNT_SIZE_CHANGED;
|
||||
AccountSizeChangedHolder holder = new AccountSizeChangedHolder();
|
||||
holder.account = account;
|
||||
holder.oldSize = oldSize;
|
||||
holder.newSize = newSize;
|
||||
msg.obj = holder;
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
public void progress(boolean progress)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_PROGRESS;
|
||||
msg.arg1 = progress ? 1 : 0;
|
||||
sendMessage(msg);
|
||||
}
|
||||
public void progress(int progress)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_DEFINITE_PROGRESS;
|
||||
msg.arg1 = progress ;
|
||||
sendMessage(msg);
|
||||
}
|
||||
public void folderSyncing(String folder)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_FOLDER_SYNCING;
|
||||
msg.obj = new String[]
|
||||
{ folder };
|
||||
sendMessage(msg);
|
||||
}
|
||||
public void progress(boolean progress) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_PROGRESS;
|
||||
msg.arg1 = progress ? 1 : 0;
|
||||
sendMessage(msg);
|
||||
}
|
||||
public void progress(int progress) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_DEFINITE_PROGRESS;
|
||||
msg.arg1 = progress ;
|
||||
sendMessage(msg);
|
||||
}
|
||||
public void folderSyncing(String folder) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_FOLDER_SYNCING;
|
||||
msg.obj = new String[] { folder };
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
MessagingListener mListener = new MessagingListener() {
|
||||
@Override
|
||||
public void accountStatusChanged(Account account, int unreadMessageCount)
|
||||
{
|
||||
unreadMessageCounts.put(account.getUuid(), unreadMessageCount);
|
||||
mHandler.dataChanged();
|
||||
pendingWork.remove(account);
|
||||
@Override
|
||||
public void accountStatusChanged(Account account, int unreadMessageCount) {
|
||||
unreadMessageCounts.put(account.getUuid(), unreadMessageCount);
|
||||
mHandler.dataChanged();
|
||||
pendingWork.remove(account);
|
||||
|
||||
|
||||
if (pendingWork.isEmpty())
|
||||
{
|
||||
mHandler.progress(Window.PROGRESS_END);
|
||||
if (pendingWork.isEmpty()) {
|
||||
mHandler.progress(Window.PROGRESS_END);
|
||||
} else {
|
||||
int level = (Window.PROGRESS_END / mAdapter.getCount()) * (mAdapter.getCount() - pendingWork.size()) ;
|
||||
mHandler.progress(level);
|
||||
}
|
||||
}
|
||||
else {
|
||||
int level = (Window.PROGRESS_END / mAdapter.getCount()) * (mAdapter.getCount() - pendingWork.size()) ;
|
||||
mHandler.progress(level);
|
||||
|
||||
@Override
|
||||
public void accountSizeChanged(Account account, long oldSize, long newSize) {
|
||||
|
||||
mHandler.accountSizeChanged(account, oldSize, newSize);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accountSizeChanged(Account account, long oldSize, long newSize)
|
||||
{
|
||||
@Override
|
||||
public void synchronizeMailboxFinished(
|
||||
Account account,
|
||||
String folder,
|
||||
int totalMessagesInMailbox,
|
||||
int numNewMessages) {
|
||||
MessagingController.getInstance(getApplication()).getAccountUnreadCount(Accounts.this, account, mListener);
|
||||
|
||||
mHandler.accountSizeChanged(account, oldSize, newSize);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxFinished(
|
||||
Account account,
|
||||
String folder,
|
||||
int totalMessagesInMailbox,
|
||||
int numNewMessages) {
|
||||
MessagingController.getInstance(getApplication()).getAccountUnreadCount(Accounts.this, account, mListener);
|
||||
|
||||
mHandler.progress(false);
|
||||
mHandler.folderSyncing(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxStarted(Account account, String folder)
|
||||
{
|
||||
mHandler.progress(true);
|
||||
mHandler.folderSyncing(account.getDescription()
|
||||
+ getString(R.string.notification_bg_title_separator) + folder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxFailed(Account account, String folder,
|
||||
String message)
|
||||
{
|
||||
mHandler.progress(false);
|
||||
mHandler.folderSyncing(null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxStarted(Account account, String folder) {
|
||||
mHandler.progress(true);
|
||||
mHandler.folderSyncing(account.getDescription()
|
||||
+ getString(R.string.notification_bg_title_separator) + folder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxFailed(Account account, String folder,
|
||||
String message) {
|
||||
mHandler.progress(false);
|
||||
mHandler.folderSyncing(null);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@ -274,8 +253,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
if (startup && accounts.length == 1) {
|
||||
FolderList.actionHandleAccount(this, accounts[0], accounts[0].getAutoExpandFolderName());
|
||||
finish();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||
requestWindowFeature(Window.FEATURE_PROGRESS);
|
||||
|
||||
@ -319,8 +297,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
MessagingController.getInstance(getApplication()).removeListener(mListener);
|
||||
super.onPause();
|
||||
MessagingController.getInstance(getApplication()).removeListener(mListener);
|
||||
}
|
||||
|
||||
private void refresh() {
|
||||
@ -328,12 +306,12 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
mAdapter = new AccountsAdapter(accounts);
|
||||
getListView().setAdapter(mAdapter);
|
||||
if (accounts.length > 0) {
|
||||
mHandler.progress(Window.PROGRESS_START);
|
||||
mHandler.progress(Window.PROGRESS_START);
|
||||
}
|
||||
pendingWork.clear();
|
||||
for (Account account : accounts) {
|
||||
pendingWork.put(account, "true");
|
||||
MessagingController.getInstance(getApplication()).getAccountUnreadCount(Accounts.this, account, mListener);
|
||||
pendingWork.put(account, "true");
|
||||
MessagingController.getInstance(getApplication()).getAccountUnreadCount(Accounts.this, account, mListener);
|
||||
|
||||
}
|
||||
|
||||
@ -357,26 +335,25 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
}
|
||||
|
||||
private void onClearCommands(Account account) {
|
||||
MessagingController.getInstance(getApplication()).clearAllPending(account);
|
||||
MessagingController.getInstance(getApplication()).clearAllPending(account);
|
||||
}
|
||||
|
||||
private void onEmptyTrash(Account account) {
|
||||
MessagingController.getInstance(getApplication()).emptyTrash(account, null);
|
||||
}
|
||||
MessagingController.getInstance(getApplication()).emptyTrash(account, null);
|
||||
}
|
||||
|
||||
|
||||
private void onCompose() {
|
||||
Account defaultAccount = Preferences.getPreferences(this).getDefaultAccount();
|
||||
if (defaultAccount != null) {
|
||||
MessageCompose.actionCompose(this, defaultAccount);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
onAddNewAccount();
|
||||
}
|
||||
}
|
||||
|
||||
private void onOpenAccount(Account account) {
|
||||
FolderList.actionHandleAccount(this, account, true);
|
||||
FolderList.actionHandleAccount(this, account, true);
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
@ -393,19 +370,19 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
@Override
|
||||
public Dialog onCreateDialog(int id) {
|
||||
switch (id) {
|
||||
case DIALOG_REMOVE_ACCOUNT:
|
||||
return createRemoveAccountDialog();
|
||||
case DIALOG_REMOVE_ACCOUNT:
|
||||
return createRemoveAccountDialog();
|
||||
}
|
||||
return super.onCreateDialog(id);
|
||||
}
|
||||
|
||||
public void onPrepareDialog(int id, Dialog d) {
|
||||
switch (id) {
|
||||
case DIALOG_REMOVE_ACCOUNT:
|
||||
AlertDialog alert = (AlertDialog) d;
|
||||
alert.setMessage(getString(R.string.account_delete_dlg_instructions_fmt,
|
||||
mSelectedContextAccount.getDescription()));
|
||||
break;
|
||||
case DIALOG_REMOVE_ACCOUNT:
|
||||
AlertDialog alert = (AlertDialog) d;
|
||||
alert.setMessage(getString(R.string.account_delete_dlg_instructions_fmt,
|
||||
mSelectedContextAccount.getDescription()));
|
||||
break;
|
||||
}
|
||||
|
||||
super.onPrepareDialog(id, d);
|
||||
@ -414,72 +391,72 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
|
||||
private Dialog createRemoveAccountDialog() {
|
||||
return new AlertDialog.Builder(this)
|
||||
.setTitle(R.string.account_delete_dlg_title)
|
||||
.setMessage(getString(R.string.account_delete_dlg_instructions_fmt, mSelectedContextAccount.getDescription()))
|
||||
.setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_REMOVE_ACCOUNT);
|
||||
try {
|
||||
((LocalStore)Store.getInstance( mSelectedContextAccount.getLocalStoreUri(), getApplication())).delete();
|
||||
} catch (Exception e) {
|
||||
// Ignore
|
||||
}
|
||||
mSelectedContextAccount.delete(Preferences.getPreferences(Accounts.this));
|
||||
Email.setServicesEnabled(Accounts.this);
|
||||
refresh();
|
||||
.setTitle(R.string.account_delete_dlg_title)
|
||||
.setMessage(getString(R.string.account_delete_dlg_instructions_fmt, mSelectedContextAccount.getDescription()))
|
||||
.setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_REMOVE_ACCOUNT);
|
||||
try {
|
||||
((LocalStore)Store.getInstance( mSelectedContextAccount.getLocalStoreUri(), getApplication())).delete();
|
||||
} catch (Exception e) {
|
||||
// Ignore
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_REMOVE_ACCOUNT);
|
||||
}
|
||||
})
|
||||
.create();
|
||||
mSelectedContextAccount.delete(Preferences.getPreferences(Accounts.this));
|
||||
Email.setServicesEnabled(Accounts.this);
|
||||
refresh();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_REMOVE_ACCOUNT);
|
||||
}
|
||||
})
|
||||
.create();
|
||||
}
|
||||
|
||||
public boolean onContextItemSelected(MenuItem item) {
|
||||
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo();
|
||||
Account account = (Account)getListView().getItemAtPosition(menuInfo.position);
|
||||
switch (item.getItemId()) {
|
||||
case R.id.edit_prefs:
|
||||
onEditPrefs();
|
||||
break;
|
||||
case R.id.delete_account:
|
||||
onDeleteAccount(account);
|
||||
break;
|
||||
case R.id.edit_account:
|
||||
onEditAccount(account);
|
||||
break;
|
||||
case R.id.open:
|
||||
onOpenAccount(account);
|
||||
break;
|
||||
case R.id.check_mail:
|
||||
onCheckMail(account);
|
||||
break;
|
||||
case R.id.clear_pending:
|
||||
onClearCommands(account);
|
||||
break;
|
||||
case R.id.empty_trash:
|
||||
onEmptyTrash(account);
|
||||
break;
|
||||
case R.id.compact:
|
||||
onCompact(account);
|
||||
break;
|
||||
case R.id.clear:
|
||||
onClear(account);
|
||||
break;
|
||||
case R.id.edit_prefs:
|
||||
onEditPrefs();
|
||||
break;
|
||||
case R.id.delete_account:
|
||||
onDeleteAccount(account);
|
||||
break;
|
||||
case R.id.edit_account:
|
||||
onEditAccount(account);
|
||||
break;
|
||||
case R.id.open:
|
||||
onOpenAccount(account);
|
||||
break;
|
||||
case R.id.check_mail:
|
||||
onCheckMail(account);
|
||||
break;
|
||||
case R.id.clear_pending:
|
||||
onClearCommands(account);
|
||||
break;
|
||||
case R.id.empty_trash:
|
||||
onEmptyTrash(account);
|
||||
break;
|
||||
case R.id.compact:
|
||||
onCompact(account);
|
||||
break;
|
||||
case R.id.clear:
|
||||
onClear(account);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onCompact(Account account) {
|
||||
mHandler.workingAccount(account, R.string.compacting_account);
|
||||
MessagingController.getInstance(getApplication()).compact(account, null);
|
||||
mHandler.workingAccount(account, R.string.compacting_account);
|
||||
MessagingController.getInstance(getApplication()).compact(account, null);
|
||||
}
|
||||
|
||||
private void onClear(Account account) {
|
||||
mHandler.workingAccount(account, R.string.clearing_account);
|
||||
MessagingController.getInstance(getApplication()).clear(account, null);
|
||||
mHandler.workingAccount(account, R.string.clearing_account);
|
||||
MessagingController.getInstance(getApplication()).clear(account, null);
|
||||
}
|
||||
|
||||
|
||||
@ -491,48 +468,48 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.add_new_account:
|
||||
onAddNewAccount();
|
||||
break;
|
||||
case R.id.edit_prefs:
|
||||
onEditPrefs();
|
||||
break;
|
||||
case R.id.check_mail:
|
||||
onCheckMail(null);
|
||||
break;
|
||||
case R.id.compose:
|
||||
onCompose();
|
||||
break;
|
||||
case R.id.about:
|
||||
onAbout();
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
case R.id.add_new_account:
|
||||
onAddNewAccount();
|
||||
break;
|
||||
case R.id.edit_prefs:
|
||||
onEditPrefs();
|
||||
break;
|
||||
case R.id.check_mail:
|
||||
onCheckMail(null);
|
||||
break;
|
||||
case R.id.compose:
|
||||
onCompose();
|
||||
break;
|
||||
case R.id.about:
|
||||
onAbout();
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onAbout() {
|
||||
String appName = getString(R.string.app_name);
|
||||
WebView wv = new WebView(this);
|
||||
String html = "<h1>" + String.format(getString(R.string.about_title_fmt).toString(),
|
||||
"<a href=\"" + getString(R.string.app_webpage_url) + "\">" + appName + "</a>") + "</h1>" +
|
||||
"<p>" + appName + " " +
|
||||
String.format(getString(R.string.debug_version_fmt).toString(),
|
||||
getVersionNumber()) + "</p>" +
|
||||
"<p>" + String.format(getString(R.string.app_authors_fmt).toString(),
|
||||
getString(R.string.app_authors)) + "</p>" +
|
||||
"<p>" + String.format(getString(R.string.app_revision_fmt).toString(),
|
||||
"<a href=\"" + getString(R.string.app_revision_url) + "\">" +
|
||||
getString(R.string.app_revision_url) + "</a></p>");
|
||||
wv.loadData(html, "text/html", "utf-8");
|
||||
new AlertDialog.Builder(this)
|
||||
String appName = getString(R.string.app_name);
|
||||
WebView wv = new WebView(this);
|
||||
String html = "<h1>" + String.format(getString(R.string.about_title_fmt).toString(),
|
||||
"<a href=\"" + getString(R.string.app_webpage_url) + "\">" + appName + "</a>") + "</h1>" +
|
||||
"<p>" + appName + " " +
|
||||
String.format(getString(R.string.debug_version_fmt).toString(),
|
||||
getVersionNumber()) + "</p>" +
|
||||
"<p>" + String.format(getString(R.string.app_authors_fmt).toString(),
|
||||
getString(R.string.app_authors)) + "</p>" +
|
||||
"<p>" + String.format(getString(R.string.app_revision_fmt).toString(),
|
||||
"<a href=\"" + getString(R.string.app_revision_url) + "\">" +
|
||||
getString(R.string.app_revision_url) + "</a></p>");
|
||||
wv.loadData(html, "text/html", "utf-8");
|
||||
new AlertDialog.Builder(this)
|
||||
.setView(wv)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener () {
|
||||
public void onClick(DialogInterface d, int c) {
|
||||
d.dismiss();
|
||||
}
|
||||
public void onClick(DialogInterface d, int c) {
|
||||
d.dismiss();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
@ -543,17 +520,17 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
* @return String version
|
||||
*/
|
||||
private String getVersionNumber() {
|
||||
String version = "?";
|
||||
try {
|
||||
PackageInfo pi = getPackageManager().getPackageInfo(getPackageName(), 0);
|
||||
version = pi.versionName;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
//Log.e(TAG, "Package name not found", e);
|
||||
};
|
||||
return version;
|
||||
String version = "?";
|
||||
try {
|
||||
PackageInfo pi = getPackageManager().getPackageInfo(getPackageName(), 0);
|
||||
version = pi.versionName;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
//Log.e(TAG, "Package name not found", e);
|
||||
};
|
||||
return version;
|
||||
}
|
||||
|
||||
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -588,8 +565,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
View view;
|
||||
if (convertView != null) {
|
||||
view = convertView;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
view = getLayoutInflater().inflate(R.layout.accounts_item, parent, false);
|
||||
}
|
||||
AccountViewHolder holder = (AccountViewHolder) view.getTag();
|
||||
@ -608,12 +584,11 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
|
||||
|
||||
Integer unreadMessageCount = unreadMessageCounts.get(account.getUuid());
|
||||
if (unreadMessageCount != null) {
|
||||
holder.newMessageCount.setText(Integer.toString(unreadMessageCount));
|
||||
holder.newMessageCount.setVisibility(unreadMessageCount > 0 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
else {
|
||||
//holder.newMessageCount.setText("-");
|
||||
holder.newMessageCount.setVisibility(View.GONE);
|
||||
holder.newMessageCount.setText(Integer.toString(unreadMessageCount));
|
||||
holder.newMessageCount.setVisibility(unreadMessageCount > 0 ? View.VISIBLE : View.GONE);
|
||||
} else {
|
||||
//holder.newMessageCount.setText("-");
|
||||
holder.newMessageCount.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
return view;
|
||||
|
@ -27,261 +27,225 @@ import com.android.email.R;
|
||||
import com.android.email.mail.Folder;
|
||||
import com.android.email.mail.MessagingException;
|
||||
|
||||
public class ChooseFolder extends K9ListActivity
|
||||
{
|
||||
String mFolder;
|
||||
Account mAccount;
|
||||
String mUID;
|
||||
ArrayAdapter<String> adapter;
|
||||
private ChooseFolderHandler mHandler = new ChooseFolderHandler();
|
||||
String heldInbox = null;
|
||||
boolean hideCurrentFolder = true;
|
||||
boolean showOptionNone = false;
|
||||
boolean showDisplayableOnly = false;
|
||||
public class ChooseFolder extends K9ListActivity {
|
||||
String mFolder;
|
||||
Account mAccount;
|
||||
String mUID;
|
||||
ArrayAdapter<String> adapter;
|
||||
private ChooseFolderHandler mHandler = new ChooseFolderHandler();
|
||||
String heldInbox = null;
|
||||
boolean hideCurrentFolder = true;
|
||||
boolean showOptionNone = false;
|
||||
boolean showDisplayableOnly = false;
|
||||
|
||||
public static final String EXTRA_ACCOUNT = "com.android.email.ChooseFolder_account";
|
||||
public static final String EXTRA_CUR_FOLDER = "com.android.email.ChooseFolder_curfolder";
|
||||
public static final String EXTRA_NEW_FOLDER = "com.android.email.ChooseFolder_newfolder";
|
||||
public static final String EXTRA_MESSAGE_UID = "com.android.email.ChooseFolder_messageuid";
|
||||
public static final String EXTRA_SHOW_CURRENT = "com.android.email.ChooseFolder_showcurrent";
|
||||
public static final String EXTRA_SHOW_FOLDER_NONE = "com.android.email.ChooseFolder_showOptionNone";
|
||||
public static final String EXTRA_SHOW_DISPLAYABLE_ONLY = "com.android.email.ChooseFolder_showDisplayableOnly";
|
||||
public static final String EXTRA_ACCOUNT = "com.android.email.ChooseFolder_account";
|
||||
public static final String EXTRA_CUR_FOLDER = "com.android.email.ChooseFolder_curfolder";
|
||||
public static final String EXTRA_NEW_FOLDER = "com.android.email.ChooseFolder_newfolder";
|
||||
public static final String EXTRA_MESSAGE_UID = "com.android.email.ChooseFolder_messageuid";
|
||||
public static final String EXTRA_SHOW_CURRENT = "com.android.email.ChooseFolder_showcurrent";
|
||||
public static final String EXTRA_SHOW_FOLDER_NONE = "com.android.email.ChooseFolder_showOptionNone";
|
||||
public static final String EXTRA_SHOW_DISPLAYABLE_ONLY = "com.android.email.ChooseFolder_showDisplayableOnly";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||
getListView().setFastScrollEnabled(true);
|
||||
getListView().setTextFilterEnabled(true);
|
||||
getListView().setItemsCanFocus(false);
|
||||
getListView().setChoiceMode(ListView.CHOICE_MODE_NONE);
|
||||
Intent intent = getIntent();
|
||||
mAccount = (Account) intent.getSerializableExtra(EXTRA_ACCOUNT);
|
||||
mUID = intent.getStringExtra(EXTRA_MESSAGE_UID);
|
||||
mFolder = intent.getStringExtra(EXTRA_CUR_FOLDER);
|
||||
if (intent.getStringExtra(EXTRA_SHOW_CURRENT) != null) {
|
||||
hideCurrentFolder = false;
|
||||
}
|
||||
if (intent.getStringExtra(EXTRA_SHOW_FOLDER_NONE) != null) {
|
||||
showOptionNone = true;
|
||||
}
|
||||
if (intent.getStringExtra(EXTRA_SHOW_DISPLAYABLE_ONLY) != null) {
|
||||
showDisplayableOnly = true;
|
||||
}
|
||||
if(mFolder == null)
|
||||
mFolder = "";
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||
getListView().setFastScrollEnabled(true);
|
||||
getListView().setTextFilterEnabled(true);
|
||||
getListView().setItemsCanFocus(false);
|
||||
getListView().setChoiceMode(ListView.CHOICE_MODE_NONE);
|
||||
Intent intent = getIntent();
|
||||
mAccount = (Account) intent.getSerializableExtra(EXTRA_ACCOUNT);
|
||||
mUID = intent.getStringExtra(EXTRA_MESSAGE_UID);
|
||||
mFolder = intent.getStringExtra(EXTRA_CUR_FOLDER);
|
||||
if (intent.getStringExtra(EXTRA_SHOW_CURRENT) != null) {
|
||||
hideCurrentFolder = false;
|
||||
}
|
||||
if (intent.getStringExtra(EXTRA_SHOW_FOLDER_NONE) != null) {
|
||||
showOptionNone = true;
|
||||
}
|
||||
if (intent.getStringExtra(EXTRA_SHOW_DISPLAYABLE_ONLY) != null) {
|
||||
showDisplayableOnly = true;
|
||||
}
|
||||
if (mFolder == null)
|
||||
mFolder = "";
|
||||
|
||||
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
|
||||
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
|
||||
|
||||
setListAdapter(adapter);
|
||||
setListAdapter(adapter);
|
||||
|
||||
|
||||
MessagingController.getInstance(getApplication()).listFolders(mAccount,
|
||||
false, mListener);
|
||||
false, mListener);
|
||||
|
||||
|
||||
this.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
public void onItemClick(AdapterView adapterview, View view, int i, long l)
|
||||
{
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(EXTRA_CUR_FOLDER, mFolder);
|
||||
String destFolderName = (String)((TextView)view).getText();
|
||||
if (heldInbox != null && getString(R.string.special_mailbox_name_inbox).equals(destFolderName))
|
||||
{
|
||||
destFolderName = heldInbox;
|
||||
}
|
||||
intent.putExtra(EXTRA_NEW_FOLDER, destFolderName);
|
||||
intent.putExtra(EXTRA_MESSAGE_UID, mUID);
|
||||
setResult(RESULT_OK, intent);
|
||||
finish();
|
||||
}
|
||||
});
|
||||
this.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
public void onItemClick(AdapterView adapterview, View view, int i, long l) {
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(EXTRA_CUR_FOLDER, mFolder);
|
||||
String destFolderName = (String)((TextView)view).getText();
|
||||
if (heldInbox != null && getString(R.string.special_mailbox_name_inbox).equals(destFolderName)) {
|
||||
destFolderName = heldInbox;
|
||||
}
|
||||
intent.putExtra(EXTRA_NEW_FOLDER, destFolderName);
|
||||
intent.putExtra(EXTRA_MESSAGE_UID, mUID);
|
||||
setResult(RESULT_OK, intent);
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class ChooseFolderHandler extends Handler
|
||||
{
|
||||
class ChooseFolderHandler extends Handler {
|
||||
|
||||
private static final int MSG_PROGRESS = 2;
|
||||
private static final int MSG_PROGRESS = 2;
|
||||
|
||||
private static final int MSG_DATA_CHANGED = 3;
|
||||
private static final int MSG_SET_SELECTED_FOLDER = 4;
|
||||
private static final int MSG_DATA_CHANGED = 3;
|
||||
private static final int MSG_SET_SELECTED_FOLDER = 4;
|
||||
|
||||
public void handleMessage(android.os.Message msg)
|
||||
{
|
||||
switch (msg.what)
|
||||
{
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DATA_CHANGED:
|
||||
adapter.notifyDataSetChanged();
|
||||
break;
|
||||
case MSG_SET_SELECTED_FOLDER:
|
||||
// TODO: I want this to highlight the chosen folder, but this doesn't work.
|
||||
public void handleMessage(android.os.Message msg) {
|
||||
switch (msg.what) {
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DATA_CHANGED:
|
||||
adapter.notifyDataSetChanged();
|
||||
break;
|
||||
case MSG_SET_SELECTED_FOLDER:
|
||||
// TODO: I want this to highlight the chosen folder, but this doesn't work.
|
||||
// getListView().setSelection(msg.arg1);
|
||||
// getListView().setItemChecked(msg.arg1, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void progress(boolean progress)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_PROGRESS;
|
||||
msg.arg1 = progress ? 1 : 0;
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
public void setSelectedFolder(int position)
|
||||
{
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_SET_SELECTED_FOLDER;
|
||||
msg.arg1 = position;
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
public void dataChanged()
|
||||
{
|
||||
sendEmptyMessage(MSG_DATA_CHANGED);
|
||||
}
|
||||
}
|
||||
|
||||
private MessagingListener mListener = new MessagingListener()
|
||||
{
|
||||
public void listFoldersStarted(Account account)
|
||||
{
|
||||
if (!account.equals(mAccount))
|
||||
{
|
||||
return;
|
||||
}
|
||||
mHandler.progress(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFoldersFailed(Account account, String message)
|
||||
{
|
||||
if (!account.equals(mAccount))
|
||||
{
|
||||
return;
|
||||
}
|
||||
mHandler.progress(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFoldersFinished(Account account)
|
||||
{
|
||||
if (!account.equals(mAccount))
|
||||
{
|
||||
return;
|
||||
}
|
||||
mHandler.progress(false);
|
||||
}
|
||||
@Override
|
||||
public void listFolders(Account account, Folder[] folders)
|
||||
{
|
||||
if (!account.equals(mAccount))
|
||||
{
|
||||
return;
|
||||
}
|
||||
Account.FolderMode aMode = Account.FolderMode.ALL;
|
||||
if (showDisplayableOnly)
|
||||
{
|
||||
aMode = account.getFolderDisplayMode();
|
||||
}
|
||||
else
|
||||
{
|
||||
aMode = account.getFolderTargetMode();
|
||||
}
|
||||
Preferences prefs = Preferences.getPreferences(getApplication().getApplicationContext());
|
||||
ArrayList<String> localFolders = new ArrayList<String>();
|
||||
|
||||
for (Folder folder : folders)
|
||||
{
|
||||
String name = folder.getName();
|
||||
|
||||
// Inbox needs to be compared case-insensitively
|
||||
if(hideCurrentFolder && (name.equals(mFolder) || (Email.INBOX.equalsIgnoreCase(mFolder) && Email.INBOX.equalsIgnoreCase(name)))) {
|
||||
continue;
|
||||
}
|
||||
try
|
||||
{
|
||||
folder.refresh(prefs);
|
||||
Folder.FolderClass fMode = folder.getDisplayClass();
|
||||
|
||||
if ((aMode == Account.FolderMode.FIRST_CLASS && fMode != Folder.FolderClass.FIRST_CLASS)
|
||||
|| (aMode == Account.FolderMode.FIRST_AND_SECOND_CLASS &&
|
||||
fMode != Folder.FolderClass.FIRST_CLASS &&
|
||||
fMode != Folder.FolderClass.SECOND_CLASS)
|
||||
|| (aMode == Account.FolderMode.NOT_SECOND_CLASS && fMode == Folder.FolderClass.SECOND_CLASS))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
catch (MessagingException me)
|
||||
{
|
||||
Log.e(Email.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
localFolders.add(folder.getName());
|
||||
|
||||
}
|
||||
|
||||
if (showOptionNone)
|
||||
{
|
||||
localFolders.add(Email.FOLDER_NONE);
|
||||
}
|
||||
|
||||
Collections.sort(localFolders, new Comparator<String>() {
|
||||
public int compare(String aName, String bName)
|
||||
{
|
||||
if (Email.FOLDER_NONE.equalsIgnoreCase(aName))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (Email.FOLDER_NONE.equalsIgnoreCase(bName))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
if (Email.INBOX.equalsIgnoreCase(aName))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if (Email.INBOX.equalsIgnoreCase(bName))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return aName.compareToIgnoreCase(bName);
|
||||
}
|
||||
});
|
||||
adapter.setNotifyOnChange(false);
|
||||
adapter.clear();
|
||||
int selectedFolder = -1;
|
||||
int position = 0;
|
||||
for (String name : localFolders) {
|
||||
if (Email.INBOX.equalsIgnoreCase(name))
|
||||
{
|
||||
adapter.add(getString(R.string.special_mailbox_name_inbox));
|
||||
heldInbox = name;
|
||||
}
|
||||
else {
|
||||
adapter.add(name);
|
||||
public void progress(boolean progress) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_PROGRESS;
|
||||
msg.arg1 = progress ? 1 : 0;
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
if((name.equals(mFolder) || (Email.INBOX.equalsIgnoreCase(mFolder) && Email.INBOX.equalsIgnoreCase(name)))) {
|
||||
selectedFolder = position;
|
||||
public void setSelectedFolder(int position) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_SET_SELECTED_FOLDER;
|
||||
msg.arg1 = position;
|
||||
sendMessage(msg);
|
||||
}
|
||||
position++;
|
||||
}
|
||||
if (selectedFolder != -1)
|
||||
{
|
||||
mHandler.setSelectedFolder(selectedFolder);
|
||||
}
|
||||
mHandler.dataChanged();
|
||||
|
||||
public void dataChanged() {
|
||||
sendEmptyMessage(MSG_DATA_CHANGED);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private MessagingListener mListener = new MessagingListener() {
|
||||
public void listFoldersStarted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
mHandler.progress(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFoldersFailed(Account account, String message) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
mHandler.progress(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFoldersFinished(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
mHandler.progress(false);
|
||||
}
|
||||
@Override
|
||||
public void listFolders(Account account, Folder[] folders) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
Account.FolderMode aMode = Account.FolderMode.ALL;
|
||||
if (showDisplayableOnly) {
|
||||
aMode = account.getFolderDisplayMode();
|
||||
} else {
|
||||
aMode = account.getFolderTargetMode();
|
||||
}
|
||||
Preferences prefs = Preferences.getPreferences(getApplication().getApplicationContext());
|
||||
ArrayList<String> localFolders = new ArrayList<String>();
|
||||
|
||||
for (Folder folder : folders) {
|
||||
String name = folder.getName();
|
||||
|
||||
// Inbox needs to be compared case-insensitively
|
||||
if (hideCurrentFolder && (name.equals(mFolder) || (Email.INBOX.equalsIgnoreCase(mFolder) && Email.INBOX.equalsIgnoreCase(name)))) {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
folder.refresh(prefs);
|
||||
Folder.FolderClass fMode = folder.getDisplayClass();
|
||||
|
||||
if ((aMode == Account.FolderMode.FIRST_CLASS && fMode != Folder.FolderClass.FIRST_CLASS)
|
||||
|| (aMode == Account.FolderMode.FIRST_AND_SECOND_CLASS &&
|
||||
fMode != Folder.FolderClass.FIRST_CLASS &&
|
||||
fMode != Folder.FolderClass.SECOND_CLASS)
|
||||
|| (aMode == Account.FolderMode.NOT_SECOND_CLASS && fMode == Folder.FolderClass.SECOND_CLASS)) {
|
||||
continue;
|
||||
}
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
||||
}
|
||||
|
||||
localFolders.add(folder.getName());
|
||||
|
||||
}
|
||||
|
||||
if (showOptionNone) {
|
||||
localFolders.add(Email.FOLDER_NONE);
|
||||
}
|
||||
|
||||
Collections.sort(localFolders, new Comparator<String>() {
|
||||
public int compare(String aName, String bName) {
|
||||
if (Email.FOLDER_NONE.equalsIgnoreCase(aName)) {
|
||||
return -1;
|
||||
}
|
||||
if (Email.FOLDER_NONE.equalsIgnoreCase(bName)) {
|
||||
return 1;
|
||||
}
|
||||
if (Email.INBOX.equalsIgnoreCase(aName)) {
|
||||
return -1;
|
||||
}
|
||||
if (Email.INBOX.equalsIgnoreCase(bName)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return aName.compareToIgnoreCase(bName);
|
||||
}
|
||||
});
|
||||
adapter.setNotifyOnChange(false);
|
||||
adapter.clear();
|
||||
int selectedFolder = -1;
|
||||
int position = 0;
|
||||
for (String name : localFolders) {
|
||||
if (Email.INBOX.equalsIgnoreCase(name)) {
|
||||
adapter.add(getString(R.string.special_mailbox_name_inbox));
|
||||
heldInbox = name;
|
||||
} else {
|
||||
adapter.add(name);
|
||||
}
|
||||
|
||||
if ((name.equals(mFolder) || (Email.INBOX.equalsIgnoreCase(mFolder) && Email.INBOX.equalsIgnoreCase(name)))) {
|
||||
selectedFolder = position;
|
||||
}
|
||||
position++;
|
||||
}
|
||||
if (selectedFolder != -1) {
|
||||
mHandler.setSelectedFolder(selectedFolder);
|
||||
}
|
||||
mHandler.dataChanged();
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -19,10 +19,9 @@ import com.android.email.K9ListActivity;
|
||||
import com.android.email.Preferences;
|
||||
import com.android.email.R;
|
||||
|
||||
public class ChooseIdentity extends K9ListActivity
|
||||
{
|
||||
public class ChooseIdentity extends K9ListActivity {
|
||||
Account mAccount;
|
||||
String mUID;
|
||||
String mUID;
|
||||
ArrayAdapter<String> adapter;
|
||||
private ChooseIdentityHandler mHandler = new ChooseIdentityHandler();
|
||||
|
||||
@ -32,8 +31,7 @@ public class ChooseIdentity extends K9ListActivity
|
||||
protected List<Account.Identity> identities = null;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||
@ -52,86 +50,71 @@ public class ChooseIdentity extends K9ListActivity
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
refreshView();
|
||||
}
|
||||
|
||||
|
||||
protected void refreshView()
|
||||
{
|
||||
protected void refreshView() {
|
||||
adapter.clear();
|
||||
|
||||
identities = mAccount.getIdentities();
|
||||
for (Account.Identity identity : identities)
|
||||
{
|
||||
for (Account.Identity identity : identities) {
|
||||
String email = identity.getEmail();
|
||||
String description = identity.getDescription();
|
||||
if (description == null || description.trim().length() == 0)
|
||||
{
|
||||
description = getString(R.string.message_view_from_format, identity.getName(), identity.getEmail());
|
||||
if (description == null || description.trim().length() == 0) {
|
||||
description = getString(R.string.message_view_from_format, identity.getName(), identity.getEmail());
|
||||
}
|
||||
adapter.add(description);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void setupClickListeners()
|
||||
{
|
||||
this.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener()
|
||||
{
|
||||
public void onItemClick(AdapterView adapterview, View view, int i, long l)
|
||||
{
|
||||
protected void setupClickListeners() {
|
||||
this.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
public void onItemClick(AdapterView adapterview, View view, int i, long l) {
|
||||
Account.Identity identity = mAccount.getIdentity(i);
|
||||
String email = identity.getEmail();
|
||||
if (email != null && email.trim().equals("") == false)
|
||||
{
|
||||
Intent intent = new Intent();
|
||||
if (email != null && email.trim().equals("") == false) {
|
||||
Intent intent = new Intent();
|
||||
|
||||
intent.putExtra(EXTRA_IDENTITY, mAccount.getIdentity(i));
|
||||
setResult(RESULT_OK, intent);
|
||||
finish();
|
||||
}
|
||||
else
|
||||
{
|
||||
intent.putExtra(EXTRA_IDENTITY, mAccount.getIdentity(i));
|
||||
setResult(RESULT_OK, intent);
|
||||
finish();
|
||||
} else {
|
||||
Toast.makeText(ChooseIdentity.this, getString(R.string.identity_has_no_email),
|
||||
Toast.LENGTH_LONG).show();
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
class ChooseIdentityHandler extends Handler
|
||||
{
|
||||
class ChooseIdentityHandler extends Handler {
|
||||
|
||||
private static final int MSG_PROGRESS = 2;
|
||||
private static final int MSG_DATA_CHANGED = 3;
|
||||
|
||||
public void handleMessage(android.os.Message msg)
|
||||
{
|
||||
switch (msg.what)
|
||||
{
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DATA_CHANGED:
|
||||
adapter.notifyDataSetChanged();
|
||||
break;
|
||||
public void handleMessage(android.os.Message msg) {
|
||||
switch (msg.what) {
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DATA_CHANGED:
|
||||
adapter.notifyDataSetChanged();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void progress(boolean progress)
|
||||
{
|
||||
public void progress(boolean progress) {
|
||||
android.os.Message msg = new android.os.Message();
|
||||
msg.what = MSG_PROGRESS;
|
||||
msg.arg1 = progress ? 1 : 0;
|
||||
sendMessage(msg);
|
||||
}
|
||||
|
||||
public void dataChanged()
|
||||
{
|
||||
public void dataChanged() {
|
||||
sendEmptyMessage(MSG_DATA_CHANGED);
|
||||
}
|
||||
}
|
||||
|
@ -13,8 +13,7 @@ import android.os.Bundle;
|
||||
import android.view.KeyEvent;
|
||||
import android.widget.EditText;
|
||||
|
||||
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_INDEX = "com.android.email.EditIdentity_identity_index";
|
||||
@ -30,16 +29,14 @@ public class EditIdentity extends K9Activity
|
||||
private EditText mNameView;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mIdentity = (Account.Identity)getIntent().getSerializableExtra(EXTRA_IDENTITY);
|
||||
mIdentityIndex = getIntent().getIntExtra(EXTRA_IDENTITY_INDEX, -1);
|
||||
mAccount = (Account) getIntent().getSerializableExtra(EXTRA_ACCOUNT);
|
||||
|
||||
if (mIdentityIndex == -1)
|
||||
{
|
||||
if (mIdentityIndex == -1) {
|
||||
mIdentity = mAccount.new Identity();
|
||||
}
|
||||
|
||||
@ -49,8 +46,7 @@ public class EditIdentity extends K9Activity
|
||||
* If we're being reloaded we override the original account with the one
|
||||
* we saved
|
||||
*/
|
||||
if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_IDENTITY))
|
||||
{
|
||||
if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_IDENTITY)) {
|
||||
mIdentity = (Account.Identity)savedInstanceState.getSerializable(EXTRA_IDENTITY);
|
||||
}
|
||||
|
||||
@ -71,13 +67,11 @@ public class EditIdentity extends K9Activity
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
private void saveIdentity()
|
||||
{
|
||||
private void saveIdentity() {
|
||||
|
||||
mIdentity.setDescription(mDescriptionView.getText().toString());
|
||||
mIdentity.setEmail(mEmailView.getText().toString());
|
||||
@ -86,12 +80,9 @@ public class EditIdentity extends K9Activity
|
||||
mIdentity.setSignature(mSignatureView.getText().toString());
|
||||
|
||||
List<Account.Identity> identities = mAccount.getIdentities();
|
||||
if (mIdentityIndex == -1)
|
||||
{
|
||||
if (mIdentityIndex == -1) {
|
||||
identities.add(mIdentity);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
identities.remove(mIdentityIndex);
|
||||
identities.add(mIdentityIndex, mIdentity);
|
||||
}
|
||||
@ -102,10 +93,8 @@ public class EditIdentity extends K9Activity
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event)
|
||||
{
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK)
|
||||
{
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
saveIdentity();
|
||||
return true;
|
||||
}
|
||||
@ -113,8 +102,7 @@ public class EditIdentity extends K9Activity
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState)
|
||||
{
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putSerializable(EXTRA_IDENTITY, mIdentity);
|
||||
}
|
||||
|
@ -134,79 +134,79 @@ public class FolderList extends K9ListActivity {
|
||||
@Override
|
||||
public void handleMessage(android.os.Message msg) {
|
||||
switch (msg.what) {
|
||||
case MSG_NEW_FOLDERS:
|
||||
ArrayList<FolderInfoHolder> newFolders = (ArrayList<FolderInfoHolder>)msg.obj;
|
||||
mAdapter.mFolders.clear();
|
||||
case MSG_NEW_FOLDERS:
|
||||
ArrayList<FolderInfoHolder> newFolders = (ArrayList<FolderInfoHolder>)msg.obj;
|
||||
mAdapter.mFolders.clear();
|
||||
|
||||
mAdapter.mFolders.addAll(newFolders);
|
||||
mAdapter.mFolders.addAll(newFolders);
|
||||
|
||||
mHandler.dataChanged();
|
||||
break;
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DATA_CHANGED:
|
||||
mAdapter.notifyDataSetChanged();
|
||||
break;
|
||||
case MSG_FOLDER_LOADING: {
|
||||
FolderInfoHolder folder = mAdapter.getFolder((String) msg.obj);
|
||||
mHandler.dataChanged();
|
||||
break;
|
||||
case MSG_PROGRESS:
|
||||
setProgressBarIndeterminateVisibility(msg.arg1 != 0);
|
||||
break;
|
||||
case MSG_DATA_CHANGED:
|
||||
mAdapter.notifyDataSetChanged();
|
||||
break;
|
||||
case MSG_FOLDER_LOADING: {
|
||||
FolderInfoHolder folder = mAdapter.getFolder((String) msg.obj);
|
||||
|
||||
if (folder != null) {
|
||||
folder.loading = msg.arg1 != 0;
|
||||
}
|
||||
|
||||
break;
|
||||
if (folder != null) {
|
||||
folder.loading = msg.arg1 != 0;
|
||||
}
|
||||
|
||||
case MSG_ACCOUNT_SIZE_CHANGED: {
|
||||
Long[] sizes = (Long[])msg.obj;
|
||||
String toastText = getString(R.string.account_size_changed, mAccount.getDescription(), SizeFormatter.formatSize(getApplication(), sizes[0]), SizeFormatter.formatSize(getApplication(), sizes[1]));
|
||||
break;
|
||||
}
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
||||
toast.show();
|
||||
break;
|
||||
case MSG_ACCOUNT_SIZE_CHANGED: {
|
||||
Long[] sizes = (Long[])msg.obj;
|
||||
String toastText = getString(R.string.account_size_changed, mAccount.getDescription(), SizeFormatter.formatSize(getApplication(), sizes[0]), SizeFormatter.formatSize(getApplication(), sizes[1]));
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
||||
toast.show();
|
||||
break;
|
||||
}
|
||||
|
||||
case MSG_WORKING_ACCOUNT: {
|
||||
int res = msg.arg1;
|
||||
String toastText = getString(res, mAccount.getDescription());
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_SHORT);
|
||||
toast.show();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case MSG_FOLDER_SYNCING: {
|
||||
String folderName = (String)((Object[]) msg.obj)[0];
|
||||
String dispString;
|
||||
dispString = mAccount.getDescription();
|
||||
|
||||
if (folderName != null) {
|
||||
dispString += " (" + getString(R.string.status_loading) + folderName + ")";
|
||||
}
|
||||
|
||||
case MSG_WORKING_ACCOUNT: {
|
||||
int res = msg.arg1;
|
||||
String toastText = getString(res, mAccount.getDescription());
|
||||
setTitle(dispString);
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_SHORT);
|
||||
toast.show();
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
case MSG_SENDING_OUTBOX: {
|
||||
boolean sending = (msg.arg1 != 0);
|
||||
String dispString;
|
||||
dispString = mAccount.getDescription();
|
||||
|
||||
if (sending) {
|
||||
dispString += " (" + getString(R.string.status_sending) + ")";
|
||||
}
|
||||
|
||||
setTitle(dispString);
|
||||
|
||||
case MSG_FOLDER_SYNCING: {
|
||||
String folderName = (String)((Object[]) msg.obj)[0];
|
||||
String dispString;
|
||||
dispString = mAccount.getDescription();
|
||||
break;
|
||||
}
|
||||
|
||||
if (folderName != null) {
|
||||
dispString += " (" + getString(R.string.status_loading) + folderName + ")";
|
||||
}
|
||||
|
||||
setTitle(dispString);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case MSG_SENDING_OUTBOX: {
|
||||
boolean sending = (msg.arg1 != 0);
|
||||
String dispString;
|
||||
dispString = mAccount.getDescription();
|
||||
|
||||
if (sending) {
|
||||
dispString += " (" + getString(R.string.status_sending) + ")";
|
||||
}
|
||||
|
||||
setTitle(dispString);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
super.handleMessage(msg);
|
||||
default:
|
||||
super.handleMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@ -271,14 +271,12 @@ public class FolderList extends K9ListActivity {
|
||||
* queueing up a remote update of the folder.
|
||||
*/
|
||||
|
||||
private void checkMail(FolderInfoHolder folder)
|
||||
{
|
||||
private void checkMail(FolderInfoHolder folder) {
|
||||
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
||||
final WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Email - UpdateWorker");
|
||||
wakeLock.setReferenceCounted(false);
|
||||
wakeLock.acquire(Email.WAKE_LOCK_TIMEOUT);
|
||||
MessagingListener listener = new MessagingListener()
|
||||
{
|
||||
MessagingListener listener = new MessagingListener() {
|
||||
public void synchronizeMailboxFinished(Account account, String folder, int totalMessagesInMailbox, int numNewMessages) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
@ -288,7 +286,7 @@ public class FolderList extends K9ListActivity {
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxFailed(Account account, String folder,
|
||||
String message) {
|
||||
String message) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@ -331,8 +329,7 @@ public class FolderList extends K9ListActivity {
|
||||
|
||||
if (initialFolder != null) {
|
||||
intent.putExtra(EXTRA_INITIAL_FOLDER, initialFolder);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
intent.putExtra(EXTRA_STARTUP, true);
|
||||
}
|
||||
return intent;
|
||||
@ -358,11 +355,10 @@ public class FolderList extends K9ListActivity {
|
||||
mStartup = (boolean) intent.getBooleanExtra(EXTRA_STARTUP, false);
|
||||
Log.v(Email.LOG_TAG, "startup: " + mStartup);
|
||||
if (initialFolder == null
|
||||
&& mStartup) {
|
||||
&& mStartup) {
|
||||
initialFolder = mAccount.getAutoExpandFolderName();
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
initialFolder = null;
|
||||
mStartup = false;
|
||||
savedFolderName = savedInstanceState.getString(STATE_CURRENT_FOLDER);
|
||||
@ -370,11 +366,10 @@ public class FolderList extends K9ListActivity {
|
||||
|
||||
Log.v(Email.LOG_TAG, "mInitialFolder: " + initialFolder);
|
||||
if (initialFolder != null
|
||||
&& !Email.FOLDER_NONE.equals(initialFolder)) {
|
||||
&& !Email.FOLDER_NONE.equals(initialFolder)) {
|
||||
onOpenFolder(initialFolder, true);
|
||||
finish();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
|
||||
|
||||
mListView = getListView();
|
||||
@ -411,8 +406,7 @@ public class FolderList extends K9ListActivity {
|
||||
|
||||
setTitle(mAccount.getDescription());
|
||||
|
||||
if (savedFolderName != null)
|
||||
{
|
||||
if (savedFolderName != null) {
|
||||
mSelectedContextFolder = mAdapter.getFolder(savedFolderName);
|
||||
}
|
||||
}
|
||||
@ -450,8 +444,7 @@ public class FolderList extends K9ListActivity {
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
if (mSelectedContextFolder != null)
|
||||
{
|
||||
if (mSelectedContextFolder != null) {
|
||||
outState.putString(STATE_CURRENT_FOLDER, mSelectedContextFolder.name);
|
||||
}
|
||||
}
|
||||
@ -461,7 +454,7 @@ public class FolderList extends K9ListActivity {
|
||||
|
||||
switch (keyCode) {
|
||||
case KeyEvent.KEYCODE_Q:
|
||||
//case KeyEvent.KEYCODE_BACK:
|
||||
//case KeyEvent.KEYCODE_BACK:
|
||||
{
|
||||
onAccounts();
|
||||
return true;
|
||||
@ -498,8 +491,7 @@ public class FolderList extends K9ListActivity {
|
||||
}
|
||||
|
||||
private void onAccounts() {
|
||||
if (mStartup || isTaskRoot())
|
||||
{
|
||||
if (mStartup || isTaskRoot()) {
|
||||
Accounts.listAccounts(this);
|
||||
}
|
||||
|
||||
@ -510,11 +502,11 @@ public class FolderList extends K9ListActivity {
|
||||
mHandler.dataChanged();
|
||||
|
||||
MessagingListener listener = new MessagingListener() {
|
||||
@Override
|
||||
public void controllerCommandCompleted(boolean moreToDo) {
|
||||
Log.v(Email.LOG_TAG, "Empty Trash background task completed");
|
||||
}
|
||||
};
|
||||
@Override
|
||||
public void controllerCommandCompleted(boolean moreToDo) {
|
||||
Log.v(Email.LOG_TAG, "Empty Trash background task completed");
|
||||
}
|
||||
};
|
||||
|
||||
MessagingController.getInstance(getApplication()).emptyTrash(account, listener);
|
||||
}
|
||||
@ -679,30 +671,30 @@ public class FolderList extends K9ListActivity {
|
||||
.setTitle(R.string.mark_all_as_read_dlg_title)
|
||||
.setMessage(getString(R.string.mark_all_as_read_dlg_instructions_fmt,
|
||||
mSelectedContextFolder.displayName))
|
||||
.setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_MARK_ALL_AS_READ);
|
||||
.setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_MARK_ALL_AS_READ);
|
||||
|
||||
try {
|
||||
try {
|
||||
|
||||
MessagingController.getInstance(getApplication()).markAllMessagesRead(mAccount, mSelectedContextFolder.name);
|
||||
MessagingController.getInstance(getApplication()).markAllMessagesRead(mAccount, mSelectedContextFolder.name);
|
||||
|
||||
mSelectedContextFolder.unreadMessageCount = 0;
|
||||
mSelectedContextFolder.unreadMessageCount = 0;
|
||||
|
||||
mHandler.dataChanged();
|
||||
mHandler.dataChanged();
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
})
|
||||
} catch (Exception e) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
.setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_MARK_ALL_AS_READ);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int whichButton) {
|
||||
dismissDialog(DIALOG_MARK_ALL_AS_READ);
|
||||
}
|
||||
})
|
||||
|
||||
.create();
|
||||
}
|
||||
@ -765,269 +757,263 @@ public class FolderList extends K9ListActivity {
|
||||
return true;
|
||||
}
|
||||
|
||||
private MessagingListener mListener = new MessagingListener() {
|
||||
private MessagingListener mListener = new MessagingListener() {
|
||||
|
||||
@Override
|
||||
public void listFoldersStarted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void listFoldersStarted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.progress(true);
|
||||
}
|
||||
mHandler.progress(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFoldersFailed(Account account, String message) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void listFoldersFailed(Account account, String message) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.progress(false);
|
||||
mHandler.progress(false);
|
||||
|
||||
if (Config.LOGV) {
|
||||
Log.v(Email.LOG_TAG, "listFoldersFailed " + message);
|
||||
}
|
||||
}
|
||||
if (Config.LOGV) {
|
||||
Log.v(Email.LOG_TAG, "listFoldersFailed " + message);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFoldersFinished(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void listFoldersFinished(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.progress(false);
|
||||
MessagingController.getInstance(getApplication()).refreshListener(mAdapter.mListener);
|
||||
mHandler.dataChanged();
|
||||
mHandler.progress(false);
|
||||
MessagingController.getInstance(getApplication()).refreshListener(mAdapter.mListener);
|
||||
mHandler.dataChanged();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void listFolders(Account account, Folder[] folders) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void listFolders(Account account, Folder[] folders) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ArrayList<FolderInfoHolder> newFolders = new ArrayList<FolderInfoHolder>();
|
||||
ArrayList<FolderInfoHolder> newFolders = new ArrayList<FolderInfoHolder>();
|
||||
|
||||
Account.FolderMode aMode = account.getFolderDisplayMode();
|
||||
Account.FolderMode aMode = account.getFolderDisplayMode();
|
||||
|
||||
for (Folder folder : folders) {
|
||||
try {
|
||||
folder.refresh( Preferences.getPreferences(getApplication().getApplicationContext()) );
|
||||
for (Folder folder : folders) {
|
||||
try {
|
||||
folder.refresh( Preferences.getPreferences(getApplication().getApplicationContext()) );
|
||||
|
||||
Folder.FolderClass fMode = folder.getDisplayClass();
|
||||
Folder.FolderClass fMode = folder.getDisplayClass();
|
||||
|
||||
if ((aMode == Account.FolderMode.FIRST_CLASS && fMode != Folder.FolderClass.FIRST_CLASS)
|
||||
|| (aMode == Account.FolderMode.FIRST_AND_SECOND_CLASS &&
|
||||
fMode != Folder.FolderClass.FIRST_CLASS &&
|
||||
fMode != Folder.FolderClass.SECOND_CLASS)
|
||||
|| (aMode == Account.FolderMode.NOT_SECOND_CLASS && fMode == Folder.FolderClass.SECOND_CLASS)) {
|
||||
continue;
|
||||
}
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
||||
}
|
||||
if ((aMode == Account.FolderMode.FIRST_CLASS && fMode != Folder.FolderClass.FIRST_CLASS)
|
||||
|| (aMode == Account.FolderMode.FIRST_AND_SECOND_CLASS &&
|
||||
fMode != Folder.FolderClass.FIRST_CLASS &&
|
||||
fMode != Folder.FolderClass.SECOND_CLASS)
|
||||
|| (aMode == Account.FolderMode.NOT_SECOND_CLASS && fMode == Folder.FolderClass.SECOND_CLASS)) {
|
||||
continue;
|
||||
}
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Couldn't get prefs to check for displayability of folder " + folder.getName(), me);
|
||||
}
|
||||
|
||||
FolderInfoHolder holder = null;
|
||||
FolderInfoHolder holder = null;
|
||||
|
||||
int folderIndex = getFolderIndex(folder.getName());
|
||||
if (folderIndex >= 0 ) {
|
||||
int folderIndex = getFolderIndex(folder.getName());
|
||||
if (folderIndex >= 0 ) {
|
||||
holder = (FolderInfoHolder) getItem(folderIndex);
|
||||
}
|
||||
}
|
||||
|
||||
if (holder == null) {
|
||||
holder = new FolderInfoHolder(folder);
|
||||
} else {
|
||||
if (holder == null) {
|
||||
holder = new FolderInfoHolder(folder);
|
||||
} else {
|
||||
holder.populate(folder);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
newFolders.add(holder);
|
||||
}
|
||||
Collections.sort(newFolders);
|
||||
mHandler.newFolders(newFolders);
|
||||
newFolders.add(holder);
|
||||
}
|
||||
Collections.sort(newFolders);
|
||||
mHandler.newFolders(newFolders);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void synchronizeMailboxStarted(Account account, String folder) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
public void synchronizeMailboxStarted(Account account, String folder) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.progress(true);
|
||||
mHandler.folderLoading(folder, true);
|
||||
mHandler.folderSyncing(folder);
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
mHandler.progress(true);
|
||||
mHandler.folderLoading(folder, true);
|
||||
mHandler.folderSyncing(folder);
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxFinished(Account account, String folder, int totalMessagesInMailbox, int numNewMessages) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
mHandler.progress(false);
|
||||
mHandler.folderLoading(folder, false);
|
||||
// mHandler.folderStatus(folder, null);
|
||||
mHandler.folderSyncing(null);
|
||||
@Override
|
||||
public void synchronizeMailboxFinished(Account account, String folder, int totalMessagesInMailbox, int numNewMessages) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
mHandler.progress(false);
|
||||
mHandler.folderLoading(folder, false);
|
||||
// mHandler.folderStatus(folder, null);
|
||||
mHandler.folderSyncing(null);
|
||||
|
||||
refreshFolder(account, folder);
|
||||
refreshFolder(account, folder);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshFolder(Account account, String folderName)
|
||||
{
|
||||
// There has to be a cheaper way to get at the localFolder object than this
|
||||
try {
|
||||
if (account != null && folderName != null)
|
||||
{
|
||||
Folder localFolder = (Folder) Store.getInstance(account.getLocalStoreUri(), getApplication()).getFolder(folderName);
|
||||
if (localFolder != null)
|
||||
{
|
||||
FolderInfoHolder folderHolder = getFolder(folderName);
|
||||
if (folderHolder != null)
|
||||
{
|
||||
folderHolder.populate(localFolder);
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Exception while populating folder", e);
|
||||
}
|
||||
private void refreshFolder(Account account, String folderName) {
|
||||
// There has to be a cheaper way to get at the localFolder object than this
|
||||
try {
|
||||
if (account != null && folderName != null) {
|
||||
Folder localFolder = (Folder) Store.getInstance(account.getLocalStoreUri(), getApplication()).getFolder(folderName);
|
||||
if (localFolder != null) {
|
||||
FolderInfoHolder folderHolder = getFolder(folderName);
|
||||
if (folderHolder != null) {
|
||||
folderHolder.populate(localFolder);
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Exception while populating folder", e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void synchronizeMailboxFailed(Account account, String folder,
|
||||
String message) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void synchronizeMailboxFailed(Account account, String folder,
|
||||
String message) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
mHandler.progress(false);
|
||||
mHandler.progress(false);
|
||||
|
||||
mHandler.folderLoading(folder, false);
|
||||
mHandler.folderLoading(folder, false);
|
||||
|
||||
// String mess = truncateStatus(message);
|
||||
// String mess = truncateStatus(message);
|
||||
|
||||
// mHandler.folderStatus(folder, mess);
|
||||
FolderInfoHolder holder = getFolder(folder);
|
||||
// mHandler.folderStatus(folder, mess);
|
||||
FolderInfoHolder holder = getFolder(folder);
|
||||
|
||||
if (holder != null) {
|
||||
holder.lastChecked = 0;
|
||||
}
|
||||
if (holder != null) {
|
||||
holder.lastChecked = 0;
|
||||
}
|
||||
|
||||
mHandler.folderSyncing(null);
|
||||
mHandler.folderSyncing(null);
|
||||
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPushActive(Account account, String folderName, boolean enabled)
|
||||
{
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
FolderInfoHolder holder = getFolder(folderName);
|
||||
@Override
|
||||
public void setPushActive(Account account, String folderName, boolean enabled) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
FolderInfoHolder holder = getFolder(folderName);
|
||||
|
||||
if (holder != null) {
|
||||
holder.pushActive = enabled;
|
||||
if (holder != null) {
|
||||
holder.pushActive = enabled;
|
||||
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
}
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void messageDeleted(Account account,
|
||||
String folder, Message message) {
|
||||
synchronizeMailboxRemovedMessage(account,
|
||||
folder, message);
|
||||
}
|
||||
@Override
|
||||
public void messageDeleted(Account account,
|
||||
String folder, Message message) {
|
||||
synchronizeMailboxRemovedMessage(account,
|
||||
folder, message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void emptyTrashCompleted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
refreshFolder(account, mAccount.getTrashFolderName());
|
||||
}
|
||||
@Override
|
||||
public void emptyTrashCompleted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
refreshFolder(account, mAccount.getTrashFolderName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void folderStatusChanged(Account account, String folderName) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
refreshFolder(account, folderName);
|
||||
}
|
||||
@Override
|
||||
public void folderStatusChanged(Account account, String folderName) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
refreshFolder(account, folderName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPendingMessagesCompleted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void sendPendingMessagesCompleted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.sendingOutbox(false);
|
||||
refreshFolder(account, mAccount.getOutboxFolderName());
|
||||
}
|
||||
mHandler.sendingOutbox(false);
|
||||
refreshFolder(account, mAccount.getOutboxFolderName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPendingMessagesStarted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void sendPendingMessagesStarted(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.sendingOutbox(true);
|
||||
mHandler.sendingOutbox(true);
|
||||
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
mHandler.dataChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPendingMessagesFailed(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
@Override
|
||||
public void sendPendingMessagesFailed(Account account) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.sendingOutbox(false);
|
||||
refreshFolder(account, mAccount.getOutboxFolderName());
|
||||
}
|
||||
mHandler.sendingOutbox(false);
|
||||
refreshFolder(account, mAccount.getOutboxFolderName());
|
||||
}
|
||||
|
||||
public void accountSizeChanged(Account account, long oldSize, long newSize) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
public void accountSizeChanged(Account account, long oldSize, long newSize) {
|
||||
if (!account.equals(mAccount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
mHandler.accountSizeChanged(oldSize, newSize);
|
||||
mHandler.accountSizeChanged(oldSize, newSize);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
public int getFolderIndex(String folder) {
|
||||
FolderInfoHolder searchHolder = new FolderInfoHolder();
|
||||
searchHolder.name = folder;
|
||||
return mFolders.indexOf((Object) searchHolder);
|
||||
return mFolders.indexOf((Object) searchHolder);
|
||||
}
|
||||
|
||||
public FolderInfoHolder getFolder(String folder) {
|
||||
FolderInfoHolder holder = null;
|
||||
|
||||
int index = getFolderIndex(folder);
|
||||
if(index >= 0 ){
|
||||
if (index >= 0 ) {
|
||||
holder = (FolderInfoHolder) getItem(index);
|
||||
if (holder != null) {
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
if (position <= getCount()) {
|
||||
return getItemView(position, convertView, parent);
|
||||
return getItemView(position, convertView, parent);
|
||||
} else {
|
||||
// XXX TODO - should catch an exception here
|
||||
return null;
|
||||
@ -1075,8 +1061,7 @@ public class FolderList extends K9ListActivity {
|
||||
.format(lastCheckedDate));
|
||||
}
|
||||
|
||||
if (folder.pushActive)
|
||||
{
|
||||
if (folder.pushActive) {
|
||||
statusText = getString(R.string.folder_push_active_symbol) + " "+ statusText;
|
||||
}
|
||||
|
||||
@ -1110,124 +1095,123 @@ public class FolderList extends K9ListActivity {
|
||||
}
|
||||
|
||||
public class FolderInfoHolder implements Comparable<FolderInfoHolder> {
|
||||
public String name;
|
||||
public String name;
|
||||
|
||||
public String displayName;
|
||||
public String displayName;
|
||||
|
||||
public long lastChecked;
|
||||
public long lastChecked;
|
||||
|
||||
public int unreadMessageCount;
|
||||
public int unreadMessageCount;
|
||||
|
||||
public boolean loading;
|
||||
public boolean loading;
|
||||
|
||||
public String status;
|
||||
public String status;
|
||||
|
||||
public boolean pushActive;
|
||||
public boolean pushActive;
|
||||
|
||||
public boolean lastCheckFailed;
|
||||
public boolean lastCheckFailed;
|
||||
|
||||
/**
|
||||
* Outbox is handled differently from any other folder.
|
||||
*/
|
||||
public boolean outbox;
|
||||
/**
|
||||
* Outbox is handled differently from any other folder.
|
||||
*/
|
||||
public boolean outbox;
|
||||
|
||||
|
||||
public boolean equals(Object o) {
|
||||
if (this.name.equals(((FolderInfoHolder)o).name)) {
|
||||
return true;
|
||||
public boolean equals(Object o) {
|
||||
if (this.name.equals(((FolderInfoHolder)o).name)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public int compareTo(FolderInfoHolder o) {
|
||||
String s1 = this.name;
|
||||
String s2 = o.name;
|
||||
|
||||
if (Email.INBOX.equalsIgnoreCase(s1) && Email.INBOX.equalsIgnoreCase(s2)) {
|
||||
return 0;
|
||||
} else if (Email.INBOX.equalsIgnoreCase(s1)) {
|
||||
return -1;
|
||||
} else if (Email.INBOX.equalsIgnoreCase(s2)) {
|
||||
return 1;
|
||||
} else {
|
||||
int ret = s1.compareToIgnoreCase(s2);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
} else {
|
||||
return false;
|
||||
return s1.compareTo(s2);
|
||||
}
|
||||
}
|
||||
|
||||
public int compareTo(FolderInfoHolder o) {
|
||||
String s1 = this.name;
|
||||
String s2 = o.name;
|
||||
}
|
||||
|
||||
if (Email.INBOX.equalsIgnoreCase(s1) && Email.INBOX.equalsIgnoreCase(s2)) {
|
||||
return 0;
|
||||
} else if (Email.INBOX.equalsIgnoreCase(s1)) {
|
||||
return -1;
|
||||
} else if (Email.INBOX.equalsIgnoreCase(s2)) {
|
||||
return 1;
|
||||
} else {
|
||||
int ret = s1.compareToIgnoreCase(s2);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return s1.compareTo(s2);
|
||||
}
|
||||
}
|
||||
// constructor for an empty object for comparisons
|
||||
public FolderInfoHolder() {
|
||||
}
|
||||
|
||||
public FolderInfoHolder(Folder folder) {
|
||||
populate(folder);
|
||||
}
|
||||
public void populate (Folder folder) {
|
||||
int unreadCount = 0;
|
||||
|
||||
try {
|
||||
folder.open(Folder.OpenMode.READ_WRITE);
|
||||
unreadCount = folder.getUnreadMessageCount();
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Folder.getUnreadMessageCount() failed", me);
|
||||
}
|
||||
|
||||
// constructor for an empty object for comparisons
|
||||
public FolderInfoHolder() {
|
||||
}
|
||||
this.name = folder.getName();
|
||||
|
||||
public FolderInfoHolder(Folder folder) {
|
||||
populate(folder);
|
||||
}
|
||||
public void populate (Folder folder) {
|
||||
int unreadCount = 0;
|
||||
if (this.name.equalsIgnoreCase(Email.INBOX)) {
|
||||
this.displayName = getString(R.string.special_mailbox_name_inbox);
|
||||
} else {
|
||||
this.displayName = folder.getName();
|
||||
}
|
||||
|
||||
try {
|
||||
folder.open(Folder.OpenMode.READ_WRITE);
|
||||
unreadCount = folder.getUnreadMessageCount();
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Folder.getUnreadMessageCount() failed", me);
|
||||
}
|
||||
if (this.name.equals(mAccount.getOutboxFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_outbox_fmt), this.name);
|
||||
this.outbox = true;
|
||||
}
|
||||
|
||||
this.name = folder.getName();
|
||||
if (this.name.equals(mAccount.getDraftsFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_drafts_fmt), this.name);
|
||||
}
|
||||
|
||||
if (this.name.equalsIgnoreCase(Email.INBOX)) {
|
||||
this.displayName = getString(R.string.special_mailbox_name_inbox);
|
||||
} else {
|
||||
this.displayName = folder.getName();
|
||||
}
|
||||
if (this.name.equals(mAccount.getTrashFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_trash_fmt), this.name);
|
||||
}
|
||||
|
||||
if (this.name.equals(mAccount.getOutboxFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_outbox_fmt), this.name);
|
||||
this.outbox = true;
|
||||
}
|
||||
if (this.name.equals(mAccount.getSentFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_sent_fmt), this.name);
|
||||
}
|
||||
|
||||
if (this.name.equals(mAccount.getDraftsFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_drafts_fmt), this.name);
|
||||
}
|
||||
this.lastChecked = folder.getLastUpdate();
|
||||
|
||||
if (this.name.equals(mAccount.getTrashFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_trash_fmt), this.name);
|
||||
}
|
||||
String mess = truncateStatus(folder.getStatus());
|
||||
|
||||
if (this.name.equals(mAccount.getSentFolderName())) {
|
||||
this.displayName = String.format( getString(R.string.special_mailbox_name_sent_fmt), this.name);
|
||||
}
|
||||
this.status = mess;
|
||||
|
||||
this.lastChecked = folder.getLastUpdate();
|
||||
this.unreadMessageCount = unreadCount;
|
||||
|
||||
String mess = truncateStatus(folder.getStatus());
|
||||
|
||||
this.status = mess;
|
||||
|
||||
this.unreadMessageCount = unreadCount;
|
||||
|
||||
try {
|
||||
folder.close(false);
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Folder.close() failed", me);
|
||||
}
|
||||
}
|
||||
try {
|
||||
folder.close(false);
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Folder.close() failed", me);
|
||||
}
|
||||
}
|
||||
|
||||
class FolderViewHolder {
|
||||
public TextView folderName;
|
||||
|
||||
public TextView folderStatus;
|
||||
|
||||
public TextView newMessageCount;
|
||||
|
||||
public String rawFolderName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class FolderViewHolder {
|
||||
public TextView folderName;
|
||||
|
||||
public TextView folderStatus;
|
||||
|
||||
public TextView newMessageCount;
|
||||
|
||||
public String rawFolderName;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -16,18 +16,14 @@ import com.android.email.Account;
|
||||
import com.android.email.Preferences;
|
||||
import com.android.email.R;
|
||||
|
||||
public class ManageIdentities extends ChooseIdentity
|
||||
{
|
||||
public class ManageIdentities extends ChooseIdentity {
|
||||
private boolean mIdentitiesChanged = false;
|
||||
public static final String EXTRA_IDENTITIES = "com.android.email.EditIdentity_identities";
|
||||
|
||||
private static final int ACTIVITY_EDIT_IDENTITY = 1;
|
||||
protected void setupClickListeners()
|
||||
{
|
||||
this.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener()
|
||||
{
|
||||
public void onItemClick(AdapterView adapterview, View view, int i, long l)
|
||||
{
|
||||
protected void setupClickListeners() {
|
||||
this.getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
public void onItemClick(AdapterView adapterview, View view, int i, long l) {
|
||||
editItem(i);
|
||||
}
|
||||
});
|
||||
@ -36,8 +32,7 @@ public class ManageIdentities extends ChooseIdentity
|
||||
registerForContextMenu(listView);
|
||||
}
|
||||
|
||||
private void editItem(int i)
|
||||
{
|
||||
private void editItem(int i) {
|
||||
Intent intent = new Intent(ManageIdentities.this, EditIdentity.class);
|
||||
|
||||
intent.putExtra(EditIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
@ -47,92 +42,80 @@ public class ManageIdentities extends ChooseIdentity
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu)
|
||||
{
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
super.onCreateOptionsMenu(menu);
|
||||
getMenuInflater().inflate(R.menu.manage_identities_option, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item)
|
||||
{
|
||||
switch (item.getItemId())
|
||||
{
|
||||
case R.id.new_identity:
|
||||
Intent intent = new Intent(ManageIdentities.this, EditIdentity.class);
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.new_identity:
|
||||
Intent intent = new Intent(ManageIdentities.this, EditIdentity.class);
|
||||
|
||||
intent.putExtra(EditIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
startActivityForResult(intent, ACTIVITY_EDIT_IDENTITY);
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
intent.putExtra(EditIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
startActivityForResult(intent, ACTIVITY_EDIT_IDENTITY);
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
|
||||
{
|
||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
|
||||
super.onCreateContextMenu(menu, v, menuInfo);
|
||||
menu.setHeaderTitle(R.string.manage_identities_context_menu_title);
|
||||
getMenuInflater().inflate(R.menu.manage_identities_context, menu);
|
||||
}
|
||||
|
||||
public boolean onContextItemSelected(MenuItem item)
|
||||
{
|
||||
public boolean onContextItemSelected(MenuItem item) {
|
||||
AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo();
|
||||
switch (item.getItemId())
|
||||
{
|
||||
case R.id.edit:
|
||||
editItem(menuInfo.position);
|
||||
break;
|
||||
case R.id.up:
|
||||
if (menuInfo.position > 0)
|
||||
{
|
||||
Account.Identity identity = identities.remove(menuInfo.position);
|
||||
identities.add(menuInfo.position - 1, identity);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
}
|
||||
|
||||
break;
|
||||
case R.id.down:
|
||||
if (menuInfo.position < identities.size() - 1)
|
||||
{
|
||||
Account.Identity identity = identities.remove(menuInfo.position);
|
||||
identities.add(menuInfo.position + 1, identity);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
}
|
||||
break;
|
||||
case R.id.top:
|
||||
switch (item.getItemId()) {
|
||||
case R.id.edit:
|
||||
editItem(menuInfo.position);
|
||||
break;
|
||||
case R.id.up:
|
||||
if (menuInfo.position > 0) {
|
||||
Account.Identity identity = identities.remove(menuInfo.position);
|
||||
identities.add(0, identity);
|
||||
identities.add(menuInfo.position - 1, identity);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
break;
|
||||
case R.id.remove:
|
||||
if (identities.size() > 1)
|
||||
{
|
||||
identities.remove(menuInfo.position);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
}
|
||||
else
|
||||
{
|
||||
Toast.makeText(this, getString(R.string.no_removable_identity),
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
case R.id.down:
|
||||
if (menuInfo.position < identities.size() - 1) {
|
||||
Account.Identity identity = identities.remove(menuInfo.position);
|
||||
identities.add(menuInfo.position + 1, identity);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
}
|
||||
break;
|
||||
case R.id.top:
|
||||
Account.Identity identity = identities.remove(menuInfo.position);
|
||||
identities.add(0, identity);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
break;
|
||||
case R.id.remove:
|
||||
if (identities.size() > 1) {
|
||||
identities.remove(menuInfo.position);
|
||||
mIdentitiesChanged = true;
|
||||
refreshView();
|
||||
} else {
|
||||
Toast.makeText(this, getString(R.string.no_removable_identity),
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
mAccount.refresh(Preferences.getPreferences(getApplication().getApplicationContext()));
|
||||
refreshView();
|
||||
@ -140,19 +123,15 @@ public class ManageIdentities extends ChooseIdentity
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event)
|
||||
{
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK)
|
||||
{
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||
saveIdentities();
|
||||
}
|
||||
return super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
private void saveIdentities()
|
||||
{
|
||||
if (mIdentitiesChanged)
|
||||
{
|
||||
private void saveIdentities() {
|
||||
if (mIdentitiesChanged) {
|
||||
mAccount.setIdentities(identities);
|
||||
mAccount.save(Preferences.getPreferences(getApplication().getApplicationContext()));
|
||||
}
|
||||
|
@ -87,9 +87,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
private static final String STATE_KEY_DRAFT_UID =
|
||||
"com.android.email.activity.MessageCompose.draftUid";
|
||||
private static final String STATE_IDENTITY_CHANGED =
|
||||
"com.android.email.activity.MessageCompose.identityChanged";
|
||||
"com.android.email.activity.MessageCompose.identityChanged";
|
||||
private static final String STATE_IDENTITY =
|
||||
"com.android.email.activity.MessageCompose.identity";
|
||||
"com.android.email.activity.MessageCompose.identity";
|
||||
|
||||
private static final int MSG_PROGRESS_ON = 1;
|
||||
private static final int MSG_PROGRESS_OFF = 2;
|
||||
@ -143,36 +143,36 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
@Override
|
||||
public void handleMessage(android.os.Message msg) {
|
||||
switch (msg.what) {
|
||||
case MSG_PROGRESS_ON:
|
||||
setProgressBarIndeterminateVisibility(true);
|
||||
break;
|
||||
case MSG_PROGRESS_OFF:
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
break;
|
||||
case MSG_UPDATE_TITLE:
|
||||
updateTitle();
|
||||
break;
|
||||
case MSG_SKIPPED_ATTACHMENTS:
|
||||
Toast.makeText(
|
||||
MessageCompose.this,
|
||||
getString(R.string.message_compose_attachments_skipped_toast),
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case MSG_SAVED_DRAFT:
|
||||
Toast.makeText(
|
||||
MessageCompose.this,
|
||||
getString(R.string.message_saved_toast),
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case MSG_DISCARDED_DRAFT:
|
||||
Toast.makeText(
|
||||
MessageCompose.this,
|
||||
getString(R.string.message_discarded_toast),
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
default:
|
||||
super.handleMessage(msg);
|
||||
break;
|
||||
case MSG_PROGRESS_ON:
|
||||
setProgressBarIndeterminateVisibility(true);
|
||||
break;
|
||||
case MSG_PROGRESS_OFF:
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
break;
|
||||
case MSG_UPDATE_TITLE:
|
||||
updateTitle();
|
||||
break;
|
||||
case MSG_SKIPPED_ATTACHMENTS:
|
||||
Toast.makeText(
|
||||
MessageCompose.this,
|
||||
getString(R.string.message_compose_attachments_skipped_toast),
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case MSG_SAVED_DRAFT:
|
||||
Toast.makeText(
|
||||
MessageCompose.this,
|
||||
getString(R.string.message_saved_toast),
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
case MSG_DISCARDED_DRAFT:
|
||||
Toast.makeText(
|
||||
MessageCompose.this,
|
||||
getString(R.string.message_discarded_toast),
|
||||
Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
default:
|
||||
super.handleMessage(msg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -196,9 +196,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
* @param account
|
||||
*/
|
||||
public static void actionCompose(Context context, Account account) {
|
||||
Intent i = new Intent(context, MessageCompose.class);
|
||||
i.putExtra(EXTRA_ACCOUNT, account);
|
||||
context.startActivity(i);
|
||||
Intent i = new Intent(context, MessageCompose.class);
|
||||
i.putExtra(EXTRA_ACCOUNT, account);
|
||||
context.startActivity(i);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -210,18 +210,17 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
* @param replyAll
|
||||
*/
|
||||
public static void actionReply(
|
||||
Context context,
|
||||
Account account,
|
||||
Message message,
|
||||
boolean replyAll) {
|
||||
Context context,
|
||||
Account account,
|
||||
Message message,
|
||||
boolean replyAll) {
|
||||
Intent i = new Intent(context, MessageCompose.class);
|
||||
i.putExtra(EXTRA_ACCOUNT, account);
|
||||
i.putExtra(EXTRA_FOLDER, message.getFolder().getName());
|
||||
i.putExtra(EXTRA_MESSAGE, message.getUid());
|
||||
if (replyAll) {
|
||||
i.setAction(ACTION_REPLY_ALL);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
i.setAction(ACTION_REPLY);
|
||||
}
|
||||
context.startActivity(i);
|
||||
@ -289,10 +288,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
|
||||
TextWatcher watcher = new TextWatcher() {
|
||||
public void beforeTextChanged(CharSequence s, int start,
|
||||
int before, int after) { }
|
||||
int before, int after) { }
|
||||
|
||||
public void onTextChanged(CharSequence s, int start,
|
||||
int before, int count) {
|
||||
int before, int count) {
|
||||
mDraftNeedsSaving = true;
|
||||
}
|
||||
|
||||
@ -301,10 +300,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
|
||||
TextWatcher sigwatcher = new TextWatcher() {
|
||||
public void beforeTextChanged(CharSequence s, int start,
|
||||
int before, int after) { }
|
||||
int before, int after) { }
|
||||
|
||||
public void onTextChanged(CharSequence s, int start,
|
||||
int before, int count) {
|
||||
int before, int count) {
|
||||
mDraftNeedsSaving = true;
|
||||
mSignatureChanged = true;
|
||||
}
|
||||
@ -379,16 +378,14 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
Address[] addresses = Address.parse(uri.getSchemeSpecificPart());
|
||||
addAddresses(mToView, addresses);
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
/*
|
||||
* If we can't extract any information from the URI it's okay. They can
|
||||
* still compose a message.
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Intent.ACTION_SEND.equals(action)) {
|
||||
} else if (Intent.ACTION_SEND.equals(action)) {
|
||||
/*
|
||||
* Someone is trying to compose an email with an attachment, probably Pictures.
|
||||
* The Intent should contain an EXTRA_STREAM with the data to attach.
|
||||
@ -408,11 +405,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
|
||||
String text = intent.getStringExtra(Intent.EXTRA_TEXT);
|
||||
if (text != null) {
|
||||
mMessageContentView.setText(text);
|
||||
mMessageContentView.setText(text);
|
||||
}
|
||||
String subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
|
||||
if (subject != null) {
|
||||
mSubjectView.setText(subject);
|
||||
mSubjectView.setText(subject);
|
||||
}
|
||||
|
||||
String type = intent.getType();
|
||||
@ -475,18 +472,14 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
mSourceMessageUid = (String) intent.getStringExtra(EXTRA_MESSAGE);
|
||||
}
|
||||
|
||||
if (mIdentity == null)
|
||||
{
|
||||
mIdentity = mAccount.getIdentity(0);
|
||||
if (mIdentity == null) {
|
||||
mIdentity = mAccount.getIdentity(0);
|
||||
}
|
||||
|
||||
if (mAccount.isSignatureBeforeQuotedText())
|
||||
{
|
||||
if (mAccount.isSignatureBeforeQuotedText()) {
|
||||
mSignatureView = upperSignature;
|
||||
lowerSignature.setVisibility(View.GONE);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
mSignatureView = lowerSignature;
|
||||
upperSignature.setVisibility(View.GONE);
|
||||
}
|
||||
@ -510,16 +503,16 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
if (!ACTION_EDIT_DRAFT.equals(action)) {
|
||||
String bccAddress = mAccount.getAlwaysBcc();
|
||||
if (bccAddress!=null
|
||||
&& !"".equals(bccAddress)) {
|
||||
&& !"".equals(bccAddress)) {
|
||||
addAddress(mBccView, new Address(mAccount.getAlwaysBcc(), ""));
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(Email.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) {
|
||||
Log.d(Email.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
|
||||
// message info along with a Draft copy, in case it is left in Drafts for a while before being sent
|
||||
Log.d(Email.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
|
||||
// message info along with a Draft copy, in case it is left in Drafts for a while before being sent
|
||||
MessagingController.getInstance(getApplication()).setMessageFlag(mAccount, mFolder, mSourceMessageUid, Flag.ANSWERED, true);
|
||||
}
|
||||
|
||||
@ -640,11 +633,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
message.setHeader("X-User-Agent", getString(R.string.message_header_mua));
|
||||
|
||||
if (mInReplyTo != null) {
|
||||
message.setInReplyTo(mInReplyTo);
|
||||
message.setInReplyTo(mInReplyTo);
|
||||
}
|
||||
|
||||
if (mReferences != null) {
|
||||
message.setReferences(mReferences);
|
||||
message.setReferences(mReferences);
|
||||
}
|
||||
|
||||
|
||||
@ -690,8 +683,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
}
|
||||
|
||||
message.setBody(mp);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
/*
|
||||
* No attachments to include, just stick the text body in the message and call
|
||||
* it good.
|
||||
@ -705,8 +697,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
private String appendSignature (String text) {
|
||||
String signature= mSignatureView.getText().toString();
|
||||
|
||||
if (signature != null && ! signature.contentEquals("")){
|
||||
text += "\n" + signature;
|
||||
if (signature != null && ! signature.contentEquals("")) {
|
||||
text += "\n" + signature;
|
||||
}
|
||||
|
||||
return text;
|
||||
@ -719,8 +711,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
MimeMessage message;
|
||||
try {
|
||||
message = createMessage(!save); // Only append sig on save
|
||||
}
|
||||
catch (MessagingException me) {
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.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);
|
||||
}
|
||||
@ -731,8 +722,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
*/
|
||||
if (mDraftUid != null) {
|
||||
message.setUid(mDraftUid);
|
||||
}
|
||||
else if (ACTION_EDIT_DRAFT.equals(getIntent().getAction())) {
|
||||
} else if (ACTION_EDIT_DRAFT.equals(getIntent().getAction())) {
|
||||
/*
|
||||
* We're saving a previously saved draft, so update the new message's uid
|
||||
* to the old message's uid.
|
||||
@ -742,18 +732,16 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
|
||||
String k9identity = Utility.base64Encode("" + mMessageContentView.getText().toString().length());
|
||||
|
||||
if (mIdentityChanged || mSignatureChanged)
|
||||
{
|
||||
String signature = mSignatureView.getText().toString();
|
||||
k9identity += ":" + Utility.base64Encode(signature) ;
|
||||
if (mIdentityChanged)
|
||||
{
|
||||
if (mIdentityChanged || mSignatureChanged) {
|
||||
String signature = mSignatureView.getText().toString();
|
||||
k9identity += ":" + Utility.base64Encode(signature) ;
|
||||
if (mIdentityChanged) {
|
||||
|
||||
String name = mIdentity.getName();
|
||||
String email = mIdentity.getEmail();
|
||||
String name = mIdentity.getName();
|
||||
String email = mIdentity.getEmail();
|
||||
|
||||
k9identity += ":" + Utility.base64Encode(name) + ":" + Utility.base64Encode(email);
|
||||
}
|
||||
k9identity += ":" + Utility.base64Encode(name) + ":" + Utility.base64Encode(email);
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(Email.LOG_TAG, "Saving identity: " + k9identity);
|
||||
@ -766,8 +754,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
if ((getChangingConfigurations() & ActivityInfo.CONFIG_ORIENTATION) == 0) {
|
||||
mHandler.sendEmptyMessage(MSG_SAVED_DRAFT);
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
/*
|
||||
* Send the message
|
||||
* TODO Is it possible for us to be editing a draft with a null source message? Don't
|
||||
@ -817,8 +804,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
}
|
||||
}
|
||||
if (mDraftUid != null) {
|
||||
Message draftMessage = new MimeMessage();
|
||||
MessagingController.getInstance(getApplication()).deleteMessage( mAccount, mAccount.getDraftsFolderName(), draftMessage, null);
|
||||
Message draftMessage = new MimeMessage();
|
||||
MessagingController.getInstance(getApplication()).deleteMessage( mAccount, mAccount.getDraftsFolderName(), draftMessage, null);
|
||||
}
|
||||
mHandler.sendEmptyMessage(MSG_DISCARDED_DRAFT);
|
||||
mDraftNeedsSaving = false;
|
||||
@ -859,7 +846,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
attachment.uri = uri;
|
||||
|
||||
if (attachment.size == -1 || attachment.name == null) {
|
||||
Cursor metadataCursor = contentResolver.query( uri, new String[]{ OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE }, null, null, null);
|
||||
Cursor metadataCursor = contentResolver.query( uri, new String[] { OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE }, null, null, null);
|
||||
if (metadataCursor != null) {
|
||||
try {
|
||||
if (metadataCursor.moveToFirst()) {
|
||||
@ -916,31 +903,29 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if(resultCode != RESULT_OK)
|
||||
return;
|
||||
if (resultCode != RESULT_OK)
|
||||
return;
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
switch(requestCode) {
|
||||
switch (requestCode) {
|
||||
case ACTIVITY_REQUEST_PICK_ATTACHMENT:
|
||||
|
||||
addAttachment(data.getData());
|
||||
mDraftNeedsSaving = true;
|
||||
break;
|
||||
addAttachment(data.getData());
|
||||
mDraftNeedsSaving = true;
|
||||
break;
|
||||
case ACTIVITY_CHOOSE_IDENTITY:
|
||||
onIdentityChosen(data);
|
||||
break;
|
||||
}
|
||||
onIdentityChosen(data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void onIdentityChosen(Intent intent)
|
||||
{
|
||||
Bundle bundle = intent.getExtras();;
|
||||
switchToIdentity( (Account.Identity)bundle.getSerializable(ChooseIdentity.EXTRA_IDENTITY));
|
||||
private void onIdentityChosen(Intent intent) {
|
||||
Bundle bundle = intent.getExtras();;
|
||||
switchToIdentity( (Account.Identity)bundle.getSerializable(ChooseIdentity.EXTRA_IDENTITY));
|
||||
}
|
||||
|
||||
private void switchToIdentity(Account.Identity identity)
|
||||
{
|
||||
private void switchToIdentity(Account.Identity identity) {
|
||||
mIdentity = identity;
|
||||
mIdentityChanged = true;
|
||||
mDraftNeedsSaving = true;
|
||||
@ -948,77 +933,70 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
updateSignature();
|
||||
}
|
||||
|
||||
private void updateFrom()
|
||||
{
|
||||
if (mIdentityChanged)
|
||||
{
|
||||
mFromView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mFromView.setText(getString(R.string.message_view_from_format, mIdentity.getName(), mIdentity.getEmail()));
|
||||
private void updateFrom() {
|
||||
if (mIdentityChanged) {
|
||||
mFromView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mFromView.setText(getString(R.string.message_view_from_format, mIdentity.getName(), mIdentity.getEmail()));
|
||||
}
|
||||
|
||||
private void updateSignature()
|
||||
{
|
||||
mSignatureView.setText(mIdentity.getSignature());
|
||||
private void updateSignature() {
|
||||
mSignatureView.setText(mIdentity.getSignature());
|
||||
}
|
||||
|
||||
public void onClick(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.attachment_delete:
|
||||
/*
|
||||
* The view is the delete button, and we have previously set the tag of
|
||||
* the delete button to the view that owns it. We don't use parent because the
|
||||
* view is very complex and could change in the future.
|
||||
*/
|
||||
mAttachments.removeView((View) view.getTag());
|
||||
mDraftNeedsSaving = true;
|
||||
break;
|
||||
case R.id.quoted_text_delete:
|
||||
mQuotedTextBar.setVisibility(View.GONE);
|
||||
mQuotedText.setVisibility(View.GONE);
|
||||
mDraftNeedsSaving = true;
|
||||
break;
|
||||
case R.id.attachment_delete:
|
||||
/*
|
||||
* The view is the delete button, and we have previously set the tag of
|
||||
* the delete button to the view that owns it. We don't use parent because the
|
||||
* view is very complex and could change in the future.
|
||||
*/
|
||||
mAttachments.removeView((View) view.getTag());
|
||||
mDraftNeedsSaving = true;
|
||||
break;
|
||||
case R.id.quoted_text_delete:
|
||||
mQuotedTextBar.setVisibility(View.GONE);
|
||||
mQuotedText.setVisibility(View.GONE);
|
||||
mDraftNeedsSaving = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.send:
|
||||
onSend();
|
||||
break;
|
||||
case R.id.save:
|
||||
onSave();
|
||||
break;
|
||||
case R.id.discard:
|
||||
onDiscard();
|
||||
break;
|
||||
case R.id.add_cc_bcc:
|
||||
onAddCcBcc();
|
||||
break;
|
||||
case R.id.add_attachment:
|
||||
onAddAttachment();
|
||||
break;
|
||||
case R.id.choose_identity:
|
||||
onChooseIdentity();
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
case R.id.send:
|
||||
onSend();
|
||||
break;
|
||||
case R.id.save:
|
||||
onSave();
|
||||
break;
|
||||
case R.id.discard:
|
||||
onDiscard();
|
||||
break;
|
||||
case R.id.add_cc_bcc:
|
||||
onAddCcBcc();
|
||||
break;
|
||||
case R.id.add_attachment:
|
||||
onAddAttachment();
|
||||
break;
|
||||
case R.id.choose_identity:
|
||||
onChooseIdentity();
|
||||
break;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void onChooseIdentity()
|
||||
{
|
||||
if (mAccount.getIdentities().size() > 1)
|
||||
{
|
||||
Intent intent = new Intent(this, ChooseIdentity.class);
|
||||
intent.putExtra(ChooseIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
startActivityForResult(intent, ACTIVITY_CHOOSE_IDENTITY);
|
||||
}
|
||||
else
|
||||
{
|
||||
private void onChooseIdentity() {
|
||||
if (mAccount.getIdentities().size() > 1) {
|
||||
Intent intent = new Intent(this, ChooseIdentity.class);
|
||||
intent.putExtra(ChooseIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
startActivityForResult(intent, ACTIVITY_CHOOSE_IDENTITY);
|
||||
} else {
|
||||
Toast.makeText(this, getString(R.string.no_identities),
|
||||
Toast.LENGTH_LONG).show();
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1054,8 +1032,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
addAttachment(uri);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1074,8 +1051,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
try {
|
||||
if (message.getSubject() != null && !message.getSubject().toLowerCase().startsWith("re:")) {
|
||||
mSubjectView.setText("Re: " + message.getSubject());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
mSubjectView.setText(message.getSubject());
|
||||
}
|
||||
/*
|
||||
@ -1085,37 +1061,34 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
Address[] replyToAddresses;
|
||||
if (message.getReplyTo().length > 0) {
|
||||
addAddresses(mToView, replyToAddresses = message.getReplyTo());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
addAddresses(mToView, replyToAddresses = message.getFrom());
|
||||
}
|
||||
|
||||
if (message.getMessageId() != null && message.getMessageId().length() > 0) {
|
||||
String messageId = message.getMessageId();
|
||||
mInReplyTo = messageId;
|
||||
String messageId = message.getMessageId();
|
||||
mInReplyTo = messageId;
|
||||
|
||||
if (message.getReferences() != null && message.getReferences().length > 0) {
|
||||
StringBuffer buffy = new StringBuffer();
|
||||
for (int i=0; i < message.getReferences().length; i++)
|
||||
buffy.append(message.getReferences()[i]);
|
||||
StringBuffer buffy = new StringBuffer();
|
||||
for (int i=0; i < message.getReferences().length; i++)
|
||||
buffy.append(message.getReferences()[i]);
|
||||
|
||||
mReferences = buffy.toString() + " " + mInReplyTo;
|
||||
}
|
||||
else {
|
||||
mReferences = mInReplyTo;
|
||||
mReferences = buffy.toString() + " " + mInReplyTo;
|
||||
} else {
|
||||
mReferences = mInReplyTo;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
Log.d(Email.LOG_TAG, "could not get Message-ID.");
|
||||
} else {
|
||||
Log.d(Email.LOG_TAG, "could not get Message-ID.");
|
||||
}
|
||||
|
||||
Part part = MimeUtility.findFirstPartByMimeType(mSourceMessage,
|
||||
"text/plain");
|
||||
"text/plain");
|
||||
if (part != null) {
|
||||
String quotedText = String.format(
|
||||
getString(R.string.message_compose_reply_header_fmt),
|
||||
Address.toString(mSourceMessage.getFrom()));
|
||||
getString(R.string.message_compose_reply_header_fmt),
|
||||
Address.toString(mSourceMessage.getFrom()));
|
||||
|
||||
quotedText += MimeUtility.getTextFromPart(part).replaceAll("(?m)^", ">");
|
||||
mQuotedText.setText(quotedText);
|
||||
@ -1124,8 +1097,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
mQuotedText.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (ACTION_REPLY_ALL.equals(action) || ACTION_REPLY.equals(action))
|
||||
{
|
||||
if (ACTION_REPLY_ALL.equals(action) || ACTION_REPLY.equals(action)) {
|
||||
Account.Identity useIdentity = null;
|
||||
for (Address address : message.getRecipients(RecipientType.TO)) {
|
||||
Account.Identity identity = mAccount.findIdentity(address);
|
||||
@ -1134,8 +1106,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (useIdentity == null)
|
||||
{
|
||||
if (useIdentity == null) {
|
||||
if (message.getRecipients(RecipientType.CC).length > 0) {
|
||||
for (Address address : message.getRecipients(RecipientType.CC)) {
|
||||
Account.Identity identity = mAccount.findIdentity(address);
|
||||
@ -1146,11 +1117,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
}
|
||||
}
|
||||
}
|
||||
if (useIdentity != null)
|
||||
{
|
||||
if (useIdentity != null) {
|
||||
Account.Identity defaultIdentity = mAccount.getIdentity(0);
|
||||
if (useIdentity != defaultIdentity)
|
||||
{
|
||||
if (useIdentity != defaultIdentity) {
|
||||
switchToIdentity(useIdentity);
|
||||
}
|
||||
}
|
||||
@ -1174,20 +1143,17 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
mCcView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (MessagingException me) {
|
||||
} catch (MessagingException me) {
|
||||
/*
|
||||
* This really should not happen at this point but if it does it's okay.
|
||||
* The user can continue composing their message.
|
||||
*/
|
||||
}
|
||||
}
|
||||
else if (ACTION_FORWARD.equals(action)) {
|
||||
} else if (ACTION_FORWARD.equals(action)) {
|
||||
try {
|
||||
if (message.getSubject() != null && !message.getSubject().toLowerCase().startsWith("fwd:")) {
|
||||
mSubjectView.setText("Fwd: " + message.getSubject());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
mSubjectView.setText(message.getSubject());
|
||||
}
|
||||
Part part = MimeUtility.findFirstPartByMimeType(message, "text/plain");
|
||||
@ -1198,13 +1164,13 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
String quotedText = MimeUtility.getTextFromPart(part);
|
||||
if (quotedText != null) {
|
||||
String text = String.format(
|
||||
getString(R.string.message_compose_fwd_header_fmt),
|
||||
mSourceMessage.getSubject(),
|
||||
Address.toString(mSourceMessage.getFrom()),
|
||||
Address.toString(
|
||||
mSourceMessage.getRecipients(RecipientType.TO)),
|
||||
Address.toString(
|
||||
mSourceMessage.getRecipients(RecipientType.CC)));
|
||||
getString(R.string.message_compose_fwd_header_fmt),
|
||||
mSourceMessage.getSubject(),
|
||||
Address.toString(mSourceMessage.getFrom()),
|
||||
Address.toString(
|
||||
mSourceMessage.getRecipients(RecipientType.TO)),
|
||||
Address.toString(
|
||||
mSourceMessage.getRecipients(RecipientType.CC)));
|
||||
|
||||
text += quotedText;
|
||||
mQuotedText.setText(text);
|
||||
@ -1217,15 +1183,13 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
mHandler.sendEmptyMessage(MSG_SKIPPED_ATTACHMENTS);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (MessagingException me) {
|
||||
} catch (MessagingException me) {
|
||||
/*
|
||||
* This really should not happen at this point but if it does it's okay.
|
||||
* The user can continue composing their message.
|
||||
*/
|
||||
}
|
||||
}
|
||||
else if (ACTION_EDIT_DRAFT.equals(action)) {
|
||||
} else if (ACTION_EDIT_DRAFT.equals(action)) {
|
||||
try {
|
||||
mSubjectView.setText(message.getSubject());
|
||||
addAddresses(mToView, message.getRecipients(RecipientType.TO));
|
||||
@ -1243,87 +1207,68 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
}
|
||||
Integer bodyLength = null;
|
||||
String[] k9identities = message.getHeader(Email.K9MAIL_IDENTITY);
|
||||
if (k9identities != null && k9identities.length > 0)
|
||||
{
|
||||
String k9identity = k9identities[0];
|
||||
if (k9identities != null && k9identities.length > 0) {
|
||||
String k9identity = k9identities[0];
|
||||
|
||||
if (k9identity != null)
|
||||
{
|
||||
Log.d(Email.LOG_TAG, "Got a saved identity: " + k9identity);
|
||||
StringTokenizer tokens = new StringTokenizer(k9identity, ":", false);
|
||||
if (k9identity != null) {
|
||||
Log.d(Email.LOG_TAG, "Got a saved identity: " + k9identity);
|
||||
StringTokenizer tokens = new StringTokenizer(k9identity, ":", false);
|
||||
|
||||
String bodyLengthS = null;
|
||||
String name = null;
|
||||
String email = null;
|
||||
String signature = null;
|
||||
if (tokens.hasMoreTokens())
|
||||
{
|
||||
bodyLengthS = Utility.base64Decode(tokens.nextToken());
|
||||
try
|
||||
{
|
||||
bodyLength = Integer.parseInt(bodyLengthS);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.e(Email.LOG_TAG, "Unable to parse bodyLength '" + bodyLengthS + "'");
|
||||
}
|
||||
}
|
||||
if (tokens.hasMoreTokens())
|
||||
{
|
||||
signature = Utility.base64Decode(tokens.nextToken());
|
||||
}
|
||||
if (tokens.hasMoreTokens())
|
||||
{
|
||||
name = Utility.base64Decode(tokens.nextToken());
|
||||
}
|
||||
if (tokens.hasMoreTokens())
|
||||
{
|
||||
email = Utility.base64Decode(tokens.nextToken());
|
||||
}
|
||||
String bodyLengthS = null;
|
||||
String name = null;
|
||||
String email = null;
|
||||
String signature = null;
|
||||
if (tokens.hasMoreTokens()) {
|
||||
bodyLengthS = Utility.base64Decode(tokens.nextToken());
|
||||
try {
|
||||
bodyLength = Integer.parseInt(bodyLengthS);
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Unable to parse bodyLength '" + bodyLengthS + "'");
|
||||
}
|
||||
}
|
||||
if (tokens.hasMoreTokens()) {
|
||||
signature = Utility.base64Decode(tokens.nextToken());
|
||||
}
|
||||
if (tokens.hasMoreTokens()) {
|
||||
name = Utility.base64Decode(tokens.nextToken());
|
||||
}
|
||||
if (tokens.hasMoreTokens()) {
|
||||
email = Utility.base64Decode(tokens.nextToken());
|
||||
}
|
||||
|
||||
Account.Identity newIdentity= mAccount.new Identity();
|
||||
if (signature != null)
|
||||
{
|
||||
newIdentity.setSignature(signature);
|
||||
mSignatureChanged = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
newIdentity.setSignature(mIdentity.getSignature());
|
||||
}
|
||||
Account.Identity newIdentity= mAccount.new Identity();
|
||||
if (signature != null) {
|
||||
newIdentity.setSignature(signature);
|
||||
mSignatureChanged = true;
|
||||
} else {
|
||||
newIdentity.setSignature(mIdentity.getSignature());
|
||||
}
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
newIdentity.setName(name);
|
||||
mIdentityChanged = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
newIdentity.setName(mIdentity.getName());
|
||||
}
|
||||
if (name != null) {
|
||||
newIdentity.setName(name);
|
||||
mIdentityChanged = true;
|
||||
} else {
|
||||
newIdentity.setName(mIdentity.getName());
|
||||
}
|
||||
|
||||
if (email != null) {
|
||||
newIdentity.setEmail(email);
|
||||
mIdentityChanged = true;
|
||||
} else {
|
||||
newIdentity.setEmail(mIdentity.getEmail());
|
||||
}
|
||||
|
||||
mIdentity = newIdentity;
|
||||
|
||||
updateSignature();
|
||||
updateFrom();
|
||||
|
||||
if (email != null)
|
||||
{
|
||||
newIdentity.setEmail(email);
|
||||
mIdentityChanged = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
newIdentity.setEmail(mIdentity.getEmail());
|
||||
}
|
||||
|
||||
mIdentity = newIdentity;
|
||||
|
||||
updateSignature();
|
||||
updateFrom();
|
||||
|
||||
}
|
||||
}
|
||||
Part part = MimeUtility.findFirstPartByMimeType(message, "text/plain");
|
||||
if (part != null) {
|
||||
String text = MimeUtility.getTextFromPart(part);
|
||||
if (bodyLength != null && bodyLength + 1 < text.length()) // + 1 to get rid of the newline we added when saving the draft
|
||||
{
|
||||
if (bodyLength != null && bodyLength + 1 < text.length()) { // + 1 to get rid of the newline we added when saving the draft
|
||||
String bodyText = text.substring(0, bodyLength);
|
||||
String quotedText = text.substring(bodyLength + 1, text.length());
|
||||
|
||||
@ -1332,14 +1277,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
|
||||
mQuotedTextBar.setVisibility(View.VISIBLE);
|
||||
mQuotedText.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mMessageContentView.setText(text);
|
||||
}
|
||||
else
|
||||
{
|
||||
mMessageContentView.setText(text);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (MessagingException me) {
|
||||
} catch (MessagingException me) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
@ -1351,7 +1293,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
@Override
|
||||
public void loadMessageForViewStarted(Account account, String folder, String uid) {
|
||||
if (mSourceMessageUid==null
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1361,7 +1303,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
@Override
|
||||
public void loadMessageForViewFinished(Account account, String folder, String uid, Message message) {
|
||||
if (mSourceMessageUid==null
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1371,7 +1313,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
@Override
|
||||
public void loadMessageForViewBodyAvailable(Account account, String folder, String uid, final Message message) {
|
||||
if (mSourceMessageUid==null
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1386,7 +1328,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
|
||||
@Override
|
||||
public void loadMessageForViewFailed(Account account, String folder, String uid, Throwable t) {
|
||||
if (mSourceMessageUid==null
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
|| !mSourceMessageUid.equals(uid)) {
|
||||
return;
|
||||
}
|
||||
mHandler.sendEmptyMessage(MSG_PROGRESS_OFF);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -16,7 +16,7 @@ public interface ProgressListener {
|
||||
* @param indeterminate
|
||||
*/
|
||||
void showProgress(Context context, String title, String message, long currentProgress,
|
||||
long maxProgress, boolean indeterminate);
|
||||
long maxProgress, boolean indeterminate);
|
||||
|
||||
/**
|
||||
* @param context
|
||||
@ -27,7 +27,7 @@ public interface ProgressListener {
|
||||
* @param indeterminate
|
||||
*/
|
||||
void updateProgress(Context context, String title, String message, long currentProgress,
|
||||
long maxProgress, boolean indeterminate);
|
||||
long maxProgress, boolean indeterminate);
|
||||
|
||||
/**
|
||||
* @param context
|
||||
|
@ -4,23 +4,18 @@ import android.content.Context;
|
||||
|
||||
import com.android.email.R;
|
||||
|
||||
public class SizeFormatter
|
||||
{
|
||||
public static String formatSize(Context context, long size)
|
||||
{
|
||||
if (size > 1024000000)
|
||||
{
|
||||
return ((float)(size / 102400000) / 10) + context.getString(R.string.abbrev_gigabytes);
|
||||
public class SizeFormatter {
|
||||
public static String formatSize(Context context, long size) {
|
||||
if (size > 1024000000) {
|
||||
return ((float)(size / 102400000) / 10) + context.getString(R.string.abbrev_gigabytes);
|
||||
}
|
||||
if (size > 1024000) {
|
||||
return ((float)(size / 102400) / 10) + context.getString(R.string.abbrev_megabytes);
|
||||
}
|
||||
if (size > 1024) {
|
||||
return ((float)(size / 102) / 10) + context.getString(R.string.abbrev_kilobytes);
|
||||
}
|
||||
return size + context.getString(R.string.abbrev_bytes);
|
||||
}
|
||||
if (size > 1024000)
|
||||
{
|
||||
return ((float)(size / 102400) / 10) + context.getString(R.string.abbrev_megabytes);
|
||||
}
|
||||
if (size > 1024)
|
||||
{
|
||||
return ((float)(size / 102) / 10) + context.getString(R.string.abbrev_kilobytes);
|
||||
}
|
||||
return size + context.getString(R.string.abbrev_bytes);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -88,13 +88,10 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
|
||||
boolean isPushCapable = false;
|
||||
Store store = null;
|
||||
try
|
||||
{
|
||||
try {
|
||||
store = Store.getInstance(mAccount.getStoreUri(), getApplication());
|
||||
isPushCapable = store.isPushCapable();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Could not get remote store", e);
|
||||
}
|
||||
|
||||
@ -210,7 +207,7 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
|
||||
mAccountDefault = (CheckBoxPreference) findPreference(PREFERENCE_DEFAULT);
|
||||
mAccountDefault.setChecked(
|
||||
mAccount.equals(Preferences.getPreferences(this).getDefaultAccount()));
|
||||
mAccount.equals(Preferences.getPreferences(this).getDefaultAccount()));
|
||||
|
||||
mAccountHideButtons = (ListPreference) findPreference(PREFERENCE_HIDE_BUTTONS);
|
||||
mAccountHideButtons.setValue("" + mAccount.getHideMessageViewButtons());
|
||||
@ -246,44 +243,44 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
mAutoExpandFolder.setSummary(translateFolder(mAccount.getAutoExpandFolderName()));
|
||||
|
||||
mAutoExpandFolder.setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onChooseAutoExpandFolder();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
findPreference(PREFERENCE_COMPOSITION).setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onCompositionSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onCompositionSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
findPreference(PREFERENCE_MANAGE_IDENTITIES).setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onManageIdentities();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onManageIdentities();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
findPreference(PREFERENCE_INCOMING).setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onIncomingSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onIncomingSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
findPreference(PREFERENCE_OUTGOING).setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onOutgoingSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onOutgoingSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -319,11 +316,11 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (resultCode == RESULT_OK) {
|
||||
switch (requestCode) {
|
||||
case SELECT_AUTO_EXPAND_FOLDER:
|
||||
mAutoExpandFolder.setSummary(translateFolder(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER)));
|
||||
break;
|
||||
}
|
||||
switch (requestCode) {
|
||||
case SELECT_AUTO_EXPAND_FOLDER:
|
||||
mAutoExpandFolder.setSummary(translateFolder(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
@ -341,10 +338,10 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
}
|
||||
|
||||
private void onManageIdentities() {
|
||||
Intent intent = new Intent(this, ManageIdentities.class);
|
||||
intent.putExtra(ChooseIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
startActivityForResult(intent, ACTIVITY_MANAGE_IDENTITIES);
|
||||
}
|
||||
Intent intent = new Intent(this, ManageIdentities.class);
|
||||
intent.putExtra(ChooseIdentity.EXTRA_ACCOUNT, mAccount);
|
||||
startActivityForResult(intent, ACTIVITY_MANAGE_IDENTITIES);
|
||||
}
|
||||
|
||||
private void onIncomingSettings() {
|
||||
AccountSetupIncoming.actionEditIncomingSettings(this, mAccount);
|
||||
@ -354,8 +351,7 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
AccountSetupOutgoing.actionEditOutgoingSettings(this, mAccount);
|
||||
}
|
||||
|
||||
public void onChooseAutoExpandFolder()
|
||||
{
|
||||
public void onChooseAutoExpandFolder() {
|
||||
Intent selectIntent = new Intent(this, ChooseFolder.class);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_ACCOUNT, mAccount);
|
||||
|
||||
@ -363,34 +359,26 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_SHOW_CURRENT, "yes");
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_SHOW_FOLDER_NONE, "yes");
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_SHOW_DISPLAYABLE_ONLY, "yes");
|
||||
startActivityForResult(selectIntent, SELECT_AUTO_EXPAND_FOLDER);
|
||||
startActivityForResult(selectIntent, SELECT_AUTO_EXPAND_FOLDER);
|
||||
|
||||
}
|
||||
|
||||
private String translateFolder(String in)
|
||||
{
|
||||
private String translateFolder(String in) {
|
||||
|
||||
if (Email.INBOX.equalsIgnoreCase(in))
|
||||
{
|
||||
return getString(R.string.special_mailbox_name_inbox);
|
||||
}
|
||||
else
|
||||
{
|
||||
return in;
|
||||
}
|
||||
if (Email.INBOX.equalsIgnoreCase(in)) {
|
||||
return getString(R.string.special_mailbox_name_inbox);
|
||||
} else {
|
||||
return in;
|
||||
}
|
||||
}
|
||||
|
||||
private String reverseTranslateFolder(String in)
|
||||
{
|
||||
private String reverseTranslateFolder(String in) {
|
||||
|
||||
if (getString(R.string.special_mailbox_name_inbox).equals(in))
|
||||
{
|
||||
return Email.INBOX;
|
||||
}
|
||||
else
|
||||
{
|
||||
return in;
|
||||
}
|
||||
if (getString(R.string.special_mailbox_name_inbox).equals(in)) {
|
||||
return Email.INBOX;
|
||||
} else {
|
||||
return in;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -93,19 +93,18 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen
|
||||
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.pop:
|
||||
onPop();
|
||||
break;
|
||||
case R.id.imap:
|
||||
onImap();
|
||||
break;
|
||||
case R.id.webdav:
|
||||
onWebDav();
|
||||
break;
|
||||
case R.id.pop:
|
||||
onPop();
|
||||
break;
|
||||
case R.id.imap:
|
||||
onImap();
|
||||
break;
|
||||
case R.id.webdav:
|
||||
onWebDav();
|
||||
break;
|
||||
}
|
||||
}
|
||||
private void failure(Exception use)
|
||||
{
|
||||
private void failure(Exception use) {
|
||||
Log.e(Email.LOG_TAG, "Failure", use);
|
||||
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
||||
|
||||
|
@ -42,7 +42,7 @@ import com.android.email.Utility;
|
||||
* AccountSetupAccountType activity.
|
||||
*/
|
||||
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 int DIALOG_NOTE = 1;
|
||||
private final static String STATE_KEY_PROVIDER =
|
||||
@ -122,9 +122,9 @@ public class AccountSetupBasics extends K9Activity
|
||||
private void validateFields() {
|
||||
String email = mEmailView.getText().toString();
|
||||
boolean valid = Utility.requiredFieldValid(mEmailView)
|
||||
&& Utility.requiredFieldValid(mPasswordView)
|
||||
&& mEmailValidator.isValid(email);
|
||||
/*&& email.contains("@"); */ // Not sure if this is a good idea or not
|
||||
&& Utility.requiredFieldValid(mPasswordView)
|
||||
&& mEmailValidator.isValid(email);
|
||||
/*&& email.contains("@"); */ // Not sure if this is a good idea or not
|
||||
mNextButton.setEnabled(valid);
|
||||
mManualSetupButton.setEnabled(valid);
|
||||
/*
|
||||
@ -137,32 +137,26 @@ public class AccountSetupBasics extends K9Activity
|
||||
|
||||
private String getOwnerName() {
|
||||
String name = null;
|
||||
try
|
||||
{
|
||||
try {
|
||||
String projection[] = {
|
||||
ContactMethods.NAME
|
||||
};
|
||||
Cursor c = getContentResolver().query(
|
||||
// TODO: For Android 2.0, needs to change to ContactsContract.People...
|
||||
Uri.withAppendedPath(Contacts.People.CONTENT_URI, "owner"), projection, null, null,
|
||||
null);
|
||||
// TODO: For Android 2.0, needs to change to ContactsContract.People...
|
||||
Uri.withAppendedPath(Contacts.People.CONTENT_URI, "owner"), projection, null, null,
|
||||
null);
|
||||
if (c.getCount() > 0) {
|
||||
c.moveToFirst();
|
||||
name = c.getString(0);
|
||||
c.close();
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Could not get owner name, using default account name", e);
|
||||
}
|
||||
if (name == null || name.length() == 0) {
|
||||
try
|
||||
{
|
||||
try {
|
||||
name = getDefaultAccountName();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Could not get default account name", e);
|
||||
}
|
||||
}
|
||||
@ -172,8 +166,7 @@ public class AccountSetupBasics extends K9Activity
|
||||
return name;
|
||||
}
|
||||
|
||||
private String getDefaultAccountName()
|
||||
{
|
||||
private String getDefaultAccountName() {
|
||||
String name = null;
|
||||
Account account = Preferences.getPreferences(this).getDefaultAccount();
|
||||
if (account != null) {
|
||||
@ -187,18 +180,18 @@ public class AccountSetupBasics extends K9Activity
|
||||
if (id == DIALOG_NOTE) {
|
||||
if (mProvider != null && mProvider.note != null) {
|
||||
return new AlertDialog.Builder(this)
|
||||
.setMessage(mProvider.note)
|
||||
.setPositiveButton(
|
||||
getString(R.string.okay_action),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finishAutoSetup();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(
|
||||
getString(R.string.cancel_action),
|
||||
null)
|
||||
.create();
|
||||
.setMessage(mProvider.note)
|
||||
.setPositiveButton(
|
||||
getString(R.string.okay_action),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finishAutoSetup();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(
|
||||
getString(R.string.cancel_action),
|
||||
null)
|
||||
.create();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -220,8 +213,8 @@ public class AccountSetupBasics extends K9Activity
|
||||
|
||||
URI incomingUriTemplate = mProvider.incomingUriTemplate;
|
||||
incomingUri = new URI(incomingUriTemplate.getScheme(), incomingUsername + ":"
|
||||
+ password, incomingUriTemplate.getHost(), incomingUriTemplate.getPort(), null,
|
||||
null, null);
|
||||
+ password, incomingUriTemplate.getHost(), incomingUriTemplate.getPort(), null,
|
||||
null, null);
|
||||
|
||||
String outgoingUsername = mProvider.outgoingUsernameTemplate;
|
||||
outgoingUsername = outgoingUsername.replaceAll("\\$email", email);
|
||||
@ -230,8 +223,8 @@ public class AccountSetupBasics extends K9Activity
|
||||
|
||||
URI outgoingUriTemplate = mProvider.outgoingUriTemplate;
|
||||
outgoingUri = new URI(outgoingUriTemplate.getScheme(), outgoingUsername + ":"
|
||||
+ password, outgoingUriTemplate.getHost(), outgoingUriTemplate.getPort(), null,
|
||||
null, null);
|
||||
+ password, outgoingUriTemplate.getHost(), outgoingUriTemplate.getPort(), null,
|
||||
null, null);
|
||||
} catch (URISyntaxException use) {
|
||||
/*
|
||||
* If there is some problem with the URI we give up and go on to
|
||||
@ -271,8 +264,7 @@ public class AccountSetupBasics extends K9Activity
|
||||
|
||||
if (mProvider.note != null) {
|
||||
showDialog(DIALOG_NOTE);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
finishAutoSetup();
|
||||
}
|
||||
}
|
||||
@ -303,7 +295,7 @@ public class AccountSetupBasics extends K9Activity
|
||||
mAccount.setEmail(email);
|
||||
try {
|
||||
URI uri = new URI("placeholder", user + ":" + password, "mail." + domain, -1, null,
|
||||
null, null);
|
||||
null, null);
|
||||
mAccount.setStoreUri(uri.toString());
|
||||
mAccount.setTransportUri(uri.toString());
|
||||
} catch (URISyntaxException use) {
|
||||
@ -323,12 +315,12 @@ public class AccountSetupBasics extends K9Activity
|
||||
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.next:
|
||||
onNext();
|
||||
break;
|
||||
case R.id.manual_setup:
|
||||
onManualSetup();
|
||||
break;
|
||||
case R.id.next:
|
||||
onNext();
|
||||
break;
|
||||
case R.id.manual_setup:
|
||||
onManualSetup();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -343,8 +335,7 @@ public class AccountSetupBasics extends K9Activity
|
||||
int resId = xml.getAttributeResourceValue(null, name, 0);
|
||||
if (resId == 0) {
|
||||
return xml.getAttributeValue(null, name);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return getString(resId);
|
||||
}
|
||||
}
|
||||
@ -363,34 +354,29 @@ public class AccountSetupBasics extends K9Activity
|
||||
provider.label = getXmlAttribute(xml, "label");
|
||||
provider.domain = getXmlAttribute(xml, "domain");
|
||||
provider.note = getXmlAttribute(xml, "note");
|
||||
}
|
||||
else if (xmlEventType == XmlResourceParser.START_TAG
|
||||
&& "incoming".equals(xml.getName())
|
||||
&& provider != null) {
|
||||
} else if (xmlEventType == XmlResourceParser.START_TAG
|
||||
&& "incoming".equals(xml.getName())
|
||||
&& provider != null) {
|
||||
provider.incomingUriTemplate = new URI(getXmlAttribute(xml, "uri"));
|
||||
provider.incomingUsernameTemplate = getXmlAttribute(xml, "username");
|
||||
}
|
||||
else if (xmlEventType == XmlResourceParser.START_TAG
|
||||
&& "outgoing".equals(xml.getName())
|
||||
&& provider != null) {
|
||||
} else if (xmlEventType == XmlResourceParser.START_TAG
|
||||
&& "outgoing".equals(xml.getName())
|
||||
&& provider != null) {
|
||||
provider.outgoingUriTemplate = new URI(getXmlAttribute(xml, "uri"));
|
||||
provider.outgoingUsernameTemplate = getXmlAttribute(xml, "username");
|
||||
}
|
||||
else if (xmlEventType == XmlResourceParser.END_TAG
|
||||
&& "provider".equals(xml.getName())
|
||||
&& provider != null) {
|
||||
} else if (xmlEventType == XmlResourceParser.END_TAG
|
||||
&& "provider".equals(xml.getName())
|
||||
&& provider != null) {
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Error while trying to load provider settings.", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String[] splitEmail(String email)
|
||||
{
|
||||
private String[] splitEmail(String email) {
|
||||
String[] retParts = new String[2];
|
||||
String[] emailParts = email.split("@");
|
||||
retParts[0] = (emailParts.length > 0 ) ? emailParts[0] : "";
|
||||
|
@ -40,7 +40,7 @@ import com.android.email.mail.store.TrustManagerFactory;
|
||||
*/
|
||||
public class AccountSetupCheckSettings extends K9Activity implements OnClickListener {
|
||||
|
||||
public static final int ACTIVITY_REQUEST_CODE = 1;
|
||||
public static final int ACTIVITY_REQUEST_CODE = 1;
|
||||
|
||||
private static final String EXTRA_ACCOUNT = "account";
|
||||
|
||||
@ -65,7 +65,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
private boolean mDestroyed;
|
||||
|
||||
public static void actionCheckSettings(Activity context, Account account,
|
||||
boolean checkIncoming, boolean checkOutgoing) {
|
||||
boolean checkIncoming, boolean checkOutgoing) {
|
||||
Intent i = new Intent(context, AccountSetupCheckSettings.class);
|
||||
i.putExtra(EXTRA_ACCOUNT, account);
|
||||
i.putExtra(EXTRA_CHECK_INCOMING, checkIncoming);
|
||||
@ -90,7 +90,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
|
||||
new Thread() {
|
||||
public void run() {
|
||||
Store store = null;
|
||||
Store store = null;
|
||||
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
|
||||
try {
|
||||
if (mDestroyed) {
|
||||
@ -101,11 +101,11 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
return;
|
||||
}
|
||||
if (mCheckIncoming) {
|
||||
setMessage(R.string.account_setup_check_settings_check_incoming_msg);
|
||||
store = Store.getInstance(mAccount.getStoreUri(), getApplication());
|
||||
store.checkSettings();
|
||||
setMessage(R.string.account_setup_check_settings_check_incoming_msg);
|
||||
store = Store.getInstance(mAccount.getStoreUri(), getApplication());
|
||||
store.checkSettings();
|
||||
|
||||
MessagingController.getInstance(getApplication()).listFolders(mAccount, true, null);
|
||||
MessagingController.getInstance(getApplication()).listFolders(mAccount, true, null);
|
||||
MessagingController.getInstance(getApplication()).synchronizeMailbox( mAccount, Email.INBOX , null);
|
||||
|
||||
}
|
||||
@ -133,25 +133,26 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
} catch (final AuthenticationFailedException afe) {
|
||||
Log.e(Email.LOG_TAG, "Error while testing settings", afe);
|
||||
Log.e(Email.LOG_TAG, "Error while testing settings", afe);
|
||||
showErrorDialog(
|
||||
R.string.account_setup_failed_dlg_auth_message_fmt,
|
||||
afe.getMessage() == null ? "" : afe.getMessage());
|
||||
R.string.account_setup_failed_dlg_auth_message_fmt,
|
||||
afe.getMessage() == null ? "" : afe.getMessage());
|
||||
} catch (final CertificateValidationException cve) {
|
||||
Log.e(Email.LOG_TAG, "Error while testing settings", cve);
|
||||
acceptKeyDialog(
|
||||
R.string.account_setup_failed_dlg_certificate_message_fmt,
|
||||
cve);
|
||||
Log.e(Email.LOG_TAG, "Error while testing settings", cve);
|
||||
acceptKeyDialog(
|
||||
R.string.account_setup_failed_dlg_certificate_message_fmt,
|
||||
cve);
|
||||
} catch (final Throwable t) {
|
||||
Log.e(Email.LOG_TAG, "Error while testing settings", t);
|
||||
Log.e(Email.LOG_TAG, "Error while testing settings", t);
|
||||
showErrorDialog(
|
||||
R.string.account_setup_failed_dlg_server_message_fmt,
|
||||
(t.getMessage() == null ? "" : t.getMessage()));
|
||||
R.string.account_setup_failed_dlg_server_message_fmt,
|
||||
(t.getMessage() == null ? "" : t.getMessage()));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}.start();
|
||||
}
|
||||
.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -180,27 +181,27 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
}
|
||||
mProgressBar.setIndeterminate(false);
|
||||
new AlertDialog.Builder(AccountSetupCheckSettings.this)
|
||||
.setTitle(getString(R.string.account_setup_failed_dlg_title))
|
||||
.setMessage(getString(msgResId, args))
|
||||
.setCancelable(true)
|
||||
.setNegativeButton(
|
||||
getString(R.string.account_setup_failed_dlg_continue_action),
|
||||
.setTitle(getString(R.string.account_setup_failed_dlg_title))
|
||||
.setMessage(getString(msgResId, args))
|
||||
.setCancelable(true)
|
||||
.setNegativeButton(
|
||||
getString(R.string.account_setup_failed_dlg_continue_action),
|
||||
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
mCanceled=false;
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.setPositiveButton(
|
||||
getString(R.string.account_setup_failed_dlg_edit_details_action),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
mCanceled=false;
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.setPositiveButton(
|
||||
getString(R.string.account_setup_failed_dlg_edit_details_action),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -215,72 +216,71 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
|
||||
Exception ex = ((Exception)args[0]);
|
||||
if (ex != null) {
|
||||
if (ex.getCause() != null) {
|
||||
if (ex.getCause().getCause() != null) {
|
||||
exMessage = ex.getCause().getCause().getMessage();
|
||||
if (ex.getCause() != null) {
|
||||
if (ex.getCause().getCause() != null) {
|
||||
exMessage = ex.getCause().getCause().getMessage();
|
||||
|
||||
} else {
|
||||
exMessage = ex.getCause().getMessage();
|
||||
}
|
||||
} else {
|
||||
exMessage = ex.getMessage();
|
||||
}
|
||||
} else {
|
||||
exMessage = ex.getCause().getMessage();
|
||||
}
|
||||
} else {
|
||||
exMessage = ex.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
mProgressBar.setIndeterminate(false);
|
||||
StringBuffer chainInfo = new StringBuffer(100);
|
||||
for (int i = 0; i < chain.length; i++)
|
||||
{
|
||||
// display certificate chain information
|
||||
for (int i = 0; i < chain.length; i++) {
|
||||
// display certificate chain information
|
||||
chainInfo.append("Certificate chain[" + i + "]:\n");
|
||||
chainInfo.append("Subject: " + chain[i].getSubjectDN().toString() + "\n");
|
||||
chainInfo.append("Issuer: " + chain[i].getIssuerDN().toString() + "\n");
|
||||
}
|
||||
|
||||
new AlertDialog.Builder(AccountSetupCheckSettings.this)
|
||||
.setTitle(getString(R.string.account_setup_failed_dlg_invalid_certificate_title))
|
||||
//.setMessage(getString(R.string.account_setup_failed_dlg_invalid_certificate)
|
||||
.setMessage(getString(msgResId,exMessage)
|
||||
+ " " + chainInfo.toString()
|
||||
)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(
|
||||
getString(R.string.account_setup_failed_dlg_invalid_certificate_accept),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
try {
|
||||
String alias = mAccount.getUuid();
|
||||
if (mCheckIncoming) {
|
||||
alias = alias + ".incoming";
|
||||
}
|
||||
if (mCheckOutgoing) {
|
||||
alias = alias + ".outgoing";
|
||||
}
|
||||
TrustManagerFactory.addCertificateChain(alias, chain);
|
||||
} catch (CertificateException e) {
|
||||
showErrorDialog(
|
||||
R.string.account_setup_failed_dlg_certificate_message_fmt,
|
||||
e.getMessage() == null ? "" : e.getMessage());
|
||||
}
|
||||
AccountSetupCheckSettings.actionCheckSettings(AccountSetupCheckSettings.this, mAccount,
|
||||
mCheckIncoming, mCheckOutgoing);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(
|
||||
getString(R.string.account_setup_failed_dlg_invalid_certificate_reject),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
.setTitle(getString(R.string.account_setup_failed_dlg_invalid_certificate_title))
|
||||
//.setMessage(getString(R.string.account_setup_failed_dlg_invalid_certificate)
|
||||
.setMessage(getString(msgResId,exMessage)
|
||||
+ " " + chainInfo.toString()
|
||||
)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(
|
||||
getString(R.string.account_setup_failed_dlg_invalid_certificate_accept),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
try {
|
||||
String alias = mAccount.getUuid();
|
||||
if (mCheckIncoming) {
|
||||
alias = alias + ".incoming";
|
||||
}
|
||||
if (mCheckOutgoing) {
|
||||
alias = alias + ".outgoing";
|
||||
}
|
||||
TrustManagerFactory.addCertificateChain(alias, chain);
|
||||
} catch (CertificateException e) {
|
||||
showErrorDialog(
|
||||
R.string.account_setup_failed_dlg_certificate_message_fmt,
|
||||
e.getMessage() == null ? "" : e.getMessage());
|
||||
}
|
||||
AccountSetupCheckSettings.actionCheckSettings(AccountSetupCheckSettings.this, mAccount,
|
||||
mCheckIncoming, mCheckOutgoing);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(
|
||||
getString(R.string.account_setup_failed_dlg_invalid_certificate_reject),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finish();
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onActivityResult(int reqCode, int resCode, Intent data) {
|
||||
setResult(resCode);
|
||||
finish();
|
||||
setResult(resCode);
|
||||
finish();
|
||||
}
|
||||
|
||||
|
||||
@ -291,9 +291,9 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
|
||||
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.cancel:
|
||||
onCancel();
|
||||
break;
|
||||
case R.id.cancel:
|
||||
onCancel();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ public class AccountSetupComposition extends K9Activity {
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
mAccount.save(Preferences.getPreferences(this));
|
||||
finish();
|
||||
mAccount.save(Preferences.getPreferences(this));
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
@ -40,19 +40,19 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
private static final int SELECT_OUTBOX_FOLDER = 103;
|
||||
|
||||
private static final int popPorts[] = {
|
||||
110, 995, 995, 110, 110
|
||||
110, 995, 995, 110, 110
|
||||
};
|
||||
private static final String popSchemes[] = {
|
||||
"pop3", "pop3+ssl", "pop3+ssl+", "pop3+tls", "pop3+tls+"
|
||||
"pop3", "pop3+ssl", "pop3+ssl+", "pop3+tls", "pop3+tls+"
|
||||
};
|
||||
private static final int imapPorts[] = {
|
||||
143, 993, 993, 143, 143
|
||||
143, 993, 993, 143, 143
|
||||
};
|
||||
private static final String imapSchemes[] = {
|
||||
"imap", "imap+ssl", "imap+ssl+", "imap+tls", "imap+tls+"
|
||||
"imap", "imap+ssl", "imap+ssl+", "imap+tls", "imap+tls+"
|
||||
};
|
||||
private static final int webdavPorts[] = {
|
||||
80, 443, 443, 443, 443
|
||||
80, 443, 443, 443, 443
|
||||
};
|
||||
private static final String webdavSchemes[] = {
|
||||
"webdav", "webdav+ssl", "webdav+ssl+", "webdav+tls", "webdav+tls+"
|
||||
@ -119,13 +119,13 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
mNextButton.setOnClickListener(this);
|
||||
|
||||
SpinnerOption securityTypes[] = {
|
||||
new SpinnerOption(0, getString(R.string.account_setup_incoming_security_none_label)),
|
||||
new SpinnerOption(1,
|
||||
getString(R.string.account_setup_incoming_security_ssl_optional_label)),
|
||||
new SpinnerOption(2, getString(R.string.account_setup_incoming_security_ssl_label)),
|
||||
new SpinnerOption(3,
|
||||
getString(R.string.account_setup_incoming_security_tls_optional_label)),
|
||||
new SpinnerOption(4, getString(R.string.account_setup_incoming_security_tls_label)),
|
||||
new SpinnerOption(0, getString(R.string.account_setup_incoming_security_none_label)),
|
||||
new SpinnerOption(1,
|
||||
getString(R.string.account_setup_incoming_security_ssl_optional_label)),
|
||||
new SpinnerOption(2, getString(R.string.account_setup_incoming_security_ssl_label)),
|
||||
new SpinnerOption(3,
|
||||
getString(R.string.account_setup_incoming_security_tls_optional_label)),
|
||||
new SpinnerOption(4, getString(R.string.account_setup_incoming_security_tls_label)),
|
||||
};
|
||||
|
||||
ArrayAdapter<SpinnerOption> securityTypesAdapter = new ArrayAdapter<SpinnerOption>(this,
|
||||
@ -249,17 +249,17 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
for (int i = 0, count = pathParts.length; i < count; i++) {
|
||||
if (i == 0) {
|
||||
if (pathParts[0] != null &&
|
||||
pathParts[0].length() > 1) {
|
||||
pathParts[0].length() > 1) {
|
||||
mWebdavPathPrefixView.setText(pathParts[0].substring(1));
|
||||
}
|
||||
} else if (i == 1) {
|
||||
if (pathParts[1] != null &&
|
||||
pathParts[1].length() > 1) {
|
||||
pathParts[1].length() > 1) {
|
||||
mWebdavAuthPathView.setText(pathParts[1]);
|
||||
}
|
||||
} else if (i == 2) {
|
||||
if (pathParts[2] != null &&
|
||||
pathParts[2].length() > 1) {
|
||||
pathParts[2].length() > 1) {
|
||||
mWebdavMailboxPathView.setText(pathParts[2]);
|
||||
}
|
||||
}
|
||||
@ -301,16 +301,15 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
|
||||
private void validateFields() {
|
||||
mNextButton
|
||||
.setEnabled(Utility.requiredFieldValid(mUsernameView)
|
||||
&& Utility.requiredFieldValid(mPasswordView)
|
||||
&& Utility.domainFieldValid(mServerView)
|
||||
&& Utility.requiredFieldValid(mPortView));
|
||||
.setEnabled(Utility.requiredFieldValid(mUsernameView)
|
||||
&& Utility.requiredFieldValid(mPasswordView)
|
||||
&& Utility.domainFieldValid(mServerView)
|
||||
&& Utility.requiredFieldValid(mPortView));
|
||||
Utility.setCompoundDrawablesAlpha(mNextButton, mNextButton.isEnabled() ? 255 : 128);
|
||||
}
|
||||
|
||||
private void updatePortFromSecurityType() {
|
||||
if (mAccountPorts != null)
|
||||
{
|
||||
if (mAccountPorts != null) {
|
||||
int securityType = (Integer)((SpinnerOption)mSecurityTypeView.getSelectedItem()).value;
|
||||
mPortView.setText(Integer.toString(mAccountPorts[securityType]));
|
||||
}
|
||||
@ -319,20 +318,20 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (resultCode == RESULT_OK) {
|
||||
switch (requestCode) {
|
||||
case SELECT_DRAFT_FOLDER:
|
||||
mImapFolderDrafts.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
case SELECT_SENT_FOLDER:
|
||||
mImapFolderSent.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
case SELECT_TRASH_FOLDER:
|
||||
mImapFolderTrash.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
case SELECT_OUTBOX_FOLDER:
|
||||
mImapFolderOutbox.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
}
|
||||
switch (requestCode) {
|
||||
case SELECT_DRAFT_FOLDER:
|
||||
mImapFolderDrafts.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
case SELECT_SENT_FOLDER:
|
||||
mImapFolderSent.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
case SELECT_TRASH_FOLDER:
|
||||
mImapFolderTrash.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
case SELECT_OUTBOX_FOLDER:
|
||||
mImapFolderOutbox.setText(data.getStringExtra(ChooseFolder.EXTRA_NEW_FOLDER));
|
||||
return;
|
||||
}
|
||||
if (Intent.ACTION_EDIT.equals(getIntent().getAction())) {
|
||||
mAccount.save(Preferences.getPreferences(this));
|
||||
finish();
|
||||
@ -344,13 +343,13 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
try {
|
||||
URI oldUri = new URI(mAccount.getTransportUri());
|
||||
URI uri = new URI(
|
||||
oldUri.getScheme(),
|
||||
mUsernameView.getText() + ":" + mPasswordView.getText(),
|
||||
oldUri.getHost(),
|
||||
oldUri.getPort(),
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
oldUri.getScheme(),
|
||||
mUsernameView.getText() + ":" + mPasswordView.getText(),
|
||||
oldUri.getHost(),
|
||||
oldUri.getPort(),
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
mAccount.setTransportUri(uri.toString());
|
||||
} catch (URISyntaxException use) {
|
||||
/*
|
||||
@ -379,13 +378,13 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
}
|
||||
|
||||
URI uri = new URI(
|
||||
mAccountSchemes[securityType],
|
||||
mUsernameView.getText() + ":" + mPasswordView.getText(),
|
||||
mServerView.getText().toString(),
|
||||
Integer.parseInt(mPortView.getText().toString()),
|
||||
path, // path
|
||||
null, // query
|
||||
null);
|
||||
mAccountSchemes[securityType],
|
||||
mUsernameView.getText() + ":" + mPasswordView.getText(),
|
||||
mServerView.getText().toString(),
|
||||
Integer.parseInt(mPortView.getText().toString()),
|
||||
path, // path
|
||||
null, // query
|
||||
null);
|
||||
mAccount.setStoreUri(uri.toString());
|
||||
|
||||
|
||||
@ -401,62 +400,58 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
}
|
||||
|
||||
public void onClick(View v) {
|
||||
try
|
||||
{
|
||||
try {
|
||||
switch (v.getId()) {
|
||||
case R.id.next:
|
||||
onNext();
|
||||
break;
|
||||
case R.id.account_imap_folder_drafts:
|
||||
selectImapFolder(SELECT_DRAFT_FOLDER);
|
||||
break;
|
||||
case R.id.account_imap_folder_sent:
|
||||
selectImapFolder(SELECT_SENT_FOLDER);
|
||||
break;
|
||||
case R.id.account_imap_folder_trash:
|
||||
selectImapFolder(SELECT_TRASH_FOLDER);
|
||||
break;
|
||||
case R.id.account_imap_folder_outbox:
|
||||
selectImapFolder(SELECT_OUTBOX_FOLDER);
|
||||
break;
|
||||
case R.id.next:
|
||||
onNext();
|
||||
break;
|
||||
case R.id.account_imap_folder_drafts:
|
||||
selectImapFolder(SELECT_DRAFT_FOLDER);
|
||||
break;
|
||||
case R.id.account_imap_folder_sent:
|
||||
selectImapFolder(SELECT_SENT_FOLDER);
|
||||
break;
|
||||
case R.id.account_imap_folder_trash:
|
||||
selectImapFolder(SELECT_TRASH_FOLDER);
|
||||
break;
|
||||
case R.id.account_imap_folder_outbox:
|
||||
selectImapFolder(SELECT_OUTBOX_FOLDER);
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
failure(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void selectImapFolder(int activityCode) {
|
||||
String curFolder = null;
|
||||
switch (activityCode) {
|
||||
case SELECT_DRAFT_FOLDER:
|
||||
curFolder = mImapFolderDrafts.getText().toString();
|
||||
break;
|
||||
case SELECT_SENT_FOLDER:
|
||||
curFolder = mImapFolderSent.getText().toString();
|
||||
break;
|
||||
case SELECT_TRASH_FOLDER:
|
||||
curFolder = mImapFolderTrash.getText().toString();
|
||||
break;
|
||||
case SELECT_OUTBOX_FOLDER:
|
||||
curFolder = mImapFolderOutbox.getText().toString();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException(
|
||||
"Cannot select folder for: " + activityCode);
|
||||
}
|
||||
private void selectImapFolder(int activityCode) {
|
||||
String curFolder = null;
|
||||
switch (activityCode) {
|
||||
case SELECT_DRAFT_FOLDER:
|
||||
curFolder = mImapFolderDrafts.getText().toString();
|
||||
break;
|
||||
case SELECT_SENT_FOLDER:
|
||||
curFolder = mImapFolderSent.getText().toString();
|
||||
break;
|
||||
case SELECT_TRASH_FOLDER:
|
||||
curFolder = mImapFolderTrash.getText().toString();
|
||||
break;
|
||||
case SELECT_OUTBOX_FOLDER:
|
||||
curFolder = mImapFolderOutbox.getText().toString();
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException(
|
||||
"Cannot select folder for: " + activityCode);
|
||||
}
|
||||
|
||||
Intent selectIntent = new Intent(this, ChooseFolder.class);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_ACCOUNT, mAccount);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_CUR_FOLDER, curFolder);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_SHOW_CURRENT, "yes");
|
||||
startActivityForResult(selectIntent, activityCode);
|
||||
}
|
||||
Intent selectIntent = new Intent(this, ChooseFolder.class);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_ACCOUNT, mAccount);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_CUR_FOLDER, curFolder);
|
||||
selectIntent.putExtra(ChooseFolder.EXTRA_SHOW_CURRENT, "yes");
|
||||
startActivityForResult(selectIntent, activityCode);
|
||||
}
|
||||
|
||||
private void failure(Exception use)
|
||||
{
|
||||
Log.e(Email.LOG_TAG, "Failure", use);
|
||||
private void failure(Exception use) {
|
||||
Log.e(Email.LOG_TAG, "Failure", use);
|
||||
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
||||
|
||||
Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG);
|
||||
|
@ -95,9 +95,9 @@ public class AccountSetupNames extends K9Activity implements OnClickListener {
|
||||
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.done:
|
||||
onNext();
|
||||
break;
|
||||
case R.id.done:
|
||||
onNext();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -55,48 +55,48 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener {
|
||||
findViewById(R.id.next).setOnClickListener(this);
|
||||
|
||||
SpinnerOption checkFrequencies[] = {
|
||||
new SpinnerOption(-1,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_never)),
|
||||
new SpinnerOption(1,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_1min)),
|
||||
new SpinnerOption(5,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_5min)),
|
||||
new SpinnerOption(10,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_10min)),
|
||||
new SpinnerOption(15,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_15min)),
|
||||
new SpinnerOption(30,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_30min)),
|
||||
new SpinnerOption(60,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_1hour)),
|
||||
new SpinnerOption(120,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_2hour)),
|
||||
new SpinnerOption(180,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_3hour)),
|
||||
new SpinnerOption(360,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_6hour)),
|
||||
new SpinnerOption(720,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_12hour)),
|
||||
new SpinnerOption(1440,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_24hour)),
|
||||
new SpinnerOption(-1,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_never)),
|
||||
new SpinnerOption(1,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_1min)),
|
||||
new SpinnerOption(5,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_5min)),
|
||||
new SpinnerOption(10,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_10min)),
|
||||
new SpinnerOption(15,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_15min)),
|
||||
new SpinnerOption(30,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_30min)),
|
||||
new SpinnerOption(60,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_1hour)),
|
||||
new SpinnerOption(120,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_2hour)),
|
||||
new SpinnerOption(180,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_3hour)),
|
||||
new SpinnerOption(360,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_6hour)),
|
||||
new SpinnerOption(720,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_12hour)),
|
||||
new SpinnerOption(1440,
|
||||
getString(R.string.account_setup_options_mail_check_frequency_24hour)),
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
ArrayAdapter<SpinnerOption> checkFrequenciesAdapter = new ArrayAdapter<SpinnerOption>(this,
|
||||
android.R.layout.simple_spinner_item, checkFrequencies);
|
||||
checkFrequenciesAdapter
|
||||
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
mCheckFrequencyView.setAdapter(checkFrequenciesAdapter);
|
||||
|
||||
SpinnerOption displayCounts[] = {
|
||||
new SpinnerOption(10,
|
||||
getString(R.string.account_setup_options_mail_display_count_10)),
|
||||
getString(R.string.account_setup_options_mail_display_count_10)),
|
||||
new SpinnerOption(25,
|
||||
getString(R.string.account_setup_options_mail_display_count_25)),
|
||||
getString(R.string.account_setup_options_mail_display_count_25)),
|
||||
new SpinnerOption(50,
|
||||
getString(R.string.account_setup_options_mail_display_count_50)),
|
||||
getString(R.string.account_setup_options_mail_display_count_50)),
|
||||
new SpinnerOption(100,
|
||||
getString(R.string.account_setup_options_mail_display_count_100)),
|
||||
getString(R.string.account_setup_options_mail_display_count_100)),
|
||||
};
|
||||
|
||||
ArrayAdapter<SpinnerOption> displayCountsAdapter = new ArrayAdapter<SpinnerOption>(this,
|
||||
@ -109,28 +109,25 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener {
|
||||
mNotifyView.setChecked(mAccount.isNotifyNewMail());
|
||||
mNotifySyncView.setChecked(mAccount.isShowOngoing());
|
||||
SpinnerOption.setSpinnerOptionValue(mCheckFrequencyView, mAccount
|
||||
.getAutomaticCheckIntervalMinutes());
|
||||
.getAutomaticCheckIntervalMinutes());
|
||||
SpinnerOption.setSpinnerOptionValue(mDisplayCountView, mAccount
|
||||
.getDisplayCount());
|
||||
.getDisplayCount());
|
||||
|
||||
|
||||
boolean isPushCapable = false;
|
||||
try
|
||||
{
|
||||
Store store = Store.getInstance(mAccount.getStoreUri(), getApplication());
|
||||
try {
|
||||
Store store = Store.getInstance(mAccount.getStoreUri(), getApplication());
|
||||
isPushCapable = store.isPushCapable();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Could not get remote store", e);
|
||||
}
|
||||
|
||||
|
||||
if(!isPushCapable) {
|
||||
mPushEnable.setVisibility(View.GONE);
|
||||
} else {
|
||||
if (!isPushCapable) {
|
||||
mPushEnable.setVisibility(View.GONE);
|
||||
} else {
|
||||
mPushEnable.setChecked(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -142,17 +139,17 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener {
|
||||
mAccount.setAutomaticCheckIntervalMinutes((Integer)((SpinnerOption)mCheckFrequencyView
|
||||
.getSelectedItem()).value);
|
||||
mAccount.setDisplayCount((Integer)((SpinnerOption)mDisplayCountView
|
||||
.getSelectedItem()).value);
|
||||
.getSelectedItem()).value);
|
||||
|
||||
if (mPushEnable.isChecked()) {
|
||||
mAccount.setFolderPushMode(Account.FolderMode.FIRST_CLASS);
|
||||
} else {
|
||||
mAccount.setFolderPushMode(Account.FolderMode.NONE);
|
||||
if (mPushEnable.isChecked()) {
|
||||
mAccount.setFolderPushMode(Account.FolderMode.FIRST_CLASS);
|
||||
} else {
|
||||
mAccount.setFolderPushMode(Account.FolderMode.NONE);
|
||||
}
|
||||
|
||||
mAccount.save(Preferences.getPreferences(this));
|
||||
if (mAccount.equals(Preferences.getPreferences(this).getDefaultAccount()) ||
|
||||
getIntent().getBooleanExtra(EXTRA_MAKE_DEFAULT, false) ) {
|
||||
getIntent().getBooleanExtra(EXTRA_MAKE_DEFAULT, false) ) {
|
||||
Preferences.getPreferences(this).setDefaultAccount(mAccount);
|
||||
}
|
||||
Email.setServicesEnabled(this);
|
||||
@ -162,9 +159,9 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener {
|
||||
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.next:
|
||||
onDone();
|
||||
break;
|
||||
case R.id.next:
|
||||
onDone();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,23 +32,23 @@ import com.android.email.R;
|
||||
import com.android.email.Utility;
|
||||
|
||||
public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
OnCheckedChangeListener {
|
||||
OnCheckedChangeListener {
|
||||
private static final String EXTRA_ACCOUNT = "account";
|
||||
|
||||
private static final String EXTRA_MAKE_DEFAULT = "makeDefault";
|
||||
|
||||
private static final int smtpPorts[] = {
|
||||
25, 465, 465, 25, 25
|
||||
25, 465, 465, 25, 25
|
||||
};
|
||||
|
||||
private static final String smtpSchemes[] = {
|
||||
"smtp", "smtp+ssl", "smtp+ssl+", "smtp+tls", "smtp+tls+"
|
||||
"smtp", "smtp+ssl", "smtp+ssl+", "smtp+tls", "smtp+tls+"
|
||||
};
|
||||
private static final int webdavPorts[] = {
|
||||
80, 443, 443, 443, 443
|
||||
};
|
||||
private static final String webdavSchemes[] = {
|
||||
"webdav", "webdav+ssl", "webdav+ssl+", "webdav+tls", "webdav+tls+"
|
||||
"webdav", "webdav+ssl", "webdav+ssl+", "webdav+tls", "webdav+tls+"
|
||||
};
|
||||
|
||||
private EditText mUsernameView;
|
||||
@ -84,14 +84,14 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
mAccount = (Account)getIntent().getSerializableExtra(EXTRA_ACCOUNT);
|
||||
|
||||
try {
|
||||
if (new URI(mAccount.getStoreUri()).getScheme().startsWith("webdav")) {
|
||||
mAccount.setTransportUri(mAccount.getStoreUri());
|
||||
AccountSetupCheckSettings.actionCheckSettings(this, mAccount, false, true);
|
||||
}
|
||||
} catch (URISyntaxException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (new URI(mAccount.getStoreUri()).getScheme().startsWith("webdav")) {
|
||||
mAccount.setTransportUri(mAccount.getStoreUri());
|
||||
AccountSetupCheckSettings.actionCheckSettings(this, mAccount, false, true);
|
||||
}
|
||||
} catch (URISyntaxException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
mUsernameView = (EditText)findViewById(R.id.account_username);
|
||||
@ -107,13 +107,13 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
mRequireLoginView.setOnCheckedChangeListener(this);
|
||||
|
||||
SpinnerOption securityTypes[] = {
|
||||
new SpinnerOption(0, getString(R.string.account_setup_incoming_security_none_label)),
|
||||
new SpinnerOption(1,
|
||||
getString(R.string.account_setup_incoming_security_ssl_optional_label)),
|
||||
new SpinnerOption(2, getString(R.string.account_setup_incoming_security_ssl_label)),
|
||||
new SpinnerOption(3,
|
||||
getString(R.string.account_setup_incoming_security_tls_optional_label)),
|
||||
new SpinnerOption(4, getString(R.string.account_setup_incoming_security_tls_label)),
|
||||
new SpinnerOption(0, getString(R.string.account_setup_incoming_security_none_label)),
|
||||
new SpinnerOption(1,
|
||||
getString(R.string.account_setup_incoming_security_ssl_optional_label)),
|
||||
new SpinnerOption(2, getString(R.string.account_setup_incoming_security_ssl_label)),
|
||||
new SpinnerOption(3,
|
||||
getString(R.string.account_setup_incoming_security_tls_optional_label)),
|
||||
new SpinnerOption(4, getString(R.string.account_setup_incoming_security_tls_label)),
|
||||
};
|
||||
|
||||
ArrayAdapter<SpinnerOption> securityTypesAdapter = new ArrayAdapter<SpinnerOption>(this,
|
||||
@ -225,12 +225,12 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
|
||||
private void validateFields() {
|
||||
mNextButton
|
||||
.setEnabled(
|
||||
Utility.domainFieldValid(mServerView) &&
|
||||
Utility.requiredFieldValid(mPortView) &&
|
||||
(!mRequireLoginView.isChecked() ||
|
||||
(Utility.requiredFieldValid(mUsernameView) &&
|
||||
Utility.requiredFieldValid(mPasswordView))));
|
||||
.setEnabled(
|
||||
Utility.domainFieldValid(mServerView) &&
|
||||
Utility.requiredFieldValid(mPortView) &&
|
||||
(!mRequireLoginView.isChecked() ||
|
||||
(Utility.requiredFieldValid(mUsernameView) &&
|
||||
Utility.requiredFieldValid(mPasswordView))));
|
||||
Utility.setCompoundDrawablesAlpha(mNextButton, mNextButton.isEnabled() ? 255 : 128);
|
||||
}
|
||||
|
||||
@ -259,10 +259,10 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
String userInfo = null;
|
||||
if (mRequireLoginView.isChecked()) {
|
||||
userInfo = mUsernameView.getText().toString() + ":"
|
||||
+ mPasswordView.getText().toString();
|
||||
+ mPasswordView.getText().toString();
|
||||
}
|
||||
uri = new URI(smtpSchemes[securityType], userInfo, mServerView.getText().toString(),
|
||||
Integer.parseInt(mPortView.getText().toString()), null, null, null);
|
||||
Integer.parseInt(mPortView.getText().toString()), null, null, null);
|
||||
mAccount.setTransportUri(uri.toString());
|
||||
AccountSetupCheckSettings.actionCheckSettings(this, mAccount, false, true);
|
||||
} catch (Exception e) {
|
||||
@ -277,9 +277,9 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.next:
|
||||
onNext();
|
||||
break;
|
||||
case R.id.next:
|
||||
onNext();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -287,8 +287,7 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
mRequireLoginSettingsView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
validateFields();
|
||||
}
|
||||
private void failure(Exception use)
|
||||
{
|
||||
private void failure(Exception use) {
|
||||
Log.e(Email.LOG_TAG, "Failure", use);
|
||||
String toastText = getString(R.string.account_setup_bad_uri, use.getMessage());
|
||||
|
||||
|
@ -54,28 +54,22 @@ public class FolderSettings extends K9PreferenceActivity {
|
||||
String folderName = (String)getIntent().getSerializableExtra(EXTRA_FOLDER_NAME);
|
||||
Account mAccount = (Account)getIntent().getSerializableExtra(EXTRA_ACCOUNT);
|
||||
|
||||
try
|
||||
{
|
||||
Store localStore = Store.getInstance(mAccount.getLocalStoreUri(),
|
||||
getApplication());
|
||||
mFolder = (LocalFolder) localStore.getFolder(folderName);
|
||||
mFolder.refresh(Preferences.getPreferences(this));
|
||||
}
|
||||
catch (MessagingException me)
|
||||
{
|
||||
Log.e(Email.LOG_TAG, "Unable to edit folder " + folderName + " preferences", me);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
Store localStore = Store.getInstance(mAccount.getLocalStoreUri(),
|
||||
getApplication());
|
||||
mFolder = (LocalFolder) localStore.getFolder(folderName);
|
||||
mFolder.refresh(Preferences.getPreferences(this));
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Unable to edit folder " + folderName + " preferences", me);
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isPushCapable = false;
|
||||
boolean isPushCapable = false;
|
||||
Store store = null;
|
||||
try
|
||||
{
|
||||
try {
|
||||
store = Store.getInstance(mAccount.getStoreUri(), getApplication());
|
||||
isPushCapable = store.isPushCapable();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
} catch (Exception e) {
|
||||
Log.e(Email.LOG_TAG, "Could not get remote store", e);
|
||||
}
|
||||
|
||||
@ -128,30 +122,24 @@ public class FolderSettings extends K9PreferenceActivity {
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
try
|
||||
{
|
||||
mFolder.refresh(Preferences.getPreferences(this));
|
||||
}
|
||||
catch (MessagingException me)
|
||||
{
|
||||
Log.e(Email.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
||||
try {
|
||||
mFolder.refresh(Preferences.getPreferences(this));
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveSettings() {
|
||||
mFolder.setDisplayClass(FolderClass.valueOf(mDisplayClass.getValue()));
|
||||
mFolder.setSyncClass(FolderClass.valueOf(mSyncClass.getValue()));
|
||||
mFolder.setPushClass(FolderClass.valueOf(mPushClass.getValue()));
|
||||
mFolder.setDisplayClass(FolderClass.valueOf(mDisplayClass.getValue()));
|
||||
mFolder.setSyncClass(FolderClass.valueOf(mSyncClass.getValue()));
|
||||
mFolder.setPushClass(FolderClass.valueOf(mPushClass.getValue()));
|
||||
|
||||
try
|
||||
{
|
||||
mFolder.save(Preferences.getPreferences(this));
|
||||
Email.setServicesEnabled(this);
|
||||
}
|
||||
catch (MessagingException me)
|
||||
{
|
||||
Log.e(Email.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
||||
}
|
||||
try {
|
||||
mFolder.save(Preferences.getPreferences(this));
|
||||
Email.setServicesEnabled(this);
|
||||
} catch (MessagingException me) {
|
||||
Log.e(Email.LOG_TAG, "Could not refresh folder preferences for folder " + mFolder.getName(), me);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -100,8 +100,7 @@ public class Prefs extends K9PreferenceActivity {
|
||||
String newBackgroundOps = mBackgroundOps.getValue();
|
||||
Email.setBackgroundOps(newBackgroundOps);
|
||||
Email.save(preferences);
|
||||
if (newBackgroundOps.equals(initBackgroundOps) == false)
|
||||
{
|
||||
if (newBackgroundOps.equals(initBackgroundOps) == false) {
|
||||
MailService.backgroundDataChanged(this);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user