aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/res
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/res')
-rw-r--r--OpenKeychain/src/main/res/anim/fab_slide_down.xml6
-rw-r--r--OpenKeychain/src/main/res/anim/fab_slide_in.xml7
-rw-r--r--OpenKeychain/src/main/res/layout/edit_icon.xml9
-rw-r--r--OpenKeychain/src/main/res/layout/edit_identities_activity.xml27
-rw-r--r--OpenKeychain/src/main/res/layout/edit_identities_fragment.xml87
-rw-r--r--OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml10
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_main_fragment.xml33
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml106
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml29
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_adv_user_ids_fragment.xml86
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_fragment.xml102
-rw-r--r--OpenKeychain/src/main/res/layout/view_key_yubikey.xml2
-rw-r--r--OpenKeychain/src/main/res/menu/action_edit_uids.xml10
-rw-r--r--OpenKeychain/src/main/res/menu/action_mode_edit.xml12
-rw-r--r--OpenKeychain/src/main/res/menu/key_view.xml41
-rw-r--r--OpenKeychain/src/main/res/values-cs/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-de/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-es/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-eu/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-fr/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-it/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-ja/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-nl/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-pl/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-ru/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-sl/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-sr/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-sv/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-tr/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-uk/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values-zh-rTW/strings.xml2
-rw-r--r--OpenKeychain/src/main/res/values/colors.xml2
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml9
33 files changed, 467 insertions, 143 deletions
diff --git a/OpenKeychain/src/main/res/anim/fab_slide_down.xml b/OpenKeychain/src/main/res/anim/fab_slide_down.xml
new file mode 100644
index 000000000..e51ac0cb9
--- /dev/null
+++ b/OpenKeychain/src/main/res/anim/fab_slide_down.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+ android:fromYDelta="0" android:toYDelta="300"
+ android:interpolator="@android:anim/anticipate_interpolator"
+ android:duration="250"
+/>
diff --git a/OpenKeychain/src/main/res/anim/fab_slide_in.xml b/OpenKeychain/src/main/res/anim/fab_slide_in.xml
new file mode 100644
index 000000000..cb38f81e8
--- /dev/null
+++ b/OpenKeychain/src/main/res/anim/fab_slide_in.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+ android:fromYDelta="300" android:toYDelta="0"
+ android:interpolator="@android:anim/overshoot_interpolator"
+ android:duration="250"
+ android:startOffset="100"
+/> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/edit_icon.xml b/OpenKeychain/src/main/res/layout/edit_icon.xml
new file mode 100644
index 000000000..f3af5a3dc
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/edit_icon.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:padding="0dp"
+ android:src="@drawable/ic_mode_edit_white_24dp"
+ style="@style/Widget.AppCompat.ActionButton" />
diff --git a/OpenKeychain/src/main/res/layout/edit_identities_activity.xml b/OpenKeychain/src/main/res/layout/edit_identities_activity.xml
new file mode 100644
index 000000000..8505f789a
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/edit_identities_activity.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".ui.EditIdentitiesActivity">
+
+ <include
+ android:id="@+id/toolbar_include"
+ layout="@layout/toolbar_standalone" />
+
+ <LinearLayout
+ android:layout_below="@id/toolbar_include"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <include layout="@layout/notify_area" />
+
+ <FrameLayout
+ android:id="@+id/edit_key_fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" />
+
+ </LinearLayout>
+</RelativeLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/layout/edit_identities_fragment.xml b/OpenKeychain/src/main/res/layout/edit_identities_fragment.xml
new file mode 100644
index 000000000..1b6fcf5df
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/edit_identities_fragment.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".ui.EditIdentitiesActivity">
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingBottom="96dp"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:paddingTop="16dp">
+
+ <CheckBox
+ android:id="@+id/edit_identities_upload_checkbox"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:checked="true"
+ android:text="@string/label_send_key"
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp"/>
+
+ <android.support.v7.widget.CardView
+ android:id="@+id/edit_identities_user_ids_card"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ card_view:cardBackgroundColor="?attr/colorCardViewBackground"
+ card_view:cardCornerRadius="4dp"
+ card_view:cardElevation="2dp"
+ card_view:cardUseCompatPadding="true">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <TextView
+ style="@style/CardViewHeader"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/section_user_ids" />
+
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/edit_identities_user_ids"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/listDivider" />
+
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/edit_identities_user_ids_added"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
+
+ </android.support.v7.widget.CardView>
+
+ </LinearLayout>
+
+ </ScrollView>
+
+ <android.support.design.widget.FloatingActionButton
+ android:id="@+id/edit_identities_add_user_id"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentRight="true"
+ android:layout_marginBottom="24dp"
+ android:layout_marginRight="24dp"
+ android:src="@drawable/ic_add_white_24dp" />
+
+</RelativeLayout>
+
+
diff --git a/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml b/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml
index 8b275fcef..14db368bf 100644
--- a/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/linked_id_view_fragment.xml
@@ -144,14 +144,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:gravity="right|end">
+ android:gravity="left|start">
<Button
android:id="@+id/button_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/linked_button_view"
- android:textColor="@color/link_text_material_light"
+ android:textColor="@color/card_view_button"
style="?android:attr/borderlessButtonStyle"
/>
@@ -166,21 +166,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/linked_button_verify"
- android:textColor="@color/link_text_material_light"
+ android:textColor="@color/card_view_button"
style="?android:attr/borderlessButtonStyle" />
<Button
android:id="@+id/button_retry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/linked_button_retry"
- android:textColor="@color/link_text_material_light"
+ android:textColor="@color/card_view_button"
style="?android:attr/borderlessButtonStyle" />
<Button
android:id="@+id/button_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/linked_button_confirm"
- android:textColor="@color/link_text_material_light"
+ android:textColor="@color/card_view_button"
style="?android:attr/borderlessButtonStyle" />
</ViewAnimator>
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_main_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_main_fragment.xml
deleted file mode 100644
index 3347a514c..000000000
--- a/OpenKeychain/src/main/res/layout/view_key_adv_main_fragment.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <!-- focusable and related properties to workaround http://stackoverflow.com/q/16182331-->
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:focusable="true"
- android:focusableInTouchMode="true"
- android:descendantFocusability="beforeDescendants"
- android:orientation="vertical"
- android:paddingLeft="16dp"
- android:paddingRight="16dp">
-
- <TextView
- style="@style/SectionHeader"
- android:layout_width="wrap_content"
- android:layout_height="0dp"
- android:layout_marginTop="8dp"
- android:text="@string/section_user_ids"
- android:layout_weight="1" />
-
- <org.sufficientlysecure.keychain.ui.widget.FixedListView
- android:id="@+id/view_key_user_ids"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_marginBottom="4dp"
- android:layout_weight="1" />
-
- </LinearLayout>
-
-</ScrollView>
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml
index 62fd113f9..4679d5be9 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_subkeys_fragment.xml
@@ -1,34 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+android:layout_width="match_parent"
+android:layout_height="match_parent"
+xmlns:tools="http://schemas.android.com/tools">
+
+<ScrollView
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:focusable="true"
- android:focusableInTouchMode="true"
- android:descendantFocusability="beforeDescendants"
- android:orientation="vertical">
-
- <TextView
- style="@style/SectionHeader"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="4dp"
- android:layout_marginTop="8dp"
- android:layout_marginLeft="16dp"
- android:layout_marginRight="16dp"
- android:text="@string/section_keys" />
+ android:layout_height="match_parent">
- <FrameLayout
+ <!-- focusable and related properties to workaround http://stackoverflow.com/q/16182331-->
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="wrap_content"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:descendantFocusability="beforeDescendants"
+ android:orientation="vertical"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp">
+
+ <TextView
+ style="@style/SectionHeader"
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_marginTop="8dp"
+ android:text="@string/section_keys"
+ android:layout_weight="1" />
- <ListView
- android:id="@+id/keys"
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/view_key_subkeys"
android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_marginBottom="4dp"
+ android:layout_weight="1"
+ android:scrollbarStyle="outsideOverlay" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:scrollbarStyle="outsideOverlay"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
- android:layout_marginBottom="8dp" />
- </FrameLayout>
+ android:orientation="vertical"
+ android:id="@+id/view_key_subkeys_add_layout"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/listDivider" />
+
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/view_key_subkeys_added"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+</ScrollView>
+
+<ViewAnimator
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentBottom="true"
+ android:id="@+id/view_key_subkey_fab_layout"
+ android:inAnimation="@anim/fab_slide_in"
+ android:outAnimation="@anim/fab_slide_down">
+
+ <Space
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <android.support.design.widget.FloatingActionButton
+ android:id="@+id/view_key_subkey_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="24dp"
+ android:src="@drawable/ic_add_white_24dp"
+ android:visibility="invisible"
+ android:layout_gravity="bottom"
+ tools:visibility="visible" />
+
+</ViewAnimator>
-</LinearLayout> \ No newline at end of file
+</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml
index a9ebe43d3..e2899f806 100644
--- a/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_id_item.xml
@@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ xmlns:custom="http://schemas.android.com/apk/res-auto"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:singleLine="true">
@@ -40,16 +41,19 @@
</LinearLayout>
-
- <LinearLayout
- android:id="@+id/user_id_item_certified_layout"
+ <org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator
+ android:id="@+id/user_id_icon_animator"
android:layout_width="22dp"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
-
android:layout_gravity="center_vertical"
- android:orientation="vertical">
+ android:orientation="vertical"
+ custom:initialView="1">
+
+ <Space
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
<ImageView
android:id="@+id/user_id_item_certified"
@@ -58,15 +62,14 @@
android:src="@drawable/status_signature_unverified_cutout_24dp"
android:layout_gravity="center_horizontal" />
- </LinearLayout>
+ <ImageView
+ android:id="@+id/user_id_item_edit_image"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_mode_edit_grey_24dp"
+ android:layout_gravity="center_vertical" />
- <ImageView
- android:id="@+id/user_id_item_edit_image"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:src="@drawable/ic_mode_edit_grey_24dp"
- android:padding="8dp"
- android:layout_gravity="center_vertical" />
+ </org.sufficientlysecure.keychain.ui.widget.ToolableViewAnimator>
<ImageButton
android:id="@+id/user_id_item_delete_button"
diff --git a/OpenKeychain/src/main/res/layout/view_key_adv_user_ids_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_adv_user_ids_fragment.xml
new file mode 100644
index 000000000..b6399b057
--- /dev/null
+++ b/OpenKeychain/src/main/res/layout/view_key_adv_user_ids_fragment.xml
@@ -0,0 +1,86 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <ScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <!-- focusable and related properties to workaround http://stackoverflow.com/q/16182331-->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:descendantFocusability="beforeDescendants"
+ android:orientation="vertical"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp">
+
+ <TextView
+ style="@style/SectionHeader"
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_marginTop="8dp"
+ android:text="@string/section_user_ids"
+ android:layout_weight="1" />
+
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/view_key_user_ids"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_marginBottom="4dp"
+ android:layout_weight="1" />
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:id="@+id/view_key_user_ids_add_layout"
+ android:visibility="gone"
+ tools:visibility="visible">
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/listDivider" />
+
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/view_key_user_ids_added"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </ScrollView>
+
+ <ViewAnimator
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentBottom="true"
+ android:id="@+id/view_key_subkey_fab_layout"
+ android:inAnimation="@anim/fab_slide_in"
+ android:outAnimation="@anim/fab_slide_down">
+
+ <Space
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <android.support.design.widget.FloatingActionButton
+ android:id="@+id/view_key_subkey_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="24dp"
+ android:src="@drawable/ic_add_white_24dp"
+ android:visibility="invisible"
+ android:layout_gravity="bottom"
+ tools:visibility="visible" />
+
+ </ViewAnimator>
+
+</RelativeLayout>
diff --git a/OpenKeychain/src/main/res/layout/view_key_fragment.xml b/OpenKeychain/src/main/res/layout/view_key_fragment.xml
index 8715945bf..aa3a8e8da 100644
--- a/OpenKeychain/src/main/res/layout/view_key_fragment.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_fragment.xml
@@ -1,8 +1,8 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
@@ -11,16 +11,16 @@
<android.support.v7.widget.CardView
android:id="@+id/card_linked_ids"
- android:transitionName="card_linked_ids"
- android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:transitionName="card_linked_ids"
android:visibility="gone"
- tools:visibility="visible"
card_view:cardBackgroundColor="?attr/colorCardViewBackground"
+ card_view:cardCornerRadius="4dp"
card_view:cardElevation="2dp"
card_view:cardUseCompatPadding="true"
- card_view:cardCornerRadius="4dp">
+ tools:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
@@ -40,31 +40,60 @@
android:layout_marginBottom="4dp" />
<TextView
+ android:id="@+id/view_key_linked_ids_empty"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:gravity="center"
+ android:text="@string/linked_empty" />
+
+ <TextView
android:id="@+id/view_key_linked_ids_expander"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
- android:gravity="center_vertical"
- android:drawableTop="@drawable/divider"
- android:drawableRight="@drawable/ic_expand_more_black_24dp"
+ android:layout_marginTop="4dp"
+ android:background="?android:selectableItemBackground"
+ android:clickable="true"
android:drawableEnd="@drawable/ic_expand_more_black_24dp"
android:drawablePadding="3dp"
- android:clickable="true"
- android:text="@string/linked_ids_more_unknown"
+ android:drawableRight="@drawable/ic_expand_more_black_24dp"
+ android:drawableTop="@drawable/divider"
+ android:gravity="center_vertical"
android:paddingLeft="8dp"
android:paddingRight="8dp"
- android:background="?android:selectableItemBackground"
+ android:text="@string/linked_ids_more_unknown"
android:visibility="gone"
- tools:visibility="visible"
- />
+ tools:visibility="visible" />
+
+ <LinearLayout
+ android:id="@+id/view_key_card_linked_ids_buttons"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="left|start"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/listDivider" />
+
+ <Button
+ android:id="@+id/view_key_card_linked_ids_add"
+ style="?android:attr/borderlessButtonStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/menu_linked_add_identity"
+ android:textColor="@color/card_view_button" />
+
+ </LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
- android:id="@+id/card_view"
+ android:id="@+id/view_key_card_user_ids"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
@@ -78,17 +107,46 @@
android:layout_height="wrap_content"
android:orientation="vertical">
- <TextView
- style="@style/CardViewHeader"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/section_user_ids" />
+ android:orientation="vertical">
- <org.sufficientlysecure.keychain.ui.widget.FixedListView
- android:id="@+id/view_key_user_ids"
+ <TextView
+ style="@style/CardViewHeader"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/section_user_ids" />
+
+ <org.sufficientlysecure.keychain.ui.widget.FixedListView
+ android:id="@+id/view_key_user_ids"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="4dp" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/view_key_card_user_ids_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="4dp" />
+ android:gravity="left|start"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dip"
+ android:background="?android:attr/listDivider" />
+
+ <Button
+ android:id="@+id/view_key_card_user_ids_edit"
+ style="?android:attr/borderlessButtonStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/key_view_action_edit"
+ android:textColor="@color/card_view_button" />
+
+ </LinearLayout>
</LinearLayout>
diff --git a/OpenKeychain/src/main/res/layout/view_key_yubikey.xml b/OpenKeychain/src/main/res/layout/view_key_yubikey.xml
index 57f93493d..5e2bfbfe6 100644
--- a/OpenKeychain/src/main/res/layout/view_key_yubikey.xml
+++ b/OpenKeychain/src/main/res/layout/view_key_yubikey.xml
@@ -89,7 +89,7 @@
android:layout_height="wrap_content"
android:layout_gravity="right|end"
android:text="@string/button_bind_key"
- android:textColor="@color/link_text_material_light"
+ android:textColor="@color/card_view_button"
style="?android:attr/borderlessButtonStyle"
android:visibility="gone"
/>
diff --git a/OpenKeychain/src/main/res/menu/action_edit_uids.xml b/OpenKeychain/src/main/res/menu/action_edit_uids.xml
new file mode 100644
index 000000000..da486afff
--- /dev/null
+++ b/OpenKeychain/src/main/res/menu/action_edit_uids.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/menu_uids_save"
+ android:title="@string/menu_uids_save"
+ app:showAsAction="always" />
+
+</menu> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/menu/action_mode_edit.xml b/OpenKeychain/src/main/res/menu/action_mode_edit.xml
new file mode 100644
index 000000000..edbebac8b
--- /dev/null
+++ b/OpenKeychain/src/main/res/menu/action_mode_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/menu_action_mode_edit"
+ android:icon="@drawable/ic_mode_edit_white_24dp"
+ android:title="@string/key_view_action_edit"
+ app:showAsAction="always"
+ />
+
+</menu> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/menu/key_view.xml b/OpenKeychain/src/main/res/menu/key_view.xml
index c0adfcd6f..0e5a43007 100644
--- a/OpenKeychain/src/main/res/menu/key_view.xml
+++ b/OpenKeychain/src/main/res/menu/key_view.xml
@@ -3,49 +3,42 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
- android:id="@+id/menu_key_view_edit"
- android:icon="@drawable/ic_mode_edit_white_24dp"
- android:visible="false"
- app:showAsAction="always"
- android:title="@string/key_view_action_edit" />
-
- <item
android:id="@+id/menu_key_view_refresh"
android:icon="@drawable/ic_refresh_white_24dp"
- app:showAsAction="always"
- android:title="@string/key_view_action_update" />
+ android:title="@string/key_view_action_update"
+ app:showAsAction="always" />
+
+ <item
+ android:id="@+id/menu_key_change_password"
+ android:title="@string/menu_change_password"
+ app:showAsAction="never" />
<item
android:id="@+id/menu_key_view_backup"
- app:showAsAction="never"
- android:title="@string/menu_export_key" />
+ android:title="@string/menu_export_key"
+ app:showAsAction="never" />
<item
android:id="@+id/menu_key_view_delete"
android:icon="@drawable/ic_delete_grey_24dp"
- app:showAsAction="never"
- android:title="@string/menu_delete_key" />
+ android:title="@string/menu_delete_key"
+ app:showAsAction="never" />
<item
android:id="@+id/menu_key_view_advanced"
- app:showAsAction="never"
- android:title="@string/menu_advanced" />
+ android:title="@string/menu_advanced"
+ app:showAsAction="never" />
<item
android:id="@+id/menu_key_view_certify_fingerprint"
- app:showAsAction="never"
+ android:title="@string/menu_certify_fingerprint"
android:visible="false"
- android:title="@string/menu_certify_fingerprint" />
+ app:showAsAction="never" />
<item
android:id="@+id/menu_key_view_certify_fingerprint_word"
- app:showAsAction="never"
+ android:title="@string/menu_certify_fingerprint_phrases"
android:visible="false"
- android:title="@string/menu_certify_fingerprint_phrases" />
-
- <item
- android:id="@+id/menu_key_view_add_linked_identity"
- app:showAsAction="never"
- android:title="@string/menu_linked_add_identity" />
+ app:showAsAction="never" />
</menu>
diff --git a/OpenKeychain/src/main/res/values-cs/strings.xml b/OpenKeychain/src/main/res/values-cs/strings.xml
index 25f6803d0..6b080e665 100644
--- a/OpenKeychain/src/main/res/values-cs/strings.xml
+++ b/OpenKeychain/src/main/res/values-cs/strings.xml
@@ -385,7 +385,7 @@
<string name="key_list_empty_text1">Žádný klíč nenalezen!</string>
<string name="key_list_filter_show_all">Zobrazit všechny klíče</string>
<!--Key view-->
- <string name="key_view_action_edit">Editovat klíč</string>
+ <string name="key_view_action_edit_ids">Editovat klíč</string>
<string name="key_view_action_encrypt">Zašifrovat text</string>
<string name="key_view_action_encrypt_files">soubory</string>
<string name="key_view_action_certify">Potvrdit klíč</string>
diff --git a/OpenKeychain/src/main/res/values-de/strings.xml b/OpenKeychain/src/main/res/values-de/strings.xml
index 6f4b8d1d5..6a29c338f 100644
--- a/OpenKeychain/src/main/res/values-de/strings.xml
+++ b/OpenKeychain/src/main/res/values-de/strings.xml
@@ -572,7 +572,7 @@
<string name="key_list_fab_search">Schlüsselsuche</string>
<string name="key_list_fab_import">Aus Datei importieren</string>
<!--Key view-->
- <string name="key_view_action_edit">Schlüssel bearbeiten</string>
+ <string name="key_view_action_edit_ids">Schlüssel bearbeiten</string>
<string name="key_view_action_encrypt">Text verschlüsseln</string>
<string name="key_view_action_encrypt_files">Dateien</string>
<string name="key_view_action_certify">Schlüssel bestätigen</string>
diff --git a/OpenKeychain/src/main/res/values-es/strings.xml b/OpenKeychain/src/main/res/values-es/strings.xml
index b39ccac5c..b895ced33 100644
--- a/OpenKeychain/src/main/res/values-es/strings.xml
+++ b/OpenKeychain/src/main/res/values-es/strings.xml
@@ -581,7 +581,7 @@
<string name="key_list_fab_search">Búsqueda de clave</string>
<string name="key_list_fab_import">Importar desde fichero</string>
<!--Key view-->
- <string name="key_view_action_edit">Editar clave</string>
+ <string name="key_view_action_edit_ids">Editar clave</string>
<string name="key_view_action_encrypt">Cifrar texto</string>
<string name="key_view_action_encrypt_files">ficheros</string>
<string name="key_view_action_certify">Confirmar clave</string>
diff --git a/OpenKeychain/src/main/res/values-eu/strings.xml b/OpenKeychain/src/main/res/values-eu/strings.xml
index 3d2ba88d8..b26be00ce 100644
--- a/OpenKeychain/src/main/res/values-eu/strings.xml
+++ b/OpenKeychain/src/main/res/values-eu/strings.xml
@@ -576,7 +576,7 @@
<string name="key_list_fab_search">Giltza Bilaketa</string>
<string name="key_list_fab_import">Inportatu Agiritik</string>
<!--Key view-->
- <string name="key_view_action_edit">Editatu giltza</string>
+ <string name="key_view_action_edit_ids">Editatu giltza</string>
<string name="key_view_action_encrypt">Enkriptatu idazkia</string>
<string name="key_view_action_encrypt_files">agiriak</string>
<string name="key_view_action_certify">Baieztatu giltza</string>
diff --git a/OpenKeychain/src/main/res/values-fr/strings.xml b/OpenKeychain/src/main/res/values-fr/strings.xml
index d80ff8988..506cf2af9 100644
--- a/OpenKeychain/src/main/res/values-fr/strings.xml
+++ b/OpenKeychain/src/main/res/values-fr/strings.xml
@@ -586,7 +586,7 @@
<string name="key_list_fab_search">Recherche de clefs</string>
<string name="key_list_fab_import">Importer d\'un fichier</string>
<!--Key view-->
- <string name="key_view_action_edit">Modifier la clef</string>
+ <string name="key_view_action_edit_ids">Modifier la clef</string>
<string name="key_view_action_encrypt">Chiffrer un texte</string>
<string name="key_view_action_encrypt_files">fichiers</string>
<string name="key_view_action_certify">Confirmer la clef</string>
diff --git a/OpenKeychain/src/main/res/values-it/strings.xml b/OpenKeychain/src/main/res/values-it/strings.xml
index 42478af12..8a9fc394f 100644
--- a/OpenKeychain/src/main/res/values-it/strings.xml
+++ b/OpenKeychain/src/main/res/values-it/strings.xml
@@ -441,7 +441,7 @@ Permetti accesso?\n\nATTENZIONE: Se non sai perche\' questo schermata e\' appars
<string name="key_list_empty_text1">Nessuna chiave trovata!</string>
<string name="key_list_filter_show_all">Mostra tutte le chiavi</string>
<!--Key view-->
- <string name="key_view_action_edit">Modifica chiave</string>
+ <string name="key_view_action_edit_ids">Modifica chiave</string>
<string name="key_view_action_encrypt">Codifica Testo</string>
<string name="key_view_action_encrypt_files">documenti</string>
<string name="key_view_action_update">Aggiorna dal server delle chiavi</string>
diff --git a/OpenKeychain/src/main/res/values-ja/strings.xml b/OpenKeychain/src/main/res/values-ja/strings.xml
index 82a4c8f33..5b1b3e9ef 100644
--- a/OpenKeychain/src/main/res/values-ja/strings.xml
+++ b/OpenKeychain/src/main/res/values-ja/strings.xml
@@ -573,7 +573,7 @@
<string name="key_list_fab_search">鍵の検索</string>
<string name="key_list_fab_import">ファイルからインポート</string>
<!--Key view-->
- <string name="key_view_action_edit">鍵の編集</string>
+ <string name="key_view_action_edit_ids">鍵の編集</string>
<string name="key_view_action_encrypt">テキスト暗号化</string>
<string name="key_view_action_encrypt_files">ファイル</string>
<string name="key_view_action_certify">鍵の確認</string>
diff --git a/OpenKeychain/src/main/res/values-nl/strings.xml b/OpenKeychain/src/main/res/values-nl/strings.xml
index 04fac67f2..932832f60 100644
--- a/OpenKeychain/src/main/res/values-nl/strings.xml
+++ b/OpenKeychain/src/main/res/values-nl/strings.xml
@@ -489,7 +489,7 @@
<string name="key_list_empty_text1">Geen sleutels gevonden!</string>
<string name="key_list_filter_show_all">Alle sleutels weergeven</string>
<!--Key view-->
- <string name="key_view_action_edit">Sleutel bewerken</string>
+ <string name="key_view_action_edit_ids">Sleutel bewerken</string>
<string name="key_view_action_encrypt">Versleutel tekst</string>
<string name="key_view_action_encrypt_files">bestanden</string>
<string name="key_view_action_certify">Sleutel bevestigen</string>
diff --git a/OpenKeychain/src/main/res/values-pl/strings.xml b/OpenKeychain/src/main/res/values-pl/strings.xml
index 5c80bf161..adb3cf49f 100644
--- a/OpenKeychain/src/main/res/values-pl/strings.xml
+++ b/OpenKeychain/src/main/res/values-pl/strings.xml
@@ -373,7 +373,7 @@ OSTRZEŻENIE: Jeżeli nie wiesz, czemu wyświetlił się ten komunikat, nie zezw
<string name="key_list_empty_text1">Nie znaleziono kluczy!</string>
<string name="key_list_filter_show_all">Pokaż wszystkie klucze</string>
<!--Key view-->
- <string name="key_view_action_edit">Edytuj klucz</string>
+ <string name="key_view_action_edit_ids">Edytuj klucz</string>
<string name="key_view_action_encrypt">Szyfruj tekst</string>
<string name="key_view_action_encrypt_files">pliki</string>
<string name="key_view_action_update">Aktualizuj z serwera kluczy</string>
diff --git a/OpenKeychain/src/main/res/values-ru/strings.xml b/OpenKeychain/src/main/res/values-ru/strings.xml
index c1710c063..10dd79cba 100644
--- a/OpenKeychain/src/main/res/values-ru/strings.xml
+++ b/OpenKeychain/src/main/res/values-ru/strings.xml
@@ -487,7 +487,7 @@
<string name="key_list_filter_show_all">Показать все ключи</string>
<string name="key_list_fab_search">Поиск ключа</string>
<!--Key view-->
- <string name="key_view_action_edit">Изменить ключ</string>
+ <string name="key_view_action_edit_ids">Изменить ключ</string>
<string name="key_view_action_encrypt">Зашифровать текст</string>
<string name="key_view_action_encrypt_files">файлы</string>
<string name="key_view_action_certify">Подтвердить ключ</string>
diff --git a/OpenKeychain/src/main/res/values-sl/strings.xml b/OpenKeychain/src/main/res/values-sl/strings.xml
index d7db38ccf..697de0984 100644
--- a/OpenKeychain/src/main/res/values-sl/strings.xml
+++ b/OpenKeychain/src/main/res/values-sl/strings.xml
@@ -426,7 +426,7 @@
<string name="key_list_empty_text1">Najden ni bil noben ključ!</string>
<string name="key_list_filter_show_all">Prikaži vse ključe</string>
<!--Key view-->
- <string name="key_view_action_edit">Uredi ključ</string>
+ <string name="key_view_action_edit_ids">Uredi ključ</string>
<string name="key_view_action_encrypt">Šifriraj besedilo</string>
<string name="key_view_action_encrypt_files">datoteke</string>
<string name="key_view_action_certify">Potrdi ključ</string>
diff --git a/OpenKeychain/src/main/res/values-sr/strings.xml b/OpenKeychain/src/main/res/values-sr/strings.xml
index f19f92087..8ff26f896 100644
--- a/OpenKeychain/src/main/res/values-sr/strings.xml
+++ b/OpenKeychain/src/main/res/values-sr/strings.xml
@@ -600,7 +600,7 @@
<string name="key_list_fab_search">Претрага кључа</string>
<string name="key_list_fab_import">Увези из фајла</string>
<!--Key view-->
- <string name="key_view_action_edit">Уреди кључ</string>
+ <string name="key_view_action_edit_ids">Уреди кључ</string>
<string name="key_view_action_encrypt">Шифруј текст</string>
<string name="key_view_action_encrypt_files">фајлови</string>
<string name="key_view_action_certify">Потврди кључ</string>
diff --git a/OpenKeychain/src/main/res/values-sv/strings.xml b/OpenKeychain/src/main/res/values-sv/strings.xml
index 23d7e6908..f3a818ecf 100644
--- a/OpenKeychain/src/main/res/values-sv/strings.xml
+++ b/OpenKeychain/src/main/res/values-sv/strings.xml
@@ -476,7 +476,7 @@
<string name="key_list_fab_search">Nyckelsökning</string>
<string name="key_list_fab_import">Importera från fil</string>
<!--Key view-->
- <string name="key_view_action_edit">Redigera nyckel</string>
+ <string name="key_view_action_edit_ids">Redigera nyckel</string>
<string name="key_view_action_encrypt">Kryptera text</string>
<string name="key_view_action_encrypt_files">filer</string>
<string name="key_view_action_certify">Bekräfta nyckel</string>
diff --git a/OpenKeychain/src/main/res/values-tr/strings.xml b/OpenKeychain/src/main/res/values-tr/strings.xml
index 22cd4e361..b6088a954 100644
--- a/OpenKeychain/src/main/res/values-tr/strings.xml
+++ b/OpenKeychain/src/main/res/values-tr/strings.xml
@@ -302,7 +302,7 @@
</plurals>
<string name="key_list_filter_show_all">Tüm anahtarları göster</string>
<!--Key view-->
- <string name="key_view_action_edit">Anahtarı düzenle</string>
+ <string name="key_view_action_edit_ids">Anahtarı düzenle</string>
<string name="key_view_action_encrypt">Metni şifrele</string>
<string name="key_view_action_encrypt_files">dosyalar</string>
<string name="key_view_action_update">Anahtar sunucusundan güncelle</string>
diff --git a/OpenKeychain/src/main/res/values-uk/strings.xml b/OpenKeychain/src/main/res/values-uk/strings.xml
index 0613819e9..97f9ec391 100644
--- a/OpenKeychain/src/main/res/values-uk/strings.xml
+++ b/OpenKeychain/src/main/res/values-uk/strings.xml
@@ -309,7 +309,7 @@
<string name="key_list_empty_text1">Ключ не знайдено!</string>
<string name="key_list_filter_show_all">Показати усі ключі</string>
<!--Key view-->
- <string name="key_view_action_edit">Редагувати ключ</string>
+ <string name="key_view_action_edit_ids">Редагувати ключ</string>
<string name="key_view_action_encrypt">Зашифрувати текст</string>
<string name="key_view_action_encrypt_files">файли</string>
<string name="key_view_action_update">Оновити із сервера ключів</string>
diff --git a/OpenKeychain/src/main/res/values-zh-rTW/strings.xml b/OpenKeychain/src/main/res/values-zh-rTW/strings.xml
index 81b3bf126..cb4ebf002 100644
--- a/OpenKeychain/src/main/res/values-zh-rTW/strings.xml
+++ b/OpenKeychain/src/main/res/values-zh-rTW/strings.xml
@@ -479,7 +479,7 @@
<!--Key list-->
<string name="key_list_empty_text1">找不到金鑰!</string>
<!--Key view-->
- <string name="key_view_action_edit">編輯金鑰</string>
+ <string name="key_view_action_edit_ids">編輯金鑰</string>
<string name="key_view_action_encrypt">加密文字</string>
<string name="key_view_action_encrypt_files">檔案</string>
<string name="key_view_action_share_with">分享...</string>
diff --git a/OpenKeychain/src/main/res/values/colors.xml b/OpenKeychain/src/main/res/values/colors.xml
index 4eb9e7d68..93cf126f7 100644
--- a/OpenKeychain/src/main/res/values/colors.xml
+++ b/OpenKeychain/src/main/res/values/colors.xml
@@ -34,6 +34,6 @@
<color name="translucent_scrim_bottom_center">#2A000000</color>
<!-- linked ID view -->
- <color name="link_text_material_light">#ff009688</color>
+ <color name="card_view_button">#7bad45</color>
</resources>
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index eb6dab882..e5e20a014 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -129,6 +129,7 @@
<string name="menu_certify_fingerprint">"Confirm with fingerprint"</string>
<string name="menu_certify_fingerprint_phrases">"Confirm with phrases"</string>
<string name="menu_share_log">"Share log"</string>
+ <string name="menu_change_password">"Change password"</string>
<string name="menu_keyserver_add">"Add"</string>
@@ -666,7 +667,7 @@
<string name="key_list_fab_import">"Import from File"</string>
<!-- Key view -->
- <string name="key_view_action_edit">"Edit key"</string>
+ <string name="key_view_action_edit">"Edit"</string>
<string name="key_view_action_encrypt">"Encrypt text"</string>
<string name="key_view_action_encrypt_files">"files"</string>
<string name="key_view_action_certify">"Confirm key"</string>
@@ -1680,7 +1681,8 @@
<string name="linked_error_network">"Network error!"</string>
<string name="linked_error_http">"Communication error: %s"</string>
<string name="linked_webview_title_github">"GitHub Authorization"</string>
- <string name="linked_gist_description">"OpenKeychain API Tests"</string>
+ <string name="linked_gist_description">"OpenKeychain Linked Identity"</string>
+ <string name="linked_empty">Link your key to Github, Twitter or other websites!</string>
<string name="snack_btn_overwrite">"Overwrite"</string>
<string name="backup_code_explanation">"The backup will be secured with a backup code. Write it down before you proceed!"</string>
<string name="backup_code_enter">"Please enter the backup code:"</string>
@@ -1703,6 +1705,9 @@
<string name="share_log_dialog_cancel_button">"Cancel"</string>
<string name="toast_wrong_mimetype">"Wrong data type, text was expected!"</string>
<string name="toast_no_text">"No text in shared data!"</string>
+ <string name="menu_uids_save">"Save"</string>
+ <string name="title_edit_identities">"Edit Identities"</string>
+ <string name="title_edit_subkeys">"Edit Subkeys"</string>
<string name="btn_search_for_query">"Search for\n'%s'"</string>
</resources>