Add support for feedback
Change-Id: I6de8c0117f79c0be05d3db2fc108f8bf61415783
This commit is contained in:
parent
95bb350f38
commit
5a3d863a43
|
@ -309,6 +309,8 @@
|
|||
android:theme="@style/PhotoViewTheme" >
|
||||
</activity>
|
||||
|
||||
<!-- additional activities -->
|
||||
|
||||
<provider
|
||||
android:authorities="com.android.email2.conversation.provider"
|
||||
android:label="@string/conversation_content_provider"
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2013 Google Inc.
|
||||
Licensed to The Android Open Source Project.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<resources>
|
||||
<!-- Boolean value indicating whether the feedback is supported. -->
|
||||
<bool name="feedback_supported">false</bool>
|
||||
</resources>
|
|
@ -1294,4 +1294,7 @@ as <xliff:g id="filename">%s</xliff:g>.</string>
|
|||
<string name="sent_folder_selection_title">Select server sent items folder for <xliff:g id="account">%s</xliff:g></string>
|
||||
<string name="create_new_folder">Create folder</string>
|
||||
<string name="account_waiting_for_folders_msg">Loading folder list…</string>
|
||||
|
||||
<!-- Feedback uri to be used when feedback is enabled -->
|
||||
<string name="email_feedback_uri" translatable="false"></string>
|
||||
</resources>
|
||||
|
|
|
@ -28,6 +28,7 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.OperationApplicationException;
|
||||
import android.content.UriMatcher;
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.database.Cursor;
|
||||
import android.database.CursorWrapper;
|
||||
|
@ -2313,33 +2314,41 @@ outer:
|
|||
* Constructs the map of default entries for accounts. These values can be overridden in
|
||||
* {@link #genQueryAccount(String[], String)}.
|
||||
*/
|
||||
private static ProjectionMap getAccountListMap() {
|
||||
private static ProjectionMap getAccountListMap(Context context) {
|
||||
if (sAccountListMap == null) {
|
||||
sAccountListMap = ProjectionMap.builder()
|
||||
.add(BaseColumns._ID, AccountColumns.ID)
|
||||
.add(UIProvider.AccountColumns.FOLDER_LIST_URI, uriWithId("uifolders"))
|
||||
.add(UIProvider.AccountColumns.FULL_FOLDER_LIST_URI, uriWithId("uiallfolders"))
|
||||
.add(UIProvider.AccountColumns.NAME, AccountColumns.DISPLAY_NAME)
|
||||
.add(UIProvider.AccountColumns.UNDO_URI,
|
||||
("'content://" + UIProvider.AUTHORITY + "/uiundo'"))
|
||||
.add(UIProvider.AccountColumns.URI, uriWithId("uiaccount"))
|
||||
.add(UIProvider.AccountColumns.SEARCH_URI, uriWithId("uisearch"))
|
||||
// TODO: Is provider version used?
|
||||
.add(UIProvider.AccountColumns.PROVIDER_VERSION, "1")
|
||||
.add(UIProvider.AccountColumns.SYNC_STATUS, "0")
|
||||
.add(UIProvider.AccountColumns.RECENT_FOLDER_LIST_URI, uriWithId("uirecentfolders"))
|
||||
.add(UIProvider.AccountColumns.DEFAULT_RECENT_FOLDER_LIST_URI,
|
||||
uriWithId("uidefaultrecentfolders"))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.SIGNATURE, AccountColumns.SIGNATURE)
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.SNAP_HEADERS,
|
||||
Integer.toString(UIProvider.SnapHeaderValue.ALWAYS))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.REPLY_BEHAVIOR,
|
||||
Integer.toString(UIProvider.DefaultReplyBehavior.REPLY))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.CONFIRM_ARCHIVE, "0")
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.CONVERSATION_VIEW_MODE,
|
||||
Integer.toString(UIProvider.ConversationViewMode.UNDEFINED))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.VEILED_ADDRESS_PATTERN, null)
|
||||
.build();
|
||||
final ProjectionMap.Builder builder = ProjectionMap.builder()
|
||||
.add(BaseColumns._ID, AccountColumns.ID)
|
||||
.add(UIProvider.AccountColumns.FOLDER_LIST_URI, uriWithId("uifolders"))
|
||||
.add(UIProvider.AccountColumns.FULL_FOLDER_LIST_URI, uriWithId("uiallfolders"))
|
||||
.add(UIProvider.AccountColumns.NAME, AccountColumns.DISPLAY_NAME)
|
||||
.add(UIProvider.AccountColumns.UNDO_URI,
|
||||
("'content://" + UIProvider.AUTHORITY + "/uiundo'"))
|
||||
.add(UIProvider.AccountColumns.URI, uriWithId("uiaccount"))
|
||||
.add(UIProvider.AccountColumns.SEARCH_URI, uriWithId("uisearch"))
|
||||
// TODO: Is provider version used?
|
||||
.add(UIProvider.AccountColumns.PROVIDER_VERSION, "1")
|
||||
.add(UIProvider.AccountColumns.SYNC_STATUS, "0")
|
||||
.add(UIProvider.AccountColumns.RECENT_FOLDER_LIST_URI,
|
||||
uriWithId("uirecentfolders"))
|
||||
.add(UIProvider.AccountColumns.DEFAULT_RECENT_FOLDER_LIST_URI,
|
||||
uriWithId("uidefaultrecentfolders"))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.SIGNATURE,
|
||||
AccountColumns.SIGNATURE)
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.SNAP_HEADERS,
|
||||
Integer.toString(UIProvider.SnapHeaderValue.ALWAYS))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.REPLY_BEHAVIOR,
|
||||
Integer.toString(UIProvider.DefaultReplyBehavior.REPLY))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.CONFIRM_ARCHIVE, "0")
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.CONVERSATION_VIEW_MODE,
|
||||
Integer.toString(UIProvider.ConversationViewMode.UNDEFINED))
|
||||
.add(UIProvider.AccountColumns.SettingsColumns.VEILED_ADDRESS_PATTERN, null);
|
||||
|
||||
final String feedbackUri = context.getString(R.string.email_feedback_uri);
|
||||
if (!TextUtils.isEmpty(feedbackUri)) {
|
||||
builder.add(UIProvider.AccountColumns.SEND_FEEDBACK_INTENT_URI, feedbackUri);
|
||||
}
|
||||
|
||||
sAccountListMap = builder.build();
|
||||
}
|
||||
return sAccountListMap;
|
||||
}
|
||||
|
@ -2770,7 +2779,7 @@ outer:
|
|||
}
|
||||
|
||||
private int getCapabilities(Context context, long accountId) {
|
||||
EmailServiceProxy service = EmailServiceUtils.getServiceForAccount(context,
|
||||
final EmailServiceProxy service = EmailServiceUtils.getServiceForAccount(context,
|
||||
mServiceCallback, accountId);
|
||||
int capabilities = 0;
|
||||
Account acct = null;
|
||||
|
@ -2789,6 +2798,12 @@ outer:
|
|||
// Nothing to do
|
||||
Log.w(TAG, "getCapabilities() for " + acct.mDisplayName + ": RemoteException");
|
||||
}
|
||||
|
||||
// If the configuration states that feedback is supported, add that capability
|
||||
final Resources res = context.getResources();
|
||||
if (res.getBoolean(R.bool.feedback_supported)) {
|
||||
capabilities |= UIProvider.AccountCapabilities.SEND_FEEDBACK;
|
||||
}
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
|
@ -2896,7 +2911,7 @@ outer:
|
|||
}
|
||||
}
|
||||
}
|
||||
final StringBuilder sb = genSelect(getAccountListMap(), uiProjection, values);
|
||||
final StringBuilder sb = genSelect(getAccountListMap(getContext()), uiProjection, values);
|
||||
sb.append(" FROM " + Account.TABLE_NAME + " WHERE " + AccountColumns.ID + "=?");
|
||||
return sb.toString();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue