diff options
| author | Arne Schwabe <arne@rfc2549.org> | 2014-04-20 21:38:19 +0200 |
|---|---|---|
| committer | Arne Schwabe <arne@rfc2549.org> | 2014-05-17 13:08:14 +0200 |
| commit | be26c1845210a1c8824677ed6e2d093073ea5c84 (patch) | |
| tree | 81d02773f4fd9edc5d05b44c770be89994a9c207 /main/res/layout | |
| parent | 496878826d638367c129b02e66f992202e0d36c9 (diff) | |
| download | cgeo-be26c1845210a1c8824677ed6e2d093073ea5c84.zip cgeo-be26c1845210a1c8824677ed6e2d093073ea5c84.tar.gz cgeo-be26c1845210a1c8824677ed6e2d093073ea5c84.tar.bz2 | |
Implement ActionBar using AppCompat in cgeo
This a first version of an ActionBar implementation with following properties:
- The application should be usuable (there still might be bugs left from the conversation to Action)
- Provides a more modern feeling on all devices
- gets rid of the "dots of shame" on Android 3.0+ devices
- The Maps classes MUST inherit from Activity instead of ActionBarActivity. There these classes use the old ActionBar on Android 2.3 devices and the real ActionBar on 3.0+
- This can be fixed when cgeo is ported to Google Maps API v2.0 API which usesFragment
- The Dialog classes (CachePopup and WaypointPopup) have been converted to DialogFragments
- The AppCombat themes provide no Theme.Dialog theme
- this will later ease using these Fragment in other Activities
- Use an almost empty activity which just shows the DialogFragment
- Use the 'old' ActionBar but which overflow menu button to fit into Holo Design Style
- Using a real ActionBar for Dialogs is not really support by Android and trying to force the frame into showing an Actionbar on a dialog leeds to strange bugs/effects
- Most of the icon are still the Android 2.3 Menu Icon. These need to be replaced with Holo Style Icons
- for most menu icon the ifRoom and/or withText attributes should be reviewed and set
- The ActionBar of the main Activity is transparent. This is more or less by accident but looks good
- Review Up Action of activities. Is going back to Main Activity always the semantically right thing to do?
- Shortpress/Longpress on the Actionbars Compass Icon for primary/secondary Navigation clashes the normal ActionBar behaviour of long pressing to show the text of the action
This commit contains many fixes and suggestions from rsudev
Diffstat (limited to 'main/res/layout')
34 files changed, 119 insertions, 200 deletions
diff --git a/main/res/layout/actionbar.xml b/main/res/layout/actionbar.xml deleted file mode 100644 index 098120c..0000000 --- a/main/res/layout/actionbar.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - -</LinearLayout>
\ No newline at end of file diff --git a/main/res/layout/actionbar_button_compass.xml b/main/res/layout/actionbar_button_compass.xml deleted file mode 100644 index 932444b..0000000 --- a/main/res/layout/actionbar_button_compass.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <View style="@style/action_bar_separator" /> - - <ImageView - android:id="@+id/defaultNavigation" - style="@style/action_bar_action" - android:longClickable="true" - android:onClick="goDefaultNavigation" - android:src="@drawable/actionbar_compass_dark" /> - -</merge>
\ No newline at end of file diff --git a/main/res/layout/actionbar_button_map.xml b/main/res/layout/actionbar_button_map.xml deleted file mode 100644 index 9b2138a..0000000 --- a/main/res/layout/actionbar_button_map.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <View style="@style/action_bar_separator" /> - - <ImageView - style="@style/action_bar_action" - android:onClick="goMap" - android:src="@drawable/actionbar_map" /> - -</merge>
\ No newline at end of file diff --git a/main/res/layout/actionbar_button_myposition.xml b/main/res/layout/actionbar_button_myposition.xml deleted file mode 100644 index 1e91419..0000000 --- a/main/res/layout/actionbar_button_myposition.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <View style="@style/action_bar_separator" /> - - <ImageSwitcher - android:id="@+id/my_position" - style="@style/action_bar_action" /> - -</merge>
\ No newline at end of file diff --git a/main/res/layout/actionbar_button_search.xml b/main/res/layout/actionbar_button_search.xml deleted file mode 100644 index 2aa1a50..0000000 --- a/main/res/layout/actionbar_button_search.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <View style="@style/action_bar_separator" /> - - <ImageView - style="@style/action_bar_action" - android:onClick="goSearch" - android:src="@drawable/actionbar_search" /> - -</merge>
\ No newline at end of file diff --git a/main/res/layout/actionbar_maps.xml b/main/res/layout/actionbar_maps.xml new file mode 100644 index 0000000..61e3acc --- /dev/null +++ b/main/res/layout/actionbar_maps.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + style="@style/action_bar"> + + <!-- Add the up chevron to the icon --> + <ImageView + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:src="@drawable/abc_ic_ab_back_holo_dark"/> + <ImageView + style="@style/action_bar_action" + android:layout_marginLeft="-13dp" + android:onClick="goHome" /> + + <View style="@style/action_bar_separator" /> + + <TextView + android:id="@+id/actionbar_title" + style="@style/action_bar_title" /> + + <ProgressBar + android:id="@+id/actionbar_progress" + style="@style/action_bar_progress" + android:visibility="gone" /> + + <View style="@style/action_bar_separator" /> + + <FrameLayout style="@style/action_bar_action"> + + <CheckBox + android:id="@+id/my_position" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:button="@drawable/ic_menu_myposition" + android:checked="false" /> + </FrameLayout> + + <!-- No overflow (...) button here since this menu is only shown on Gingerbread, which never + features an overflow menu --> +</LinearLayout>
\ No newline at end of file diff --git a/main/res/layout/actionbar_popup.xml b/main/res/layout/actionbar_popup.xml new file mode 100644 index 0000000..0cab165 --- /dev/null +++ b/main/res/layout/actionbar_popup.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + style="@style/action_bar"> + + <TextView + android:id="@+id/actionbar_title" + style="@style/action_bar_title" /> + + <ProgressBar + android:id="@+id/actionbar_progress" + style="@style/action_bar_progress" + android:visibility="gone" /> + + <View style="@style/action_bar_separator" /> + + + <ImageView + android:id="@+id/defaultNavigation" + style="@style/action_bar_action" + android:longClickable="true" + android:src="@drawable/actionbar_compass_dark" /> + + <View style="@style/action_bar_separator" /> + + <ImageView + android:id="@+id/overflowActionBar" + style="@style/action_bar_action" + android:longClickable="true" + android:src="@drawable/abc_ic_menu_moreoverflow_normal_holo_dark" /> + + +</LinearLayout>
\ No newline at end of file diff --git a/main/res/layout/actionbar_progress.xml b/main/res/layout/actionbar_progress.xml deleted file mode 100644 index 54b5875..0000000 --- a/main/res/layout/actionbar_progress.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/actionbar_progress" - style="@style/action_bar_progress" - android:visibility="gone" /> diff --git a/main/res/layout/actionbar_title.xml b/main/res/layout/actionbar_title.xml deleted file mode 100644 index 4fa5348..0000000 --- a/main/res/layout/actionbar_title.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <ImageView - style="@style/action_bar_action" - android:onClick="goHome" /> - - <View style="@style/action_bar_separator" /> - - <TextView - android:id="@+id/actionbar_title" - style="@style/action_bar_title" /> - -</merge>
\ No newline at end of file diff --git a/main/res/layout/actionbar_title_no_home.xml b/main/res/layout/actionbar_title_no_home.xml deleted file mode 100644 index 6295bdc..0000000 --- a/main/res/layout/actionbar_title_no_home.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <TextView - android:id="@+id/actionbar_title" - style="@style/action_bar_title" /> - -</merge>
\ No newline at end of file diff --git a/main/res/layout/addresslist_activity.xml b/main/res/layout/addresslist_activity.xml index c48c28f..e5c6491 100644 --- a/main/res/layout/addresslist_activity.xml +++ b/main/res/layout/addresslist_activity.xml @@ -4,7 +4,7 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <include layout="@layout/actionbar" /> + <include layout="@layout/actionbar_maps" /> <ListView android:id="@android:id/list" diff --git a/main/res/layout/authorization_activity.xml b/main/res/layout/authorization_activity.xml index 28c1987..766db6e 100644 --- a/main/res/layout/authorization_activity.xml +++ b/main/res/layout/authorization_activity.xml @@ -5,8 +5,6 @@ android:orientation="vertical" android:visibility="visible" > - <include layout="@layout/actionbar" /> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/cachedetail_activity.xml b/main/res/layout/cachedetail_activity.xml index 3afe5f6..aa88355 100644 --- a/main/res/layout/cachedetail_activity.xml +++ b/main/res/layout/cachedetail_activity.xml @@ -6,13 +6,6 @@ android:background="?background_color"
android:orientation="vertical" >
- <LinearLayout style="@style/action_bar" >
-
- <include layout="@layout/actionbar_title" />
-
- <include layout="@layout/actionbar_button_compass" />
- </LinearLayout>
-
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
diff --git a/main/res/layout/cachelist_spinneritem.xml b/main/res/layout/cachelist_spinneritem.xml new file mode 100644 index 0000000..c8a589f --- /dev/null +++ b/main/res/layout/cachelist_spinneritem.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:orientation="vertical" android:layout_width="match_parent" + android:layout_height="?attr/dropdownListPreferredItemHeight" + android:minHeight="?attr/dropdownListPreferredItemHeight" + style="?attr/spinnerDropDownItemStyle" + android:layout_gravity="left|center_vertical" + > + + + <TextView + android:id="@android:id/text1" + android:textAppearance="?android:attr/textAppearanceMedium" + tools:text="This is the title" + android:singleLine="true" + android:ellipsize="marquee" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:singleLine="true" + android:ellipsize="marquee" + android:textAppearance="?android:attr/textAppearanceSmall" + tools:text="This is the subtitle" + android:id="@android:id/text2" /> + +</LinearLayout>
\ No newline at end of file diff --git a/main/res/layout/cacheslist_activity.xml b/main/res/layout/cacheslist_activity.xml index c267f60..a12adad 100644 --- a/main/res/layout/cacheslist_activity.xml +++ b/main/res/layout/cacheslist_activity.xml @@ -4,15 +4,6 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - - <include layout="@layout/actionbar_progress" /> - - <include layout="@layout/actionbar_button_map" /> - </LinearLayout> - <include layout="@layout/filter_bar" /> <RelativeLayout diff --git a/main/res/layout/cacheslist_item.xml b/main/res/layout/cacheslist_item.xml index 744ca30..b43310e 100644 --- a/main/res/layout/cacheslist_item.xml +++ b/main/res/layout/cacheslist_item.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:cc="http://schemas.android.com/apk/res/cgeo.geocaching" + xmlns:cgeo="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/one_cache" android:layout_width="fill_parent" @@ -111,7 +111,7 @@ android:minHeight="28px" android:minWidth="28px" android:visibility="gone" - cc:skin="?compass" + cgeo:skin="?compass" tools:ignore="PxUsage" /> <ImageView diff --git a/main/res/layout/compass_activity.xml b/main/res/layout/compass_activity.xml index f0ab5ef..a9c67cf 100644 --- a/main/res/layout/compass_activity.xml +++ b/main/res/layout/compass_activity.xml @@ -5,8 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/editwaypoint_activity.xml b/main/res/layout/editwaypoint_activity.xml index cd0b46c..a08a3c8 100644 --- a/main/res/layout/editwaypoint_activity.xml +++ b/main/res/layout/editwaypoint_activity.xml @@ -5,8 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/gpx.xml b/main/res/layout/gpx.xml index 948c265..368f3ae 100644 --- a/main/res/layout/gpx.xml +++ b/main/res/layout/gpx.xml @@ -4,8 +4,6 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <Button android:id="@+id/select_dir" style="@style/button_full" diff --git a/main/res/layout/images_activity.xml b/main/res/layout/images_activity.xml index ccd8499..861fa7e 100644 --- a/main/res/layout/images_activity.xml +++ b/main/res/layout/images_activity.xml @@ -5,8 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <include layout="@layout/cachedetail_images_page" /> </LinearLayout>
\ No newline at end of file diff --git a/main/res/layout/imageselect_activity.xml b/main/res/layout/imageselect_activity.xml index fd8eaea..aac7e47 100644 --- a/main/res/layout/imageselect_activity.xml +++ b/main/res/layout/imageselect_activity.xml @@ -5,13 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - - <include layout="@layout/actionbar_progress" /> - </LinearLayout> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/logcache_activity.xml b/main/res/layout/logcache_activity.xml index 4bbb441..cc34633 100644 --- a/main/res/layout/logcache_activity.xml +++ b/main/res/layout/logcache_activity.xml @@ -5,13 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - - <include layout="@layout/actionbar_progress" /> - </LinearLayout> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/logtrackable_activity.xml b/main/res/layout/logtrackable_activity.xml index 7791409..ef345a1 100644 --- a/main/res/layout/logtrackable_activity.xml +++ b/main/res/layout/logtrackable_activity.xml @@ -5,13 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - - <include layout="@layout/actionbar_progress" /> - </LinearLayout> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/main_activity.xml b/main/res/layout/main_activity.xml index 9e124a1..29a445f 100644 --- a/main/res/layout/main_activity.xml +++ b/main/res/layout/main_activity.xml @@ -5,17 +5,6 @@ android:layout_height="fill_parent" android:layout_gravity="center" > - <LinearLayout style="@style/action_bar" > - - <ImageView - style="@style/action_bar_icon_cgeo" - android:onClick="showAbout" /> - - <TextView style="@style/action_bar_title" /> - - <include layout="@layout/actionbar_button_search" /> - </LinearLayout> - <fragment android:id="@+id/status" android:name="cgeo.geocaching.StatusFragment" diff --git a/main/res/layout/map_google.xml b/main/res/layout/map_google.xml index 5e4d82d..471c2b8 100644 --- a/main/res/layout/map_google.xml +++ b/main/res/layout/map_google.xml @@ -4,14 +4,9 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - <include layout="@layout/actionbar_title" /> - <include layout="@layout/actionbar_progress" /> - - <include layout="@layout/actionbar_button_myposition" /> - </LinearLayout> + <include layout="@layout/actionbar_maps" /> <include layout="@layout/filter_bar" /> diff --git a/main/res/layout/map_mapsforge.xml b/main/res/layout/map_mapsforge.xml index f05ddb0..c44a3ee 100644 --- a/main/res/layout/map_mapsforge.xml +++ b/main/res/layout/map_mapsforge.xml @@ -4,14 +4,7 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - - <include layout="@layout/actionbar_progress" /> - - <include layout="@layout/actionbar_button_myposition" /> - </LinearLayout> + <include layout="@layout/actionbar_maps" /> <include layout="@layout/filter_bar" /> diff --git a/main/res/layout/map_mapsforge_old.xml b/main/res/layout/map_mapsforge_old.xml index ff2b9af..daa5f74 100644 --- a/main/res/layout/map_mapsforge_old.xml +++ b/main/res/layout/map_mapsforge_old.xml @@ -4,14 +4,7 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title" /> - - <include layout="@layout/actionbar_progress" /> - - <include layout="@layout/actionbar_button_myposition" /> - </LinearLayout> + <include layout="@layout/actionbar_maps" /> <include layout="@layout/filter_bar" /> diff --git a/main/res/layout/navigateanypoint_activity.xml b/main/res/layout/navigateanypoint_activity.xml index baa568c..22a29af 100644 --- a/main/res/layout/navigateanypoint_activity.xml +++ b/main/res/layout/navigateanypoint_activity.xml @@ -5,8 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <ListView android:id="@+id/historyList" android:layout_width="match_parent" diff --git a/main/res/layout/popup.xml b/main/res/layout/popup.xml index 584eb58..de94d18 100644 --- a/main/res/layout/popup.xml +++ b/main/res/layout/popup.xml @@ -1,21 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="?background_color_transparent" - android:orientation="vertical" > - - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title_no_home" /> - - <include layout="@layout/actionbar_button_compass" /> - </LinearLayout> + android:orientation="vertical" + tools:context=".CachePopup"> + <include layout="@layout/actionbar_popup" /> <ScrollView android:id="@+id/details_list_box" - android:layout_width="fill_parent" - android:layout_height="fill_parent" + android:layout_width="wrap_content" + android:layout_height="wrap_content" android:orientation="vertical" android:padding="4dip" > @@ -50,6 +46,7 @@ <TextView android:id="@+id/offline_text" + tools:text="@string/cache_offline_not_ready" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" diff --git a/main/res/layout/search_activity.xml b/main/res/layout/search_activity.xml index 28256f1..f7a1a70 100644 --- a/main/res/layout/search_activity.xml +++ b/main/res/layout/search_activity.xml @@ -6,8 +6,6 @@ android:background="?background_color" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/staticmaps_activity.xml b/main/res/layout/staticmaps_activity.xml index 2ffa70d..1d7c1f5 100644 --- a/main/res/layout/staticmaps_activity.xml +++ b/main/res/layout/staticmaps_activity.xml @@ -4,8 +4,6 @@ android:layout_height="fill_parent" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" diff --git a/main/res/layout/usefulapps_activity.xml b/main/res/layout/usefulapps_activity.xml index 84bcf39..fa2112e 100644 --- a/main/res/layout/usefulapps_activity.xml +++ b/main/res/layout/usefulapps_activity.xml @@ -5,8 +5,6 @@ android:background="?background_color" android:orientation="vertical" > - <include layout="@layout/actionbar" /> - <ListView android:id="@+id/apps_list" android:layout_width="fill_parent" diff --git a/main/res/layout/viewpager_activity.xml b/main/res/layout/viewpager_activity.xml index 14120e0..aa88355 100644 --- a/main/res/layout/viewpager_activity.xml +++ b/main/res/layout/viewpager_activity.xml @@ -6,8 +6,6 @@ android:background="?background_color"
android:orientation="vertical" >
- <include layout="@layout/actionbar" />
-
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
diff --git a/main/res/layout/waypoint_popup.xml b/main/res/layout/waypoint_popup.xml index c8b257c..287fc3a 100644 --- a/main/res/layout/waypoint_popup.xml +++ b/main/res/layout/waypoint_popup.xml @@ -5,12 +5,7 @@ android:background="?background_color_transparent" android:orientation="vertical" > - <LinearLayout style="@style/action_bar" > - - <include layout="@layout/actionbar_title_no_home" /> - - <include layout="@layout/actionbar_button_compass" /> - </LinearLayout> + <include layout="@layout/actionbar_popup" /> <ScrollView android:id="@+id/details_list_box" |
