| <?xml version="1.0" encoding="utf-8"?> |
| <!-- Copyright (C) 2006 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. |
| --> |
| |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.android.contacts" |
| android:sharedUserId="android.uid.shared"> |
| |
| <original-package android:name="com.android.contacts" /> |
| |
| <uses-permission android:name="android.permission.CALL_PRIVILEGED" /> |
| <uses-permission android:name="android.permission.READ_CONTACTS" /> |
| <uses-permission android:name="android.permission.WRITE_CONTACTS" /> |
| <uses-permission android:name="android.permission.READ_CALL_LOG" /> |
| <uses-permission android:name="android.permission.WRITE_CALL_LOG" /> |
| <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> |
| <uses-permission android:name="android.permission.GET_ACCOUNTS" /> |
| <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
| <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> |
| <uses-permission android:name="android.permission.READ_PROFILE" /> |
| <uses-permission android:name="android.permission.WRITE_PROFILE" /> |
| <uses-permission android:name="android.permission.READ_SOCIAL_STREAM" /> |
| <uses-permission android:name="android.permission.INTERNET" /> |
| <uses-permission android:name="android.permission.NFC" /> |
| <uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
| <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> |
| <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> |
| <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.mail" /> |
| <uses-permission android:name="android.permission.WAKE_LOCK" /> |
| <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
| <uses-permission android:name="android.permission.WRITE_SETTINGS" /> |
| <uses-permission android:name="android.permission.USE_CREDENTIALS" /> |
| <uses-permission android:name="android.permission.VIBRATE" /> |
| <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> |
| <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" /> |
| <uses-permission android:name="com.android.voicemail.permission.READ_WRITE_ALL_VOICEMAIL" /> |
| <uses-permission android:name="android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK" /> |
| <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> |
| <!-- allow broadcasting secret code intents that reboot the phone --> |
| <uses-permission android:name="android.permission.REBOOT" /> |
| <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> |
| |
| <application |
| android:name="com.android.contacts.ContactsApplication" |
| android:label="@string/contactsList" |
| android:icon="@mipmap/ic_launcher_contacts" |
| android:taskAffinity="android.task.contacts" |
| android:hardwareAccelerated="true" |
| > |
| |
| <!-- The main Contacts activity with the contact list, favorites, and groups. --> |
| <activity android:name=".activities.PeopleActivity" |
| android:label="@string/people" |
| android:theme="@style/PeopleTheme" |
| android:uiOptions="splitActionBarWhenNarrow" |
| android:clearTaskOnLaunch="true" |
| android:launchMode="singleTop" |
| > |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| <category android:name="android.intent.category.APP_CONTACTS" /> |
| </intent-filter> |
| <intent-filter> |
| <action android:name="com.android.contacts.action.LIST_DEFAULT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="com.android.contacts.action.LIST_CONTACTS" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter android:label="@string/starredList"> |
| <action android:name="com.android.contacts.action.LIST_STARRED" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter android:label="@string/frequentList"> |
| <action android:name="com.android.contacts.action.LIST_FREQUENT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter android:label="@string/strequentList"> |
| <action android:name="com.android.contacts.action.LIST_STREQUENT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.TAB" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.SEARCH" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/contact" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.SEARCH" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="com.android.contacts.action.FILTER_CONTACTS" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/contact" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/person" /> |
| <data android:mimeType="vnd.android.cursor.dir/contact" /> |
| </intent-filter> |
| |
| <meta-data android:name="android.app.searchable" |
| android:resource="@xml/searchable" |
| /> |
| </activity> |
| |
| <activity android:name=".activities.ContactSelectionActivity" |
| android:label="@string/contactsList" |
| android:theme="@style/ContactPickerTheme" |
| android:launchMode="singleTop" |
| android:clearTaskOnLaunch="true" |
| android:uiOptions="splitActionBarWhenNarrow"> |
| <intent-filter> |
| <action android:name="android.intent.action.INSERT_OR_EDIT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.item/person" /> |
| <data android:mimeType="vnd.android.cursor.item/contact" /> |
| <data android:mimeType="vnd.android.cursor.item/raw_contact" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.PICK" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/contact" /> |
| <data android:mimeType="vnd.android.cursor.dir/person" /> |
| <data android:mimeType="vnd.android.cursor.dir/phone_v2" /> |
| <data android:mimeType="vnd.android.cursor.dir/phone" /> |
| <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" /> |
| <data android:mimeType="vnd.android.cursor.dir/postal-address" /> |
| <data android:mimeType="vnd.android.cursor.dir/email_v2" /> |
| </intent-filter> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.GET_CONTENT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.item/contact" /> |
| <data android:mimeType="vnd.android.cursor.item/person" /> |
| <data android:mimeType="vnd.android.cursor.item/phone_v2" /> |
| <data android:mimeType="vnd.android.cursor.item/phone" /> |
| <data android:mimeType="vnd.android.cursor.item/postal-address_v2" /> |
| <data android:mimeType="vnd.android.cursor.item/postal-address" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Backwards compatibility: somebody may have hard coded this activity name --> |
| <activity-alias android:name="ContactsListActivity" |
| android:targetActivity=".activities.PeopleActivity" |
| /> |
| |
| <!-- Backwards compatibility: "Contacts" from Honeycomb --> |
| <activity-alias android:name=".activities.ContactsFrontDoor" |
| android:targetActivity=".activities.PeopleActivity" |
| android:exported="true" |
| /> |
| |
| <!-- Backwards compatibility: "Contacts" from Gingerbread and earlier --> |
| <activity-alias android:name="DialtactsContactsEntryActivity" |
| android:targetActivity=".activities.PeopleActivity" |
| android:exported="true" |
| /> |
| |
| <!-- An activity for joining contacts --> |
| <activity android:name=".activities.JoinContactActivity" |
| android:theme="@style/JoinContactActivityTheme" |
| android:clearTaskOnLaunch="true" |
| > |
| <intent-filter> |
| <action android:name="com.android.contacts.action.JOIN_CONTACT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Used to set options --> |
| <activity |
| android:name=".preference.ContactsPreferenceActivity" |
| android:label="@string/activity_title_settings" |
| android:theme="@style/ContactsPreferencesTheme" /> |
| |
| <!-- Used to filter contacts list by account --> |
| <activity |
| android:name=".list.AccountFilterActivity" |
| android:label="@string/activity_title_contacts_filter" |
| android:theme="@style/ContactListFilterTheme" /> |
| |
| <!-- Used to select display and sync groups --> |
| <activity |
| android:name=".list.CustomContactListFilterActivity" |
| android:label="@string/custom_list_filter" |
| android:theme="@style/ContactListFilterTheme" /> |
| |
| <activity |
| android:name=".activities.ShowOrCreateActivity" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar"> |
| |
| <intent-filter> |
| <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:scheme="mailto" /> |
| <data android:scheme="tel" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- List of groups --> |
| <activity android:name=".activities.GroupBrowserActivity" |
| android:label="@string/contactsGroupsLabel" |
| android:theme="@style/PeopleTheme" |
| android:uiOptions="splitActionBarWhenNarrow" |
| android:launchMode="singleTop" |
| android:clearTaskOnLaunch="true"/> |
| |
| <!-- Views the details of a single group --> |
| <activity android:name=".activities.GroupDetailActivity" |
| android:label="" |
| android:theme="@style/DetailActivityTheme"/> |
| |
| <!-- Create a new or edit an existing group --> |
| <activity |
| android:name=".activities.GroupEditorActivity" |
| android:theme="@style/EditorActivityTheme" |
| android:windowSoftInputMode="adjustResize" /> |
| |
| <!-- Used to show QuickContact window over a translucent activity, which is a |
| temporary hack until we add better framework support. --> |
| <activity |
| android:name=".quickcontact.QuickContactActivity" |
| android:theme="@style/Theme.QuickContact" |
| android:launchMode="singleTop" |
| android:excludeFromRecents="true" |
| android:noHistory="true" |
| android:taskAffinity="" |
| android:windowSoftInputMode="stateUnchanged"> |
| |
| <intent-filter> |
| <action android:name="com.android.contacts.action.QUICK_CONTACT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.item/contact" /> |
| <data android:mimeType="vnd.android.cursor.item/person" /> |
| </intent-filter> |
| </activity> |
| |
| <receiver |
| android:name=".quickcontact.QuickContactBroadcastReceiver" |
| android:exported="false" /> |
| |
| <activity-alias android:name="ContactShortcut" |
| android:targetActivity=".activities.ContactSelectionActivity" |
| android:label="@string/shortcutContact" |
| android:icon="@mipmap/ic_launcher_shortcut_contact"> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.CREATE_SHORTCUT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| |
| </activity-alias> |
| |
| <activity-alias android:name="alias.DialShortcut" |
| android:targetActivity=".activities.ContactSelectionActivity" |
| android:label="@string/shortcutDialContact" |
| android:icon="@mipmap/ic_launcher_shortcut_directdial" |
| android:enabled="@*android:bool/config_voice_capable"> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.CREATE_SHORTCUT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.CAR_MODE" /> |
| </intent-filter> |
| |
| </activity-alias> |
| |
| <activity-alias android:name="alias.MessageShortcut" |
| android:targetActivity=".activities.ContactSelectionActivity" |
| android:label="@string/shortcutMessageContact" |
| android:icon="@mipmap/ic_launcher_shortcut_directmessage" |
| android:enabled="@*android:bool/config_voice_capable"> |
| |
| <intent-filter> |
| <action android:name="android.intent.action.CREATE_SHORTCUT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| |
| </activity-alias> |
| |
| <!-- Views the details of a single contact --> |
| <activity android:name=".activities.ContactDetailActivity" |
| android:label="@string/viewContactTitle" |
| android:theme="@style/DetailActivityTheme" |
| android:parentActivityName=".activities.PeopleActivity"> |
| |
| <intent-filter android:label="@string/viewContactDesription"> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.item/person" /> |
| <data android:mimeType="vnd.android.cursor.item/contact" /> |
| <data android:mimeType="vnd.android.cursor.item/raw_contact" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Confirm that a single detail will be added to an existing contact --> |
| <activity |
| android:name=".activities.ConfirmAddDetailActivity" |
| android:label="@string/activity_title_confirm_add_detail" |
| android:theme="@style/ConfirmAddDetailDialogTheme" |
| android:windowSoftInputMode="adjustResize" |
| android:exported="false"/> |
| |
| <!-- Accounts changed prompt that can appear when creating a new contact. --> |
| <activity |
| android:name=".activities.ContactEditorAccountsChangedActivity" |
| android:theme="@style/ContactEditorAccountsChangedActivityTheme" |
| android:windowSoftInputMode="adjustResize" |
| android:exported="false"/> |
| |
| <!-- Create a new or edit an existing contact --> |
| <activity |
| android:name=".activities.ContactEditorActivity" |
| android:theme="@style/EditorActivityTheme" |
| android:windowSoftInputMode="adjustResize"> |
| |
| <intent-filter android:label="@string/editContactDescription"> |
| <action android:name="android.intent.action.EDIT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.item/person" /> |
| <data android:mimeType="vnd.android.cursor.item/contact" /> |
| <data android:mimeType="vnd.android.cursor.item/raw_contact" /> |
| </intent-filter> |
| <intent-filter android:label="@string/insertContactDescription"> |
| <action android:name="android.intent.action.INSERT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/person" /> |
| <data android:mimeType="vnd.android.cursor.dir/contact" /> |
| <data android:mimeType="vnd.android.cursor.dir/raw_contact" /> |
| </intent-filter> |
| </activity> |
| |
| <activity android:name=".common.test.FragmentTestActivity"> |
| <intent-filter> |
| <category android:name="android.intent.category.TEST" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Stub service used to keep our process alive long enough for |
| background threads to finish their operations. --> |
| <service |
| android:name=".util.EmptyService" |
| android:exported="false" /> |
| |
| <!-- Service to save a contact --> |
| <service |
| android:name=".ContactSaveService" |
| android:exported="false" /> |
| |
| <!-- Attaches a photo to a contact. Started from external applications --> |
| <activity android:name=".activities.AttachPhotoActivity" |
| android:label="@string/attach_photo_dialog_title" |
| android:taskAffinity=""> |
| <intent-filter> |
| <action android:name="android.intent.action.ATTACH_DATA" /> |
| <data android:mimeType="image/*" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- |
| Internal photo selection activity. This activity handles all configuration changes by |
| itself. |
| --> |
| <activity android:name=".activities.PhotoSelectionActivity" |
| android:theme="@style/Theme.PhotoSelector" |
| android:launchMode="singleTop" |
| android:windowSoftInputMode="stateUnchanged" |
| android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize" |
| > |
| </activity> |
| |
| <!-- vCard related --> |
| <activity android:name=".vcard.ImportVCardActivity" |
| android:configChanges="orientation|screenSize|keyboardHidden" |
| android:screenOrientation="nosensor" |
| android:theme="@style/BackgroundOnlyTheme"> |
| <intent-filter> |
| <action android:name="android.intent.action.VIEW" /> |
| <data android:mimeType="text/directory" /> |
| <data android:mimeType="text/vcard" /> |
| <data android:mimeType="text/x-vcard" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| |
| <activity android:name=".vcard.NfcImportVCardActivity" |
| android:configChanges="orientation|screenSize|keyboardHidden" |
| android:theme="@style/BackgroundOnlyTheme"> |
| <intent-filter> |
| <action android:name="android.nfc.action.NDEF_DISCOVERED" /> |
| <data android:mimeType="text/vcard" /> |
| <data android:mimeType="text/x-vcard" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| |
| <activity android:name=".vcard.CancelActivity" |
| android:theme="@style/BackgroundOnlyTheme" /> |
| |
| <activity android:name=".vcard.SelectAccountActivity" |
| android:theme="@style/BackgroundOnlyTheme" /> |
| |
| <activity android:name=".vcard.ExportVCardActivity" |
| android:theme="@style/BackgroundOnlyTheme" /> |
| |
| <service |
| android:name=".vcard.VCardService" |
| android:exported="false" /> |
| |
| <!-- Pinned header list demo --> |
| <activity android:name=".widget.PinnedHeaderListDemoActivity"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- The widget that shows details and the social stream of a contact --> |
| <receiver android:name=".socialwidget.SocialWidgetProvider" |
| android:label="@string/social_widget_label" > |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> |
| </intent-filter> |
| <meta-data android:name="android.appwidget.provider" |
| android:resource="@xml/social_widget_info" /> |
| </receiver> |
| |
| <activity |
| android:name=".socialwidget.SocialWidgetConfigureActivity" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar" > |
| <intent-filter> |
| <action android:name="android.intent.action.APPWIDGET_PICK" /> |
| </intent-filter> |
| </activity> |
| |
| <!-- Intercept Dialer Intents for devices without a phone. |
| This activity should have the same intent filters as the DialtactsActivity, |
| so that its capturing the same events. Omit android.intent.category.LAUNCHER, because |
| we don't want this to show up in the Launcher. The priorities of the intent-filters |
| are set lower, so that the user does not see a disambig dialog --> |
| <activity |
| android:name="com.android.contacts.NonPhoneActivity" |
| android:theme="@style/NonPhoneActivityTheme" |
| > |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.DIAL"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| <category android:name="android.intent.category.BROWSABLE"/> |
| <data android:mimeType="vnd.android.cursor.item/phone"/> |
| <data android:mimeType="vnd.android.cursor.item/person"/> |
| </intent-filter> |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.DIAL"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| <category android:name="android.intent.category.BROWSABLE"/> |
| <data android:scheme="voicemail"/> |
| </intent-filter> |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.DIAL"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| </intent-filter> |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.MAIN"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| <category android:name="android.intent.category.BROWSABLE"/> |
| </intent-filter> |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.VIEW"/> |
| <action android:name="android.intent.action.DIAL"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| <category android:name="android.intent.category.BROWSABLE"/> |
| <data android:scheme="tel"/> |
| </intent-filter> |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.VIEW"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| <category android:name="android.intent.category.BROWSABLE"/> |
| <data android:mimeType="vnd.android.cursor.dir/calls"/> |
| </intent-filter> |
| <intent-filter android:priority="-1"> |
| <action android:name="android.intent.action.CALL_BUTTON"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| <category android:name="android.intent.category.BROWSABLE"/> |
| </intent-filter> |
| </activity> |
| |
| <!-- Service that is exclusively for the Phone application that sends out a view |
| notification. This service might be removed in future versions of the app. |
| |
| This is called explicitly by the phone app via package name and class. |
| (PhoneUtils.sendViewNotificationAsync()). If this service moves, then phone |
| needs to be changed as well. |
| --> |
| <service android:name=".ViewNotificationService" |
| android:permission="android.permission.WRITE_CONTACTS" |
| android:exported="true"> |
| <intent-filter> |
| <action android:name="com.android.contacts.VIEW_NOTIFICATION"/> |
| <data android:mimeType="vnd.android.cursor.item/contact"/> |
| </intent-filter> |
| </service> |
| |
| <meta-data android:name="android.nfc.disable_beam_default" android:value="true" /> |
| </application> |
| </manifest> |