am c98f977: Merge branch \'readonly-p4-donut\' into donut
Merge commit 'c98f9775ad2b01f1692f96f14faacaca4ef3c1cf' * commit 'c98f9775ad2b01f1692f96f14faacaca4ef3c1cf': AI 148255: Don't show "Outgoing Settings" preference when sender does not
This commit is contained in:
commit
4ea57375d8
|
@ -77,7 +77,9 @@
|
|||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/account_settings_servers">
|
||||
<PreferenceCategory
|
||||
android:key="account_servers"
|
||||
android:title="@string/account_settings_servers">
|
||||
|
||||
<PreferenceScreen
|
||||
android:key="incoming"
|
||||
|
|
|
@ -33,5 +33,5 @@
|
|||
<sender scheme="smtp" class="com.android.email.mail.transport.SmtpSender" />
|
||||
|
||||
<!-- This is here for temporary demo purposes only. Do not ship with this. -->
|
||||
<!-- sender scheme="eas" class="com.android.email.mail.exchange.ExchangeSenderExample" / -->
|
||||
<sender scheme="eas" class="com.android.email.mail.exchange.ExchangeSenderExample" />
|
||||
</senders>
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.android.email.Account;
|
|||
import com.android.email.Email;
|
||||
import com.android.email.Preferences;
|
||||
import com.android.email.R;
|
||||
import com.android.email.mail.MessagingException;
|
||||
import com.android.email.mail.Sender;
|
||||
import com.android.email.mail.Store;
|
||||
|
||||
|
@ -48,6 +49,7 @@ public class AccountSettings extends PreferenceActivity {
|
|||
private static final String PREFERENCE_NOTIFY = "account_notify";
|
||||
private static final String PREFERENCE_VIBRATE = "account_vibrate";
|
||||
private static final String PREFERENCE_RINGTONE = "account_ringtone";
|
||||
private static final String PREFERENCE_SERVER_CATERGORY = "account_servers";
|
||||
private static final String PREFERENCE_INCOMING = "incoming";
|
||||
private static final String PREFERENCE_OUTGOING = "outgoing";
|
||||
private static final String PREFERENCE_ADD_ACCOUNT = "add_account";
|
||||
|
@ -77,8 +79,8 @@ public class AccountSettings extends PreferenceActivity {
|
|||
|
||||
addPreferencesFromResource(R.xml.account_settings_preferences);
|
||||
|
||||
PreferenceCategory category = (PreferenceCategory) findPreference(PREFERENCE_TOP_CATERGORY);
|
||||
category.setTitle(getString(R.string.account_settings_title_fmt));
|
||||
PreferenceCategory topCategory = (PreferenceCategory) findPreference(PREFERENCE_TOP_CATERGORY);
|
||||
topCategory.setTitle(getString(R.string.account_settings_title_fmt));
|
||||
|
||||
mAccountDescription = (EditTextPreference) findPreference(PREFERENCE_DESCRIPTION);
|
||||
mAccountDescription.setSummary(mAccount.getDescription());
|
||||
|
@ -144,7 +146,7 @@ public class AccountSettings extends PreferenceActivity {
|
|||
return false;
|
||||
}
|
||||
});
|
||||
category.addPreference(mSyncWindow);
|
||||
topCategory.addPreference(mSyncWindow);
|
||||
}
|
||||
|
||||
mAccountDefault = (CheckBoxPreference) findPreference(PREFERENCE_DEFAULT);
|
||||
|
@ -172,13 +174,32 @@ public class AccountSettings extends PreferenceActivity {
|
|||
}
|
||||
});
|
||||
|
||||
findPreference(PREFERENCE_OUTGOING).setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onOutgoingSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
// Hide the outgoing account setup link if it's not activated
|
||||
Preference prefOutgoing = findPreference(PREFERENCE_OUTGOING);
|
||||
boolean showOutgoing = true;
|
||||
try {
|
||||
Sender sender = Sender.getInstance(mAccount.getSenderUri(), getApplication());
|
||||
if (sender != null) {
|
||||
Class<? extends android.app.Activity> setting = sender.getSettingActivityClass();
|
||||
showOutgoing = (setting != null);
|
||||
}
|
||||
} catch (MessagingException me) {
|
||||
// just leave showOutgoing as true - bias towards showing it, so user can fix it
|
||||
}
|
||||
if (showOutgoing) {
|
||||
prefOutgoing.setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
onOutgoingSettings();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
PreferenceCategory serverCategory = (PreferenceCategory) findPreference(
|
||||
PREFERENCE_SERVER_CATERGORY);
|
||||
serverCategory.removePreference(prefOutgoing);
|
||||
}
|
||||
|
||||
findPreference(PREFERENCE_ADD_ACCOUNT).setOnPreferenceClickListener(
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
|
@ -244,7 +265,7 @@ public class AccountSettings extends PreferenceActivity {
|
|||
Class<? extends android.app.Activity> setting = sender.getSettingActivityClass();
|
||||
if (setting != null) {
|
||||
java.lang.reflect.Method m = setting.getMethod("actionEditOutgoingSettings",
|
||||
android.content.Context.class, Account.class);
|
||||
android.app.Activity.class, Account.class);
|
||||
m.invoke(null, this, mAccount);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,10 +88,12 @@ public class ExchangeSenderExample extends Sender {
|
|||
|
||||
/**
|
||||
* Get class of SettingActivity for this Sender class.
|
||||
* @return Activity class that has class method actionEditOutgoingSettings().
|
||||
* @return Activity class that has class method actionEditOutgoingSettings(), or null if
|
||||
* outgoing settings should not be presented (e.g. they're handled by the incoming settings
|
||||
* screen).
|
||||
*/
|
||||
@Override
|
||||
public Class<? extends android.app.Activity> getSettingActivityClass() {
|
||||
return com.android.email.activity.setup.AccountSetupExchange.class;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue