diff options
author | VladiMihaylenko <vxmihaylenko@gmail.com> | 2017-06-19 19:57:05 +0300 |
---|---|---|
committer | Yuri Gorshenin <mipt.vi002@gmail.com> | 2017-07-05 16:41:38 +0300 |
commit | 4302e1a9b4b4bc85b35644409764406e0edb89b5 (patch) | |
tree | 36b9e4b39622882846a09439f71fed1e1ceeebb1 | |
parent | 0df4620d1e2f1c0db9d0585856043dd1353bd706 (diff) |
Ugc.
180 files changed, 2204 insertions, 24 deletions
diff --git a/iphone/Maps/Bridging-Header.h b/iphone/Maps/Bridging-Header.h index 0ef14222fd..8846ca8806 100644 --- a/iphone/Maps/Bridging-Header.h +++ b/iphone/Maps/Bridging-Header.h @@ -31,6 +31,7 @@ #import "MWMSearchNoResults.h" #import "MWMSettings.h" #import "MWMTableViewCell.h" +#import "MWMTextView.h" #import "MWMTypes.h" #import "MWMViewController.h" #import "Statistics.h" diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/Contents.json new file mode 100644 index 0000000000..da4a164c91 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/Contents.json new file mode 100644 index 0000000000..6c4eedf32b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_ugc_thumb_down.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ic_ugc_thumb_down@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_ugc_thumb_down@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down.png b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down.png Binary files differnew file mode 100644 index 0000000000..353b3f2153 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down@2x.png Binary files differnew file mode 100644 index 0000000000..ebe3d3379b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down@3x.png Binary files differnew file mode 100644 index 0000000000..704eb89ace --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_down.imageset/ic_ugc_thumb_down@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/Contents.json new file mode 100644 index 0000000000..39685751fd --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/Contents.json @@ -0,0 +1,26 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "ic_ugc_thumb_up.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ic_ugc_thumb_up@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_ugc_thumb_up@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up.png b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up.png Binary files differnew file mode 100644 index 0000000000..c12e4400ed --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up@2x.png Binary files differnew file mode 100644 index 0000000000..89110ab583 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up@3x.png Binary files differnew file mode 100644 index 0000000000..e5b6b7bbcd --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/ic_ugc_thumb_up.imageset/ic_ugc_thumb_up@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/Contents.json new file mode 100644 index 0000000000..2fb76022c9 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_average_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark.png Binary files differnew file mode 100644 index 0000000000..9965ce8636 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark@2x.png Binary files differnew file mode 100644 index 0000000000..eca9963068 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark@3x.png Binary files differnew file mode 100644 index 0000000000..17ffc7cf66 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_dark.imageset/rating_average_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/Contents.json new file mode 100644 index 0000000000..aee0c9e06b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_average_highlited_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_highlited_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_highlited_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark.png Binary files differnew file mode 100644 index 0000000000..0ea5882c8a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark@2x.png Binary files differnew file mode 100644 index 0000000000..7d60f2800a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark@3x.png Binary files differnew file mode 100644 index 0000000000..c51d8c12c1 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_dark.imageset/rating_average_highlited_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/Contents.json new file mode 100644 index 0000000000..1826105f65 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_avarage_highlited_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_avarage_highlited_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_avarage_highlited_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light.png Binary files differnew file mode 100644 index 0000000000..18d6ee6703 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light@2x.png Binary files differnew file mode 100644 index 0000000000..30eee07e48 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light@3x.png Binary files differnew file mode 100644 index 0000000000..21bef410d3 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_highlighted_light.imageset/rating_avarage_highlited_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/Contents.json new file mode 100644 index 0000000000..a3edd65a43 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_avarage_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_avarage_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_avarage_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light.png Binary files differnew file mode 100644 index 0000000000..df99bfbfa8 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light@2x.png Binary files differnew file mode 100644 index 0000000000..19e80ab683 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light@3x.png Binary files differnew file mode 100644 index 0000000000..e6438eb7c6 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_light.imageset/rating_avarage_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/Contents.json new file mode 100644 index 0000000000..90a821348b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_average_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected.png Binary files differnew file mode 100644 index 0000000000..b48abbf074 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected@2x.png Binary files differnew file mode 100644 index 0000000000..c8dcd30262 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected@3x.png Binary files differnew file mode 100644 index 0000000000..a181ebe8b9 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_dark.imageset/rating_average_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/Contents.json new file mode 100644 index 0000000000..90a821348b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_average_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_average_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected.png Binary files differnew file mode 100644 index 0000000000..b48abbf074 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected@2x.png Binary files differnew file mode 100644 index 0000000000..c8dcd30262 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected@3x.png Binary files differnew file mode 100644 index 0000000000..a181ebe8b9 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_average_selected_light.imageset/rating_average_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/Contents.json new file mode 100644 index 0000000000..5876dd1bd7 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_bad_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark.png Binary files differnew file mode 100644 index 0000000000..e15df58da1 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark@2x.png Binary files differnew file mode 100644 index 0000000000..ba1ef1c325 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark@3x.png Binary files differnew file mode 100644 index 0000000000..94bb25e15b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_dark.imageset/rating_bad_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/Contents.json new file mode 100644 index 0000000000..6b4609ceb1 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_bad_highlited_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_highlited_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_highlited_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark.png Binary files differnew file mode 100644 index 0000000000..8ecf29fe3b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark@2x.png Binary files differnew file mode 100644 index 0000000000..4f1e20d3da --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark@3x.png Binary files differnew file mode 100644 index 0000000000..f2c5caa6a4 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_dark.imageset/rating_bad_highlited_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/Contents.json new file mode 100644 index 0000000000..d6fe1dc16a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_bad_highlited_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_highlited_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_highlited_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light.png Binary files differnew file mode 100644 index 0000000000..b194735a63 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light@2x.png Binary files differnew file mode 100644 index 0000000000..a432e9af3c --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light@3x.png Binary files differnew file mode 100644 index 0000000000..dfbd514f4e --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_highlighted_light.imageset/rating_bad_highlited_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/Contents.json new file mode 100644 index 0000000000..76dcc5c84b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_bad_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light.png Binary files differnew file mode 100644 index 0000000000..6602bc3a1c --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light@2x.png Binary files differnew file mode 100644 index 0000000000..f61de76278 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light@3x.png Binary files differnew file mode 100644 index 0000000000..bc17c82b10 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_light.imageset/rating_bad_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/Contents.json new file mode 100644 index 0000000000..8f069a32ab --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_bad_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected.png Binary files differnew file mode 100644 index 0000000000..da8310d5ad --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected@2x.png Binary files differnew file mode 100644 index 0000000000..097a4e6bb6 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected@3x.png Binary files differnew file mode 100644 index 0000000000..b1ebada8b2 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_dark.imageset/rating_bad_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/Contents.json new file mode 100644 index 0000000000..8f069a32ab --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_bad_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_bad_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected.png Binary files differnew file mode 100644 index 0000000000..da8310d5ad --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected@2x.png Binary files differnew file mode 100644 index 0000000000..097a4e6bb6 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected@3x.png Binary files differnew file mode 100644 index 0000000000..b1ebada8b2 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_bad_selected_light.imageset/rating_bad_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/Contents.json new file mode 100644 index 0000000000..c23b8dee2d --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_exellent_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark.png Binary files differnew file mode 100644 index 0000000000..0dc7f391b9 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark@2x.png Binary files differnew file mode 100644 index 0000000000..04a43291aa --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark@3x.png Binary files differnew file mode 100644 index 0000000000..712dfd020b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_dark.imageset/rating_exellent_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/Contents.json new file mode 100644 index 0000000000..f9c0aa3ed3 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_exellent_highlited_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_highlited_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_highlited_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark.png Binary files differnew file mode 100644 index 0000000000..162d98eeba --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark@2x.png Binary files differnew file mode 100644 index 0000000000..b83a8c1811 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark@3x.png Binary files differnew file mode 100644 index 0000000000..7c74a1473f --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_dark.imageset/rating_exellent_highlited_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/Contents.json new file mode 100644 index 0000000000..11e644c1fa --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_exellent_highlited_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_highlited_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_highlited_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light.png Binary files differnew file mode 100644 index 0000000000..7ccaaf3866 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light@2x.png Binary files differnew file mode 100644 index 0000000000..cdc043d0e9 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light@3x.png Binary files differnew file mode 100644 index 0000000000..87f366d262 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_highlighted_light.imageset/rating_exellent_highlited_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/Contents.json new file mode 100644 index 0000000000..4e835321fa --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_exellent_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light.png Binary files differnew file mode 100644 index 0000000000..0056412294 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light@2x.png Binary files differnew file mode 100644 index 0000000000..5d33960f23 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light@3x.png Binary files differnew file mode 100644 index 0000000000..3e78c59e22 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_light.imageset/rating_exellent_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/Contents.json new file mode 100644 index 0000000000..816af40b8c --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_exellent_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected.png Binary files differnew file mode 100644 index 0000000000..6478673303 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected@2x.png Binary files differnew file mode 100644 index 0000000000..cc64298711 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected@3x.png Binary files differnew file mode 100644 index 0000000000..96612dcb46 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_dark.imageset/rating_exellent_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/Contents.json new file mode 100644 index 0000000000..816af40b8c --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_exellent_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_exellent_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected.png Binary files differnew file mode 100644 index 0000000000..6478673303 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected@2x.png Binary files differnew file mode 100644 index 0000000000..cc64298711 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected@3x.png Binary files differnew file mode 100644 index 0000000000..96612dcb46 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_exellent_selected_light.imageset/rating_exellent_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/Contents.json new file mode 100644 index 0000000000..5f0c776f97 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_good_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark.png Binary files differnew file mode 100644 index 0000000000..a45cb6cb16 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark@2x.png Binary files differnew file mode 100644 index 0000000000..433d29c171 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark@3x.png Binary files differnew file mode 100644 index 0000000000..5ccce0daf4 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_dark.imageset/rating_good_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/Contents.json new file mode 100644 index 0000000000..890f53d318 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_good_highlited_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_highlited_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_highlited_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark.png Binary files differnew file mode 100644 index 0000000000..bf31304e91 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark@2x.png Binary files differnew file mode 100644 index 0000000000..595b2d1245 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark@3x.png Binary files differnew file mode 100644 index 0000000000..780a016c89 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_dark.imageset/rating_good_highlited_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/Contents.json new file mode 100644 index 0000000000..614150af0a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_good_highlited_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_highlited_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_highlited_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light.png Binary files differnew file mode 100644 index 0000000000..35c32f529e --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light@2x.png Binary files differnew file mode 100644 index 0000000000..f0922b681f --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light@3x.png Binary files differnew file mode 100644 index 0000000000..1d16c6bfca --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_highlighted_light.imageset/rating_good_highlited_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/Contents.json new file mode 100644 index 0000000000..07aa583e89 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_good_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light.png Binary files differnew file mode 100644 index 0000000000..94a9a0922b --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light@2x.png Binary files differnew file mode 100644 index 0000000000..c4de0195d8 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light@3x.png Binary files differnew file mode 100644 index 0000000000..bbd6a20386 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_light.imageset/rating_good_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/Contents.json new file mode 100644 index 0000000000..d808aa58bc --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_good_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected.png Binary files differnew file mode 100644 index 0000000000..05f68071ee --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected@2x.png Binary files differnew file mode 100644 index 0000000000..4267df9572 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected@3x.png Binary files differnew file mode 100644 index 0000000000..fb6fa602be --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_dark.imageset/rating_good_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/Contents.json new file mode 100644 index 0000000000..d808aa58bc --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_good_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_good_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected.png Binary files differnew file mode 100644 index 0000000000..05f68071ee --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected@2x.png Binary files differnew file mode 100644 index 0000000000..4267df9572 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected@3x.png Binary files differnew file mode 100644 index 0000000000..fb6fa602be --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_good_selected_light.imageset/rating_good_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/Contents.json new file mode 100644 index 0000000000..da2334a1dd --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_horrible_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark.png Binary files differnew file mode 100644 index 0000000000..e94dddeb37 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark@2x.png Binary files differnew file mode 100644 index 0000000000..0f8308f945 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark@3x.png Binary files differnew file mode 100644 index 0000000000..27ad63325a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_dark.imageset/rating_horrible_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/Contents.json new file mode 100644 index 0000000000..81c57afd2e --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_horrible_highlited_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_highlited_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_highlited_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark.png Binary files differnew file mode 100644 index 0000000000..24ec200964 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark@2x.png Binary files differnew file mode 100644 index 0000000000..dd9ea00eae --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark@3x.png Binary files differnew file mode 100644 index 0000000000..1aa51bdebe --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_dark.imageset/rating_horrible_highlited_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/Contents.json new file mode 100644 index 0000000000..4b5404c442 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_horrible_highlited_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_highlited_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_highlited_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light.png Binary files differnew file mode 100644 index 0000000000..4528564285 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light@2x.png Binary files differnew file mode 100644 index 0000000000..a66f7ac495 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light@3x.png Binary files differnew file mode 100644 index 0000000000..2aa1588703 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_highlighted_light.imageset/rating_horrible_highlited_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/Contents.json new file mode 100644 index 0000000000..dc9d108fae --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_horrible_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light.png Binary files differnew file mode 100644 index 0000000000..1e1670f9ce --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light@2x.png Binary files differnew file mode 100644 index 0000000000..e55498e1e7 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light@3x.png Binary files differnew file mode 100644 index 0000000000..19e32af274 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_light.imageset/rating_horrible_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/Contents.json new file mode 100644 index 0000000000..9431b875d8 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_horrible_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected.png Binary files differnew file mode 100644 index 0000000000..e502ca0840 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected@2x.png Binary files differnew file mode 100644 index 0000000000..8a872b9e8a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected@3x.png Binary files differnew file mode 100644 index 0000000000..e1f56f436d --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_dark.imageset/rating_horrible_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/Contents.json new file mode 100644 index 0000000000..9431b875d8 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_horrible_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_horrible_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected.png Binary files differnew file mode 100644 index 0000000000..e502ca0840 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected@2x.png Binary files differnew file mode 100644 index 0000000000..8a872b9e8a --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected@3x.png Binary files differnew file mode 100644 index 0000000000..e1f56f436d --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_horrible_selected_light.imageset/rating_horrible_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/Contents.json new file mode 100644 index 0000000000..7382f78a51 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_star_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark.png Binary files differnew file mode 100644 index 0000000000..c5eb81de20 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark@2x.png Binary files differnew file mode 100644 index 0000000000..7b8884398e --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark@3x.png Binary files differnew file mode 100644 index 0000000000..170480c9a0 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_dark.imageset/rating_star_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/Contents.json new file mode 100644 index 0000000000..384529a5ae --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_star_highlited_dark.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_highlited_dark@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_highlited_dark@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark.png Binary files differnew file mode 100644 index 0000000000..849f2596ef --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark@2x.png Binary files differnew file mode 100644 index 0000000000..e6fd575b86 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark@3x.png Binary files differnew file mode 100644 index 0000000000..3bcf7e8ac4 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_dark.imageset/rating_star_highlited_dark@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/Contents.json new file mode 100644 index 0000000000..12a79780da --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_star_highlited_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_highlited_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_highlited_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light.png Binary files differnew file mode 100644 index 0000000000..e7923ab03d --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light@2x.png Binary files differnew file mode 100644 index 0000000000..78327a4cea --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light@3x.png Binary files differnew file mode 100644 index 0000000000..a8cd092d35 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_highlighted_light.imageset/rating_star_highlited_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/Contents.json new file mode 100644 index 0000000000..595083806e --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_star_light.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_light@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_light@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light.png Binary files differnew file mode 100644 index 0000000000..769aa5a98e --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light@2x.png Binary files differnew file mode 100644 index 0000000000..88190197ef --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light@3x.png Binary files differnew file mode 100644 index 0000000000..148fd23c56 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_light.imageset/rating_star_light@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/Contents.json new file mode 100644 index 0000000000..ee96952501 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_star_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected.png Binary files differnew file mode 100644 index 0000000000..a17ad7a90f --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected@2x.png Binary files differnew file mode 100644 index 0000000000..4cd3bc52d1 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected@3x.png Binary files differnew file mode 100644 index 0000000000..298c26fe3f --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_dark.imageset/rating_star_selected@3x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/Contents.json b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/Contents.json new file mode 100644 index 0000000000..ee96952501 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "rating_star_selected.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_selected@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rating_star_selected@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +}
\ No newline at end of file diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected.png Binary files differnew file mode 100644 index 0000000000..a17ad7a90f --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected@2x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected@2x.png Binary files differnew file mode 100644 index 0000000000..4cd3bc52d1 --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected@2x.png diff --git a/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected@3x.png b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected@3x.png Binary files differnew file mode 100644 index 0000000000..298c26fe3f --- /dev/null +++ b/iphone/Maps/Images.xcassets/Place Page/UGC/rating_star_selected_light.imageset/rating_star_selected@3x.png diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index 8c95b89b94..9b4b1334f8 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -885,6 +885,33 @@ F607C1891C032A8800B53A87 /* resources-hdpi_dark in Resources */ = {isa = PBXBuildFile; fileRef = F607C1841C032A8800B53A87 /* resources-hdpi_dark */; }; F607C18A1C032A8800B53A87 /* resources-hdpi_dark in Resources */ = {isa = PBXBuildFile; fileRef = F607C1841C032A8800B53A87 /* resources-hdpi_dark */; }; F607C18E1C047FDC00B53A87 /* MWMSegue.mm in Sources */ = {isa = PBXBuildFile; fileRef = F607C18D1C047FDC00B53A87 /* MWMSegue.mm */; }; + F6150E291EF95234000B955D /* MWMUGCReviewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E271EF95234000B955D /* MWMUGCReviewController.mm */; }; + F6150E2A1EF95234000B955D /* MWMUGCReviewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E271EF95234000B955D /* MWMUGCReviewController.mm */; }; + F6150E2B1EF95234000B955D /* MWMUGCReviewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E271EF95234000B955D /* MWMUGCReviewController.mm */; }; + F6150E2C1EF95234000B955D /* MWMUGCReviewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E281EF95234000B955D /* MWMUGCReviewController.xib */; }; + F6150E2D1EF95234000B955D /* MWMUGCReviewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E281EF95234000B955D /* MWMUGCReviewController.xib */; }; + F6150E2E1EF95234000B955D /* MWMUGCReviewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E281EF95234000B955D /* MWMUGCReviewController.xib */; }; + F6150E311EF953A6000B955D /* MWMUGCReviewVM.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E301EF953A6000B955D /* MWMUGCReviewVM.mm */; }; + F6150E321EF953A6000B955D /* MWMUGCReviewVM.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E301EF953A6000B955D /* MWMUGCReviewVM.mm */; }; + F6150E331EF953A6000B955D /* MWMUGCReviewVM.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E301EF953A6000B955D /* MWMUGCReviewVM.mm */; }; + F6150E391EF95F96000B955D /* UGCSpecificReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E381EF95F96000B955D /* UGCSpecificReviewCell.xib */; }; + F6150E3A1EF95F96000B955D /* UGCSpecificReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E381EF95F96000B955D /* UGCSpecificReviewCell.xib */; }; + F6150E3B1EF95F96000B955D /* UGCSpecificReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E381EF95F96000B955D /* UGCSpecificReviewCell.xib */; }; + F6150E431EFA52E9000B955D /* UGCSpecificReviewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6150E421EFA52E9000B955D /* UGCSpecificReviewCell.swift */; }; + F6150E441EFA52E9000B955D /* UGCSpecificReviewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6150E421EFA52E9000B955D /* UGCSpecificReviewCell.swift */; }; + F6150E451EFA52E9000B955D /* UGCSpecificReviewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6150E421EFA52E9000B955D /* UGCSpecificReviewCell.swift */; }; + F6150E471EFA5C94000B955D /* UGCTextReviewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6150E461EFA5C94000B955D /* UGCTextReviewCell.swift */; }; + F6150E481EFA5C94000B955D /* UGCTextReviewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6150E461EFA5C94000B955D /* UGCTextReviewCell.swift */; }; + F6150E491EFA5C94000B955D /* UGCTextReviewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6150E461EFA5C94000B955D /* UGCTextReviewCell.swift */; }; + F6150E4B1EFA5D2E000B955D /* UGCTextReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E4A1EFA5D2E000B955D /* UGCTextReviewCell.xib */; }; + F6150E4C1EFA5D2E000B955D /* UGCTextReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E4A1EFA5D2E000B955D /* UGCTextReviewCell.xib */; }; + F6150E4D1EFA5D2E000B955D /* UGCTextReviewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E4A1EFA5D2E000B955D /* UGCTextReviewCell.xib */; }; + F6150E511EFA7352000B955D /* MWUGCCommentsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E4F1EFA7352000B955D /* MWUGCCommentsController.mm */; }; + F6150E521EFA7352000B955D /* MWUGCCommentsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E4F1EFA7352000B955D /* MWUGCCommentsController.mm */; }; + F6150E531EFA7352000B955D /* MWUGCCommentsController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6150E4F1EFA7352000B955D /* MWUGCCommentsController.mm */; }; + F6150E541EFA7352000B955D /* MWUGCCommentsController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E501EFA7352000B955D /* MWUGCCommentsController.xib */; }; + F6150E551EFA7352000B955D /* MWUGCCommentsController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E501EFA7352000B955D /* MWUGCCommentsController.xib */; }; + F6150E561EFA7352000B955D /* MWUGCCommentsController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6150E501EFA7352000B955D /* MWUGCCommentsController.xib */; }; F61579341AC2CE9A0032D8E9 /* MWMRateAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F61579331AC2CE9A0032D8E9 /* MWMRateAlert.mm */; }; F61579361AC2CEB60032D8E9 /* MWMRateAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F61579351AC2CEB60032D8E9 /* MWMRateAlert.xib */; }; F6172FA51BBD5A3E0081D325 /* MWMiPadRoutePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6172FA41BBD5A3E0081D325 /* MWMiPadRoutePreview.xib */; }; @@ -909,6 +936,14 @@ F63AF5121EA6250F00A1DB98 /* FilterCollectionHolderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F63AF5111EA6250F00A1DB98 /* FilterCollectionHolderCell.swift */; }; F63AF5131EA6250F00A1DB98 /* FilterCollectionHolderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F63AF5111EA6250F00A1DB98 /* FilterCollectionHolderCell.swift */; }; F63AF5141EA6250F00A1DB98 /* FilterCollectionHolderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F63AF5111EA6250F00A1DB98 /* FilterCollectionHolderCell.swift */; }; + F64324771EF81316009296F9 /* MWMUGCCommentCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6C0E62C1EF80F9000A4EFAA /* MWMUGCCommentCell.xib */; }; + F64324781EF81317009296F9 /* MWMUGCCommentCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6C0E62C1EF80F9000A4EFAA /* MWMUGCCommentCell.xib */; }; + F643247A1EF82AD9009296F9 /* UGCSelectImpressionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F64324791EF82AD9009296F9 /* UGCSelectImpressionCell.swift */; }; + F643247B1EF82AD9009296F9 /* UGCSelectImpressionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F64324791EF82AD9009296F9 /* UGCSelectImpressionCell.swift */; }; + F643247C1EF82AD9009296F9 /* UGCSelectImpressionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F64324791EF82AD9009296F9 /* UGCSelectImpressionCell.swift */; }; + F643247E1EF82B21009296F9 /* UGCSelectImpressionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F643247D1EF82B21009296F9 /* UGCSelectImpressionCell.xib */; }; + F643247F1EF82B21009296F9 /* UGCSelectImpressionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F643247D1EF82B21009296F9 /* UGCSelectImpressionCell.xib */; }; + F64324801EF82B21009296F9 /* UGCSelectImpressionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F643247D1EF82B21009296F9 /* UGCSelectImpressionCell.xib */; }; F64D9C9F1C899C350063FA30 /* MWMEditorViralAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64D9C9E1C899C350063FA30 /* MWMEditorViralAlert.mm */; }; F64D9CA01C899C350063FA30 /* MWMEditorViralAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F64D9C9E1C899C350063FA30 /* MWMEditorViralAlert.mm */; }; F64D9CA21C899C760063FA30 /* MWMEditorViralAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F64D9CA11C899C760063FA30 /* MWMEditorViralAlert.xib */; }; @@ -968,6 +1003,9 @@ F68BDF051EEA9A830009BB81 /* MyTargetSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F68BDF041EEA9A830009BB81 /* MyTargetSDK.framework */; }; F68BDF061EEA9A830009BB81 /* MyTargetSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F68BDF041EEA9A830009BB81 /* MyTargetSDK.framework */; }; F68BDF071EEA9A830009BB81 /* MyTargetSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F68BDF041EEA9A830009BB81 /* MyTargetSDK.framework */; }; + F68BDF1B1EF80DE90009BB81 /* MWMUGCCommentCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F68BDF1A1EF80DE90009BB81 /* MWMUGCCommentCell.mm */; }; + F68BDF1C1EF80DE90009BB81 /* MWMUGCCommentCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F68BDF1A1EF80DE90009BB81 /* MWMUGCCommentCell.mm */; }; + F68BDF1D1EF80DE90009BB81 /* MWMUGCCommentCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F68BDF1A1EF80DE90009BB81 /* MWMUGCCommentCell.mm */; }; F68FCB851DA7BBA6007CC7D7 /* MWMTaxiPreviewDataSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = F68FCB841DA7BBA6007CC7D7 /* MWMTaxiPreviewDataSource.mm */; }; F68FCB861DA7BBA6007CC7D7 /* MWMTaxiPreviewDataSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = F68FCB841DA7BBA6007CC7D7 /* MWMTaxiPreviewDataSource.mm */; }; F68FCB8C1DA7BD20007CC7D7 /* RoutePreviewTaxiCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F68FCB891DA7BD20007CC7D7 /* RoutePreviewTaxiCell.xib */; }; @@ -1005,6 +1043,7 @@ F6BD33811B62403B00F2CE18 /* MWMRoutePreview.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD337E1B62403B00F2CE18 /* MWMRoutePreview.mm */; }; F6BD33841B6240F200F2CE18 /* MWMNavigationView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD33831B6240F200F2CE18 /* MWMNavigationView.mm */; }; F6BD33871B62412E00F2CE18 /* MWMNavigationDashboardEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD33861B62412E00F2CE18 /* MWMNavigationDashboardEntity.mm */; }; + F6C0E62D1EF80F9000A4EFAA /* MWMUGCCommentCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6C0E62C1EF80F9000A4EFAA /* MWMUGCCommentCell.xib */; }; F6E2FD4F1E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6E2FBFF1E097B9F0083EBEC /* MWMMapDownloaderAdsTableViewCell.mm */; }; F6E2FD501E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6E2FBFF1E097B9F0083EBEC /* MWMMapDownloaderAdsTableViewCell.mm */; }; F6E2FD511E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6E2FBFF1E097B9F0083EBEC /* MWMMapDownloaderAdsTableViewCell.mm */; }; @@ -2047,6 +2086,18 @@ F607C1841C032A8800B53A87 /* resources-hdpi_dark */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "resources-hdpi_dark"; path = "../../data/resources-hdpi_dark"; sourceTree = "<group>"; }; F607C18C1C047FDC00B53A87 /* MWMSegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSegue.h; sourceTree = "<group>"; }; F607C18D1C047FDC00B53A87 /* MWMSegue.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMSegue.mm; sourceTree = "<group>"; }; + F6150E261EF95234000B955D /* MWMUGCReviewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMUGCReviewController.h; sourceTree = "<group>"; }; + F6150E271EF95234000B955D /* MWMUGCReviewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMUGCReviewController.mm; sourceTree = "<group>"; }; + F6150E281EF95234000B955D /* MWMUGCReviewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMUGCReviewController.xib; sourceTree = "<group>"; }; + F6150E2F1EF953A6000B955D /* MWMUGCReviewVM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMUGCReviewVM.h; sourceTree = "<group>"; }; + F6150E301EF953A6000B955D /* MWMUGCReviewVM.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMUGCReviewVM.mm; sourceTree = "<group>"; }; + F6150E381EF95F96000B955D /* UGCSpecificReviewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UGCSpecificReviewCell.xib; sourceTree = "<group>"; }; + F6150E421EFA52E9000B955D /* UGCSpecificReviewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UGCSpecificReviewCell.swift; sourceTree = "<group>"; }; + F6150E461EFA5C94000B955D /* UGCTextReviewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UGCTextReviewCell.swift; sourceTree = "<group>"; }; + F6150E4A1EFA5D2E000B955D /* UGCTextReviewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UGCTextReviewCell.xib; sourceTree = "<group>"; }; + F6150E4E1EFA7352000B955D /* MWUGCCommentsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWUGCCommentsController.h; sourceTree = "<group>"; }; + F6150E4F1EFA7352000B955D /* MWUGCCommentsController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWUGCCommentsController.mm; sourceTree = "<group>"; }; + F6150E501EFA7352000B955D /* MWUGCCommentsController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWUGCCommentsController.xib; sourceTree = "<group>"; }; F61579321AC2CE9A0032D8E9 /* MWMRateAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRateAlert.h; sourceTree = "<group>"; }; F61579331AC2CE9A0032D8E9 /* MWMRateAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMRateAlert.mm; sourceTree = "<group>"; }; F61579351AC2CEB60032D8E9 /* MWMRateAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRateAlert.xib; sourceTree = "<group>"; }; @@ -2062,6 +2113,8 @@ F63AF5091EA6213F00A1DB98 /* FilterRatingCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterRatingCell.swift; sourceTree = "<group>"; }; F63AF50D1EA6215100A1DB98 /* FilterPriceCategoryCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterPriceCategoryCell.swift; sourceTree = "<group>"; }; F63AF5111EA6250F00A1DB98 /* FilterCollectionHolderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilterCollectionHolderCell.swift; sourceTree = "<group>"; }; + F64324791EF82AD9009296F9 /* UGCSelectImpressionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UGCSelectImpressionCell.swift; sourceTree = "<group>"; }; + F643247D1EF82B21009296F9 /* UGCSelectImpressionCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UGCSelectImpressionCell.xib; sourceTree = "<group>"; }; F64D9C9D1C899C350063FA30 /* MWMEditorViralAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorViralAlert.h; sourceTree = "<group>"; }; F64D9C9E1C899C350063FA30 /* MWMEditorViralAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorViralAlert.mm; sourceTree = "<group>"; }; F64D9CA11C899C760063FA30 /* MWMEditorViralAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorViralAlert.xib; sourceTree = "<group>"; }; @@ -2106,6 +2159,8 @@ F682249D1E5B105900BC1C18 /* PPHotelDescriptionCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PPHotelDescriptionCell.xib; sourceTree = "<group>"; }; F68224A11E5B1B1A00BC1C18 /* MWMPlacePageButtonsProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageButtonsProtocol.h; sourceTree = "<group>"; }; F68BDF041EEA9A830009BB81 /* MyTargetSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MyTargetSDK.framework; sourceTree = "<group>"; }; + F68BDF191EF80DE90009BB81 /* MWMUGCCommentCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMUGCCommentCell.h; sourceTree = "<group>"; }; + F68BDF1A1EF80DE90009BB81 /* MWMUGCCommentCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMUGCCommentCell.mm; sourceTree = "<group>"; }; F68FCB831DA7BBA6007CC7D7 /* MWMTaxiPreviewDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MWMTaxiPreviewDataSource.h; path = Views/RoutePreview/MWMTaxiPreviewDataSource.h; sourceTree = "<group>"; }; F68FCB841DA7BBA6007CC7D7 /* MWMTaxiPreviewDataSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MWMTaxiPreviewDataSource.mm; path = Views/RoutePreview/MWMTaxiPreviewDataSource.mm; sourceTree = "<group>"; }; F68FCB891DA7BD20007CC7D7 /* RoutePreviewTaxiCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RoutePreviewTaxiCell.xib; sourceTree = "<group>"; }; @@ -2136,6 +2191,7 @@ F6BD33831B6240F200F2CE18 /* MWMNavigationView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNavigationView.mm; sourceTree = "<group>"; }; F6BD33851B62412E00F2CE18 /* MWMNavigationDashboardEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNavigationDashboardEntity.h; sourceTree = "<group>"; }; F6BD33861B62412E00F2CE18 /* MWMNavigationDashboardEntity.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNavigationDashboardEntity.mm; sourceTree = "<group>"; }; + F6C0E62C1EF80F9000A4EFAA /* MWMUGCCommentCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMUGCCommentCell.xib; sourceTree = "<group>"; }; F6DF5F321CD1136800A87154 /* LocaleTranslator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocaleTranslator.h; sourceTree = "<group>"; }; F6E2FBFE1E097B9F0083EBEC /* MWMMapDownloaderAdsTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMMapDownloaderAdsTableViewCell.h; sourceTree = "<group>"; }; F6E2FBFF1E097B9F0083EBEC /* MWMMapDownloaderAdsTableViewCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMMapDownloaderAdsTableViewCell.mm; sourceTree = "<group>"; }; @@ -3607,6 +3663,30 @@ path = BookingCells; sourceTree = "<group>"; }; + F68BDF181EF80DCC0009BB81 /* UGC */ = { + isa = PBXGroup; + children = ( + F68BDF191EF80DE90009BB81 /* MWMUGCCommentCell.h */, + F68BDF1A1EF80DE90009BB81 /* MWMUGCCommentCell.mm */, + F6C0E62C1EF80F9000A4EFAA /* MWMUGCCommentCell.xib */, + F6150E4E1EFA7352000B955D /* MWUGCCommentsController.h */, + F6150E4F1EFA7352000B955D /* MWUGCCommentsController.mm */, + F6150E501EFA7352000B955D /* MWUGCCommentsController.xib */, + F64324791EF82AD9009296F9 /* UGCSelectImpressionCell.swift */, + F643247D1EF82B21009296F9 /* UGCSelectImpressionCell.xib */, + F6150E261EF95234000B955D /* MWMUGCReviewController.h */, + F6150E271EF95234000B955D /* MWMUGCReviewController.mm */, + F6150E281EF95234000B955D /* MWMUGCReviewController.xib */, + F6150E2F1EF953A6000B955D /* MWMUGCReviewVM.h */, + F6150E301EF953A6000B955D /* MWMUGCReviewVM.mm */, + F6150E421EFA52E9000B955D /* UGCSpecificReviewCell.swift */, + F6150E381EF95F96000B955D /* UGCSpecificReviewCell.xib */, + F6150E461EFA5C94000B955D /* UGCTextReviewCell.swift */, + F6150E4A1EFA5D2E000B955D /* UGCTextReviewCell.xib */, + ); + path = UGC; + sourceTree = "<group>"; + }; F69018B51E9E5FEB00B3C10B /* Autoupdate */ = { isa = PBXGroup; children = ( @@ -3942,6 +4022,7 @@ isa = PBXGroup; children = ( 34EE259B1EFA681000F870AB /* ViatorCells */, + F68BDF181EF80DCC0009BB81 /* UGC */, 346DB81C1E5C4F6700E3123E /* Gallery */, F68224981E5B0FE100BC1C18 /* BookingCells */, F6E2FCA91E097B9F0083EBEC /* BookmarkCell */, @@ -4495,6 +4576,7 @@ files = ( 34EE25A11EFA68BC00F870AB /* PPViatorCarouselCell.xib in Resources */, 450703091E9E6CF000E8C029 /* local_ads_symbols.txt in Resources */, + F6C0E62D1EF80F9000A4EFAA /* MWMUGCCommentCell.xib in Resources */, 4554B6EA1E55F02B0084017F /* drules_proto_vehicle_clear.bin in Resources */, 4554B6EB1E55F02B0084017F /* drules_proto_vehicle_dark.bin in Resources */, EEA61601134C496A003A9827 /* 01_dejavusans.ttf in Resources */, @@ -4570,6 +4652,7 @@ F64D9CA21C899C760063FA30 /* MWMEditorViralAlert.xib in Resources */, F6664C151E645A4100E703C2 /* MWMPPReviewCell.xib in Resources */, F6BC1E541ACBF9AB00EF0360 /* MWMFacebookAlert.xib in Resources */, + F643247E1EF82B21009296F9 /* UGCSelectImpressionCell.xib in Resources */, F6172FA51BBD5A3E0081D325 /* MWMiPadRoutePreview.xib in Resources */, F6BBF2C81B4FFB8C000CF8E2 /* MWMLocationAlert.xib in Resources */, 3406FA181C6E0D8F00E9FAD2 /* MWMMapDownloadDialog.xib in Resources */, @@ -4577,6 +4660,7 @@ F6E2FD581E097BA00083EBEC /* MWMMapDownloaderButtonTableViewCell.xib in Resources */, F6664BFC1E6459CB00E703C2 /* PPFacilityCell.xib in Resources */, F6E2FD611E097BA00083EBEC /* MWMMapDownloaderLargeCountryTableViewCell.xib in Resources */, + F6150E541EFA7352000B955D /* MWUGCCommentsController.xib in Resources */, F6E2FD671E097BA00083EBEC /* MWMMapDownloaderPlaceTableViewCell.xib in Resources */, F6E2FD6D1E097BA00083EBEC /* MWMMapDownloaderSubplaceTableViewCell.xib in Resources */, F6E2FD731E097BA00083EBEC /* MWMMapDownloaderTableViewCell.xib in Resources */, @@ -4617,6 +4701,7 @@ 346225911DDC5FBA001E8752 /* MWMSearchNoResultsAlert.xib in Resources */, F6E2FF381E097BA00083EBEC /* MWMSearchSuggestionCell.xib in Resources */, F6664C041E6459DA00E703C2 /* PPReviewHeaderCell.xib in Resources */, + F6150E4B1EFA5D2E000B955D /* UGCTextReviewCell.xib in Resources */, F6E2FF1A1E097BA00083EBEC /* MWMSearchTabbedCollectionViewCell.xib in Resources */, F6E2FF201E097BA00083EBEC /* MWMSearchTabbedViewController.xib in Resources */, F6E2FF291E097BA00083EBEC /* MWMSearchTabButtonsView.xib in Resources */, @@ -4635,6 +4720,7 @@ 4A23D15C1B8B4DD700D4EB6F /* resources-6plus_clear in Resources */, 4A7D89C51B2EBF3B00AC843E /* resources-6plus_dark in Resources */, A367C93B1B17334800E2B6E7 /* resources-default in Resources */, + F6150E391EF95F96000B955D /* UGCSpecificReviewCell.xib in Resources */, F607C1871C032A8800B53A87 /* resources-hdpi_clear in Resources */, F607C1891C032A8800B53A87 /* resources-hdpi_dark in Resources */, 4A23D15D1B8B4DD700D4EB6F /* resources-mdpi_clear in Resources */, @@ -4648,6 +4734,7 @@ 340E1EF71E2F614400CE49BF /* Settings.storyboard in Resources */, 5605022F1B6211E100169CAD /* sound-strings in Resources */, F69018BC1E9F7CB600B3C10B /* MWMAutoupdateController.xib in Resources */, + F6150E2C1EF95234000B955D /* MWMUGCReviewController.xib in Resources */, FAAEA7D1161BD26600CCD661 /* synonyms.txt in Resources */, 3476B8E01BFDD33A00874594 /* tts-how-to-set-up-voice-img in Resources */, 3476B8DC1BFDD30B00874594 /* tts-how-to-set-up-voice.html in Resources */, @@ -4667,6 +4754,7 @@ files = ( 34EE25A21EFA68BC00F870AB /* PPViatorCarouselCell.xib in Resources */, 3495433D1EB22D9600F08F73 /* MPAdBrowserController.xib in Resources */, + F64324771EF81316009296F9 /* MWMUGCCommentCell.xib in Resources */, 6741A9531BF340DE002C974C /* 01_dejavusans.ttf in Resources */, 6741A9541BF340DE002C974C /* 02_droidsans-fallback.ttf in Resources */, 6741A9571BF340DE002C974C /* 03_jomolhari-id-a3d.ttf in Resources */, @@ -4742,6 +4830,7 @@ 6741A9911BF340DE002C974C /* MWMFacebookAlert.xib in Resources */, 6741A9701BF340DE002C974C /* MWMiPadRoutePreview.xib in Resources */, 6741A96D1BF340DE002C974C /* MWMLocationAlert.xib in Resources */, + F643247F1EF82B21009296F9 /* UGCSelectImpressionCell.xib in Resources */, 3406FA191C6E0D8F00E9FAD2 /* MWMMapDownloadDialog.xib in Resources */, F6E2FD531E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.xib in Resources */, F6E2FD591E097BA00083EBEC /* MWMMapDownloaderButtonTableViewCell.xib in Resources */, @@ -4749,6 +4838,7 @@ F6664BFD1E6459CB00E703C2 /* PPFacilityCell.xib in Resources */, F6E2FD681E097BA00083EBEC /* MWMMapDownloaderPlaceTableViewCell.xib in Resources */, F6E2FD6E1E097BA00083EBEC /* MWMMapDownloaderSubplaceTableViewCell.xib in Resources */, + F6150E551EFA7352000B955D /* MWUGCCommentsController.xib in Resources */, F6E2FD741E097BA00083EBEC /* MWMMapDownloaderTableViewCell.xib in Resources */, 349A13851DEC138C00C7DB60 /* MWMMobileInternetAlert.xib in Resources */, 34D3B04B1E389D05004100F9 /* MWMNoteCell.xib in Resources */, @@ -4789,6 +4879,7 @@ F6E2FF1B1E097BA00083EBEC /* MWMSearchTabbedCollectionViewCell.xib in Resources */, F6E2FF211E097BA00083EBEC /* MWMSearchTabbedViewController.xib in Resources */, F6664C051E6459DA00E703C2 /* PPReviewHeaderCell.xib in Resources */, + F6150E4C1EFA5D2E000B955D /* UGCTextReviewCell.xib in Resources */, F6E2FF2A1E097BA00083EBEC /* MWMSearchTabButtonsView.xib in Resources */, F6E2FF421E097BA00083EBEC /* MWMSearchTableViewController.xib in Resources */, F6E2FEEE1E097BA00083EBEC /* MWMSearchView.xib in Resources */, @@ -4807,6 +4898,7 @@ 677A2DE21C0DD50900635A00 /* resources-default in Resources */, F607C1881C032A8800B53A87 /* resources-hdpi_clear in Resources */, F607C18A1C032A8800B53A87 /* resources-hdpi_dark in Resources */, + F6150E3A1EF95F96000B955D /* UGCSpecificReviewCell.xib in Resources */, F69CE8DA1E5C5088002B5881 /* PPHotelCarouselCell.xib in Resources */, F69CE8DE1E5C51AB002B5881 /* CarouselElement.xib in Resources */, 6741A97F1BF340DE002C974C /* resources-mdpi_clear in Resources */, @@ -4820,6 +4912,7 @@ 340E1EF81E2F614400CE49BF /* Settings.storyboard in Resources */, 6741A9421BF340DE002C974C /* sound-strings in Resources */, F69018BD1E9F7CB600B3C10B /* MWMAutoupdateController.xib in Resources */, + F6150E2D1EF95234000B955D /* MWMUGCReviewController.xib in Resources */, 6741A97D1BF340DE002C974C /* synonyms.txt in Resources */, 3476B8E11BFDD33A00874594 /* tts-how-to-set-up-voice-img in Resources */, 3476B8DD1BFDD30B00874594 /* tts-how-to-set-up-voice.html in Resources */, @@ -4839,6 +4932,7 @@ files = ( 34EE25A31EFA68BC00F870AB /* PPViatorCarouselCell.xib in Resources */, 849CF6041DE842290024A8A5 /* 01_dejavusans.ttf in Resources */, + F64324781EF81317009296F9 /* MWMUGCCommentCell.xib in Resources */, 849CF6051DE842290024A8A5 /* 02_droidsans-fallback.ttf in Resources */, 849CF6091DE842290024A8A5 /* 03_jomolhari-id-a3d.ttf in Resources */, 849CF60B1DE842290024A8A5 /* 04_padauk.ttf in Resources */, @@ -4914,6 +5008,7 @@ F6664C171E645A4100E703C2 /* MWMPPReviewCell.xib in Resources */, 849CF66F1DE842290024A8A5 /* MWMFacebookAlert.xib in Resources */, 849CF6381DE842290024A8A5 /* MWMiPadRoutePreview.xib in Resources */, + F64324801EF82B21009296F9 /* UGCSelectImpressionCell.xib in Resources */, 849CF6301DE842290024A8A5 /* MWMLocationAlert.xib in Resources */, 849CF60D1DE842290024A8A5 /* MWMMapDownloadDialog.xib in Resources */, F6E2FD541E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.xib in Resources */, @@ -4921,6 +5016,7 @@ F6664BFE1E6459CB00E703C2 /* PPFacilityCell.xib in Resources */, F6E2FD631E097BA00083EBEC /* MWMMapDownloaderLargeCountryTableViewCell.xib in Resources */, F6E2FD691E097BA00083EBEC /* MWMMapDownloaderPlaceTableViewCell.xib in Resources */, + F6150E561EFA7352000B955D /* MWUGCCommentsController.xib in Resources */, F6E2FD6F1E097BA00083EBEC /* MWMMapDownloaderSubplaceTableViewCell.xib in Resources */, F6E2FD751E097BA00083EBEC /* MWMMapDownloaderTableViewCell.xib in Resources */, 34D3B04C1E389D05004100F9 /* MWMNoteCell.xib in Resources */, @@ -4961,6 +5057,7 @@ 849CF5E71DE842290024A8A5 /* MWMSearchNoResultsAlert.xib in Resources */, F6E2FF3A1E097BA00083EBEC /* MWMSearchSuggestionCell.xib in Resources */, F6664C061E6459DA00E703C2 /* PPReviewHeaderCell.xib in Resources */, + F6150E4D1EFA5D2E000B955D /* UGCTextReviewCell.xib in Resources */, F6E2FF1C1E097BA00083EBEC /* MWMSearchTabbedCollectionViewCell.xib in Resources */, F6E2FF221E097BA00083EBEC /* MWMSearchTabbedViewController.xib in Resources */, F6E2FF2B1E097BA00083EBEC /* MWMSearchTabButtonsView.xib in Resources */, @@ -4979,6 +5076,7 @@ 849CF5F61DE842290024A8A5 /* resources-6plus_clear in Resources */, 849CF63F1DE842290024A8A5 /* resources-6plus_dark in Resources */, 849CF6141DE842290024A8A5 /* resources-default in Resources */, + F6150E3B1EF95F96000B955D /* UGCSpecificReviewCell.xib in Resources */, 849CF6731DE842290024A8A5 /* resources-hdpi_clear in Resources */, 849CF6031DE842290024A8A5 /* resources-hdpi_dark in Resources */, 849CF64F1DE842290024A8A5 /* resources-mdpi_clear in Resources */, @@ -4992,6 +5090,7 @@ 340E1EF91E2F614400CE49BF /* Settings.storyboard in Resources */, 849CF5EA1DE842290024A8A5 /* sound-strings in Resources */, F69018BE1E9F7CB600B3C10B /* MWMAutoupdateController.xib in Resources */, + F6150E2E1EF95234000B955D /* MWMUGCReviewController.xib in Resources */, 849CF64C1DE842290024A8A5 /* synonyms.txt in Resources */, 849CF6111DE842290024A8A5 /* tts-how-to-set-up-voice-img in Resources */, 849CF6281DE842290024A8A5 /* tts-how-to-set-up-voice.html in Resources */, @@ -5144,6 +5243,8 @@ F6664BF91E6459CB00E703C2 /* PPFacilityCell.swift in Sources */, F6E2FDE81E097BA00083EBEC /* MWMObjectsCategorySelectorController.mm in Sources */, F64F199D1AB81A00006EAF7E /* MWMDefaultAlert.mm in Sources */, + F6150E431EFA52E9000B955D /* UGCSpecificReviewCell.swift in Sources */, + F68BDF1B1EF80DE90009BB81 /* MWMUGCCommentCell.mm in Sources */, F63AF50E1EA6215100A1DB98 /* FilterPriceCategoryCell.swift in Sources */, 34D3AFF51E37A36A004100F9 /* UICollectionView+Cells.swift in Sources */, F6E2FEC01E097BA00083EBEC /* MWMConsole.mm in Sources */, @@ -5152,6 +5253,7 @@ 1D3623260D0F684500981E51 /* MapsAppDelegate.mm in Sources */, F6E2FE181E097BA00083EBEC /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */, F6E2FDEB1E097BA00083EBEC /* MWMOpeningHoursAddClosedTableViewCell.mm in Sources */, + F6150E511EFA7352000B955D /* MWUGCCommentsController.mm in Sources */, F6E2FE0F1E097BA00083EBEC /* MWMOpeningHoursTableViewCell.mm in Sources */, 341522BF1B666A550077AA8F /* MWMAPIBarView.mm in Sources */, 34F742311E0834F400AC1FD6 /* UIViewController+Navigation.mm in Sources */, @@ -5197,6 +5299,7 @@ F6E2FE4B1E097BA00083EBEC /* MWMPlacePageManager.mm in Sources */, 346DB8391E5C4F6700E3123E /* GalleryItemModel.swift in Sources */, 3404757D1E081B3300C92850 /* iosOGLContext.mm in Sources */, + F6150E311EF953A6000B955D /* MWMUGCReviewVM.mm in Sources */, 34D3AFF11E37945B004100F9 /* UITableView+Cells.swift in Sources */, 34D3B02F1E389D05004100F9 /* MWMEditorCategoryCell.mm in Sources */, F6E2FD5B1E097BA00083EBEC /* MWMMapDownloaderCellHeader.mm in Sources */, @@ -5275,6 +5378,7 @@ F6FEA82D1C58E89B007223CC /* MWMButton.mm in Sources */, 34F407401E9E1AFF00E57AC0 /* RBBanner.swift in Sources */, F6E2FE3C1E097BA00083EBEC /* MWMMigrationViewController.mm in Sources */, + F6150E471EFA5C94000B955D /* UGCTextReviewCell.swift in Sources */, F6E2FD4F1E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */, F6E2FE871E097BA00083EBEC /* MWMPlacePageRegularCell.mm in Sources */, 34D3AFE91E378AF1004100F9 /* UINib+Init.swift in Sources */, @@ -5334,6 +5438,7 @@ F6E2FF4D1E097BA00083EBEC /* MWMAboutController.mm in Sources */, 34F5E0D31E3F254800B1C415 /* UIView+Hierarchy.swift in Sources */, 34F407371E9E1AFF00E57AC0 /* FacebookBanner.swift in Sources */, + F6150E291EF95234000B955D /* MWMUGCReviewController.mm in Sources */, 3497A93A1B5CF8A900F51E55 /* MWMNavigationDashboardManager.mm in Sources */, F6E2FED81E097BA00083EBEC /* MWMSearchContentView.mm in Sources */, F6E2FD881E097BA00083EBEC /* MWMMapDownloaderViewController.mm in Sources */, @@ -5363,6 +5468,7 @@ 349D1ADA1E2E325C004A2006 /* MWMBottomMenuView.mm in Sources */, F6E2FD911E097BA00083EBEC /* MWMBookmarkColorViewController.mm in Sources */, F6F7787A1DABC6D800B603E7 /* MWMTaxiCollectionLayout.mm in Sources */, + F643247A1EF82AD9009296F9 /* UGCSelectImpressionCell.swift in Sources */, F63AF5051EA6162400A1DB98 /* FilterTypeCell.swift in Sources */, F6E2FDA31E097BA00083EBEC /* MWMCuisineEditorViewController.mm in Sources */, 346EDADB1B9F0E35004F8DB5 /* MWMMultilineLabel.mm in Sources */, @@ -5442,6 +5548,8 @@ F6664BFA1E6459CB00E703C2 /* PPFacilityCell.swift in Sources */, F6E2FDE91E097BA00083EBEC /* MWMObjectsCategorySelectorController.mm in Sources */, 6741A9A81BF340DE002C974C /* MWMFacebookAlert.mm in Sources */, + F6150E441EFA52E9000B955D /* UGCSpecificReviewCell.swift in Sources */, + F68BDF1C1EF80DE90009BB81 /* MWMUGCCommentCell.mm in Sources */, F63AF50F1EA6215100A1DB98 /* FilterPriceCategoryCell.swift in Sources */, 34D3AFF61E37A36A004100F9 /* UICollectionView+Cells.swift in Sources */, 6741A9A91BF340DE002C974C /* MWMDefaultAlert.mm in Sources */, @@ -5450,6 +5558,7 @@ F6E2FDF81E097BA00083EBEC /* MWMOpeningHoursAllDayTableViewCell.mm in Sources */, F6E2FE191E097BA00083EBEC /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */, F6E2FDEC1E097BA00083EBEC /* MWMOpeningHoursAddClosedTableViewCell.mm in Sources */, + F6150E521EFA7352000B955D /* MWUGCCommentsController.mm in Sources */, F6E2FE101E097BA00083EBEC /* MWMOpeningHoursTableViewCell.mm in Sources */, 6741A9B01BF340DE002C974C /* MapsAppDelegate.mm in Sources */, 34F742321E0834F400AC1FD6 /* UIViewController+Navigation.mm in Sources */, @@ -5495,6 +5604,7 @@ 346DB83A1E5C4F6700E3123E /* GalleryItemModel.swift in Sources */, F6E2FD5C1E097BA00083EBEC /* MWMMapDownloaderCellHeader.mm in Sources */, 34D3AFF21E37945B004100F9 /* UITableView+Cells.swift in Sources */, + F6150E321EF953A6000B955D /* MWMUGCReviewVM.mm in Sources */, 34D3B0301E389D05004100F9 /* MWMEditorCategoryCell.mm in Sources */, F653CE191C71F62700A453F1 /* MWMAddPlaceNavigationBar.mm in Sources */, 340475621E081A4600C92850 /* MWMNetworkPolicy.mm in Sources */, @@ -5573,6 +5683,7 @@ 340475591E081A4600C92850 /* WebViewController.mm in Sources */, 34F407411E9E1AFF00E57AC0 /* RBBanner.swift in Sources */, F6E2FE3D1E097BA00083EBEC /* MWMMigrationViewController.mm in Sources */, + F6150E481EFA5C94000B955D /* UGCTextReviewCell.swift in Sources */, F6E2FD501E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */, F6E2FE881E097BA00083EBEC /* MWMPlacePageRegularCell.mm in Sources */, F6E2FD801E097BA00083EBEC /* MWMMapDownloaderExtendedDataSourceWithAds.mm in Sources */, @@ -5632,6 +5743,7 @@ 3454D7BC1E07F045004AF2AD /* CLLocation+Mercator.mm in Sources */, F6E2FF4E1E097BA00083EBEC /* MWMAboutController.mm in Sources */, 34F407381E9E1AFF00E57AC0 /* FacebookBanner.swift in Sources */, + F6150E2A1EF95234000B955D /* MWMUGCReviewController.mm in Sources */, 34F5E0D41E3F254800B1C415 /* UIView+Hierarchy.swift in Sources */, 6741AA0B1BF340DE002C974C /* MWMMapViewControlsManager.mm in Sources */, F6E2FED91E097BA00083EBEC /* MWMSearchContentView.mm in Sources */, @@ -5661,6 +5773,7 @@ 6741AA141BF340DE002C974C /* MWMMultilineLabel.mm in Sources */, 349D1ADB1E2E325C004A2006 /* MWMBottomMenuView.mm in Sources */, F6E2FD921E097BA00083EBEC /* MWMBookmarkColorViewController.mm in Sources */, + F643247B1EF82AD9009296F9 /* UGCSelectImpressionCell.swift in Sources */, F63AF5061EA6162400A1DB98 /* FilterTypeCell.swift in Sources */, 34C9BD051C6DB693000DC38D /* MWMViewController.mm in Sources */, F6E2FDA41E097BA00083EBEC /* MWMCuisineEditorViewController.mm in Sources */, @@ -5740,6 +5853,8 @@ F6664BFB1E6459CB00E703C2 /* PPFacilityCell.swift in Sources */, F6E2FDEA1E097BA00083EBEC /* MWMObjectsCategorySelectorController.mm in Sources */, 849CF68A1DE842290024A8A5 /* MWMDefaultAlert.mm in Sources */, + F6150E451EFA52E9000B955D /* UGCSpecificReviewCell.swift in Sources */, + F68BDF1D1EF80DE90009BB81 /* MWMUGCCommentCell.mm in Sources */, F63AF5101EA6215100A1DB98 /* FilterPriceCategoryCell.swift in Sources */, 34D3AFF71E37A36A004100F9 /* UICollectionView+Cells.swift in Sources */, 340475601E081A4600C92850 /* MWMLocationPredictor.mm in Sources */, @@ -5748,6 +5863,7 @@ F6E2FDF91E097BA00083EBEC /* MWMOpeningHoursAllDayTableViewCell.mm in Sources */, F6E2FE1A1E097BA00083EBEC /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */, F6E2FDED1E097BA00083EBEC /* MWMOpeningHoursAddClosedTableViewCell.mm in Sources */, + F6150E531EFA7352000B955D /* MWUGCCommentsController.mm in Sources */, F6E2FE111E097BA00083EBEC /* MWMOpeningHoursTableViewCell.mm in Sources */, 3404755A1E081A4600C92850 /* WebViewController.mm in Sources */, 34F742331E0834F400AC1FD6 /* UIViewController+Navigation.mm in Sources */, @@ -5794,6 +5910,7 @@ 346DB83B1E5C4F6700E3123E /* GalleryItemModel.swift in Sources */, 340475631E081A4600C92850 /* MWMNetworkPolicy.mm in Sources */, 34D3AFF31E37945B004100F9 /* UITableView+Cells.swift in Sources */, + F6150E331EF953A6000B955D /* MWMUGCReviewVM.mm in Sources */, 34D3B0311E389D05004100F9 /* MWMEditorCategoryCell.mm in Sources */, F6E2FD5D1E097BA00083EBEC /* MWMMapDownloaderCellHeader.mm in Sources */, 3454D7DB1E07F045004AF2AD /* UILabel+RuntimeAttributes.mm in Sources */, @@ -5871,6 +5988,7 @@ 849CF6E91DE842290024A8A5 /* MWMCircularProgressView.mm in Sources */, 34F407421E9E1AFF00E57AC0 /* RBBanner.swift in Sources */, F6E2FE3E1E097BA00083EBEC /* MWMMigrationViewController.mm in Sources */, + F6150E491EFA5C94000B955D /* UGCTextReviewCell.swift in Sources */, F6E2FD511E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */, F6E2FE891E097BA00083EBEC /* MWMPlacePageRegularCell.mm in Sources */, 34D3AFEB1E378AF1004100F9 /* UINib+Init.swift in Sources */, @@ -5930,6 +6048,7 @@ F6E2FF4F1E097BA00083EBEC /* MWMAboutController.mm in Sources */, 34F5E0D51E3F254800B1C415 /* UIView+Hierarchy.swift in Sources */, 34F407391E9E1AFF00E57AC0 /* FacebookBanner.swift in Sources */, + F6150E2B1EF95234000B955D /* MWMUGCReviewController.mm in Sources */, 849CF71D1DE842290024A8A5 /* MWMNavigationDashboardManager.mm in Sources */, 3454D7C91E07F045004AF2AD /* UIButton+RuntimeAttributes.mm in Sources */, F6E2FEDA1E097BA00083EBEC /* MWMSearchContentView.mm in Sources */, @@ -5959,6 +6078,7 @@ F6E2FD931E097BA00083EBEC /* MWMBookmarkColorViewController.mm in Sources */, 849CF7331DE842290024A8A5 /* MWMInputValidatorFactory.mm in Sources */, F6E2FDA51E097BA00083EBEC /* MWMCuisineEditorViewController.mm in Sources */, + F643247C1EF82AD9009296F9 /* UGCSelectImpressionCell.swift in Sources */, F63AF5071EA6162400A1DB98 /* FilterTypeCell.swift in Sources */, 3454D7C31E07F045004AF2AD /* NSString+Categories.mm in Sources */, 34D4FA641E26572D003F53EF /* FirstLaunchController.swift in Sources */, diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageButtonsProtocol.h b/iphone/Maps/UI/PlacePage/MWMPlacePageButtonsProtocol.h index f8da544c47..ff4699f809 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageButtonsProtocol.h +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageButtonsProtocol.h @@ -19,6 +19,7 @@ typedef UIView * _Nullable (^MWMPlacePageButtonsDismissBlock)(NSInteger); - (void)showGalery; - (void)openLocalAdsURL; +- (void)reviewOn:(NSInteger)starNumber; - (void)openViatorURL:(nullable NSURL *)url; diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.h b/iphone/Maps/UI/PlacePage/MWMPlacePageData.h index 32526442cb..c0ae05e2cf 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.h +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.h @@ -4,9 +4,15 @@ #include "map/place_page_info.hpp" -#include "std/vector.hpp" +#include <vector> @class MWMPlacePageData; +@class MWMUGCReviewVM; + +namespace ugc +{ +struct Review; +} namespace place_page { @@ -21,6 +27,7 @@ enum class Sections Viator, Metainfo, Ad, + UGC, Buttons }; @@ -86,6 +93,13 @@ enum class AdRows Taxi }; +enum class UGCRow +{ + SelectImpression, + Comment, + ShowMore +}; + enum class ButtonsRows { AddBusiness, @@ -103,7 +117,7 @@ enum class OpeningHours Unknown }; -using NewSectionsAreReady = void (^)(NSRange const & range, MWMPlacePageData * data); +using NewSectionsAreReady = void (^)(NSRange const & range, MWMPlacePageData * data, BOOL isSection); using BannerIsReady = void (^)(); } // namespace place_page @@ -146,9 +160,9 @@ using BannerIsReady = void (^)(); - (NSString *)sponsoredId; - (void)assignOnlinePriceToLabel:(UILabel *)label; - (NSString *)hotelDescription; -- (std::vector<booking::HotelFacility> const &)facilities; -- (std::vector<booking::HotelReview> const &)reviews; -- (NSUInteger)numberOfReviews; +- (vector<booking::HotelFacility> const &)facilities; +- (vector<booking::HotelReview> const &)hotelReviews; +- (NSUInteger)numberOfHotelReviews; - (NSURL *)URLToAllReviews; - (NSArray<MWMGalleryItemModel *> *)photos; @@ -156,6 +170,10 @@ using BannerIsReady = void (^)(); - (void)fillOnlineViatorSection; - (NSArray<MWMViatorItemModel *> *)viatorItems; +// UGC +- (MWMUGCReviewVM *)reviewViewModel; +- (std::vector<ugc::Review> const &)ugcReviews; + // Route points - (RouteMarkType)routeMarkType; - (int8_t)intermediateIndex; @@ -187,9 +205,9 @@ using BannerIsReady = void (^)(); - (std::vector<place_page::HotelDescriptionRow> const &)descriptionRows; - (std::vector<place_page::HotelFacilitiesRow> const &)hotelFacilitiesRows; - (std::vector<place_page::HotelReviewsRow> const &)hotelReviewsRows; -- (std::vector<place_page::ViatorRow> const &)viatorRows; - (std::vector<place_page::MetainfoRows> const &)metainfoRows; - (std::vector<place_page::AdRows> const &)adRows; +- (std::vector<place_page::UGCRow> const &)ugcRows; - (std::vector<place_page::ButtonsRows> const &)buttonsRows; // Table view metainfo rows diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm index 9f96881300..b920c5c10d 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm @@ -4,6 +4,7 @@ #import "MWMLocationManager.h" #import "MWMNetworkPolicy.h" #import "MWMSettings.h" +#import "MWMUGCReviewVM.h" #import "Statistics.h" #import "SwiftBridge.h" @@ -13,6 +14,8 @@ #include "partners_api/banner.hpp" +#include "ugc/api.hpp" + #include "base/string_utils.hpp" #include "3party/opening_hours/opening_hours.hpp" @@ -32,12 +35,14 @@ using namespace place_page; @property(copy, nonatomic) NSArray<MWMGalleryItemModel *> * photos; @property(copy, nonatomic) NSArray<MWMViatorItemModel *> * viatorItems; @property(nonatomic) NSNumberFormatter * currencyFormatter; +@property(nonatomic) MWMUGCReviewVM<MWMUGCSpecificReviewDelegate, MWMUGCTextReviewDelegate> * reviewViewModel; @end @implementation MWMPlacePageData { Info m_info; + ugc::UGC m_ugc; std::vector<Sections> m_sections; std::vector<PreviewRows> m_previewRows; @@ -49,6 +54,7 @@ using namespace place_page; std::vector<HotelDescriptionRow> m_hotelDescriptionRows; std::vector<HotelFacilitiesRow> m_hotelFacilitiesRows; std::vector<HotelReviewsRow> m_hotelReviewsRows; + std::vector<UGCRow> m_ugcRows; booking::HotelInfo m_hotelInfo; std::vector<viator::Product> m_viatorProducts; @@ -63,12 +69,15 @@ using namespace place_page; return self; } +#pragma mark - Filling sections + - (void)fillSections { m_sections.clear(); m_previewRows.clear(); m_metainfoRows.clear(); m_adRows.clear(); + m_ugcRows.clear(); m_buttonsRows.clear(); m_hotelPhotosRows.clear(); m_hotelDescriptionRows.clear(); @@ -101,6 +110,12 @@ using namespace place_page; [Statistics logEvent:kStatPlacepageTaxiShow withParameters:@{ @"provider" : provider }]; } + if (true /* Is possible to leave review */) + { + m_sections.push_back(Sections::UGC); + [self fillUGCSection]; + } + // There is at least one of these buttons. if (m_info.ShouldShowAddPlace() || m_info.ShouldShowEditPlace() || m_info.ShouldShowAddBusiness() || m_info.IsSponsored()) @@ -240,7 +255,7 @@ using namespace place_page; sections.insert(find(begin, end, Sections::Preview) + 1, Sections::Viator); m_viatorRows.emplace_back(ViatorRow::Regular); - self.sectionsAreReadyCallback({1, 1}, self); + self.sectionsAreReadyCallback({1, 1}, self, YES); }); }); }); @@ -328,12 +343,54 @@ using namespace place_page; length++; } - self.sectionsAreReadyCallback({position, length}, self); + self.sectionsAreReadyCallback({position, length}, self, YES /* It's a section */); }); }); }); } +- (void)fillUGCSection +{ + m_ugcRows.push_back(UGCRow::SelectImpression); + + auto & f = GetFramework(); + f.GetUGCApi().GetUGC(self.featureId, [self](ugc::UGC const & ugc) { + auto const it = find(self->m_sections.begin(), self->m_sections.end(), Sections::UGC); + ASSERT(it != self->m_sections.end(), ()); + + auto const position = static_cast<NSUInteger>(distance(self->m_sections.begin(), it)); + auto length = 0UL; + + self->m_ugc = ugc; + auto constexpr maxNumberOfReviews = 3UL; + auto const size = ugc.m_reviews.size(); + if (size > maxNumberOfReviews) + { + self->m_ugcRows.insert(m_ugcRows.end(), maxNumberOfReviews, UGCRow::Comment); + length += maxNumberOfReviews; + self->m_ugcRows.emplace_back(UGCRow::ShowMore); + length++; + } + else + { + self->m_ugcRows.insert(m_ugcRows.end(), size, UGCRow::Comment); + length += size; + } + + self.sectionsAreReadyCallback({position, length}, self, NO /* It's not a section */); + }); + + // TODO: Complete static ugc with dynamic one. + f.GetUGCApi().GetUGCUpdate(self.featureId, [self](ugc::UGCUpdate const & ugc) { + self.reviewViewModel = static_cast<MWMUGCReviewVM<MWMUGCSpecificReviewDelegate, MWMUGCTextReviewDelegate> *>( + [MWMUGCReviewVM fromUGC:ugc + featureId:self.featureId + name:self.title]); + }); +} + +#pragma mark - Update bookmark status + - (void)updateBookmarkStatus:(BOOL)isBookmark { auto & f = GetFramework(); @@ -369,8 +426,12 @@ using namespace place_page; } } +#pragma mark - Dealloc + - (void)dealloc { +// TODO: Submit ugc. +// [self.reviewViewModel submit]; auto nativeAd = self.nativeAd; if (nativeAd) [[MWMBannersCache cache] bannerIsOutOfScreenWithCoreBanner:nativeAd]; @@ -503,8 +564,11 @@ using namespace place_page; - (NSString *)hotelDescription { return @(m_hotelInfo.m_description.c_str()); } - (std::vector<booking::HotelFacility> const &)facilities { return m_hotelInfo.m_facilities; } -- (std::vector<booking::HotelReview> const &)reviews { return m_hotelInfo.m_reviews; } -- (NSUInteger)numberOfReviews { return m_hotelInfo.m_scoreCount; } +- (std::vector<booking::HotelReview> const &)hotelReviews { return m_hotelInfo.m_reviews; } +- (NSUInteger)numberOfHotelReviews { return m_hotelInfo.m_scoreCount; } + +- (std::vector<ugc::Review> const &)ugcReviews { return m_ugc.m_reviews; } + - (NSURL *)URLToAllReviews { return [NSURL URLWithString:@(m_info.GetSponsoredReviewUrl().c_str())]; } - (NSArray<MWMGalleryItemModel *> *)photos { @@ -625,6 +689,7 @@ using namespace place_page; - (std::vector<HotelDescriptionRow> const &)descriptionRows { return m_hotelDescriptionRows; } - (std::vector<HotelFacilitiesRow> const &)hotelFacilitiesRows { return m_hotelFacilitiesRows; } - (std::vector<HotelReviewsRow> const &)hotelReviewsRows { return m_hotelReviewsRows; } +- (std::vector<UGCRow> const &)ugcRows { return m_ugcRows; } - (NSString *)stringForRow:(MetainfoRows)row { switch (row) diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm index ec7ce13776..ef1c03be64 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageManager.mm @@ -1,6 +1,7 @@ #import "MWMPlacePageManager.h" #import <Pushwoosh/PushNotificationManager.h> #import "CLLocation+Mercator.h" +#import "MapViewController.h" #import "MWMAPIBar.h" #import "MWMActivityViewController.h" #import "MWMCircularProgress.h" @@ -16,8 +17,9 @@ #import "MWMRouter.h" #import "MWMSideButtons.h" #import "MWMStorage.h" +#import "MWMUGCReviewController.h" +#import "MWMUGCReviewVM.h" #import "MWMViewController.h" -#import "MapViewController.h" #import "Statistics.h" #import "SwiftBridge.h" @@ -26,6 +28,8 @@ #include "platform/measurement_utils.hpp" +#include "ugc/api.hpp" + extern NSString * const kBookmarkDeletedNotification; extern NSString * const kBookmarkCategoryDeletedNotification; @@ -529,6 +533,18 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName) [self.ownerViewController openUrl:u]; } +- (void)reviewOn:(NSInteger)starNumber +{ + GetFramework().GetUGCApi().GetUGCUpdate(self.data.featureId, [self, starNumber](ugc::UGCUpdate const & ugc) { + auto viewModel = self.data.reviewViewModel; + [viewModel setDefaultStarCount:starNumber]; + auto controller = [MWMUGCReviewController instanceFromViewModel:viewModel]; + [self.ownerViewController.navigationController pushViewController:controller animated:YES]; + }); +} + +#pragma mark - On rotate + - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/BookingCells/PPHotelCarouselCell.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/BookingCells/PPHotelCarouselCell.swift index fe0d69e05c..4289013603 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/BookingCells/PPHotelCarouselCell.swift +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/BookingCells/PPHotelCarouselCell.swift @@ -14,7 +14,7 @@ final class PPHotelCarouselCell: MWMTableViewCell { @IBOutlet private weak var collectionView: UICollectionView! fileprivate var dataSource: [GalleryItemModel] = [] fileprivate let kMaximumNumberOfPhotos = 5 - fileprivate var delegate: MWMPlacePageButtonsProtocol? + fileprivate weak var delegate: MWMPlacePageButtonsProtocol? func config(with ds: [GalleryItemModel], delegate d: MWMPlacePageButtonsProtocol?) { dataSource = ds diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/Controllers/MWMFacilitiesController.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/Controllers/MWMFacilitiesController.mm index a335992312..f3dbc6fcd1 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/Controllers/MWMFacilitiesController.mm +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/Controllers/MWMFacilitiesController.mm @@ -16,15 +16,9 @@ [self.tableView registerWithCellClass:[MWMPPFacilityCell class]]; } -- (void)setHotelName:(NSString *)name -{ - self.title = name; -} +- (void)setHotelName:(NSString *)name { self.title = name; } -- (void)setFacilities:(std::vector<booking::HotelFacility> const &)facilities -{ - m_dataSource = facilities; -} +- (void)setFacilities:(std::vector<booking::HotelFacility> const &)facilities { m_dataSource = facilities; } #pragma mark - TableView diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.h b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.h new file mode 100644 index 0000000000..80366b7045 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.h @@ -0,0 +1,12 @@ +#import "MWMTableViewCell.h" + +namespace ugc +{ +struct Review; +} + +@interface MWMUGCCommentCell : MWMTableViewCell + +- (void)configWithReview:(ugc::Review const &)review; + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.mm new file mode 100644 index 0000000000..1aa721178d --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.mm @@ -0,0 +1,97 @@ +#import "MWMUGCCommentCell.h" +#import "UIImageView+Coloring.h" + +#include "ugc/types.hpp" + +namespace +{ +NSString * formattedDateFrom(ugc::Time time) +{ + NSDateComponentsFormatter * formatter = [[NSDateComponentsFormatter alloc] init]; + formatter.unitsStyle = NSDateComponentsFormatterUnitsStyleFull; + + using namespace std::chrono; + NSTimeInterval const t = duration_cast<seconds>(time.time_since_epoch()).count(); + + NSDate * date = [NSDate dateWithTimeIntervalSince1970:t]; + NSCalendar * calendar = [NSCalendar currentCalendar]; + auto const mask = (NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekOfMonth | + NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute); + NSDateComponents * components = [calendar components:mask fromDate:date]; + + if (components.year > 0) { + formatter.allowedUnits = NSCalendarUnitYear; + } else if (components.month > 0) { + formatter.allowedUnits = NSCalendarUnitMonth; + } else if (components.weekOfMonth > 0) { + formatter.allowedUnits = NSCalendarUnitWeekOfMonth; + } else if (components.day > 0) { + formatter.allowedUnits = NSCalendarUnitDay; + } else if (components.hour > 0) { + formatter.allowedUnits = NSCalendarUnitHour; + } else if (components.minute > 0) { + formatter.allowedUnits = NSCalendarUnitMinute; + } else { + formatter.allowedUnits = NSCalendarUnitSecond; + } + + return [formatter stringFromDateComponents:components]; +} +} + +@interface MWMUGCCommentCell () + +@property(weak, nonatomic) IBOutlet UILabel * author; +@property(weak, nonatomic) IBOutlet UILabel * date; +@property(weak, nonatomic) IBOutlet UILabel * comment; +@property(weak, nonatomic) IBOutlet UILabel * positiveCount; +@property(weak, nonatomic) IBOutlet UILabel * negativeCount; +@property(weak, nonatomic) IBOutlet UIImageView * thumbUp; +@property(weak, nonatomic) IBOutlet UIImageView * thumbDown; +@property(weak, nonatomic) IBOutlet UIButton * thumbUpButton; +@property(weak, nonatomic) IBOutlet UIButton * thumbDownButton; +@property(weak, nonatomic) IBOutlet UIButton * showOriginal; + +@end + +@implementation MWMUGCCommentCell + +- (void)configWithReview:(ugc::Review const &)review +{ + self.author.text = @(review.m_author.m_name.c_str()); + self.comment.text = @(review.m_text.m_text.c_str()); + self.date.text = formattedDateFrom(review.m_time); +} + +#pragma mark - Actions + +- (IBAction)thumbUpTap +{ + self.thumbUp.mwm_coloring = self.thumbUpButton.isSelected ? MWMImageColoringBlack : MWMImageColoringGray; + // TODO: Increment positive count + if (self.thumbDownButton.selected) + { + self.thumbDown.mwm_coloring = MWMImageColoringGray; + self.thumbDownButton.selected = NO; + // Decrement negative count + } +} + +- (IBAction)thumbDownTap +{ + self.thumbDown.mwm_coloring = self.thumbDownButton.isSelected ? MWMImageColoringBlack : MWMImageColoringGray; + // TODO: Increment negative count + if (self.thumbUpButton.selected) + { + self.thumbUp.mwm_coloring = MWMImageColoringGray; + self.thumbUpButton.selected = NO; + // Decrement positive count + } +} + +- (IBAction)showOriginalTap +{ + // TODO: Show original comment. Will be implemented soon. +} + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.xib b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.xib new file mode 100644 index 0000000000..84352a66f8 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCCommentCell.xib @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="MWMUGCCommentCell" rowHeight="85" id="7OT-yL-P9Y" customClass="MWMUGCCommentCell"> + <rect key="frame" x="0.0" y="0.0" width="375" height="85"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7OT-yL-P9Y" id="deN-eU-5Jw"> + <rect key="frame" x="0.0" y="0.0" width="375" height="84"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Author" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="auV-Fe-jjv"> + <rect key="frame" x="16" y="16" width="291" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium14"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/> + </userDefinedRuntimeAttributes> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="501" verticalHuggingPriority="251" text="Date" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NXc-T4-2At"> + <rect key="frame" x="323" y="16" width="36" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular12"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + </userDefinedRuntimeAttributes> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Comment" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kZb-7M-LpR" userLabel="Comment"> + <rect key="frame" x="16" y="49" width="343" height="20"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/> + </userDefinedRuntimeAttributes> + </label> + </subviews> + <constraints> + <constraint firstAttribute="trailing" secondItem="NXc-T4-2At" secondAttribute="trailing" constant="16" id="1lS-HM-qlf"/> + <constraint firstAttribute="trailing" secondItem="kZb-7M-LpR" secondAttribute="trailing" constant="16" id="6KU-n6-AGI"/> + <constraint firstItem="kZb-7M-LpR" firstAttribute="top" secondItem="auV-Fe-jjv" secondAttribute="bottom" constant="12" id="Fuo-3p-DCz"/> + <constraint firstAttribute="bottom" secondItem="kZb-7M-LpR" secondAttribute="bottom" constant="15.5" id="PIB-YP-jlS"/> + <constraint firstItem="NXc-T4-2At" firstAttribute="leading" secondItem="auV-Fe-jjv" secondAttribute="trailing" constant="16" id="SKZ-ht-fsR"/> + <constraint firstItem="kZb-7M-LpR" firstAttribute="leading" secondItem="deN-eU-5Jw" secondAttribute="leading" constant="16" id="Uy4-XY-EWE"/> + <constraint firstItem="auV-Fe-jjv" firstAttribute="leading" secondItem="deN-eU-5Jw" secondAttribute="leading" constant="16" id="WfW-dk-9h5"/> + <constraint firstItem="auV-Fe-jjv" firstAttribute="top" secondItem="deN-eU-5Jw" secondAttribute="top" constant="16" id="aSe-di-2Sq"/> + <constraint firstItem="kZb-7M-LpR" firstAttribute="top" secondItem="NXc-T4-2At" secondAttribute="bottom" constant="12" id="eVA-B8-y5Z"/> + <constraint firstItem="NXc-T4-2At" firstAttribute="top" secondItem="deN-eU-5Jw" secondAttribute="top" constant="16" id="pag-IB-oXr"/> + </constraints> + </tableViewCellContentView> + <inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> + <connections> + <outlet property="author" destination="auV-Fe-jjv" id="a77-en-qWv"/> + <outlet property="comment" destination="kZb-7M-LpR" id="fzO-Fd-L8v"/> + <outlet property="date" destination="NXc-T4-2At" id="xgH-dJ-dxG"/> + </connections> + <point key="canvasLocation" x="-15" y="57"/> + </tableViewCell> + </objects> +</document> diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.h b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.h new file mode 100644 index 0000000000..05e14525b9 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.h @@ -0,0 +1,9 @@ +#import "MWMTableViewController.h" + +@class MWMUGCReviewVM; + +@interface MWMUGCReviewController : MWMTableViewController + ++ (instancetype)instanceFromViewModel:(MWMUGCReviewVM *)viewModel; + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.mm new file mode 100644 index 0000000000..41915c8a7a --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.mm @@ -0,0 +1,78 @@ +#import "MWMUGCReviewController.h" +#import "MWMUGCReviewVM.h" +#import "SwiftBridge.h" + +#include "ugc/types.hpp" + +@interface MWMUGCReviewController () + +@property(weak, nonatomic) MWMUGCReviewVM<MWMUGCSpecificReviewDelegate, MWMUGCTextReviewDelegate> * viewModel; + +@end + +@implementation MWMUGCReviewController + ++ (instancetype)instanceFromViewModel:(MWMUGCReviewVM *)viewModel +{ + auto inst = [[MWMUGCReviewController alloc] initWithNibName:self.className bundle:nil]; + inst.viewModel = static_cast<MWMUGCReviewVM<MWMUGCSpecificReviewDelegate, MWMUGCTextReviewDelegate> *>(viewModel); + return inst; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + self.title = self.viewModel.name; + auto tv = self.tableView; + tv.estimatedRowHeight = 44; + tv.rowHeight = UITableViewAutomaticDimension; + [tv registerWithCellClass:[MWMUGCSpecificReviewCell class]]; + [tv registerWithCellClass:[MWMUGCTextReviewCell class]]; + self.navigationItem.rightBarButtonItem = + [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone + target:self + action:@selector(submitTap)]; +} + +- (void)submitTap +{ + [self.viewModel submit]; + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - UITableView's methods + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return self.viewModel.numberOfRows; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + using ugc_review::Row; + auto vm = self.viewModel; + switch ([vm rowForIndexPath:indexPath]) + { + case Row::Detail: + { + auto const & record = [self.viewModel recordForIndexPath:indexPath]; + Class cls = [MWMUGCSpecificReviewCell class]; + auto c = static_cast<MWMUGCSpecificReviewCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); + [c configWithSpecification:@(record.m_key.c_str()) + rate:static_cast<NSInteger>(record.m_value) + atIndexPath:indexPath + delegate:vm]; + return c; + } + case Row::SpecialQuestion: + case Row::Message: + { + Class cls = [MWMUGCTextReviewCell class]; + auto c = static_cast<MWMUGCTextReviewCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); + [c configWithDelegate:vm]; + return c; + } + } +} + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.xib b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.xib new file mode 100644 index 0000000000..1898b54ff1 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewController.xib @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMUGCReviewController"> + <connections> + <outlet property="view" destination="TRh-wl-yRo" id="ycQ-bX-uGi"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="TRh-wl-yRo"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> + <inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> + <connections> + <outlet property="dataSource" destination="-1" id="QPn-i3-DtA"/> + <outlet property="delegate" destination="-1" id="Gv3-xw-NFq"/> + </connections> + <point key="canvasLocation" x="42" y="30"/> + </tableView> + </objects> +</document> diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewVM.h b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewVM.h new file mode 100644 index 0000000000..d2df3e2c5c --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewVM.h @@ -0,0 +1,34 @@ +namespace ugc +{ +struct RatingRecord; +struct UGCUpdate; +} + +struct FeatureID; + +namespace ugc_review +{ +enum class Row +{ + Detail, + SpecialQuestion, + Message +}; +} // namespace ugc + +@interface MWMUGCReviewVM : NSObject + ++ (instancetype)fromUGC:(ugc::UGCUpdate const &)ugc + featureId:(FeatureID const &)fid + name:(NSString *)name; + +- (NSInteger)numberOfRows; +- (ugc_review::Row)rowForIndexPath:(NSIndexPath *)indexPath; +- (ugc::RatingRecord const &)recordForIndexPath:(NSIndexPath *)indexPath; +- (NSString *)review; +- (NSString *)name; + +- (void)setDefaultStarCount:(NSInteger)starCount; +- (void)submit; + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewVM.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewVM.mm new file mode 100644 index 0000000000..4fd57b1ad9 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWMUGCReviewVM.mm @@ -0,0 +1,83 @@ +#import "Framework.h" +#import "MWMUGCReviewVM.h" +#import "SwiftBridge.h" + +#include "ugc/api.hpp" + +#include <vector> + +@interface MWMUGCReviewVM () <MWMUGCSpecificReviewDelegate, MWMUGCTextReviewDelegate> +{ + ugc::UGCUpdate m_ugc; + FeatureID m_fid; + std::vector<ugc_review::Row> m_rows; +} + +@property(copy, nonatomic) NSString * review; +@property(copy, nonatomic) NSString * name; +@property(nonatomic) NSInteger starCount; + +@end + +@implementation MWMUGCReviewVM + ++ (instancetype)fromUGC:(ugc::UGCUpdate const &)ugc + featureId:(FeatureID const &)fid + name:(NSString *)name +{ + auto inst = [[MWMUGCReviewVM alloc] init]; + inst.name = name; + inst->m_ugc = ugc; + inst->m_fid = fid; + [inst config]; + return inst; +} + +- (void)config +{ + auto & records = m_ugc.m_ratings.m_ratings; +// Uncomment for testing. + records.emplace_back("Price", 0); + records.emplace_back("Place", 0); + + m_rows.insert(m_rows.begin(), records.size(), ugc_review::Row::Detail); + m_rows.emplace_back(ugc_review::Row::Message); +} + +- (void)setDefaultStarCount:(NSInteger)starCount +{ + for (auto & r : m_ugc.m_ratings.m_ratings) + r.m_value = starCount; +} + +- (void)submit +{ + GetFramework().GetUGCApi().SetUGCUpdate(m_fid, m_ugc); +} + +- (NSInteger)numberOfRows { return m_rows.size(); } + +- (ugc::RatingRecord const &)recordForIndexPath:(NSIndexPath *)indexPath +{ + return m_ugc.m_ratings.m_ratings[indexPath.row]; +} + +- (ugc_review::Row)rowForIndexPath:(NSIndexPath *)indexPath { return m_rows[indexPath.row]; } + +#pragma mark - MWMUGCSpecificReviewDelegate + +- (void)changeReviewRate:(NSInteger)rate atIndexPath:(NSIndexPath *)indexPath +{ + auto & record = m_ugc.m_ratings.m_ratings[indexPath.row]; + record.m_value = rate; +} + +#pragma mark - MWMUGCTextReviewDelegate + +- (void)changeReviewText:(NSString *)text +{ + self.review = text; + // TODO: Write the review into ugc object. +} + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.h b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.h new file mode 100644 index 0000000000..373deb03f9 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.h @@ -0,0 +1,14 @@ +#import "MWMTableViewController.h" + +#include <vector> + +namespace ugc +{ +struct Review; +} + +@interface MWUGCCommentsController : MWMTableViewController + ++ (instancetype)instanceWithTitle:(NSString *)title comments:(std::vector<ugc::Review> const &)comments; + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.mm new file mode 100644 index 0000000000..50690fb431 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.mm @@ -0,0 +1,48 @@ +#import "MWUGCCommentsController.h" +#import "MWMUGCCommentCell.h" +#import "SwiftBridge.h" + +#include "ugc/types.hpp" + +@interface MWUGCCommentsController () +{ + std::vector<ugc::Review> m_dataSource; +} + +@end + +@implementation MWUGCCommentsController + ++ (instancetype)instanceWithTitle:(NSString *)title comments:(std::vector<ugc::Review> const &)comments +{ + auto inst = [[MWUGCCommentsController alloc] initWithNibName:self.className bundle:nil]; + inst.title = title; + inst->m_dataSource = comments; + return inst; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + auto tv = self.tableView; + tv.estimatedRowHeight = 44; + tv.rowHeight = UITableViewAutomaticDimension; + [tv registerWithCellClass:[MWMUGCCommentCell class]]; +} + +#pragma mark - UITableView's methods + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return m_dataSource.size(); +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + Class cls = [MWMUGCCommentCell class]; + auto c = static_cast<MWMUGCCommentCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); + [c configWithReview:m_dataSource[indexPath.row]]; + return c; +} + +@end diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.xib b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.xib new file mode 100644 index 0000000000..795d074b77 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/MWUGCCommentsController.xib @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWUGCCommentsController"> + <connections> + <outlet property="view" destination="Lve-vE-lQE" id="aUI-r7-4UT"/> + </connections> + </placeholder> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="Lve-vE-lQE"> + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> + <connections> + <outlet property="dataSource" destination="-1" id="gll-Ia-c1n"/> + <outlet property="delegate" destination="-1" id="oGp-Gc-vbh"/> + </connections> + <point key="canvasLocation" x="67" y="140"/> + </tableView> + </objects> +</document> diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSelectImpressionCell.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSelectImpressionCell.swift new file mode 100644 index 0000000000..f75fd5bbdf --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSelectImpressionCell.swift @@ -0,0 +1,15 @@ +@objc(MWMUGCSelectImpressionCell) +final class UGCSelectImpressionCell: MWMTableViewCell { + @IBOutlet private var buttons: [UIButton]! + private weak var delegate: MWMPlacePageButtonsProtocol? + + func configWith(delegate: MWMPlacePageButtonsProtocol?) { + self.delegate = delegate + } + + @IBAction private func tap(on: UIButton) { + buttons.forEach { $0.isSelected = false } + on.isSelected = true; + delegate?.review(on: on.tag) + } +} diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSelectImpressionCell.xib b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSelectImpressionCell.xib new file mode 100644 index 0000000000..fbed803496 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSelectImpressionCell.xib @@ -0,0 +1,226 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="139" id="8mr-2l-jxR" customClass="MWMUGCSelectImpressionCell"> + <rect key="frame" x="0.0" y="0.0" width="375" height="139"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8mr-2l-jxR" id="29u-J5-Cmg"> + <rect key="frame" x="0.0" y="0.0" width="375" height="138"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Impression" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fjZ-hn-8ng"> + <rect key="frame" x="16" y="14" width="343" height="20"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium20"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/> + <userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ugc_tap_to_rate"/> + </userDefinedRuntimeAttributes> + </label> + <button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="4X3-Un-UJS" userLabel="Bad" customClass="MWMButton"> + <rect key="frame" x="111" y="50" width="40" height="40"/> + <constraints> + <constraint firstAttribute="height" constant="40" id="3xz-Ow-9Nx"/> + <constraint firstAttribute="width" constant="40" id="XKA-x9-f0y"/> + </constraints> + <state key="normal" image="rating_bad_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_bad"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="tapOn:" destination="8mr-2l-jxR" eventType="touchUpInside" id="WTZ-dD-nM5"/> + </connections> + </button> + <button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bXR-fe-qYg" userLabel="Excellent" customClass="MWMButton"> + <rect key="frame" x="279" y="50" width="40" height="40"/> + <constraints> + <constraint firstAttribute="width" constant="40" id="Cgm-ht-N96"/> + <constraint firstAttribute="height" constant="40" id="X8l-N8-xvB"/> + </constraints> + <state key="normal" image="rating_exellent_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_exellent"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="tapOn:" destination="8mr-2l-jxR" eventType="touchUpInside" id="OXC-nG-pw3"/> + </connections> + </button> + <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3Bk-EL-pCJ" userLabel="Horrible" customClass="MWMButton"> + <rect key="frame" x="55" y="50" width="40" height="40"/> + <constraints> + <constraint firstAttribute="width" constant="40" id="VIf-PR-ugc"/> + <constraint firstAttribute="height" constant="40" id="ktC-gY-Zmf"/> + </constraints> + <state key="normal" title="" image="rating_horrible_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_horrible"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="tapOn:" destination="8mr-2l-jxR" eventType="touchUpInside" id="TfX-fp-8dX"/> + </connections> + </button> + <button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Pmi-8e-3lP" userLabel="Good" customClass="MWMButton"> + <rect key="frame" x="223" y="50" width="40" height="40"/> + <constraints> + <constraint firstAttribute="width" constant="40" id="8gn-6v-WJ3"/> + <constraint firstAttribute="height" constant="40" id="YpJ-9G-DMa"/> + </constraints> + <state key="normal" image="rating_good_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_good"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="tapOn:" destination="8mr-2l-jxR" eventType="touchUpInside" id="N90-26-9Vy"/> + </connections> + </button> + <button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gpp-Dv-Guw" userLabel="Average" customClass="MWMButton"> + <rect key="frame" x="167" y="50" width="40" height="40"/> + <constraints> + <constraint firstAttribute="height" constant="40" id="7vr-Wj-nvx"/> + <constraint firstAttribute="width" constant="40" id="bT2-7K-MAj"/> + </constraints> + <state key="normal" image="rating_average_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_average"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="tapOn:" destination="8mr-2l-jxR" eventType="touchUpInside" id="l4a-eu-er6"/> + </connections> + </button> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Horrible" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DoU-La-K5J"> + <rect key="frame" x="55" y="98" width="39" height="16"/> + <constraints> + <constraint firstAttribute="height" constant="16" id="gYS-80-26j"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="10"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + <userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ugc_horrible"/> + </userDefinedRuntimeAttributes> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Bad" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3hX-1k-3h8"> + <rect key="frame" x="103" y="98" width="56" height="16"/> + <constraints> + <constraint firstAttribute="height" constant="16" id="1M5-Gl-Ppg"/> + <constraint firstAttribute="width" constant="56" id="nge-Pj-qmk"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="10"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + <userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ugc_bad"/> + </userDefinedRuntimeAttributes> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Average" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Vh2-4Z-J3k" userLabel="Average"> + <rect key="frame" x="159" y="98" width="56" height="16"/> + <constraints> + <constraint firstAttribute="width" constant="56" id="dyI-nN-g7J"/> + <constraint firstAttribute="height" constant="16" id="oNW-OJ-dux"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="10"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + <userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ugc_average"/> + </userDefinedRuntimeAttributes> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Good" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S6J-iV-4Rk" userLabel="Good"> + <rect key="frame" x="215" y="98" width="56" height="16"/> + <constraints> + <constraint firstAttribute="height" constant="16" id="Xyn-Zb-Mwb"/> + <constraint firstAttribute="width" constant="56" id="qwC-SD-XGc"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="10"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + <userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ugc_good"/> + </userDefinedRuntimeAttributes> + </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Excellent" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="B6d-Mf-Eov"> + <rect key="frame" x="271" y="98" width="56" height="16"/> + <constraints> + <constraint firstAttribute="width" constant="56" id="ATo-Op-ySH"/> + <constraint firstAttribute="height" constant="16" id="cjD-fd-5rM"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="10"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular10"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + <userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="ugc_excellent"/> + </userDefinedRuntimeAttributes> + </label> + </subviews> + <constraints> + <constraint firstItem="B6d-Mf-Eov" firstAttribute="top" secondItem="bXR-fe-qYg" secondAttribute="bottom" constant="8" id="30M-e6-iM8"/> + <constraint firstItem="DoU-La-K5J" firstAttribute="centerX" secondItem="3Bk-EL-pCJ" secondAttribute="centerX" id="36l-z9-UDX"/> + <constraint firstAttribute="bottom" secondItem="DoU-La-K5J" secondAttribute="bottom" constant="24" id="3Hd-AV-iiJ"/> + <constraint firstAttribute="trailing" secondItem="fjZ-hn-8ng" secondAttribute="trailing" constant="16" id="5o3-tn-eRK"/> + <constraint firstItem="fjZ-hn-8ng" firstAttribute="top" secondItem="29u-J5-Cmg" secondAttribute="top" constant="14" id="62E-qA-nyG"/> + <constraint firstAttribute="bottom" secondItem="3hX-1k-3h8" secondAttribute="bottom" priority="750" constant="24" id="7hg-dl-56x"/> + <constraint firstItem="B6d-Mf-Eov" firstAttribute="centerX" secondItem="bXR-fe-qYg" secondAttribute="centerX" id="Azb-73-2Ml"/> + <constraint firstItem="Vh2-4Z-J3k" firstAttribute="centerX" secondItem="Gpp-Dv-Guw" secondAttribute="centerX" id="Djv-iU-fJu"/> + <constraint firstItem="S6J-iV-4Rk" firstAttribute="top" secondItem="Pmi-8e-3lP" secondAttribute="bottom" constant="8" id="Hm2-2G-fb7"/> + <constraint firstAttribute="bottom" secondItem="S6J-iV-4Rk" secondAttribute="bottom" priority="750" constant="24" id="J3B-uh-pxW"/> + <constraint firstItem="Vh2-4Z-J3k" firstAttribute="top" secondItem="Gpp-Dv-Guw" secondAttribute="bottom" constant="8" id="Klh-mk-FQm"/> + <constraint firstItem="fjZ-hn-8ng" firstAttribute="leading" secondItem="29u-J5-Cmg" secondAttribute="leading" constant="16" id="LRq-sK-SX7"/> + <constraint firstItem="3hX-1k-3h8" firstAttribute="centerX" secondItem="4X3-Un-UJS" secondAttribute="centerX" id="Lgz-RD-yek"/> + <constraint firstItem="Gpp-Dv-Guw" firstAttribute="top" secondItem="fjZ-hn-8ng" secondAttribute="bottom" priority="750" constant="16" id="O37-tN-tQP"/> + <constraint firstItem="4X3-Un-UJS" firstAttribute="leading" secondItem="3Bk-EL-pCJ" secondAttribute="trailing" constant="16" id="OiI-OA-yP6"/> + <constraint firstItem="Gpp-Dv-Guw" firstAttribute="leading" secondItem="4X3-Un-UJS" secondAttribute="trailing" constant="16" id="Pki-6J-dhV"/> + <constraint firstItem="3hX-1k-3h8" firstAttribute="top" secondItem="4X3-Un-UJS" secondAttribute="bottom" constant="8" id="Xb5-Mb-DeZ"/> + <constraint firstItem="4X3-Un-UJS" firstAttribute="centerY" secondItem="Gpp-Dv-Guw" secondAttribute="centerY" id="bmY-l8-HtD"/> + <constraint firstItem="S6J-iV-4Rk" firstAttribute="centerX" secondItem="Pmi-8e-3lP" secondAttribute="centerX" id="dNp-PM-XWI"/> + <constraint firstItem="Pmi-8e-3lP" firstAttribute="centerY" secondItem="Gpp-Dv-Guw" secondAttribute="centerY" id="e9m-R4-CNe"/> + <constraint firstItem="bXR-fe-qYg" firstAttribute="centerY" secondItem="Gpp-Dv-Guw" secondAttribute="centerY" id="j9h-Oe-qPe"/> + <constraint firstAttribute="bottom" secondItem="B6d-Mf-Eov" secondAttribute="bottom" priority="750" constant="24" id="oO2-HV-mZx"/> + <constraint firstItem="Pmi-8e-3lP" firstAttribute="leading" secondItem="Gpp-Dv-Guw" secondAttribute="trailing" constant="16" id="oo2-mQ-4Ob"/> + <constraint firstItem="bXR-fe-qYg" firstAttribute="leading" secondItem="Pmi-8e-3lP" secondAttribute="trailing" constant="16" id="pX2-L4-8EE"/> + <constraint firstItem="Gpp-Dv-Guw" firstAttribute="centerX" secondItem="fjZ-hn-8ng" secondAttribute="centerX" id="rOF-pM-EVf"/> + <constraint firstAttribute="bottom" secondItem="Vh2-4Z-J3k" secondAttribute="bottom" priority="750" constant="24" id="wGB-Le-XQN"/> + <constraint firstItem="DoU-La-K5J" firstAttribute="top" secondItem="3Bk-EL-pCJ" secondAttribute="bottom" constant="8" id="wep-Hp-ch1"/> + <constraint firstItem="3Bk-EL-pCJ" firstAttribute="centerY" secondItem="Gpp-Dv-Guw" secondAttribute="centerY" id="xhj-rx-jvp"/> + </constraints> + </tableViewCellContentView> + <inset key="separatorInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/> + <connections> + <outletCollection property="buttons" destination="3Bk-EL-pCJ" collectionClass="NSMutableArray" id="oDG-lJ-Zm3"/> + <outletCollection property="buttons" destination="4X3-Un-UJS" collectionClass="NSMutableArray" id="HqF-A4-WZR"/> + <outletCollection property="buttons" destination="Gpp-Dv-Guw" collectionClass="NSMutableArray" id="Rvf-SF-Fo8"/> + <outletCollection property="buttons" destination="Pmi-8e-3lP" collectionClass="NSMutableArray" id="8ZR-jW-kwn"/> + <outletCollection property="buttons" destination="bXR-fe-qYg" collectionClass="NSMutableArray" id="oXE-ze-177"/> + </connections> + <point key="canvasLocation" x="30" y="80"/> + </tableViewCell> + </objects> + <resources> + <image name="rating_average_light" width="40" height="40"/> + <image name="rating_bad_light" width="40" height="40"/> + <image name="rating_exellent_light" width="40" height="40"/> + <image name="rating_good_light" width="40" height="40"/> + <image name="rating_horrible_light" width="40" height="40"/> + </resources> +</document> diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSpecificReviewCell.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSpecificReviewCell.swift new file mode 100644 index 0000000000..1d6f5bc31e --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSpecificReviewCell.swift @@ -0,0 +1,32 @@ +@objc(MWMUGCSpecificReviewDelegate) +protocol UGCSpecificReviewDelegate: NSObjectProtocol { + func changeReviewRate(_ rate: Int, atIndexPath: NSIndexPath) +} + +@objc(MWMUGCSpecificReviewCell) +final class UGCSpecificReviewCell: MWMTableViewCell { + @IBOutlet private weak var specification: UILabel! + @IBOutlet private var stars: [UIButton]! + private var indexPath: NSIndexPath = NSIndexPath() + private var delegate: UGCSpecificReviewDelegate? + + func configWith(specification: String, rate: Int, atIndexPath: NSIndexPath, delegate: UGCSpecificReviewDelegate?) { + self.specification.text = specification + self.delegate = delegate + indexPath = atIndexPath + stars.forEach { $0.isSelected = $0.tag <= rate } + } + + @IBAction private func tap(on: UIButton) { + stars.forEach { $0.isSelected = $0.tag <= on.tag } + delegate?.changeReviewRate(on.tag, atIndexPath: indexPath) + } + + //TODO: Make highlighting and dragging. + + @IBAction private func highlight(on: UIButton) { } + + @IBAction private func touchingCanceled(on: UIButton) { } + + @IBAction private func drag(inside: UIButton) { } +} diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSpecificReviewCell.xib b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSpecificReviewCell.xib new file mode 100644 index 0000000000..16977c3b57 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCSpecificReviewCell.xib @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="49" id="0N2-bg-mQ2" customClass="MWMUGCSpecificReviewCell"> + <rect key="frame" x="0.0" y="0.0" width="375" height="49"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="0N2-bg-mQ2" id="kbz-UL-vv7"> + <rect key="frame" x="0.0" y="0.0" width="375" height="48"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Specification" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7zL-Tr-aCv"> + <rect key="frame" x="16" y="13" width="99" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular16"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/> + </userDefinedRuntimeAttributes> + </label> + <button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rR5-sh-1Ev" customClass="MWMButton"> + <rect key="frame" x="335" y="12" width="24" height="24"/> + <constraints> + <constraint firstAttribute="width" constant="24" id="Axn-N1-hB3"/> + <constraint firstAttribute="height" constant="24" id="kAI-WV-fpT"/> + </constraints> + <state key="normal" image="rating_star_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_star"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="dragInside:" destination="0N2-bg-mQ2" eventType="touchDragInside" id="mYW-eX-sWx"/> + <action selector="highlightOn:" destination="0N2-bg-mQ2" eventType="touchDown" id="lwa-F3-sly"/> + <action selector="tapOn:" destination="0N2-bg-mQ2" eventType="touchUpInside" id="Cdw-rw-EY2"/> + <action selector="touchingCanceledOn:" destination="0N2-bg-mQ2" eventType="touchDragOutside" id="pea-eC-c2q"/> + </connections> + </button> + <button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E91-tg-oef" customClass="MWMButton"> + <rect key="frame" x="305" y="13" width="24" height="24"/> + <constraints> + <constraint firstAttribute="height" constant="24" id="OT0-GR-pYu"/> + <constraint firstAttribute="width" constant="24" id="pGv-Gz-Q0s"/> + </constraints> + <state key="normal" image="rating_star_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_star"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="dragInside:" destination="0N2-bg-mQ2" eventType="touchDragInside" id="pR4-6V-Fiw"/> + <action selector="highlightOn:" destination="0N2-bg-mQ2" eventType="touchDown" id="l8Q-jP-rUa"/> + <action selector="tapOn:" destination="0N2-bg-mQ2" eventType="touchUpInside" id="GZg-97-jx8"/> + <action selector="touchingCanceledOn:" destination="0N2-bg-mQ2" eventType="touchDragOutside" id="YXy-Lm-4xc"/> + </connections> + </button> + <button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mEu-Ee-BYt" customClass="MWMButton"> + <rect key="frame" x="275" y="13" width="24" height="24"/> + <constraints> + <constraint firstAttribute="width" constant="24" id="McF-uF-0s0"/> + <constraint firstAttribute="height" constant="24" id="Pcn-He-Vpf"/> + </constraints> + <state key="normal" image="rating_star_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_star"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="dragInside:" destination="0N2-bg-mQ2" eventType="touchDragInside" id="ee7-36-Xzo"/> + <action selector="highlightOn:" destination="0N2-bg-mQ2" eventType="touchDown" id="IXI-NS-iPS"/> + <action selector="tapOn:" destination="0N2-bg-mQ2" eventType="touchUpInside" id="NZB-x5-5LZ"/> + <action selector="touchingCanceledOn:" destination="0N2-bg-mQ2" eventType="touchDragOutside" id="LfI-FZ-qEh"/> + </connections> + </button> + <button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rbx-TQ-1ee" customClass="MWMButton"> + <rect key="frame" x="245" y="13" width="24" height="24"/> + <constraints> + <constraint firstAttribute="width" constant="24" id="FsX-hj-gK3"/> + <constraint firstAttribute="height" constant="24" id="pVI-Iu-5Gs"/> + </constraints> + <state key="normal" image="rating_star_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_star"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="dragInside:" destination="0N2-bg-mQ2" eventType="touchUpInside" id="G23-DH-tKR"/> + <action selector="highlightOn:" destination="0N2-bg-mQ2" eventType="touchDown" id="dNc-Dk-JQP"/> + <action selector="tapOn:" destination="0N2-bg-mQ2" eventType="touchUpInside" id="hPr-Lo-rpY"/> + <action selector="touchingCanceledOn:" destination="0N2-bg-mQ2" eventType="touchDragOutside" id="Pek-hn-JrO"/> + </connections> + </button> + <button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Tbw-OO-YyX" customClass="MWMButton"> + <rect key="frame" x="215" y="13" width="24" height="24"/> + <constraints> + <constraint firstAttribute="height" constant="24" id="k1A-hb-bfW"/> + <constraint firstAttribute="width" constant="24" id="usP-23-xrd"/> + </constraints> + <state key="normal" image="rating_star_light"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="imageName" value="rating_star"/> + </userDefinedRuntimeAttributes> + <connections> + <action selector="dragInside:" destination="0N2-bg-mQ2" eventType="touchDragInside" id="7JB-Av-BpN"/> + <action selector="highlightOn:" destination="0N2-bg-mQ2" eventType="touchDown" id="LjJ-m3-kPl"/> + <action selector="tapOn:" destination="0N2-bg-mQ2" eventType="touchUpInside" id="iLy-Y9-LwD"/> + <action selector="touchingCanceledOn:" destination="0N2-bg-mQ2" eventType="touchDragOutside" id="PNt-N7-uPG"/> + </connections> + </button> + </subviews> + <constraints> + <constraint firstItem="E91-tg-oef" firstAttribute="leading" secondItem="mEu-Ee-BYt" secondAttribute="trailing" constant="6" id="7dR-yP-dF0"/> + <constraint firstItem="rbx-TQ-1ee" firstAttribute="leading" secondItem="Tbw-OO-YyX" secondAttribute="trailing" constant="6" id="GqU-OH-qho"/> + <constraint firstItem="rR5-sh-1Ev" firstAttribute="leading" secondItem="E91-tg-oef" secondAttribute="trailing" constant="6" id="Sfy-2Z-jtC"/> + <constraint firstItem="rbx-TQ-1ee" firstAttribute="centerY" secondItem="kbz-UL-vv7" secondAttribute="centerY" id="Spt-41-cPH"/> + <constraint firstItem="7zL-Tr-aCv" firstAttribute="centerY" secondItem="kbz-UL-vv7" secondAttribute="centerY" id="Srz-p9-pJU"/> + <constraint firstItem="Tbw-OO-YyX" firstAttribute="centerY" secondItem="kbz-UL-vv7" secondAttribute="centerY" id="c1D-nx-GIp"/> + <constraint firstItem="7zL-Tr-aCv" firstAttribute="leading" secondItem="kbz-UL-vv7" secondAttribute="leading" constant="16" id="dS5-xF-O19"/> + <constraint firstItem="E91-tg-oef" firstAttribute="centerY" secondItem="kbz-UL-vv7" secondAttribute="centerY" id="frD-pd-HK7"/> + <constraint firstAttribute="trailing" secondItem="rR5-sh-1Ev" secondAttribute="trailing" constant="16" id="gQ7-OU-wse"/> + <constraint firstItem="rR5-sh-1Ev" firstAttribute="centerY" secondItem="kbz-UL-vv7" secondAttribute="centerY" id="sJ7-JD-b07"/> + <constraint firstItem="mEu-Ee-BYt" firstAttribute="leading" secondItem="rbx-TQ-1ee" secondAttribute="trailing" constant="6" id="uK1-R4-apC"/> + <constraint firstItem="mEu-Ee-BYt" firstAttribute="centerY" secondItem="kbz-UL-vv7" secondAttribute="centerY" id="uhg-cg-TiJ"/> + </constraints> + </tableViewCellContentView> + <connections> + <outlet property="specification" destination="7zL-Tr-aCv" id="yEY-Xr-OSH"/> + <outletCollection property="stars" destination="Tbw-OO-YyX" collectionClass="NSMutableArray" id="xO3-Tz-BzG"/> + <outletCollection property="stars" destination="rbx-TQ-1ee" collectionClass="NSMutableArray" id="FfR-Vh-hZx"/> + <outletCollection property="stars" destination="mEu-Ee-BYt" collectionClass="NSMutableArray" id="ao3-1f-Vy1"/> + <outletCollection property="stars" destination="E91-tg-oef" collectionClass="NSMutableArray" id="W9v-ur-aTo"/> + <outletCollection property="stars" destination="rR5-sh-1Ev" collectionClass="NSMutableArray" id="mwb-cj-yDx"/> + </connections> + <point key="canvasLocation" x="24" y="22"/> + </tableViewCell> + </objects> + <resources> + <image name="rating_star_light" width="24" height="24"/> + </resources> +</document> diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCTextReviewCell.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCTextReviewCell.swift new file mode 100644 index 0000000000..384677ea12 --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCTextReviewCell.swift @@ -0,0 +1,38 @@ +@objc(MWMUGCTextReviewDelegate) +protocol UGCTextReviewDelegate: NSObjectProtocol { + func changeReviewText(_ text: String) +} + +@objc(MWMUGCTextReviewCell) +final class UGCTextReviewCell: MWMTableViewCell, UITextViewDelegate { + private enum Consts { + static let kMaxNumberOfSymbols = 400 + } + + @IBOutlet private weak var textView: MWMTextView! + @IBOutlet private weak var countLabel: UILabel! + private weak var delegate: UGCTextReviewDelegate? + private var indexPath: NSIndexPath = NSIndexPath() + + func configWith(delegate: UGCTextReviewDelegate?) { + self.delegate = delegate + setCount(textView.text.characters.count) + } + + private func setCount(_ count: Int) { + countLabel.text = "\(count)/\(Consts.kMaxNumberOfSymbols)" + } + + //MARK: UITextViewDelegate + func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { + return textView.text.characters.count <= Consts.kMaxNumberOfSymbols + } + + func textViewDidChange(_ textView: UITextView) { + setCount(textView.text.characters.count) + } + + func textViewDidEndEditing(_ textView: UITextView) { + delegate?.changeReviewText(textView.text) + } +} diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCTextReviewCell.xib b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCTextReviewCell.xib new file mode 100644 index 0000000000..a6a63c259d --- /dev/null +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCTextReviewCell.xib @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> + <device id="retina4_7" orientation="portrait"> + <adaptation id="fullscreen"/> + </device> + <dependencies> + <deployment identifier="iOS"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> + </dependencies> + <objects> + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="269" id="heZ-rE-Fbm" customClass="MWMUGCTextReviewCell"> + <rect key="frame" x="0.0" y="0.0" width="375" height="269"/> + <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="heZ-rE-Fbm" id="4Pj-Q3-q5z"> + <rect key="frame" x="0.0" y="0.0" width="375" height="268"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="TX5-r3-4kI" customClass="MWMTextView"> + <rect key="frame" x="16" y="16" width="343" height="236"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <constraints> + <constraint firstAttribute="height" constant="236" id="Cfd-Ch-3ra"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <textInputTraits key="textInputTraits" autocapitalizationType="sentences" returnKeyType="done"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="placeholder" value="ugc_write_review"/> + </userDefinedRuntimeAttributes> + <connections> + <outlet property="delegate" destination="heZ-rE-Fbm" id="oS2-nD-XQZ"/> + </connections> + </textView> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="501" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4JR-Is-ntd"> + <rect key="frame" x="317" y="231" width="42" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + <userDefinedRuntimeAttributes> + <userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular12"/> + <userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackHintText"/> + </userDefinedRuntimeAttributes> + </label> + </subviews> + <constraints> + <constraint firstAttribute="bottom" secondItem="TX5-r3-4kI" secondAttribute="bottom" priority="750" constant="16" id="0ej-70-Rgj"/> + <constraint firstItem="TX5-r3-4kI" firstAttribute="leading" secondItem="4Pj-Q3-q5z" secondAttribute="leading" constant="16" id="BlT-Cw-SOe"/> + <constraint firstAttribute="bottom" secondItem="4JR-Is-ntd" secondAttribute="bottom" constant="16" id="Rx2-Zz-ujq"/> + <constraint firstAttribute="trailing" secondItem="TX5-r3-4kI" secondAttribute="trailing" constant="16" id="VnF-zt-9CQ"/> + <constraint firstAttribute="trailing" secondItem="4JR-Is-ntd" secondAttribute="trailing" constant="16" id="YUP-YV-chQ"/> + <constraint firstItem="TX5-r3-4kI" firstAttribute="top" secondItem="4Pj-Q3-q5z" secondAttribute="top" constant="16" id="oMx-nO-CdZ"/> + </constraints> + </tableViewCellContentView> + <connections> + <outlet property="countLabel" destination="4JR-Is-ntd" id="1g1-yP-lWl"/> + <outlet property="textView" destination="TX5-r3-4kI" id="pzY-1A-5pL"/> + </connections> + <point key="canvasLocation" x="31" y="151"/> + </tableViewCell> + </objects> +</document> diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm b/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm index 777be83d25..b00aeec06b 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm +++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/MWMPlacePageLayout.mm @@ -1,6 +1,7 @@ #import "MWMPlacePageLayout.h" #import "MWMBookmarkCell.h" #import "MWMCircularProgress.h" +#import "MWMUGCCommentCell.h" #import "MWMOpeningHoursLayoutHelper.h" #import "MWMPPPreviewLayoutHelper.h" #import "MWMPPReviewCell.h" @@ -13,6 +14,8 @@ #import "MWMiPhonePlacePageLayoutImpl.h" #import "SwiftBridge.h" +#include "ugc/types.hpp" + #include "storage/storage.hpp" #include "std/array.hpp" @@ -102,6 +105,8 @@ map<MetainfoRows, Class> const kMetaInfoCells = { [tv registerWithCellClass:[MWMPPReviewCell class]]; [tv registerWithCellClass:[MWMPPFacilityCell class]]; [tv registerWithCellClass:[MWMPlacePageTaxiCell class]]; + [tv registerWithCellClass:[MWMUGCSelectImpressionCell class]]; + [tv registerWithCellClass:[MWMUGCCommentCell class]]; // Register all meta info cells. for (auto const & pair : kMetaInfoCells) @@ -119,12 +124,23 @@ map<MetainfoRows, Class> const kMetaInfoCells = { self.isPlacePageButtonsEnabled = YES; self.data = data; - data.sectionsAreReadyCallback = ^(NSRange const & range, MWMPlacePageData * d) { + data.sectionsAreReadyCallback = ^(NSRange const & range, MWMPlacePageData * d, BOOL isSection) { if (![self.data isEqual:d]) return; - [self.placePageView.tableView insertSections:[NSIndexSet indexSetWithIndexesInRange:range] + auto tv = self.placePageView.tableView; + if (isSection) { + [tv insertSections:[NSIndexSet indexSetWithIndexesInRange:range] withRowAnimation:UITableViewRowAnimationAutomatic]; + } + else + { + NSMutableArray<NSIndexPath *> * indexPaths = [@[] mutableCopy]; + for (auto i = 1; i < range.length + 1; i++) + [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:range.location]]; + + [tv insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic]; + } }; data.bannerIsReadyCallback = ^{ @@ -324,6 +340,7 @@ map<MetainfoRows, Class> const kMetaInfoCells = { case Sections::HotelDescription: return data.descriptionRows.size(); case Sections::HotelFacilities: return data.hotelFacilitiesRows.size(); case Sections::HotelReviews: return data.hotelReviewsRows.size(); + case Sections::UGC: return data.ugcRows.size(); } } @@ -472,14 +489,14 @@ map<MetainfoRows, Class> const kMetaInfoCells = { { Class cls = [MWMPPReviewHeaderCell class]; auto c = static_cast<MWMPPReviewHeaderCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); - [c configWith:data.bookingRating numberOfReviews:data.numberOfReviews]; + [c configWith:data.bookingRating numberOfReviews:data.numberOfHotelReviews]; return c; } case HotelReviewsRow::Regular: { Class cls = [MWMPPReviewCell class]; auto c = static_cast<MWMPPReviewCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); - [c configWithReview:data.reviews[indexPath.row - 1]]; + [c configWithReview:data.hotelReviews[indexPath.row - 1]]; return c; } case HotelReviewsRow::ShowMore: @@ -514,6 +531,34 @@ map<MetainfoRows, Class> const kMetaInfoCells = { } } } + case Sections::UGC: + { + auto const row = data.ugcRows[indexPath.row]; + switch (row) + { + case UGCRow::SelectImpression: + { + Class cls = [MWMUGCSelectImpressionCell class]; + auto c = static_cast<MWMUGCSelectImpressionCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); + [c configWithDelegate:delegate]; + return c; + } + case UGCRow::Comment: + { + Class cls = [MWMUGCCommentCell class]; + auto c = static_cast<MWMUGCCommentCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); + [c configWithReview:data.ugcReviews[indexPath.row - 1]]; + return c; + } + case UGCRow::ShowMore: + { + Class cls = [MWMPlacePageButtonCell class]; + auto c = static_cast<MWMPlacePageButtonCell *>([tableView dequeueReusableCellWithCellClass:cls indexPath:indexPath]); + [c configWithTitle:L(@"ugc_more_reviews") action:^{} isInsetButton:NO]; + return c; + } + } + } } } diff --git a/xcode/ugc/ugc.xcodeproj/project.pbxproj b/xcode/ugc/ugc.xcodeproj/project.pbxproj index f0c2fb0bbd..7435ac493d 100644 --- a/xcode/ugc/ugc.xcodeproj/project.pbxproj +++ b/xcode/ugc/ugc.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 670E7BA31EF980A600A8E9ED /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BA21EF980A600A8E9ED /* libz.tbd */; }; 670E7BA51EF980B300A8E9ED /* libcoding.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 670E7BA41EF980B300A8E9ED /* libcoding.a */; }; F6150E221EF90040000B955D /* api.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F6150E1F1EF90040000B955D /* api.cpp */; }; + F6150E5D1EFAAB45000B955D /* storage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F6150E5B1EFAAB45000B955D /* storage.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -44,6 +45,8 @@ F6150E1F1EF90040000B955D /* api.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = api.cpp; sourceTree = "<group>"; }; F6150E201EF90040000B955D /* api.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = api.hpp; sourceTree = "<group>"; }; F6150E211EF90040000B955D /* types.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = types.hpp; sourceTree = "<group>"; }; + F6150E5B1EFAAB45000B955D /* storage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = storage.cpp; sourceTree = "<group>"; }; + F6150E5C1EFAAB45000B955D /* storage.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = storage.hpp; sourceTree = "<group>"; }; F6F8E3A41EF83D7600F2DE8F /* libugc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libugc.a; sourceTree = BUILT_PRODUCTS_DIR; }; F6F8E3B81EF83DF200F2DE8F /* common-debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "common-debug.xcconfig"; path = "../common-debug.xcconfig"; sourceTree = "<group>"; }; F6F8E3B91EF83DF200F2DE8F /* common-release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "common-release.xcconfig"; path = "../common-release.xcconfig"; sourceTree = "<group>"; }; @@ -107,6 +110,8 @@ F6F8E3A61EF83D7600F2DE8F /* ugc */ = { isa = PBXGroup; children = ( + F6150E5B1EFAAB45000B955D /* storage.cpp */, + F6150E5C1EFAAB45000B955D /* storage.hpp */, 670E7BA61EF980E900A8E9ED /* serdes.hpp */, F6150E1F1EF90040000B955D /* api.cpp */, F6150E201EF90040000B955D /* api.hpp */, @@ -229,6 +234,7 @@ buildActionMask = 2147483647; files = ( F6150E221EF90040000B955D /* api.cpp in Sources */, + F6150E5D1EFAAB45000B955D /* storage.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; |