1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-08-13 17:03:48 -04:00

Fixed issue 556

This commit is contained in:
Bao-Long Nguyen-Trong 2009-10-22 15:54:49 +00:00
parent 959404cc68
commit 09fa19affa

View File

@ -186,10 +186,10 @@ public class MessageView extends K9Activity
if (event.isShiftPressed()) { if (event.isShiftPressed()) {
mHandler.post(new Runnable() { mHandler.post(new Runnable() {
public void run() { public void run() {
mMessageContentView.zoomIn(); mMessageContentView.zoomIn();
} }
}); });
} else { } else {
mHandler.post(new Runnable() { mHandler.post(new Runnable() {
public void run() { public void run() {
mMessageContentView.zoomOut(); mMessageContentView.zoomOut();
@ -458,56 +458,64 @@ public class MessageView extends K9Activity
Intent intent = getIntent(); Intent intent = getIntent();
Uri uri = intent.getData(); Uri uri = intent.getData();
if (uri==null) { if (icicle!=null) {
mAccount = (Account) intent.getSerializableExtra(EXTRA_ACCOUNT); mAccount = (Account) icicle.getSerializable(EXTRA_ACCOUNT);
mFolder = intent.getStringExtra(EXTRA_FOLDER); mFolder = icicle.getString(EXTRA_FOLDER);
mMessageUid = intent.getStringExtra(EXTRA_MESSAGE); mMessageUid = icicle.getString(EXTRA_MESSAGE);
mFolderUids = intent.getStringArrayListExtra(EXTRA_FOLDER_UIDS); mFolderUids = icicle.getStringArrayList(EXTRA_FOLDER_UIDS);
Log.v(Email.LOG_TAG, "mAccount number: " + mAccount.getAccountNumber());
Log.v(Email.LOG_TAG, "mFolder: " + mFolder);
Log.v(Email.LOG_TAG, "mMessageUid: " + mMessageUid);
} }
else { else {
Log.v(Email.LOG_TAG, "uri: " + uri.toString()); if (uri==null) {
List<String> segmentList = uri.getPathSegments(); mAccount = (Account) intent.getSerializableExtra(EXTRA_ACCOUNT);
Log.v(Email.LOG_TAG, "segmentList size: " + segmentList.size()); mFolder = intent.getStringExtra(EXTRA_FOLDER);
if (segmentList.size()==3) { mMessageUid = intent.getStringExtra(EXTRA_MESSAGE);
String accountId = segmentList.get(0); mFolderUids = intent.getStringArrayListExtra(EXTRA_FOLDER_UIDS);
Account[] accounts = Preferences.getPreferences(this).getAccounts();
Log.v(Email.LOG_TAG, "account.length: " + accounts.length); Log.v(Email.LOG_TAG, "mAccount number: " + mAccount.getAccountNumber());
boolean found = false; Log.v(Email.LOG_TAG, "mFolder: " + mFolder);
for (Account account : accounts) { Log.v(Email.LOG_TAG, "mMessageUid: " + mMessageUid);
Log.v(Email.LOG_TAG, "account: name=" + account.getDescription() + " number=" + account.getAccountNumber());
if (String.valueOf(account.getAccountNumber()).equals(accountId)) {
mAccount = account;
found = true;
break;
}
}
if (!found) {
//TODO: Use ressource to externalize message
Toast.makeText(this, "Invalid account id: " + accountId, Toast.LENGTH_LONG).show();
return;
}
mFolder = segmentList.get(1);
mMessageUid = segmentList.get(2);
mFolderUids = new ArrayList<String>();
} }
else { else {
for (String segment : segmentList) { Log.v(Email.LOG_TAG, "uri: " + uri.toString());
Log.v(Email.LOG_TAG, "segment: " + segment); List<String> segmentList = uri.getPathSegments();
Log.v(Email.LOG_TAG, "segmentList size: " + segmentList.size());
if (segmentList.size()==3) {
String accountId = segmentList.get(0);
Account[] accounts = Preferences.getPreferences(this).getAccounts();
Log.v(Email.LOG_TAG, "account.length: " + accounts.length);
boolean found = false;
for (Account account : accounts) {
Log.v(Email.LOG_TAG, "account: name=" + account.getDescription() + " number=" + account.getAccountNumber());
if (String.valueOf(account.getAccountNumber()).equals(accountId)) {
mAccount = account;
found = true;
break;
}
}
if (!found) {
//TODO: Use ressource to externalize message
Toast.makeText(this, "Invalid account id: " + accountId, Toast.LENGTH_LONG).show();
return;
}
mFolder = segmentList.get(1);
mMessageUid = segmentList.get(2);
mFolderUids = new ArrayList<String>();
}
else {
for (String segment : segmentList) {
Log.v(Email.LOG_TAG, "segment: " + segment);
}
//TODO: Use ressource to externalize message
Toast.makeText(this, "Invalid intent uri: " + uri.toString(), Toast.LENGTH_LONG).show();
return;
} }
//TODO: Use ressource to externalize message
Toast.makeText(this, "Invalid intent uri: " + uri.toString(), Toast.LENGTH_LONG).show();
return;
} }
} }
next = findViewById(R.id.next); next = findViewById(R.id.next);
previous = findViewById(R.id.previous); previous = findViewById(R.id.previous);
setOnClickListener(R.id.next); setOnClickListener(R.id.next);
setOnClickListener(R.id.previous); setOnClickListener(R.id.previous);
@ -521,7 +529,7 @@ public class MessageView extends K9Activity
Account.HideButtons hideButtons = mAccount.getHideMessageViewButtons(); Account.HideButtons hideButtons = mAccount.getHideMessageViewButtons();
// MessagingController.getInstance(getApplication()).addListener(mListener); //MessagingController.getInstance(getApplication()).addListener(mListener);
if (Account.HideButtons.ALWAYS == hideButtons) if (Account.HideButtons.ALWAYS == hideButtons)
{ {
hideButtons(); hideButtons();
@ -545,6 +553,15 @@ public class MessageView extends K9Activity
displayMessage(mMessageUid); displayMessage(mMessageUid);
} }
@Override
protected void onSaveInstanceState (Bundle outState)
{
outState.putSerializable(EXTRA_ACCOUNT, mAccount);
outState.putString(EXTRA_FOLDER, mFolder);
outState.putString(EXTRA_MESSAGE, mMessageUid);
outState.putStringArrayList(EXTRA_FOLDER_UIDS, mFolderUids);
}
private void displayMessage(String uid) private void displayMessage(String uid)
{ {
mMessageUid = uid; mMessageUid = uid;
@ -562,8 +579,6 @@ public class MessageView extends K9Activity
mFolder, mFolder,
mMessageUid, mMessageUid,
mListener); mListener);
} }
@ -607,7 +622,7 @@ public class MessageView extends K9Activity
super.onResume(); super.onResume();
clearFormats(); clearFormats();
} }
private void onDelete() { private void onDelete() {
if (mMessage != null) { if (mMessage != null) {
Message messageToDelete = mMessage; Message messageToDelete = mMessage;